bcdice 3.6.0 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.5.1
3
+ # This file is automatically generated by Racc 1.5.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -48,58 +48,64 @@ end
48
48
  ##### State transition tables begin ###
49
49
 
50
50
  racc_action_table = [
51
- 13, 16, 17, 3, -27, -27, 33, 13, -27, 13,
52
- 4, 46, 13, 47, 13, 14, 8, 9, 22, 13,
53
- 12, 13, 26, 8, 9, 8, 9, 12, 13, 12,
54
- 8, 9, 12, 13, 12, 8, 9, 8, 9, 12,
55
- 13, 12, 18, 19, 8, 9, 15, 52, 12, 8,
56
- 9, 13, 53, 12, -26, -26, 8, 9, -26, nil,
57
- 12, 16, 17, 43, 42, 16, 17, 41, 18, 19,
58
- nil, 12, 36, 38, 35, 37, 18, 19, 48, 49,
59
- 50, 51 ]
51
+ 14, 14, 50, 12, 51, 19, 20, 14, 14, 14,
52
+ 12, 3, 12, 17, 18, 14, 8, 9, 12, 4,
53
+ 13, 13, 28, 8, 9, 8, 9, 13, 13, 13,
54
+ 14, 8, 9, 12, 15, 13, 14, 23, 14, 12,
55
+ 56, 12, 19, 20, 57, 14, 8, 9, 12, nil,
56
+ 13, nil, 8, 9, 8, 9, 13, 14, 13, nil,
57
+ 12, 8, 9, 14, 16, 13, -27, -27, 19, 20,
58
+ -27, 17, 18, 8, 9, nil, 42, 13, nil, 17,
59
+ 18, 40, 39, 13, nil, 38, -28, -28, 40, 39,
60
+ -28, nil, 38, 45, 47, 44, 46, 52, 53, 54,
61
+ 55 ]
60
62
 
61
63
  racc_action_check = [
62
- 15, 23, 23, 0, 31, 31, 23, 2, 31, 8,
63
- 1, 41, 40, 41, 9, 4, 15, 15, 11, 12,
64
- 15, 16, 15, 2, 2, 8, 8, 2, 17, 8,
65
- 9, 9, 40, 18, 9, 12, 12, 16, 16, 12,
66
- 19, 16, 6, 6, 17, 17, 5, 46, 17, 18,
67
- 18, 22, 47, 18, 22, 22, 19, 19, 22, nil,
68
- 19, 5, 5, 32, 32, 25, 25, 32, 27, 27,
69
- nil, 22, 30, 30, 30, 30, 28, 28, 42, 42,
70
- 43, 43 ]
64
+ 16, 12, 38, 16, 38, 6, 6, 2, 36, 8,
65
+ 2, 0, 8, 27, 27, 9, 16, 16, 9, 1,
66
+ 16, 12, 16, 2, 2, 8, 8, 2, 36, 8,
67
+ 13, 9, 9, 13, 4, 9, 17, 11, 18, 17,
68
+ 50, 18, 29, 29, 51, 19, 13, 13, 19, nil,
69
+ 13, nil, 17, 17, 18, 18, 17, 20, 18, nil,
70
+ 20, 19, 19, 23, 5, 19, 23, 23, 30, 30,
71
+ 23, 25, 25, 20, 20, nil, 25, 20, nil, 5,
72
+ 5, 24, 24, 23, nil, 24, 33, 33, 34, 34,
73
+ 33, nil, 34, 32, 32, 32, 32, 39, 39, 40,
74
+ 40 ]
71
75
 
72
76
  racc_action_pointer = [
73
- -1, 10, 5, nil, 15, 43, 22, nil, 7, 12,
74
- nil, 13, 17, nil, nil, -2, 19, 26, 31, 38,
75
- nil, nil, 49, -17, nil, 47, nil, 48, 56, nil,
76
- 58, -1, 58, nil, nil, nil, nil, nil, nil, nil,
77
- 10, 1, 71, 73, nil, nil, 36, 39, nil, nil,
78
- nil, nil, nil, nil ]
77
+ 7, 19, 5, nil, 34, 61, -15, nil, 7, 13,
78
+ nil, 32, -1, 28, nil, nil, -2, 34, 36, 43,
79
+ 55, nil, nil, 61, 76, 53, nil, -5, nil, 22,
80
+ 48, nil, 79, 81, 83, nil, 6, nil, -8, 90,
81
+ 92, nil, nil, nil, nil, nil, nil, nil, nil, nil,
82
+ 29, 31, nil, nil, nil, nil, nil, nil ]
79
83
 
80
84
  racc_action_default = [
81
- -3, -38, -38, -4, -38, -1, -9, -12, -38, -38,
82
- -20, -25, -38, -37, 54, -38, -38, -38, -38, -38,
83
- -18, -19, -22, -38, -2, -5, -6, -7, -8, -10,
84
- -13, -21, -38, -36, -11, -14, -15, -16, -17, -23,
85
- -34, -38, -38, -38, -35, -24, -38, -38, -30, -31,
86
- -32, -33, -28, -29 ]
85
+ -3, -41, -41, -4, -41, -1, -9, -12, -41, -41,
86
+ -20, -26, -41, -41, -40, 58, -41, -41, -41, -41,
87
+ -41, -18, -19, -22, -24, -41, -2, -5, -6, -7,
88
+ -8, -10, -13, -21, -41, -25, -37, -30, -41, -41,
89
+ -41, -38, -39, -11, -14, -15, -16, -17, -23, -29,
90
+ -41, -41, -33, -34, -35, -36, -31, -32 ]
87
91
 
88
92
  racc_goto_table = [
89
- 31, 5, 20, 21, 27, 28, 1, 2, 24, 34,
90
- 32, 23, 29, 30, 25, 39, 40, 44, 45 ]
93
+ 24, 5, 21, 22, 29, 30, 35, 1, 2, 26,
94
+ 43, 33, 25, 31, 32, 27, 48, 34, nil, nil,
95
+ nil, nil, nil, nil, 49 ]
91
96
 
92
97
  racc_goto_check = [
93
- 9, 3, 6, 6, 5, 5, 1, 2, 4, 7,
94
- 10, 3, 6, 6, 3, 11, 12, 13, 9 ]
98
+ 9, 3, 6, 6, 5, 5, 11, 1, 2, 4,
99
+ 7, 9, 3, 6, 6, 3, 11, 10, nil, nil,
100
+ nil, nil, nil, nil, 9 ]
95
101
 
96
102
  racc_goto_pointer = [
97
- nil, 6, 7, -1, -7, -12, -6, -21, nil, -22,
98
- -12, -17, -16, -15 ]
103
+ nil, 7, 8, -1, -7, -13, -6, -22, nil, -12,
104
+ -6, -18, nil, nil, nil ]
99
105
 
100
106
  racc_goto_default = [
101
107
  nil, nil, nil, nil, nil, 6, 7, nil, 10, 11,
102
- nil, nil, nil, nil ]
108
+ nil, nil, 36, 37, 41 ]
103
109
 
104
110
  racc_reduce_table = [
105
111
  0, 0, :racc_error,
@@ -126,24 +132,27 @@ racc_reduce_table = [
126
132
  3, 33, :_reduce_21,
127
133
  2, 33, :_reduce_22,
128
134
  4, 33, :_reduce_23,
129
- 5, 33, :_reduce_24,
135
+ 2, 33, :_reduce_24,
136
+ 3, 33, :_reduce_25,
130
137
  1, 33, :_reduce_none,
131
- 0, 35, :_reduce_26,
132
- 1, 35, :_reduce_27,
133
- 3, 38, :_reduce_28,
134
- 3, 38, :_reduce_29,
135
- 2, 37, :_reduce_30,
136
- 2, 37, :_reduce_31,
137
- 2, 37, :_reduce_32,
138
+ 0, 35, :_reduce_27,
139
+ 1, 35, :_reduce_28,
140
+ 2, 36, :_reduce_29,
141
+ 1, 36, :_reduce_30,
142
+ 3, 39, :_reduce_31,
143
+ 3, 39, :_reduce_32,
138
144
  2, 37, :_reduce_33,
139
- 1, 36, :_reduce_none,
140
- 1, 36, :_reduce_none,
141
- 3, 34, :_reduce_36,
142
- 1, 34, :_reduce_37 ]
145
+ 2, 37, :_reduce_34,
146
+ 2, 37, :_reduce_35,
147
+ 2, 37, :_reduce_36,
148
+ 1, 38, :_reduce_none,
149
+ 1, 38, :_reduce_none,
150
+ 3, 34, :_reduce_39,
151
+ 1, 34, :_reduce_40 ]
143
152
 
144
- racc_reduce_n = 38
153
+ racc_reduce_n = 41
145
154
 
146
- racc_shift_n = 54
155
+ racc_shift_n = 58
147
156
 
148
157
  racc_token_table = {
149
158
  false => 0,
@@ -229,8 +238,9 @@ Racc_token_to_s_table = [
229
238
  "dice",
230
239
  "term",
231
240
  "explicit_or_implicit_sides",
232
- "filter_type_with_shorthand",
241
+ "filter",
233
242
  "filter_type",
243
+ "filter_type_with_shorthand",
234
244
  "filter_shorthand" ]
235
245
 
236
246
  Racc_debug_parser = false
@@ -372,83 +382,105 @@ end
372
382
  def _reduce_23(val, _values, result)
373
383
  times = val[0]
374
384
  sides = val[2]
375
- filter = val[3]
385
+ filter = val[3][:filter]
386
+ n_filtering = val[3][:n_filtering]
376
387
 
377
388
  raise ParseError if sides != :implicit && sides.include_dice?
378
- raise ParseError if times.include_dice?
389
+ raise ParseError if times.include_dice? || n_filtering.include_dice?
379
390
 
380
- n_filtering = Node::Number.new(1)
381
391
  result = Node::DiceRollWithFilter.new(times, sides, n_filtering, filter)
382
392
 
383
393
  result
384
394
  end
385
395
 
386
396
  def _reduce_24(val, _values, result)
387
- times = val[0]
388
- sides = val[2]
389
- filter = val[3]
390
- n_filtering = val[4]
397
+ times = Node::Number.new(1)
398
+ sides = val[1]
399
+ raise ParseError if sides.include_dice?
400
+ raise ParseError if sides.instance_of?(Node::Number) && sides.literal == 66
401
+
402
+ result = Node::DiceRoll.new(times, sides)
403
+
404
+ result
405
+ end
406
+
407
+ def _reduce_25(val, _values, result)
408
+ times = Node::Number.new(1)
409
+ sides = val[1]
410
+ filter = val[2][:filter]
411
+ n_filtering = val[2][:n_filtering]
391
412
 
392
413
  raise ParseError if sides != :implicit && sides.include_dice?
393
- raise ParseError if times.include_dice? || n_filtering.include_dice?
414
+ raise ParseError if n_filtering.include_dice?
415
+ raise ParseError if sides.instance_of?(Node::Number) && sides.literal == 66
394
416
 
395
417
  result = Node::DiceRollWithFilter.new(times, sides, n_filtering, filter)
396
418
 
397
419
  result
398
420
  end
399
421
 
400
- # reduce 25 omitted
422
+ # reduce 26 omitted
401
423
 
402
- def _reduce_26(val, _values, result)
424
+ def _reduce_27(val, _values, result)
403
425
  result = :implicit
404
426
  result
405
427
  end
406
428
 
407
- def _reduce_27(val, _values, result)
429
+ def _reduce_28(val, _values, result)
408
430
  result = val[0]
409
431
  result
410
432
  end
411
433
 
412
- def _reduce_28(val, _values, result)
434
+ def _reduce_29(val, _values, result)
435
+ result = {filter: val[0], n_filtering: val[1]}
436
+ result
437
+ end
438
+
439
+ def _reduce_30(val, _values, result)
440
+ result = {filter: val[0], n_filtering: Node::Number.new(1)}
441
+ result
442
+ end
443
+
444
+ def _reduce_31(val, _values, result)
413
445
  result = Node::DiceRollWithFilter::KEEP_HIGHEST
414
446
  result
415
447
  end
416
448
 
417
- def _reduce_29(val, _values, result)
449
+ def _reduce_32(val, _values, result)
418
450
  result = Node::DiceRollWithFilter::KEEP_LOWEST
419
451
  result
420
452
  end
421
453
 
422
- def _reduce_30(val, _values, result)
454
+ def _reduce_33(val, _values, result)
423
455
  result = Node::DiceRollWithFilter::KEEP_HIGHEST
424
456
  result
425
457
  end
426
458
 
427
- def _reduce_31(val, _values, result)
459
+ def _reduce_34(val, _values, result)
428
460
  result = Node::DiceRollWithFilter::KEEP_LOWEST
429
461
  result
430
462
  end
431
463
 
432
- def _reduce_32(val, _values, result)
464
+ def _reduce_35(val, _values, result)
433
465
  result = Node::DiceRollWithFilter::DROP_HIGHEST
434
466
  result
435
467
  end
436
468
 
437
- def _reduce_33(val, _values, result)
469
+ def _reduce_36(val, _values, result)
438
470
  result = Node::DiceRollWithFilter::DROP_LOWEST
439
471
  result
440
472
  end
441
473
 
442
- # reduce 34 omitted
474
+ # reduce 37 omitted
443
475
 
444
- # reduce 35 omitted
476
+ # reduce 38 omitted
445
477
 
446
- def _reduce_36(val, _values, result)
478
+ def _reduce_39(val, _values, result)
447
479
  result = Node::Parenthesis.new(val[1])
448
480
  result
449
481
  end
450
482
 
451
- def _reduce_37(val, _values, result)
483
+ def _reduce_40(val, _values, result)
452
484
  result = Node::Number.new(val[0])
453
485
  result
454
486
  end
@@ -7,7 +7,7 @@ require "bcdice/common_command/add_dice/randomizer"
7
7
  module BCDice
8
8
  module CommonCommand
9
9
  module AddDice
10
- PREFIX_PATTERN = /[+\-(]*\d+/.freeze
10
+ PREFIX_PATTERN = /[+\-(]*(\d+|D\d+)/.freeze
11
11
 
12
12
  class << self
13
13
  def eval(command, game_system, randomizer)
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.5.1
3
+ # This file is automatically generated by Racc 1.5.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.5.1
3
+ # This file is automatically generated by Racc 1.5.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -20,7 +20,7 @@ module BCDice
20
20
  def parse(command, game_system)
21
21
  command = command.split(" ", 2).first
22
22
 
23
- m = /^(S)?D66([ANSD])?$/i.match(command)
23
+ m = /^(S)?D66([ANSD])?$/i.match(command.upcase)
24
24
  return nil unless m
25
25
 
26
26
  new(
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.5.1
3
+ # This file is automatically generated by Racc 1.5.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.5.1
3
+ # This file is automatically generated by Racc 1.5.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.5.1
3
+ # This file is automatically generated by Racc 1.5.2
4
4
  # from Racc grammar file "".
5
5
  #
6
6
 
@@ -15,10 +15,11 @@ module BCDice
15
15
  SORT_KEY = "あやひと"
16
16
 
17
17
  HELP_MESSAGE = <<~TEXT
18
- ・判定コマンド(xAB±y@c>=z)
18
+ ・判定コマンド(xAB±y@c$d>=z)
19
19
  x:サイコロの数(10以上の場合9個振り、それ以降を成功数2として加算する)
20
20
  ±y:成功数への補正(省略可)
21
21
  c:クリティカル値(@ごと省略可。省略時は6)
22
+ d:出目を2として数える数の最小値($ごと省略可。省略時は6)
22
23
  z:目標値(妨害値など。>=ごと省略可)
23
24
  (例) 4AB
24
25
  11AB>=5
@@ -31,6 +32,14 @@ module BCDice
31
32
  交流表 CET
32
33
  ファンブル表 FT
33
34
  封印期間表 LT
35
+
36
+ 帝都東京エリア選択 TET
37
+  浅草シーン表 AST
38
+  上野シーン表 UST
39
+  日本橋シーン表 NST
40
+  銀座シーン表 GST
41
+  霞ヶ関シーン表 KST
42
+  新宿シーン表 SST
34
43
  TEXT
35
44
 
36
45
  def initialize(command)
@@ -44,7 +53,7 @@ module BCDice
44
53
  end
45
54
 
46
55
  def check_action(command)
47
- parser = Command::Parser.new("AB", round_type: RoundType::CEIL).has_prefix_number.enable_critical.restrict_cmp_op_to(nil, :>=)
56
+ parser = Command::Parser.new("AB", round_type: RoundType::CEIL).has_prefix_number.enable_critical.enable_dollar.restrict_cmp_op_to(nil, :>=)
48
57
  parsed = parser.parse(command)
49
58
  return nil if parsed.nil?
50
59
 
@@ -57,19 +66,20 @@ module BCDice
57
66
  end
58
67
  modify = parsed.modify_number
59
68
  critical_target = parsed.critical || 6
69
+ addition_target = parsed.dollar || 6
60
70
  target = parsed.target_number
61
71
 
62
72
  dice_arr = @randomizer.roll_barabara(dice_cnt, 6).sort
63
73
  dice_str = dice_arr.join(",")
64
74
  has_critical = dice_arr.any? { |x| x >= critical_target }
65
- success_cnt = dice_arr.count { |x| x >= 4 } + dice_arr.count(6) + over_modify * 2
75
+ success_cnt = dice_arr.count { |x| x >= 4 } + dice_arr.count { |x| x >= addition_target } + over_modify * 2
66
76
  has_fumble = success_cnt == 0 && dice_arr.include?(1)
67
77
  if has_fumble
68
78
  success_cnt = 0
69
79
  else
70
80
  success_cnt += modify
71
81
  end
72
- result = target.nil? ? success_cnt >= 1 : success_cnt > target
82
+ result = target.nil? ? success_cnt >= 1 : success_cnt >= target
73
83
 
74
84
  Result.new.tap do |r|
75
85
  r.text = "(#{dice_cnt}B6>=4)#{over_modify > 0 ? "+#{over_modify * 2}" : ''} > [#{dice_str}]#{over_modify > 0 ? "+#{over_modify * 2}" : ''} > 成功数#{success_cnt} > #{result ? '成功' : '失敗'}#{has_critical ? '(クリティカル)' : ''}#{has_fumble ? '(ファンブル)' : ''}"
@@ -221,6 +231,162 @@ module BCDice
221
231
  # '500年',
222
232
  ]
223
233
  ),
234
+ 'TET' => DiceTable::Table.new(
235
+ '帝都東京エリア選択',
236
+ '1D6',
237
+ [
238
+ '浅草。庶民の盛り場として賑わう商店街と下町。',
239
+ '上野。あらゆる路線の中心である帝都の玄関口。',
240
+ '日本橋。江戸時代から変わらぬ商業の中心地。',
241
+ '銀座。赤煉瓦が立ち並ぶ、帝都一モダンな繁華街。',
242
+ '霞ヶ関。国会議事堂や裁判所がある官庁街。',
243
+ '新宿。関東大震災以降、急速に発展した新しい街。',
244
+ ]
245
+ ),
246
+ 'AST' => DiceTable::D66LeftRangeTable.new(
247
+ '浅草シーン表',
248
+ D66SortType::NO_SORT,
249
+ [
250
+ [1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
251
+ [2..3, [
252
+ "[子]浅草寺。浅草の顔ともいえる寺。7世紀に建造された都内でも最古の寺。",
253
+ "[丑]武神一刀流道場。浅草でも有名な剣術道場。柔術や薙刀など、剣以外の実践的な技も教えている。",
254
+ "[寅]待乳の渡し。隅田川を橋で渡る代わりに、乗せて渡ってくれる小舟。",
255
+ "[卯]帝都観光案内館。帝都東京内観光の案内所。ガイドつきのバス観光も行っている。",
256
+ "[辰]神谷バー。老舗の飲食店であり、電気ブランを提供していることで有名。",
257
+ "[巳]雷門。浅草寺の南側に建てられた門で、風神と雷神の像が安置されている。",
258
+ ]],
259
+ [4..5, [
260
+ "[午]仲見世。雷門から浅草寺本堂に続く仁王門まで立ち並ぶ商店街。",
261
+ "[未]仰天堂。やたらと大盛りの食事を提供してくれる人気店。",
262
+ "[申]混沌興行。妖怪たちが演じることで有名な見世物小屋。いつも混み合っている。",
263
+ "[酉]浅草六区。浅草の中心街であり、店舗や演芸場、活動写真館が並んでいる。",
264
+ "[戌]凌雲閣。浅草十二階とも呼ばれる塔。関東大震災でも崩れることなく、そびえ立っている。",
265
+ "[亥]花屋敷。日本最初の遊園地であり、園内には動物園も完備している。",
266
+ ]],
267
+ [6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
268
+ ]
269
+ ),
270
+ 'UST' => DiceTable::D66LeftRangeTable.new(
271
+ '上野シーン表',
272
+ D66SortType::NO_SORT,
273
+ [
274
+ [1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
275
+ [2..3, [
276
+ "[子]上野恩賜公園。桜の名所でもある巨大な公園。敷地内では、四季折々の自然を楽しむことができる。",
277
+ "[丑]東京帝室博物館。宮内省所管の博物館であり、珍しい品々が展示されている。",
278
+ "[寅]上野駅。帝都と地方の路線を繋ぐ駅。地方から上京してくる人々を多く見かける。",
279
+ "[卯]精養軒。本格的な洋食が楽しめる老舗のレストラン。人間、妖怪に限らず上流階級が通っている。",
280
+ "[辰]御徒町。高架下と周辺に所狭しと民家や長屋、様々な店がひしめきあう下町の歓楽街。",
281
+ "[巳]一鉄工場。偏屈で頑固だが有能な老人が経営する工場。自作のラジオが置かれている。",
282
+ ]],
283
+ [4..5, [
284
+ "[午]帝国大学。象徴の赤門が有名な、日本の最高学府。校内には、妖怪研究室がある。",
285
+ "[未]鳳明館。明治創業の旅館。文士が執筆する際に、よく利用している。",
286
+ "[申]黄龍門学園。帝国大学敷地の横にある私立学園。妖怪や半妖も多く通っている。",
287
+ "[酉]不忍池。弁天堂と大黒天堂を構える池で、河童が隠れ住んでいる。",
288
+ "[戌]きさらぎ長屋。行く宛のない者や、行き場をなくした者が集まる長屋。",
289
+ "[亥]上野恩賜公園動物園。ホッキョクグマ舎やサル山をはじめ、珍しい動物が飼われている。",
290
+ ]],
291
+ [6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
292
+ ]
293
+ ),
294
+ 'NST' => DiceTable::D66LeftRangeTable.new(
295
+ '日本橋シーン表',
296
+ D66SortType::NO_SORT,
297
+ [
298
+ [1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
299
+ [2..3, [
300
+ "[子]日本銀行本店。西洋建築の先駆けといえる建築物。帝都事変では大きな被害が出た。",
301
+ "[丑]三越。日本橋に居を構える有数の大型百貨店。この店で揃わぬ物はないとされている。",
302
+ "[寅]日本橋。五つ街道の起点であり、東海道五十三次の出発点としてよく知られる橋。",
303
+ "[卯]メイゾン妖の巣。妖怪や半妖の文学者たちが集うカフェー。",
304
+ "[辰]大正座。明治座の兄弟とよばれる演芸場。歌舞伎や芝居などが上演されている。",
305
+ "[巳]多々良堂。江戸時代より続く退魔具の専門店。多くのあやびとが訪れる。",
306
+ ]],
307
+ [4..5, [
308
+ "[午]妖艶大世界。上海にある上海大世界を真似て、妖怪や半妖が集まってできた新興の花街。",
309
+ "[未]二丁巴里。丸ノ内の一丁倫敦に対して創られた大規模な問屋街。",
310
+ "[申]皇居外苑。桔梗門の前は大広場があり、皇居を訪れる者が集まっている。",
311
+ "[酉]東京駅。皇居に対面する形で作られた煉瓦造りの壮麗な駅。",
312
+ "[戌]丸ノ内ビルヂング。大正12年に竣工した東洋一ともいわれる巨大なビルヂング。",
313
+ "[亥]将門塚。平将門公の御首が祀られる塚。大手町にひっそりと存在している。",
314
+ ]],
315
+ [6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
316
+ ]
317
+ ),
318
+ 'GST' => DiceTable::D66LeftRangeTable.new(
319
+ '銀座シーン表',
320
+ D66SortType::NO_SORT,
321
+ [
322
+ [1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
323
+ [2..3, [
324
+ "[子]ダンスホウル・ガアデン。モダンボーイやモダンガール御用達の帝都東京有数のダンスホウル。",
325
+ "[丑]服部時計店。銀座のシンボルとなっている時計塔と、併設された店舗。",
326
+ "[寅]松屋。大正14年に開店した百貨店。地上7階までの吹き抜けステンドグラスで知られる。",
327
+ "[卯]歌舞伎座。歌舞伎の殿堂。古式ゆかしい意匠を取り入れた最新建築の劇場。",
328
+ "[辰]倫敦橋。文士や芸術家が好んで訪れる2階建ての洋式建築のカフェー。",
329
+ "[巳]資生堂パーラー。ソーダ水やアイスクリンを提供したことで有名な喫茶店。",
330
+ ]],
331
+ [4..5, [
332
+ "[午]カフェープランタン。日本初のカフェーといわれる老舗。富裕層やインテリ層が多く訪れる。",
333
+ "[未]新橋絢爛花街。関東大震災をきっかけに再建された花街。政府高官なども利用している。",
334
+ "[申]鹿鳴館。明治時代を代表する西洋建築。華族や資産家が利用できる施設となっている。",
335
+ "[酉]帝国ホテル。フランク・ロイド・ライトが設計した最新鋭の技術が詰め込まれたホテル。",
336
+ "[戌]妖務省本部。妖務省と妖怪人間共同実働部隊の本部が置かれている。",
337
+ "[亥]帝国劇場。明治時代を代表する日本最大の大劇場で\"帝劇\"の愛称で知られている。",
338
+ ]],
339
+ [6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
340
+ ]
341
+ ),
342
+ 'KST' => DiceTable::D66LeftRangeTable.new(
343
+ '霞ヶ関シーン表',
344
+ D66SortType::NO_SORT,
345
+ [
346
+ [1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
347
+ [2..3, [
348
+ "[子]桜田門。内堀にある門のひとつで皇居に通じている。",
349
+ "[丑]警視庁庁舎。警視庁の総合本部。庁舎内に妖鬼対策本部がある。",
350
+ "[寅]日比谷公園。市民の憩いの場所であり、図書館や音楽堂をそなえる大規模な公園。",
351
+ "[卯]大審院庁舎。司法裁判所の中における最上級審の裁判所。",
352
+ "[辰]私立聖ロザリオ女学園。愛宕山の森に囲まれた都内随一のお嬢様学校。",
353
+ "[巳]片倉組。武家屋敷を改装した本邸であり、帝都屈指のヤクザの根城となっている。",
354
+ ]],
355
+ [4..5, [
356
+ "[午]妖人史料編纂局。妖怪の史料の収集と編纂を目的として設置された官立組織。",
357
+ "[未]鰐淵金融。利子こそ高いが、誰にでも門戸を開いている貸金業者。",
358
+ "[申]料亭山王園。政治家や官僚御用達の料亭。十二真鬼も出入りしている。",
359
+ "[酉]日枝神社。山王祭で知られる神社。数多くの刀剣が納められている。",
360
+ "[戌]国会議事堂。現在建設中の国会議事堂。大正25年に竣工予定で、現在は木造の仮議事堂がある。",
361
+ "[亥]帝国図書館。国立図書館で、国内で出版されたあらゆる書籍が収蔵されている。",
362
+ ]],
363
+ [6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
364
+ ]
365
+ ),
366
+ 'SST' => DiceTable::D66LeftRangeTable.new(
367
+ '新宿シーン表',
368
+ D66SortType::NO_SORT,
369
+ [
370
+ [1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
371
+ [2..3, [
372
+ "[子]武蔵野館。座席数1,200を誇る国内有数の活動大写真館。",
373
+ "[丑]二幸。食料品専門百貨店。あやびとたちに友好的で、伝奇事件が解決すると飲食が提供される。",
374
+ "[寅]高野フルーツパーラー。マスクメロンが有名な果物専門店と、併設された果物が楽しめる飲食店。",
375
+ "[卯]紀伊國屋書店。大正16年に創業した、文士たちが集うサロンのような大型書店。",
376
+ "[辰]新宿御苑。宮内省が管理する皇室のための庭園。封印具の保管庫である浄玻璃ノ宮がある。",
377
+ "[巳]明治神宮。明治天皇と昭憲皇太后を祭神とした神社。境内は厳かな雰囲気に満ちている。",
378
+ ]],
379
+ [4..5, [
380
+ "[午]新宿駅。多摩や小田原からの玄関口となる駅。1日あたりの乗降客数は日本一。",
381
+ "[未]酩酊横丁。長屋が連なる路地に、200軒以上もの居酒屋やバーがひしめいている。",
382
+ "[申]歌楽騒戯通り。関東大震災後に作られた真新しい建物がひしめく歓楽街。",
383
+ "[酉]淀橋浄水場。コレラ流行後に、水道を近代化させるために作られた浄水場。",
384
+ "[戌]新宿大通り。急速な発展を遂げた新宿のメイン通り。",
385
+ "[亥]ほたる屋。妖狐と妖狸が経営している衣料品専門の百貨店。",
386
+ ]],
387
+ [6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
388
+ ]
389
+ ),
224
390
  }.freeze
225
391
 
226
392
  register_prefix('\d*AB', TABLES.keys)
@@ -16,6 +16,8 @@ module BCDice
16
16
 
17
17
  # ダイスボットの使い方
18
18
  HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
19
+ これは、2015年に新書サイズで発売された『駆け出しアイドルRPG ビギニングアイドル チャレンジガールズ』およびそのサプリメントに対応したコマンドです。
20
+
19
21
  ・パフォーマンス [r]PDn[+m/-m](r:場に残った出目 n:振る数 m:修正値)
20
22
  ・ワールドセッティング仕事表 BWT:大手芸能プロ LWT:弱小芸能プロ
21
23
   TWT:ライブシアター CWT:アイドル部 LO[n]:地方アイドル(n:チャンス)