bcdice 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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:チャンス)