bcdice 3.5.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/i18n/FutariSousa/ja_jp.yml +705 -9
  4. data/i18n/KillDeathBusiness/ja_jp.yml +1 -1
  5. data/i18n/SwordWorld/ja_jp.yml +6 -0
  6. data/i18n/SwordWorld2_0/ja_jp.yml +37 -0
  7. data/i18n/SwordWorld2_5/ja_jp.yml +57 -0
  8. data/lib/bcdice/common_command/add_dice/node.rb +28 -4
  9. data/lib/bcdice/common_command/add_dice/parser.rb +149 -85
  10. data/lib/bcdice/dice_table/d66_parity_table.rb +8 -0
  11. data/lib/bcdice/game_system/Avandner.rb +1 -2
  12. data/lib/bcdice/game_system/Ayabito.rb +229 -0
  13. data/lib/bcdice/game_system/BattleTech.rb +1 -1
  14. data/lib/bcdice/game_system/CyberpunkRed.rb +135 -0
  15. data/lib/bcdice/game_system/DarkDaysDrive.rb +76 -41
  16. data/lib/bcdice/game_system/Elysion.rb +36 -20
  17. data/lib/bcdice/game_system/FutariSousa.rb +48 -4
  18. data/lib/bcdice/game_system/KemonoNoMori.rb +17 -17
  19. data/lib/bcdice/game_system/NeverCloud.rb +19 -8
  20. data/lib/bcdice/game_system/Shiranui.rb +145 -0
  21. data/lib/bcdice/game_system/ShuumatsuKikou.rb +298 -0
  22. data/lib/bcdice/game_system/StarryDolls.rb +318 -0
  23. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +18 -5
  24. data/lib/bcdice/game_system/SwordWorld.rb +6 -6
  25. data/lib/bcdice/game_system/SwordWorld2_0.rb +16 -39
  26. data/lib/bcdice/game_system/SwordWorld2_5.rb +3 -63
  27. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +29 -28
  28. data/lib/bcdice/game_system/cyberpunk_red/tables.rb +530 -0
  29. data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +1 -1
  30. data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +1 -1
  31. data/lib/bcdice/game_system/satasupe/tables.rb +1 -1
  32. data/lib/bcdice/game_system/sword_world/rating_options.rb +47 -0
  33. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +34 -82
  34. data/lib/bcdice/game_system/sword_world/rating_parser.rb +43 -53
  35. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +14 -10
  36. data/lib/bcdice/game_system.rb +4 -0
  37. data/lib/bcdice/randomizer.rb +1 -1
  38. data/lib/bcdice/version.rb +1 -1
  39. metadata +11 -2
@@ -0,0 +1,298 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class ShuumatsuKikou < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'ShuumatsuKikou'
8
+
9
+ # ゲームシステム名
10
+ NAME = '終末紀行RPG'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'しゆうまつきこう'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~HELP
17
+ ■判定
18
+ xB6>=5
19
+ x: 能力値
20
+ (汎用コマンドそのままです)
21
+
22
+ ■各種表
23
+ 資源の減少チェック: ResourceLose, RLose
24
+ 獲得資源決定: ResourceGain, RGain
25
+
26
+ □ランダムエリア決定表
27
+ 都市/荒野決定: RandomArea, RArea
28
+ 荒野エリア決定: RandomWaste, RWaste
29
+ 都市エリア決定: RandomUrban, RUrban
30
+
31
+ □ランダム障害シーン決定表
32
+ シーン決定: RandomObs, RObs
33
+ 技術系A: RandomObsTechA, ROTA
34
+ 技術系B: RandamObsTechB, ROTB
35
+ 生存系A: RandomObsSurviveA, ROSA
36
+ 生存系B: RandomObsSurviveB, ROSB
37
+ 戦闘系A: RandomObsCombatA, ROCA
38
+ 戦闘系B: RandomObsCombatB, ROCB
39
+
40
+ □ランダム旅情シーン決定表
41
+ シーン決定: RandomEmo, REmo
42
+ 日常系A: RandomEmoDailyA, REDA
43
+ 日常系B: RandomEmoDailyB, REDB
44
+ 日常系C: RandomEmoDailyC, REDC
45
+ 追憶系A: RandomEmoReminiscenceA, RERA
46
+ 追憶系B: RandomEmoReminiscenceB, RERB
47
+ 追憶系C: RandomEmoReminiscenceC, RERC
48
+
49
+ □ランダム難所シーン決定表
50
+ 荒野系: RandomDangerousWaste, RDW
51
+ 都市系: RandomDangerousUrban, RDU
52
+ HELP
53
+
54
+ def eval_game_system_specific_command(command)
55
+ roll_tables(ALIAS[command] || command, TABLES)
56
+ end
57
+
58
+ # 5要素のテーブル.
59
+ # 1D6 を [1..2, 3, 4, 5, 6] の5通りに割り振る.
60
+ class FiveItemsTable < DiceTable::RangeTable
61
+ def initialize(name, item1, item2, item3, item4, item5)
62
+ super(
63
+ name,
64
+ "1D6",
65
+ [
66
+ [1..2, item1],
67
+ [3, item2],
68
+ [4, item3],
69
+ [5, item4],
70
+ [6, item5],
71
+ ]
72
+ )
73
+ end
74
+ end
75
+
76
+ TABLES = {
77
+ "ResourceLose" => DiceTable::Table.new(
78
+ "資源の減少チェック",
79
+ "1D6",
80
+ [
81
+ "〈食料〉",
82
+ "〈健康〉",
83
+ "〈電力〉",
84
+ "〈パーツ〉",
85
+ "〈ヴィークル〉",
86
+ "[資源の減少チェック]をもう1回行なう。その際、減少する資源は1ではなく2となる。",
87
+ ]
88
+ ),
89
+ "ResourceGain" => DiceTable::Table.new(
90
+ "獲得資源決定",
91
+ "1D6",
92
+ [
93
+ "〈食料〉",
94
+ "〈健康〉",
95
+ "〈電力〉",
96
+ "〈パーツ〉",
97
+ "〈ヴィークル〉",
98
+ "任意、好きな資源を手に入れる。",
99
+ ]
100
+ ),
101
+ "RandomArea" => DiceTable::RangeTable.new(
102
+ "都市/荒野決定",
103
+ "1D6",
104
+ [
105
+ [1..3, "荒野エリア決定表へ( → RWaste )"],
106
+ [4..6, "都市エリア決定表へ( → RUrban )"],
107
+ ]
108
+ ),
109
+ "RandomWaste" => FiveItemsTable.new(
110
+ "荒野エリア決定",
111
+ "平原――地平線の果てまで続く、茫漠とした荒野。それを貫くように走るハイウェイの痕跡。その沿道に廃墟が点在している。",
112
+ "砂漠――砂漠がどこまでも広がっている。大海に浮かぶ島のように、倒壊した高層ビルが顔を出している。熱と渇きが旅人を苛む。",
113
+ "汚染地帯――土も、水も、空気さえも、汚染物質で満たされた区域。ここでは呼吸すらも死を招く。あまり長居したい土地ではない。",
114
+ "雪原――視界一面を覆う雪の大地。ただそこにいるだけで、身体の熱が奪われていく。生命の活動を許さないモノトーンの世界だ。",
115
+ "山岳――旅人の前にそびえる巨大な山塊。山越えは落石や崩落の危険性など、通過するだけでリスクが高い。だが他に道はない。"
116
+ ),
117
+ "RandomUrban" => FiveItemsTable.new(
118
+ "都市エリア決定",
119
+ "無人都市――かつて栄華を誇ったメトロポリス。だが今、旅人のほかに動いているものはいない。無数のビル群が墓標のようにそびえる。",
120
+ "要塞都市――巨大な城壁と、朽ち果てた無人防衛兵器群によって守られた要塞都市。この都市が守ろうとした住人はもういない。",
121
+ "地下都市――放棄された広大な地下シェルター。光の届かない暗黒の地下空間。ある時期の人類は、地下に生活拠点を移していたようだ。",
122
+ "密林都市――この都市の廃墟は、繁茂したミュータント植物の密林に覆われている。そこには異形の生態系が成立している。",
123
+ "水没都市――水没した都市。かつての人類の遺構群が、上昇した海面下に沈んでいる。都市の新たな主は、ミュータント魚群だ。"
124
+ ),
125
+ "RandomObs" => DiceTable::Table.new(
126
+ "障害シーン決定",
127
+ "1D6",
128
+ [
129
+ "技術系A( → ROTA )",
130
+ "技術系B( → ROTB )",
131
+ "生存系A( → ROSA )",
132
+ "生存系B( → ROSB )",
133
+ "戦闘系A( → ROCA )",
134
+ "戦闘系B( → ROCB )",
135
+ ]
136
+ ),
137
+ "RandomObsTechA" => FiveItemsTable.new(
138
+ "ランダム障害シーン/技術系A",
139
+ "電子ロック――電子ロックが生きている倉庫を発見。ロックを開けて中の資源を回収する。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]1回。",
140
+ "発電機の再生――停止した風力発電機(風車)を発見。発電効率は低いが、復旧させればロボットのバッテリーを充電できる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
141
+ "オーバーホール――ヴィークルが不調だ。一度しっかり分解整備(オーバーホール)しなければ。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈ヴィークル〉-1。",
142
+ "リフォーム――居心地の良さそうな住居跡を発見。ちょっとリフォームすれば、快適な休息を取れる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
143
+ "ロボット工場――ロボット工場跡を発見。残された部品をうまく加工すれば、劣化したパーツを交換できる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。"
144
+ ),
145
+ "RandomObsTechB" => FiveItemsTable.new(
146
+ "ランダム障害シーン/技術系B",
147
+ "悪路走破――ヴィークルで悪路を走る。スピードを落とさず走り抜ければ、時間的消耗を抑えることができる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
148
+ "食料生産プラント――食料生産プラント跡を発見。うまく復旧すれば、最後に残った材料で食料を生産できる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。",
149
+ "パーツ交換――ロボットのパーツが劣化、破損する。予備パーツはあるが、自力では交換が難しい。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
150
+ "バッテリー回収――ドローンの残骸を発見。うまく解体すれば、バッテリーを回収できそうだ。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
151
+ "ロボットの行商人――ロボットの行商人と出会う。彼は旅人たち(「数十年ぶりの客」らしい)に取り引きを持ちかけてくる。行商人の提示する品物の質を見極めろ。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0ならボッタくられ、[資源の減少チェック]を1回行なう。"
152
+ ),
153
+ "RandomObsSurviveA" => FiveItemsTable.new(
154
+ "ランダム障害シーン/生存系A",
155
+ "迷い路――入り組んだ地域を進む。方向感覚を失えば、さらなる消耗を強いられる。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら道に迷い、[資源の減少チェック]を1回行なう。",
156
+ "危険地帯――ガスや汚染物質に満ちた危険地帯を通過する。ロボットはともかく、人間は長居できない。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら人間は負傷し〈健康〉-1。",
157
+ "カビ――ロボットにミュータントのカビが生える。このカビは特定の貴金属を好む。すぐに除去しなければ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
158
+ "水不足――水不足が深刻化し始める。一刻も早く水源を探して、補充しなければ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。",
159
+ "崩壊寸前――崩れかかった遺跡から、資源を回収する。時間をかければ崩落に巻き込まれる。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。"
160
+ ),
161
+ "RandomObsSurviveB" => FiveItemsTable.new(
162
+ "ランダム障害シーン/生存系B",
163
+ "隠れんぼ――狂暴なミュータントの群を発見。隠れてやりすごせ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
164
+ "ソーラーパネル掃除――ソーラーパネルを繁茂したミュータント植物が覆っている。植物を刈り取ってパネルを復旧し、電力を得よう。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
165
+ "スタック――泥や砂地にハマって、ヴィークルがスタックする。力づくで引きずり出せ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈ヴィークル〉-1。",
166
+ "体調不良――汚染物質を吸引したか、毒に当たったか、体調が急変する。うまく療養(看病)せよ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
167
+ "保存食の加工――食料の確保。小型の可食ミュータントを捕獲した。うまく保存用に加工せよ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。"
168
+ ),
169
+ "RandomObsCombatA" => FiveItemsTable.new(
170
+ "ランダム障害シーン/戦闘系A",
171
+ "大群との遭遇――狂暴なミュータントの群の襲撃を受ける。激しい戦闘で消耗戦となる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
172
+ "地獄の毒々ミュータント――猛毒を持つ狂暴なミュータントが襲ってくる。うまく毒を避けて倒さなければ。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
173
+ "暴走ドローン――暴走ドローンを発見。ロボットと共通のパーツを使っているようだ。うまく破壊すればパーツを回収できる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
174
+ "生体発電機――発電器官を有するミュータントに遭遇。発電器官を潰さずにしとめれば、電池代わりになるかもしれない。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
175
+ "高速戦闘――ヴィークル型の高速ドローンが襲ってくる。ヴィークルを破壊して部品を奪うつもりのようだ。返り討ちにして逆に部品を奪え。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈ヴィークル〉を1失う。"
176
+ ),
177
+ "RandomObsCombatB" => FiveItemsTable.new(
178
+ "ランダム障害シーン/戦闘系B",
179
+ "瓦礫撤去――巨大な瓦礫が進路を塞いでいる。破壊して通らなければ、遠回りを強いられ消耗する。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
180
+ "溶解ミュータント――金属や樹脂を溶かすミュータントに遭遇。執拗にロボットを狙ってくる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
181
+ "電気食らい――電気を食う蟲型ドローンが寄ってくる。ロボットの体内にある電池は、彼らの食糧だ。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
182
+ "殺人機械――暴走ドローンが襲ってくる。対人殺傷用らしく、人間だけを執拗に狙ってくる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
183
+ "ごちそうミュータント――大型の可食ミュータントに遭遇。貴重な食糧だ、可食部位を傷つけずに倒そう。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。"
184
+ ),
185
+ "RandomEmo" => DiceTable::Table.new(
186
+ "旅情シーン決定",
187
+ "1D6",
188
+ [
189
+ "日常系A( → REDA )",
190
+ "日常系B( → REDB )",
191
+ "日常系C( → REDC )",
192
+ "追憶系A( → RERA )",
193
+ "追憶系B( → RERB )",
194
+ "追憶系C( → RERC )",
195
+ ]
196
+ ),
197
+ "RandomEmoDailyA" => FiveItemsTable.new(
198
+ "ランダム旅情シーン/日常系A",
199
+ "野営――ふたりぼっちの夜がくる。熱を失わないよう、火を焚き、寄り添う。",
200
+ "暇つぶし――悪天候などにより、停滞を余儀なくされる。暇だ。とにかく暇だ。",
201
+ "遊ぶ――遊ぶ。かくれんぼでも、しりとりでも、雪合戦でも、なんでもいい。まったく無意味だが、それがいい。",
202
+ "訓練――いつ、どんな危険が襲ってくるか解らない。武器の扱いを訓練しよう。",
203
+ "移動――ヴィークルに揺られて移動する。淡々と、黄昏の景色がゆっくりと流れていく。"
204
+ ),
205
+ "RandomEmoDailyB" => FiveItemsTable.new(
206
+ "ランダム旅情シーン/日常系B",
207
+ "食事――人間は、ものを食べなければ生きていけない。どうせいつかは死ぬのに、不便なことだ。",
208
+ "観察――もうひとりの旅人を観察する。今まで知らなかった一面が見られるかもしれない。知らない方がよかったかもしれない。",
209
+ "整備――ヴィークルを整備する。こいつも大事な旅の仲間だ。だが、いつかは部品や燃料が尽き、動かなくなるだろう。",
210
+ "星空――星空を見上げる。世界は激変したが、星の光はほとんど変わらない。ちょっと北極星がズレたぐらいだ。",
211
+ "水浴び――水場を発見。水浴びして汚れを落とす。ついでに洗濯も済ませてしまおう。どうせまた汚れるけど。"
212
+ ),
213
+ "RandomEmoDailyC" => FiveItemsTable.new(
214
+ "ランダム旅情シーン/日常系C",
215
+ "記録――日記でも、写真、スケッチ、なんでもいい。今この瞬間を、形にして残しておきたい。",
216
+ "酒――なんと生きている酒蔵を発見。飲もうぜ、今宵、銀河を杯にして。ロボットが酔えるかは知らん。",
217
+ "歌う――なぜかメロディーが口をついて出る。郷愁を覚える。かつて好きだった歌なのかもしれない。",
218
+ "悪夢――悪夢にうなされ目が覚める。だが目覚めたこの世界が、悪夢よりマシであると言えるだろうか?",
219
+ "ケンカ――ささいなことが原因で仲たがいする。セッション中に仲直りしておけ。理由は「大事なもの」を壊してしまった、などがよいだろう、"
220
+ ),
221
+ "RandomEmoReminiscenceA" => FiveItemsTable.new(
222
+ "ランダム旅情シーン/追憶系A",
223
+ "住居――住居跡を訪れる。ミイラ化した人間の死体を発見する。だいぶ前に死んだものだ。この死体はどう生き、どう死んだのだろう?",
224
+ "届かなかった手紙――郵便ポストを発見する。配達されなかった手紙が残されている。恋文、借金の督促など、往時の人類の日常を垣間見る。",
225
+ "ゆうえんち――娯楽施設跡(遊園地、テーマパーク)を訪れる。システムが生きており、稼働している遊具がある。少し遊んで行こう。きっと旅人は最後の客だ。",
226
+ "終末ショッピング――商業施設跡(ショッピングモールなど)を訪れる。半壊した接客ロボットが現れ、何もない店内を案内する。その後「彼」は機能を停止する。",
227
+ "天国なんてあるのかな――宗教施設跡(墓所や教会など)を訪れる。旅人が死んだら、誰が弔うのか? 天国はあるのか? ロボットもそこに行けるのか?"
228
+ ),
229
+ "RandomEmoReminiscenceB" => FiveItemsTable.new(
230
+ "ランダム旅情シーン/追憶系B",
231
+ "人の遺したもの――文化施設跡(博物館、図書館、美術館)を訪れる。人類が築いた文化の残滓を垣間見る。",
232
+ "残骸――旅人のロボットとよく似た、別のロボットの残骸を発見する。このロボットは何のために動き、ここで力尽きたのだろう。",
233
+ "飛ばない鳥――飛行場跡を訪れる。無数の航空機が擱座している。この人工の鳥たちが、ふたたび空を舞うことはないだろう。",
234
+ "湯けむり終末紀行――温泉レジャー施設跡を訪れる。施設は半壊しているが、なんと未だに温泉が湧き続けている。世界が終わっても、温泉は心地よい。",
235
+ "終末学校――学校の跡を訪れる。机とイスが散乱している。人間の子供たちは、ここでさまざまなことを学んだのだろう。"
236
+ ),
237
+ "RandomEmoReminiscenceC" => FiveItemsTable.new(
238
+ "ランダム旅情シーン/追憶系C",
239
+ "兵どもが夢の跡――戦場跡を通過する。動かなくなった兵器があちこちに散らばっている。彼らは何と、何のために戦ったのだろう?",
240
+ "地下鉄――廃墟の地下鉄。旅人が車両に乗ると、自動制御で勝手に走り出す。次の駅に到着すると、最後まで残っていた電力が尽きる。終電だったらしい。",
241
+ "謎のプラント――巨大なプラント跡を訪れる。爆発でもあったらしく、中心部が半壊している。あちこちにある表示は「ぬーくりあ」「でんじゃー」と読める。",
242
+ "メリークリスマス――廃墟が、電飾や植物を模した模型で飾り立てられている。赤い服を着て袋を持ち、動物のひくソリに乗った老人の人形が置かれている。",
243
+ "せめてよい夢を――完全に停止した冷凍睡眠施設を発見。眠ったまま干からびた人々がいる。旅人もこうなっていたかもしれない。その方が幸せだったかも。"
244
+ ),
245
+ "RandomDangerousWaste" => DiceTable::Table.new(
246
+ "ランダム難所シーン/荒野系",
247
+ "1D6",
248
+ [
249
+ "渡河( p27 )",
250
+ "ワイルドレース( p27 )",
251
+ "冬来たる( p27 )",
252
+ "果てなき熱砂( p28 )",
253
+ "鋼鉄の嵐( p28 )",
254
+ "殺戮兵器、起動( p28 )",
255
+ ]
256
+ ),
257
+ "RandomDangerousUrban" => DiceTable::Table.new(
258
+ "ランダム難所シーン/都市系",
259
+ "1D6",
260
+ [
261
+ "亀裂を超える( p29 )",
262
+ "プラント復旧( p29 )",
263
+ "地下迷宮( p29 )",
264
+ "塔を登る( p29 )",
265
+ "自動防衛システム( p30 )",
266
+ "地底よりの恐怖( p30 )",
267
+ ]
268
+ ),
269
+ }.transform_keys(&:upcase).freeze
270
+
271
+ ALIAS = {
272
+ "RLose" => "ResourceLose",
273
+ "RGain" => "ResourceGain",
274
+ "RArea" => "RandomArea",
275
+ "RWaste" => "RandomWaste",
276
+ "RUrban" => "RandomUrban",
277
+ "RObs" => "RandomObs",
278
+ "ROTA" => "RandomObsTechA",
279
+ "ROTB" => "RandomObsTechB",
280
+ "ROSA" => "RandomObsSurviveA",
281
+ "ROSB" => "RandomObsSurviveB",
282
+ "ROCA" => "RandomObsCombatA",
283
+ "ROCB" => "RandomObsCombatB",
284
+ "REmo" => "RandomEmo",
285
+ "REDA" => "RandomEmoDailyA",
286
+ "REDB" => "RandomEmoDailyB",
287
+ "REDC" => "RandomEmoDailyC",
288
+ "RERA" => "RandomEmoReminiscenceA",
289
+ "RERB" => "RandomEmoReminiscenceB",
290
+ "RERC" => "RandomEmoReminiscenceC",
291
+ "RDW" => "RandomDangerousWaste",
292
+ "RDU" => "RandomDangerousUrban",
293
+ }.transform_keys(&:upcase).transform_values(&:upcase).freeze
294
+
295
+ register_prefix(TABLES.keys, ALIAS.keys)
296
+ end
297
+ end
298
+ end