bcdice 3.0.0.pre.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.github/.codecov.yaml +10 -0
  4. data/.github/workflows/coverage.yaml +21 -0
  5. data/.github/workflows/lint.yaml +13 -0
  6. data/.github/workflows/test.yml +20 -0
  7. data/.gitignore +14 -0
  8. data/.rubocop.yml +96 -0
  9. data/.rubocop_todo.yml +113 -0
  10. data/CHANGELOG.md +868 -0
  11. data/Gemfile +11 -0
  12. data/LICENSE +29 -0
  13. data/README.md +38 -0
  14. data/ROADMAP.md +30 -0
  15. data/Rakefile +118 -0
  16. data/bcdice.gemspec +27 -0
  17. data/bin/repl.rb +21 -0
  18. data/docs/README.txt +2028 -0
  19. data/docs/dicebot_sort_key.md +72 -0
  20. data/docs/how_to_make_dicebot.md +453 -0
  21. data/lib/bcdice.rb +8 -0
  22. data/lib/bcdice/arithmetic_evaluator.rb +167 -0
  23. data/lib/bcdice/base.rb +423 -0
  24. data/lib/bcdice/command_parser.rb +242 -0
  25. data/lib/bcdice/common_command.rb +23 -0
  26. data/lib/bcdice/common_command/add_dice.rb +54 -0
  27. data/lib/bcdice/common_command/add_dice/node.rb +488 -0
  28. data/lib/bcdice/common_command/add_dice/parser.rb +282 -0
  29. data/lib/bcdice/common_command/add_dice/randomizer.rb +48 -0
  30. data/lib/bcdice/common_command/barabara_dice.rb +57 -0
  31. data/lib/bcdice/common_command/calc.rb +39 -0
  32. data/lib/bcdice/common_command/choice.rb +35 -0
  33. data/lib/bcdice/common_command/d66_dice.rb +63 -0
  34. data/lib/bcdice/common_command/reroll_dice.rb +190 -0
  35. data/lib/bcdice/common_command/upper_dice.rb +165 -0
  36. data/lib/bcdice/common_command/version.rb +26 -0
  37. data/lib/bcdice/dice_table.rb +8 -0
  38. data/lib/bcdice/dice_table/chain_table.rb +33 -0
  39. data/lib/bcdice/dice_table/d66_grid_table.rb +26 -0
  40. data/lib/bcdice/dice_table/d66_range_table.rb +26 -0
  41. data/lib/bcdice/dice_table/d66_table.rb +34 -0
  42. data/lib/bcdice/dice_table/range_table.rb +267 -0
  43. data/lib/bcdice/dice_table/roll_result.rb +43 -0
  44. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +32 -0
  45. data/lib/bcdice/dice_table/table.rb +35 -0
  46. data/lib/bcdice/enum.rb +15 -0
  47. data/lib/bcdice/format.rb +36 -0
  48. data/lib/bcdice/game_system.rb +187 -0
  49. data/lib/bcdice/game_system/AFF2e.rb +141 -0
  50. data/lib/bcdice/game_system/AceKillerGene.rb +55 -0
  51. data/lib/bcdice/game_system/Airgetlamh.rb +117 -0
  52. data/lib/bcdice/game_system/Alsetto.rb +124 -0
  53. data/lib/bcdice/game_system/Alshard.rb +27 -0
  54. data/lib/bcdice/game_system/AlterRaise.rb +282 -0
  55. data/lib/bcdice/game_system/Amadeus.rb +622 -0
  56. data/lib/bcdice/game_system/Amadeus_Korean.rb +501 -0
  57. data/lib/bcdice/game_system/AnimaAnimus.rb +96 -0
  58. data/lib/bcdice/game_system/Arianrhod.rb +50 -0
  59. data/lib/bcdice/game_system/ArsMagica.rb +149 -0
  60. data/lib/bcdice/game_system/Avandner.rb +101 -0
  61. data/lib/bcdice/game_system/BBN.rb +143 -0
  62. data/lib/bcdice/game_system/BadLife.rb +435 -0
  63. data/lib/bcdice/game_system/BarnaKronika.rb +188 -0
  64. data/lib/bcdice/game_system/BattleTech.rb +530 -0
  65. data/lib/bcdice/game_system/BeastBindTrinity.rb +348 -0
  66. data/lib/bcdice/game_system/BeginningIdol.rb +2527 -0
  67. data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2378 -0
  68. data/lib/bcdice/game_system/BladeOfArcana.rb +252 -0
  69. data/lib/bcdice/game_system/BlindMythos.rb +460 -0
  70. data/lib/bcdice/game_system/BloodCrusade.rb +423 -0
  71. data/lib/bcdice/game_system/BloodMoon.rb +213 -0
  72. data/lib/bcdice/game_system/CardRanker.rb +249 -0
  73. data/lib/bcdice/game_system/ChaosFlare.rb +181 -0
  74. data/lib/bcdice/game_system/Chill.rb +163 -0
  75. data/lib/bcdice/game_system/Chill3.rb +52 -0
  76. data/lib/bcdice/game_system/CodeLayerd.rb +132 -0
  77. data/lib/bcdice/game_system/ColossalHunter.rb +569 -0
  78. data/lib/bcdice/game_system/CrashWorld.rb +81 -0
  79. data/lib/bcdice/game_system/Cthulhu.rb +252 -0
  80. data/lib/bcdice/game_system/Cthulhu7th.rb +767 -0
  81. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +386 -0
  82. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +383 -0
  83. data/lib/bcdice/game_system/CthulhuTech.rb +263 -0
  84. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +243 -0
  85. data/lib/bcdice/game_system/Cthulhu_Korean.rb +240 -0
  86. data/lib/bcdice/game_system/DarkBlaze.rb +207 -0
  87. data/lib/bcdice/game_system/DarkDaysDrive.rb +425 -0
  88. data/lib/bcdice/game_system/DarkSouls.rb +91 -0
  89. data/lib/bcdice/game_system/DeadlineHeroes.rb +583 -0
  90. data/lib/bcdice/game_system/DemonParasite.rb +524 -0
  91. data/lib/bcdice/game_system/DetatokoSaga.rb +310 -0
  92. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +310 -0
  93. data/lib/bcdice/game_system/DiceBot.rb +17 -0
  94. data/lib/bcdice/game_system/DiceOfTheDead.rb +111 -0
  95. data/lib/bcdice/game_system/DoubleCross.rb +373 -0
  96. data/lib/bcdice/game_system/DoubleCross_Korean.rb +371 -0
  97. data/lib/bcdice/game_system/Dracurouge.rb +1856 -0
  98. data/lib/bcdice/game_system/Dracurouge_Korean.rb +310 -0
  99. data/lib/bcdice/game_system/DungeonsAndDragons.rb +19 -0
  100. data/lib/bcdice/game_system/EarthDawn.rb +225 -0
  101. data/lib/bcdice/game_system/EarthDawn3.rb +275 -0
  102. data/lib/bcdice/game_system/EarthDawn4.rb +272 -0
  103. data/lib/bcdice/game_system/EclipsePhase.rb +51 -0
  104. data/lib/bcdice/game_system/Elric.rb +36 -0
  105. data/lib/bcdice/game_system/Elysion.rb +1213 -0
  106. data/lib/bcdice/game_system/EmbryoMachine.rb +227 -0
  107. data/lib/bcdice/game_system/EndBreaker.rb +132 -0
  108. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +27 -0
  109. data/lib/bcdice/game_system/Fiasco.rb +123 -0
  110. data/lib/bcdice/game_system/Fiasco_Korean.rb +122 -0
  111. data/lib/bcdice/game_system/FilledWith.rb +1543 -0
  112. data/lib/bcdice/game_system/FullMetalPanic.rb +27 -0
  113. data/lib/bcdice/game_system/FutariSousa.rb +994 -0
  114. data/lib/bcdice/game_system/FutariSousa_Korean.rb +994 -0
  115. data/lib/bcdice/game_system/Garako.rb +559 -0
  116. data/lib/bcdice/game_system/GardenOrder.rb +451 -0
  117. data/lib/bcdice/game_system/GehennaAn.rb +136 -0
  118. data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +120 -0
  119. data/lib/bcdice/game_system/GoblinSlayer.rb +168 -0
  120. data/lib/bcdice/game_system/GoldenSkyStories.rb +77 -0
  121. data/lib/bcdice/game_system/Gorilla.rb +44 -0
  122. data/lib/bcdice/game_system/GranCrest.rb +518 -0
  123. data/lib/bcdice/game_system/Gundog.rb +52 -0
  124. data/lib/bcdice/game_system/GundogRevised.rb +294 -0
  125. data/lib/bcdice/game_system/GundogZero.rb +261 -0
  126. data/lib/bcdice/game_system/Gurps.rb +403 -0
  127. data/lib/bcdice/game_system/GurpsFW.rb +2330 -0
  128. data/lib/bcdice/game_system/HarnMaster.rb +208 -0
  129. data/lib/bcdice/game_system/HatsuneMiku.rb +706 -0
  130. data/lib/bcdice/game_system/Hieizan.rb +48 -0
  131. data/lib/bcdice/game_system/HouraiGakuen.rb +270 -0
  132. data/lib/bcdice/game_system/HuntersMoon.rb +503 -0
  133. data/lib/bcdice/game_system/Illusio.rb +89 -0
  134. data/lib/bcdice/game_system/InfiniteFantasia.rb +51 -0
  135. data/lib/bcdice/game_system/Insane.rb +822 -0
  136. data/lib/bcdice/game_system/Insane_Korean.rb +773 -0
  137. data/lib/bcdice/game_system/IthaWenUa.rb +38 -0
  138. data/lib/bcdice/game_system/JamesBond.rb +45 -0
  139. data/lib/bcdice/game_system/Kamigakari.rb +394 -0
  140. data/lib/bcdice/game_system/Kamigakari_Korean.rb +428 -0
  141. data/lib/bcdice/game_system/KanColle.rb +938 -0
  142. data/lib/bcdice/game_system/KemonoNoMori.rb +258 -0
  143. data/lib/bcdice/game_system/KillDeathBusiness.rb +1420 -0
  144. data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +1510 -0
  145. data/lib/bcdice/game_system/KurayamiCrying.rb +49 -0
  146. data/lib/bcdice/game_system/LiveraDoll.rb +375 -0
  147. data/lib/bcdice/game_system/LogHorizon.rb +3567 -0
  148. data/lib/bcdice/game_system/LogHorizon_Korean.rb +1407 -0
  149. data/lib/bcdice/game_system/LostRecord.rb +30 -0
  150. data/lib/bcdice/game_system/LostRoyal.rb +242 -0
  151. data/lib/bcdice/game_system/MagicaLogia.rb +1148 -0
  152. data/lib/bcdice/game_system/MeikyuDays.rb +415 -0
  153. data/lib/bcdice/game_system/MeikyuKingdom.rb +466 -0
  154. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +269 -0
  155. data/lib/bcdice/game_system/MetalHead.rb +249 -0
  156. data/lib/bcdice/game_system/MetalHeadExtream.rb +917 -0
  157. data/lib/bcdice/game_system/MetallicGuardian.rb +31 -0
  158. data/lib/bcdice/game_system/MonotoneMuseum.rb +354 -0
  159. data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +304 -0
  160. data/lib/bcdice/game_system/Nechronica.rb +211 -0
  161. data/lib/bcdice/game_system/Nechronica_Korean.rb +160 -0
  162. data/lib/bcdice/game_system/NeverCloud.rb +74 -0
  163. data/lib/bcdice/game_system/NightWizard.rb +231 -0
  164. data/lib/bcdice/game_system/NightWizard3rd.rb +24 -0
  165. data/lib/bcdice/game_system/NightmareHunterDeep.rb +117 -0
  166. data/lib/bcdice/game_system/NinjaSlayer.rb +274 -0
  167. data/lib/bcdice/game_system/NjslyrBattle.rb +54 -0
  168. data/lib/bcdice/game_system/Nuekagami.rb +293 -0
  169. data/lib/bcdice/game_system/OneWayHeroics.rb +134 -0
  170. data/lib/bcdice/game_system/OracleEngine.rb +265 -0
  171. data/lib/bcdice/game_system/OrgaRain.rb +77 -0
  172. data/lib/bcdice/game_system/Oukahoushin3rd.rb +162 -0
  173. data/lib/bcdice/game_system/Paradiso.rb +323 -0
  174. data/lib/bcdice/game_system/Paranoia.rb +64 -0
  175. data/lib/bcdice/game_system/ParanoiaRebooted.rb +109 -0
  176. data/lib/bcdice/game_system/ParasiteBlood.rb +231 -0
  177. data/lib/bcdice/game_system/Pathfinder.rb +21 -0
  178. data/lib/bcdice/game_system/Peekaboo.rb +324 -0
  179. data/lib/bcdice/game_system/Pendragon.rb +39 -0
  180. data/lib/bcdice/game_system/PhantasmAdventure.rb +73 -0
  181. data/lib/bcdice/game_system/Postman.rb +185 -0
  182. data/lib/bcdice/game_system/PulpCthulhu.rb +184 -0
  183. data/lib/bcdice/game_system/Raisondetre.rb +171 -0
  184. data/lib/bcdice/game_system/RecordOfLodossWar.rb +58 -0
  185. data/lib/bcdice/game_system/RecordOfSteam.rb +149 -0
  186. data/lib/bcdice/game_system/RokumonSekai2.rb +110 -0
  187. data/lib/bcdice/game_system/RoleMaster.rb +24 -0
  188. data/lib/bcdice/game_system/RuneQuest.rb +47 -0
  189. data/lib/bcdice/game_system/RyuTuber.rb +266 -0
  190. data/lib/bcdice/game_system/Ryutama.rb +199 -0
  191. data/lib/bcdice/game_system/SRS.rb +348 -0
  192. data/lib/bcdice/game_system/SamsaraBallad.rb +111 -0
  193. data/lib/bcdice/game_system/Satasupe.rb +1173 -0
  194. data/lib/bcdice/game_system/ScreamHighSchool.rb +128 -0
  195. data/lib/bcdice/game_system/SevenFortressMobius.rb +34 -0
  196. data/lib/bcdice/game_system/ShadowRun.rb +26 -0
  197. data/lib/bcdice/game_system/ShadowRun4.rb +49 -0
  198. data/lib/bcdice/game_system/ShadowRun5.rb +80 -0
  199. data/lib/bcdice/game_system/SharedFantasia.rb +69 -0
  200. data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +85 -0
  201. data/lib/bcdice/game_system/ShinkuuGakuen.rb +506 -0
  202. data/lib/bcdice/game_system/ShinobiGami.rb +680 -0
  203. data/lib/bcdice/game_system/ShoujoTenrankai.rb +677 -0
  204. data/lib/bcdice/game_system/Skynauts.rb +324 -0
  205. data/lib/bcdice/game_system/SteamPunkers.rb +485 -0
  206. data/lib/bcdice/game_system/StellarKnights.rb +856 -0
  207. data/lib/bcdice/game_system/SterileLife.rb +452 -0
  208. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +103 -0
  209. data/lib/bcdice/game_system/StratoShout.rb +316 -0
  210. data/lib/bcdice/game_system/StratoShout_Korean.rb +314 -0
  211. data/lib/bcdice/game_system/Strave.rb +223 -0
  212. data/lib/bcdice/game_system/SwordWorld.rb +491 -0
  213. data/lib/bcdice/game_system/SwordWorld2_0.rb +295 -0
  214. data/lib/bcdice/game_system/SwordWorld2_5.rb +121 -0
  215. data/lib/bcdice/game_system/TherapieSein.rb +93 -0
  216. data/lib/bcdice/game_system/TokumeiTenkousei.rb +96 -0
  217. data/lib/bcdice/game_system/TokyoGhostResearch.rb +122 -0
  218. data/lib/bcdice/game_system/TokyoNova.rb +19 -0
  219. data/lib/bcdice/game_system/Torg.rb +364 -0
  220. data/lib/bcdice/game_system/Torg1_5.rb +139 -0
  221. data/lib/bcdice/game_system/TorgEternity.rb +414 -0
  222. data/lib/bcdice/game_system/TrinitySeven.rb +364 -0
  223. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +287 -0
  224. data/lib/bcdice/game_system/TwilightGunsmoke.rb +527 -0
  225. data/lib/bcdice/game_system/Utakaze.rb +153 -0
  226. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +132 -0
  227. data/lib/bcdice/game_system/Villaciel.rb +555 -0
  228. data/lib/bcdice/game_system/WARPS.rb +33 -0
  229. data/lib/bcdice/game_system/WaresBlade.rb +34 -0
  230. data/lib/bcdice/game_system/Warhammer.rb +336 -0
  231. data/lib/bcdice/game_system/WitchQuest.rb +275 -0
  232. data/lib/bcdice/game_system/WorldOfDarkness.rb +135 -0
  233. data/lib/bcdice/game_system/YankeeYogSothoth.rb +440 -0
  234. data/lib/bcdice/game_system/YearZeroEngine.rb +134 -0
  235. data/lib/bcdice/game_system/ZettaiReido.rb +142 -0
  236. data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +383 -0
  237. data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +89 -0
  238. data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +196 -0
  239. data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +223 -0
  240. data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +214 -0
  241. data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +610 -0
  242. data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +117 -0
  243. data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +380 -0
  244. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +184 -0
  245. data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +417 -0
  246. data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +912 -0
  247. data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +121 -0
  248. data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +67 -0
  249. data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +166 -0
  250. data/lib/bcdice/game_system/one_way_heroics/tables.rb +668 -0
  251. data/lib/bcdice/loader.rb +37 -0
  252. data/lib/bcdice/normalize.rb +38 -0
  253. data/lib/bcdice/preprocessor.rb +87 -0
  254. data/lib/bcdice/randomizer.rb +137 -0
  255. data/lib/bcdice/repl.rb +155 -0
  256. data/lib/bcdice/user_defined_dice_table.rb +153 -0
  257. data/lib/bcdice/version.rb +3 -0
  258. metadata +304 -0
@@ -0,0 +1,622 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class Amadeus < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'Amadeus'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'アマデウス'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'あまてうす'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
17
+ ・判定(Rx±y@z>=t)
18
+  能力値のダイスごとに成功・失敗の判定を行います。
19
+  x:能力ランク(S,A~D) y:修正値(省略可)
20
+  z:スペシャル最低値(省略:6) t:目標値(省略:4)
21
+   例) RA RB-1 RC>=5 RD+2 RS-1@5>=6
22
+  出力書式は
23
+   (達成値)_(判定結果)[(出目)(対応するインガ)]
24
+  C,Dランクでは対応するインガは出力されません。
25
+   出力例) 2_ファンブル![1黒] / 3_失敗[3青]
26
+ ・各種表
27
+  境遇表 ECT/関係表 RT/親心表 PRT/戦場表 BST/休憩表 BT/
28
+  ファンブル表 FT/致命傷表 FWT/戦果表 BRT/ランダムアイテム表 RIT/
29
+  損傷表 WT/悪夢表 NMT/目標表 TGT/制約表 CST/
30
+  ランダムギフト表 RGT/決戦戦果表 FBT/
31
+  店内雰囲気表 SAT/特殊メニュー表 SMT
32
+ ・試練表(~VT)
33
+  ギリシャ神群 GCVT/ヤマト神群 YCVT/エジプト神群 ECVT/
34
+  クトゥルフ神群 CCVT/北欧神群 NCVT/中華神群 CHVT/
35
+ ラストクロニクル神群 LCVT/ケルト神群 KCVT/ダンジョン DGVT/日常 DAVT
36
+ ・挑戦テーマ表(~CT)
37
+  武勇 PRCT/技術 TCCT/頭脳 INCT/霊力 PSCT/愛 LVCT/日常 DACT
38
+ INFO_MESSAGE_TEXT
39
+
40
+ def initialize(command)
41
+ super(command)
42
+
43
+ @sort_add_dice = true
44
+ @enabled_d66 = true
45
+ @d66_sort_type = D66SortType::ASC
46
+ end
47
+
48
+ def eval_game_system_specific_command(command)
49
+ text = amadeusDice(command)
50
+ return text unless text.nil?
51
+
52
+ info = TABLES[command.upcase]
53
+ return nil if info.nil?
54
+
55
+ name = info[:name]
56
+ type = info[:type]
57
+ table = info[:table]
58
+
59
+ text, number =
60
+ case type
61
+ when '1D6'
62
+ get_table_by_1d6(table)
63
+ when '2D6'
64
+ get_table_by_2d6(table)
65
+ when 'D66'
66
+ get_table_by_d66_swap(table)
67
+ end
68
+
69
+ return nil if text.nil?
70
+
71
+ return "#{name}(#{number}) > #{text}"
72
+ end
73
+
74
+ def amadeusDice(command)
75
+ return nil unless /^(R([A-DS])([\+\-\d]*))(@(\d))?((>(=)?)([\+\-\d]*))?(@(\d))?$/i =~ command
76
+
77
+ commandText = Regexp.last_match(1)
78
+ skillRank = Regexp.last_match(2)
79
+ modifyText = Regexp.last_match(3)
80
+ signOfInequality = (Regexp.last_match(7).nil? ? ">=" : Regexp.last_match(7))
81
+ targetText = (Regexp.last_match(9).nil? ? "4" : Regexp.last_match(9))
82
+ if nil | Regexp.last_match(5)
83
+ specialNum = Regexp.last_match(5).to_i
84
+ elsif nil | Regexp.last_match(11)
85
+ specialNum = Regexp.last_match(11).to_i
86
+ else
87
+ specialNum = 6
88
+ end
89
+
90
+ diceCount = CHECK_DICE_COUNT[skillRank]
91
+ modify = ArithmeticEvaluator.eval(modifyText)
92
+ target = ArithmeticEvaluator.eval(targetText)
93
+
94
+ diceList = @randomizer.roll_barabara(diceCount, 6)
95
+ diceText = diceList.join(",")
96
+ specialText = (specialNum == 6 ? "" : "@#{specialNum}")
97
+
98
+ message = "(#{commandText}#{specialText}#{signOfInequality}#{targetText}) > [#{diceText}]#{modifyText} > "
99
+ diceList = [diceList.min] if skillRank == "D"
100
+ is_loop = false
101
+ diceList.each do |dice|
102
+ if is_loop
103
+ message += " / "
104
+ elsif diceList.length > 1
105
+ is_loop = true
106
+ end
107
+ achieve = dice + modify
108
+ result = check_success(achieve, dice, signOfInequality, target, specialNum)
109
+ if is_loop
110
+ message += "#{achieve}_#{result}[#{dice}#{INGA_TABLE[dice]}]"
111
+ else
112
+ message += "#{achieve}_#{result}[#{dice}]"
113
+ end
114
+ end
115
+
116
+ return message
117
+ end
118
+
119
+ def check_success(total_n, dice_n, signOfInequality, diff, special_n)
120
+ return "ファンブル!" if dice_n == 1
121
+ return "スペシャル!" if dice_n >= special_n
122
+
123
+ cmp_op = Normalize.comparison_operator(signOfInequality)
124
+ target_num = diff.to_i
125
+
126
+ if total_n.send(cmp_op, target_num)
127
+ "成功"
128
+ else
129
+ "失敗"
130
+ end
131
+ end
132
+
133
+ CHECK_DICE_COUNT = {"S" => 4, "A" => 3, "B" => 2, "C" => 1, "D" => 2}.freeze
134
+ INGA_TABLE = [nil, "黒", "赤", "青", "緑", "白", "任意"].freeze
135
+
136
+ TABLES =
137
+ {
138
+ "ECT" => {
139
+ name: "境遇表",
140
+ type: '1D6',
141
+ table: [
142
+ '告白。あなたは、神と人間(獣の子の場合は何らかの動物)が愛し合って生まれた神子です。最近になって、その事実と予言について、自分の親から知らされました。あなたに両親がいる場合、どちらかの親は義理の親となります。',
143
+ '孤児。あなたは、親のことについて何も知りませんでした。過酷な環境で暮らすなか、あなたの兄弟姉妹が、あなたを迎えに来ました。そして、あなたが神の子どもであり、予言の持ち主だということを教えてくれました。',
144
+ '家族。あなたは、神の子として幼い頃から生活していました。現実と<聖地>を行き来し、様々なことを神である親から教えてもらっています。そして、いつの日か冒険に旅立ち、英雄になる日を楽しみに待っていました。',
145
+ '血脈。あなたの一族には、「大きな運命を持つ子が生まれる」という予言が伝わっていました。その予言の子があなたです。恐らく、あなたの遠い先祖に神がいたのでしょう。一族はあなたに大きな期待や畏怖を寄せています。',
146
+ '加護。あなたは、その資質や才能を親神に見いだされました。そして、夢の中で親神と出会い、<神の血>を直接与えられました。それ以来、あなたは不思議なものが見えたり聞こえたりするようになりました。',
147
+ '帰依。あなたは、怪物によって命の危機にさらされました。しかし、神の血を授かることによって、死の淵からよみがえりました。以来、あなたは自らを助けてくれた神に帰依し、その人生を捧げることにしました。'
148
+ ],
149
+ },
150
+
151
+ "BST" => {
152
+ name: "戦場表",
153
+ type: '1D6',
154
+ table: [
155
+ '墓場。ラウンドの終了時、PCと怪物の本体は、【生命力】が1D6点減少します。また、この戦場にいる場合、PCがギフトを使用するとき、黒の領域にインガが追加で2つあるものとして扱います。',
156
+ '市街地。すべてのPCと怪物は、与えるダメージが1D6点上昇します。また、この戦場にいる場合、PCがギフトを使用するとき、赤の領域にインガが追加で2つあるものとして扱います。',
157
+ '水中。潜水状態にないPCは、あらゆる判定にマイナス1の修正がつきます。ラウンドの終了時、潜水状態でないPCと怪物の本体は、【生命力】が1D6点減少します。また、この戦場にいる場合、PCがギフトを使用するとき、青の領域にインガが追加で2つあるものとして扱います。',
158
+ '森林。すべてのPCと怪物は、受けるダメージが1D6点軽減します。また、この戦場にいる場合、PCがギフトを使用するとき、緑の領域にインガが追加で2つあるものとして扱います。',
159
+ '空中。飛行状態にないPCは、あらゆる判定にマイナス1の修正がつきます。戦闘終了時、怪物の【生命力】が1点以上残っていた場合、その戦闘中に一度も飛行状態にならなかったPCと怪物の本体は、【生命力】が[戦闘に費やした乱戦ラウンド数×3D6]点減少します。また、この戦場にいる場合、PCがギフトを使用するとき、白の領域にインガが追加で2つあるものとして扱います。',
160
+ '平地。特に変わった効果はありません。'
161
+ ],
162
+ },
163
+
164
+ "RT" => {
165
+ name: "関係表",
166
+ type: '1D6',
167
+ table: [
168
+ '恋心(プラス)/殺意(マイナス)',
169
+ '同情(プラス)/侮蔑(マイナス)',
170
+ '憧憬(プラス)/嫉妬(マイナス)',
171
+ '信頼(プラス)/疑い(マイナス)',
172
+ '共感(プラス)/不気味(マイナス)',
173
+ '大切(プラス)/面倒(マイナス)'
174
+ ],
175
+ },
176
+
177
+ "PRT" => {
178
+ name: "親心表",
179
+ type: '1D6',
180
+ table: [
181
+ 'かわいい(プラス)/生意気(マイナス)',
182
+ '期待(プラス)/脅威(マイナス)',
183
+ '自慢(プラス)/恥(マイナス)',
184
+ '愛情(プラス)/無関心(マイナス)',
185
+ '有用(プラス)/心配(マイナス)',
186
+ '過保護(プラス)/執着(マイナス)'
187
+ ],
188
+ },
189
+
190
+ "FT" => {
191
+ name: "ファンブル表",
192
+ type: '1D6',
193
+ table: [
194
+ '運命の輪が回転する。運命の輪の上にある赤の領域のインガを青の領域に、青の領域のインガを緑の領域に、緑の領域のインガを白の領域に、白の領域のインガを赤の領域に、それぞれ同時に移動させる。',
195
+ '仲間に迷惑をかけてしまう。自分以外のPC全員の【生命力】が1点減少する。',
196
+ 'この失敗は後に祟るかもしれない……。自分の【生命力】が1D6点減少する。',
197
+ 'あまりの失敗に、みんなの態度が変わる。自分に対して一番高い【想い】の値を持っているキャラクター全員の、【想い】の属性が反転する。',
198
+ '心に大きな乱れが生まれる。自分の属性に対応した変調を受ける(黒なら絶望、赤なら憤怒、青なら臆病1、緑なら堕落、白なら恥辱)。',
199
+ '周囲から活気が失われる。運命の輪のなかから、黒以外の領域のインガがすべて1つずつ減少する。'
200
+ ],
201
+ },
202
+
203
+ "BT" => {
204
+ name: "休憩表",
205
+ type: 'D66',
206
+ table: [
207
+ [11, "土着の怪物が襲いかかってきた! なんとか撃退するが、傷を負ってしまった。1D6点のダメージを受ける。"],
208
+ [12, "美女の沐浴をのぞいてしまった。1D6を振る。1~2なら「堕落」、3~4なら「恥辱」、5~6なら「重傷1」の変調を受ける。"],
209
+ [13, "強欲な商人に出会う。このシーンに登場したキャラクターは、アイテムを購入することができる。ただし、すべてのアイテムの価格は通常の値段より1高い。"],
210
+ [14, "自分の過去の話をする。なんで、こんな話しちゃったんだろう? PCの中から、自分に対してもっとも高い【想い】を持つPC全員の、関係の属性が反転する。"],
211
+ [15, "周囲の空気が変わった。運命の輪が動き出す予感!運命の輪の上にある赤の領域のインガを青の領域に、青の領域のインガを緑の領域に、緑の領域のインガを白の領域に、白の領域のインガを赤の領域に、それぞれ同時に移動させる。"],
212
+ [16, "突然の空腹に襲われる。このシーン中に食事を行わなかったPCは「重傷2」の変調を受ける。この変調は、食事を行うと回復できる(ほかの方法でも回復可能)。"],
213
+ [22, "<絶界>の外の世界の友人のことを思い出す。みんなは元気にしているだろうか? この出目を振ったプレイヤーのPCは、【日常】で判定を行うことができる。成功すると、自分の変調を1つ回復するか、黒の領域からインガを1つ取り除くことができる。"],
214
+ [23, "奇妙な商人に出会う。このシーンに登場したキャラクターは、アイテムを購入することができる。"],
215
+ [24, "喋る動物に願いごとをされる。動物たちも、この神話災害で苦しんでいるようだ。あなたは、「この怪物の本体の【生命力】を0にする」という追加の【任務】を受けることができる。この【任務】を達成すると、追加で経験値を20点もらうことができる。"],
216
+ [25, "素敵な夢を見る。この出目を振ったプレイヤーは、自分のPC以外の好きなキャラクター一人に対する【想い】が1点上昇する。"],
217
+ [26, "大切な人から、あなたを心配するメールが届いていた。なんて返そう? この出目を振ったプレイヤーのPCは、【日常】で判定を行うことができる。成功すると、自分の変調を1つ回復するか、自分の好きなパトスマークについたチェックを1つ消す。"],
218
+ [33, "親切な商人に出会う。このシーンに登場したキャラクターは、アイテムを購入することができる。ただし、すべてのアイテムの価格は通常の値段より1低い(価格1未満にはならない)。"],
219
+ [34, "武器の手入れを行う。この出目を振ったプレイヤーのPCは、【日常】で判定を行うことができる。成功すると、そのセッションの間、自分の武器1つの威力を1点上昇させることができる。"],
220
+ [35, "最後に買い物をしたときに、おつりを多くもらっていたことに気がついた。1神貨を手に入れる。"],
221
+ [36, "食事をしながら、仲間と大いに語り合う。このシーンに登場して、食事を行ったキャラクターは、自分の好きなパトスマークについたチェックを一つ消す。"],
222
+ [44, "一眠りしてしまったのか、不思議な夢を見る。この出目を振ったプレイヤーのPCは、【霊力】で判定を行うことができる。成功すると、好きな予言カード1枚を選び、その【真実】を見ることができる。"],
223
+ [45, "チンピラにからまれている異性の子を見つける。この出目を振ったプレイヤーのPCは、【武勇】で判定を行うことができる。成功すると、その子は、そのPCに対して【想い】を1点獲得する。この子を協力者にするなら、そのプレイヤーはその子の名前と関係を自由に決めること。"],
224
+ [46, "心地よい風に吹かれる。運命があなたに味方してくれるような気がした。好きな領域にインガを1つ配置する。"],
225
+ [55, "目が覚めると、枕元に贈り物が。誰からだろう……? この出目を振ったプレイヤーのPCは、「ランダムアイテム表」を使用する。"],
226
+ [56, "困っている神話生物を助けてあげた。【日常】で判定を行う。成功すると、次に移動判定を行うことになったとき、自動的にそれを成功にすることができる(達成値が必要な場合6として扱う)。"],
227
+ [66, "親神が、あなたに話しかけてくる。親子の会話だ。この出目を振ったプレイヤーのPCは、【日常】で判定を行うことができる。成功すると、自分の親神に対する【想い】か、親神の自分に対する【想い】のいずれかを1点上昇する。"],
228
+ ],
229
+ },
230
+
231
+ "FWT" => {
232
+ name: "致命傷表",
233
+ type: '1D6',
234
+ table: [
235
+ '絶望的な攻撃を受ける。そのキャラクターは死亡する。',
236
+ '苦痛の悲鳴をあげ、無惨にも崩れ落ちる。そのキャラクターは行動不能になる。また、黒の領域のインガが1つ増える。',
237
+ '攻撃を受けた武器が砕け、敵の攻撃が直撃する。そのキャラクターは行動不能になる。また、自分の武器一つを破壊する。',
238
+ '強烈な一撃を受けて気絶する。そのキャラクターは行動不能になる。',
239
+ '意識はあるが、立ち上がることができない。そのキャラクターは行動不能になる。次のシーンになったら【生命力】が1点に回復する。',
240
+ '奇跡的に持ちこたえる。【生命力】1点で踏みとどまる。'
241
+ ],
242
+ },
243
+
244
+ "BRT" => {
245
+ name: "戦果表",
246
+ type: '1D6',
247
+ table: [
248
+ '1神貨を獲得する。',
249
+ '1D6神貨を獲得する。',
250
+ '好きな領域にインガを1つ置く。',
251
+ '黒の領域からインガを1つ取り除く。',
252
+ '「ランダムアイテム」表で、アイテムを入手できる。',
253
+ 'PC全員、自分の人物欄の中から、パトスのチェックを1つ消すことができる。'
254
+ ],
255
+ },
256
+
257
+ "RIT" => {
258
+ name: "ランダムアイテム表",
259
+ type: '2D6',
260
+ table: [
261
+ '「鎧」を1個獲得する。',
262
+ '「手がかり」を1個獲得する。',
263
+ '「お洒落」を1個獲得する。',
264
+ '「護符」を1個獲得する。',
265
+ '「甘露」を1個獲得する。',
266
+ '「食料」を1D6個獲得する。',
267
+ '「お香」を1個獲得する。',
268
+ '「供物」を1個獲得する。',
269
+ '「霊薬」を1個獲得する。',
270
+ '「ごちそう」を1個獲得する。',
271
+ '「爆弾」を1個獲得する。'
272
+ ],
273
+ },
274
+
275
+ "WT" => {
276
+ name: "損傷表",
277
+ type: '1D6',
278
+ table: [
279
+ '自分の【生命力】を1D6点減少する。',
280
+ '1D6神貨を失う。',
281
+ '黒の領域にインガを1つ置く。',
282
+ '「臆病2」の変調を受ける。',
283
+ '「重傷3」の変調を受ける。',
284
+ '自分の人物欄のもっとも高い【想い】1つを選び、それを1点減少する。'
285
+ ],
286
+ },
287
+
288
+ "NMT" => {
289
+ name: "悪夢表",
290
+ type: '1D6',
291
+ table: [
292
+ '絶望の闇に視界を遮断される。背後に怪物の気配を感じたと思ったときは遅かった。卑劣な攻撃があなたを襲う。好きな能力値で判定を行う。失敗すると死亡する。',
293
+ '絶望の闇の中、悲痛な叫びが聞こえてくる。事件の被害者たちだろうか。あなたは、救えなかったのだ。【日常】で判定を行う。失敗すると、「絶望」の呪いを受ける。',
294
+ '絶望の闇の中で怪物の笑いがこだまする。それは嘲りの笑いだった。怪物や仲間たち……何より自分への怒りがわき上がる。【日常】で判定を行う。失敗すると、「憤怒」の呪いを受ける。',
295
+ '絶望の闇の中に一人取り残される。誰もあなたに気づかない。孤独に耐えながら、何とか日常へ帰還したが……そのときの恐怖がぬぐえない。【日常】で判定を行う。失敗すると、「臆病3」の呪いを受ける。',
296
+ '絶望の闇から帰還したあなたを待っていたのは、代わり映えのない日常だった。あなたが任務に失敗しても、世界は変わらない。なら、もう、あんな怖い目をする必要はないんじゃないか? 【日常】で判定を行う。失敗すると、「堕落」の呪いを受ける。',
297
+ '絶望の闇の中を必死で逃げ出した。背後から仲間の声が聞こえた気がする。しかし、あなたは振り返ることができなかった。【日常】で判定を行う。失敗すると、「恥辱」の呪いを受ける。'
298
+ ],
299
+ },
300
+
301
+ "TGT" => {
302
+ name: "目標表",
303
+ type: '1D6',
304
+ table: [
305
+ '悪意。PCの中でもっとも【生命力】の低いもの一人を目標に選ぶ。もっとも低い【生命力】の持ち主が複数いる場合、その中から、GMが自由に一人目標を選ぶ。',
306
+ '狡猾。もっとも数値が高いパラグラフにいるPC一人を目標に選ぶ。全員が欄外にいる場合、欄外にいるPC全員を目標に選ぶ。',
307
+ '非道。PCの中でもっとも低いランクの【武勇】の持ち主一人を目標に選ぶ。もっとも低いランクの持ち主が複数いる場合、その中から、もっとも低いモッドの持ち主一人を目標に選ぶ。モッドも同じ値だった場合、GMがその中から自由に一人目標を選ぶ。',
308
+ '堅実。PCの中でもっとも低いランクの【技術】の持ち主一人を目標に選ぶ。もっとも低いランクの持ち主が複数いる場合、その中から、もっとも低いモッドの持ち主一人を目標に選ぶ。モッドも同じ値だった場合、GMがその中から自由に一人目標を選ぶ。',
309
+ '豪快。PCの中でもっとも高いランクの【武勇】の持ち主一人を目標に選ぶ。もっとも高いランクの持ち主が複数いる場合、その中から、もっとも高いモッドの持ち主一人を目標に選ぶ。モッドも同じ値だった場合、GMがその中から自由に一人目標を選ぶ。',
310
+ '単純。もっとも数値が低いパラグラフにいるPC一人を目標に選ぶ。全員が欄外にいる場合、欄外にいるPC全員を目標に選ぶ。'
311
+ ],
312
+ },
313
+
314
+ "CST" => {
315
+ name: "制約表",
316
+ type: '1D6',
317
+ table: [
318
+ '短命',
319
+ '誘惑',
320
+ '悪影響',
321
+ '束縛',
322
+ '喧嘩',
323
+ '干渉'
324
+ ],
325
+ },
326
+
327
+ "GCVT" => {
328
+ name: "ギリシャ神群試練表",
329
+ type: '1D6',
330
+ table: [
331
+ '山の向こうから一つ目の巨人、サイクロプスがこちらを見ている。岩を投げてきた!1D6点のダメージを受ける。',
332
+ '水音に目を向けると、アルテミスが泉で水浴びをしていた。美しい……あ、気づかれた?自分が男性なら、「重傷2」の変調を受ける。自分が女性なら、「恥辱」の変調を受ける。',
333
+ '海を渡ろうとすると、海が渦巻き乗った船が引き寄せられていく。中心にいるのは怪物カリュブディスだ。このままだと、船ごと飲み込まれてしまう。[青の領域にあるインガの数]点ダメージを受ける。',
334
+ 'デュオニソスの女性信者、マイナスたちに取り囲まれる。彼女たちは完全に酔っ払っており、話は通じない上、酒を飲めと強要してくる。【生命力】が1点回復し、「堕落」の変調を受ける。',
335
+ '巨大な天井を支えている巨人と出会う。巨人は「少しの間、支えるのを代わってくれないか?」と頼んでくる。断りにくい雰囲気だ……。【愛】で判定を行う。失敗すると、そのセッションの間、所持品の欄が一つ使えなくなる。その欄にアイテムが記入されていれば、それを捨てること。',
336
+ '「あなた最近、調子に乗ってない?」アフロディーテに難癖をつけられた。「自分のことだけ見てればいいんじゃない?」鏡に映る自分が、とても美しく思えてきた。自分への【想い】が2点上昇し、それ以外の人物欄のパトスすべてにチェックを入れる。'
337
+ ],
338
+ },
339
+
340
+ "YCVT" => {
341
+ name: "ヤマト神群試練表",
342
+ type: '1D6',
343
+ table: [
344
+ '空が急に暗くなる。太陽がどこにも見えない。もしかして、アマテラスが隠れてしまったのか?黒の領域にインガを一つ配置する。',
345
+ 'いつのまにか、黄泉国に迷い込んでしまっていた。周囲は黄泉軍に取り囲まれている。どうにかして、逃げなくては!移動判定を行う。失敗すると、3点のダメージを受け、もう一度「試練表」を振る。',
346
+ '目の前の海はワニザメでいっぱいだ。この海を渡らなければ、目的地にはたどり着けないのに。青の領域のインガを二つ取り除くか、自分が2D6点のダメージを受けるかを選ぶ。',
347
+ '「みんなー楽しんでるー!?」ここはウズメが歌い踊るライブ会場だ。どうしよう、目的を忘れそうなほど楽しい!自分は、自分の属性のインガを一つ取り除くか、「堕落」の変調を受けるかを選ぶ。',
348
+ '「龍の首の珠を取るのを手伝ってくれませんか?そうしたら、船に乗せてさしあげます」平安貴族のような格好をした男が話しかけてくる。手伝うしかないようだ。「重傷1」の変調を受ける。',
349
+ '海岸でいじめられている亀を助けたら、海の中の宮殿につれてきてくれた。トヨタマヒメが現れ、盛大にもてなしてくれる。あっという間に、夢のような時間が過ぎていく。でも、そろそろ行かなくては。【日常】で判定する。失敗すると、自分の年齢を6D6歳増やし、「絶望」の変調を受ける。'
350
+ ],
351
+ },
352
+
353
+ "ECVT" => {
354
+ name: "エジプト神群試練表",
355
+ type: '1D6',
356
+ table: [
357
+ '大蛇アペプが今にも目の前の空で輝く太陽を、飲み込もうとしている!止めなくては!【武勇】で判定する。失敗すると、黒の領域にインガを二つ配置する。',
358
+ '気がつけば、魂が羽の生えたバーだけになって、空を飛んでいた。早く肉体に戻らなくては。【霊力】で判定する。自分の【生命力】を1D6点減少し、もう一度「試練表」を振る。',
359
+ 'ぐつぐつと沸き立つ湖と、流れる火の川が見える。目的地は、この川を越えた先にある。【技術】で判定する。失敗すると、炎タグのついた2D6点のダメージを受け、黒以外の領域のインガが一つずつ取り除かれる。',
360
+ '冥界ドゥアトの番人たちが、目の前に現れた。と畜場より来る吸血鬼、下半身の排泄物を喰らうものが近づいてくる。ここは冥界なのか、それとも、やつらが地上に這い出してきたのか。自分は、「重傷1」の変調を受けるか、「恥辱」の変調を受けるかを選ぶ。',
361
+ '目の前にアヌビスがいる。アヌビスは天秤を掲げて、心臓を要求してくる。「お前の罪を数えろ」【日常】で判定を行う。失敗すると、【活力】が0点になる。この効果によって【生命力】の現在値が最大値を超えた場合、最大値と同じ値に調整する。',
362
+ '獅子頭の神、シェセムが、悪人の頭を砕いて、死者のためのワインにしている。悪人と見なされれば、頭をもがれてしまうだろう。【日常】で判定を行う。失敗すると、「重傷2」の変調を受ける。'
363
+ ],
364
+ },
365
+
366
+ "CCVT" => {
367
+ name: "クトゥルフ神群試練表",
368
+ type: '1D6',
369
+ table: [
370
+ '新聞記者たちが忙しく行き来しているオフィスにいる。ここは、新聞社アーカムアドバタイザーの編集部だ。「君が大きなニュースを持っていると聞いたんだけれど」記者の一人が尋ねてくる。自分の【真実】が公開されていなければ、「臆病1」の変調を受ける。',
371
+ '魚の顔と鱗に覆われた身体をもつ、ディープワンに取り囲まれる。あなたが女性ならば、彼らのすみかに連れ去られてしまう。男性ならば、暴力を振るわれ、1D6点のダメージを受ける。女性なら、衣服を奪われ、「恥辱」の変調を受ける。',
372
+ 'ここはどうやら夢の中らしい。目の前にクトゥルフがいる。「余になんの用だ。余を目覚めさせる気なら、容赦はしない」寝ぼけ眼のくせに、クトゥルフは怒っているようだ。「絶望」の変調を受ける。',
373
+ '地下のもぐり酒場で一息つけた……と思ったら、トンプソン機関銃を構えた男たちが飛び込んできた。マフィアの抗争だ!4点のダメージを受ける。',
374
+ '古ぼけた本を手に入れた。どうやら、魔導書のようだ。読むと正気を失う可能性もあるが、力が手に入る可能性も高い。【霊力】のランクがA以上なら、好きな領域にインガを二つ配置する。そうでない場合、「絶望」と「臆病2」の変調を受ける。',
375
+ 'なんの変哲も無い民家にいる。アーカムの静かな風景が……ああ、窓に!窓に!黒の領域にインガを一つ配置する。'
376
+ ],
377
+ },
378
+
379
+ "NCVT" => {
380
+ name: "北欧神群試練表",
381
+ type: '1D6',
382
+ table: [
383
+ '美しい乙女が告げる。「あなたはエインヘリアルたる資格がある」どうやら、戦乙女ヴァルキュリャに見初められたらしい。彼女たちは、戦死した者の魂を連れていくのだが。自分は、戦乙女から【想い】を2点獲得する。この【想い】の関係はマイナスの「殺意」となる。',
384
+ '雄叫びと共に現れたのは、獣の皮を被った屈強な戦士たち、ベルセルクだった。手に手に斧を構え、こちらに向かってくる!【武勇】で判定を行う。失敗すると、2D6点のダメージを受ける。',
385
+ 'オーディンの神子、エインヘリアルたちの宴会に紛れ込んでしまった。山のように積まれたご馳走を好きに食べていいと思ったら、「勝負だ!」という声。食べ比べを挑まれている。神子としては、負けるわけにはいかない。【日常】で判定を行う。失敗すると、「恥辱」の変調を受ける。',
386
+ '「ここは我々の土地だ。ただで通れると思っているのか?」ドヴェルグが行く手を塞ぎ、神貨を要求してくる。彼らはがめついことで有名だ。神貨を2点支払う。支払わない場合、自分の【生命力】を1点減少して、もう一度「試練表」を使用する。',
387
+ '「このまま冒険を続けても簡単すぎるんじゃないか?」ロキが話し掛けてきた。気がつくと君は狼の姿に変わっていた。このセッションの間、自分に「獣」のタグがつき、【愛】のランクが1段階低くなる(Dは変化しない)。',
388
+ '巨人が話し掛けてくる。「お前に力をやってもいい。代わりに、片目か、片腕をよこせ」オーディンは片目を差し出して、知恵を手に入れた。嘘ではないだろうが……。【生命力】を3D6点減少することで、好きな領域にインガを二つ配置できる。減少しなかった場合、「臆病1」の変調を受ける。'
389
+ ],
390
+ },
391
+
392
+ "DGVT" => {
393
+ name: "ダンジョン試練表",
394
+ type: '1D6',
395
+ table: [
396
+ '照明が切れてしまい、暗闇の中に放り出される。前が見えない。白の領域からインガを一つ取り除く。',
397
+ '罠だ!こちらに向かって、巨大な岩が転がって来る!【技術】で判定する。失敗すると、2D6点のダメージを受ける。',
398
+ '宝箱発見。罠がないかを慎重に調べてみよう。【技術】で判定する。成功すると、1神貨を獲得する。失敗すると、「憤怒」と「恥辱」の変調を受ける。',
399
+ '謎解きが必要な部分に迷い込む。この謎を解かなければ、罠を無理矢理突破しなければならない。【頭脳】で判定を行う。失敗すると、「絶望」の変調を受け、1D6点のダメージを受ける。',
400
+ '粘液が飛び散る部屋に入ってしまった。まずい、何でも溶かす酸だ!自分が装備しているアイテムの中から一つを選ぶ。選んだアイテムを破壊する。【食料】を選んだ場合は、すべての【食料】を破壊する。',
401
+ '怪物たちのすみかに迷い込んでしまったようだ。怪物が一斉に襲ってくる!【武勇】で判定を行う。失敗すると、2D6点のダメージを受ける。'
402
+ ],
403
+ },
404
+
405
+ "DAVT" => {
406
+ name: "日常試練表",
407
+ type: '1D6',
408
+ table: [
409
+ '仲間と移動していると、一般人の友達と偶然出会ってしまう。今何をしているかを聞かれたので、なんとかごまかす。自分に対して【想い】の値を持っているPC全員の属性が反転する。',
410
+ '仕事や勉強を催促する電話がかかってきた。今はそれどころじゃないんだって!「憤怒」の変調を受ける。',
411
+ 'ふと、見たかったテレビ番組を見逃していたことに気づいてしまう。録画もしてない。ちょっと凹む。自分の属性と同じ領域にあるインガを一つ取り除く。',
412
+ '警官に捕まって、職務質問を受ける。ちょっと言えない理由で、急いでいるんですけど。黒の領域にインガを一つ配置する。',
413
+ '自分の格好や言動が浮いていたらしい、自分を噂するひそひそ話が聞こえてきてしまう。「恥辱」の変調を受けるか、【食料】以外のアイテムを1つ破壊する。',
414
+ '乗りたかった電車やバスに乗り遅れる。仕方ないから、走るか。移動判定を行う。失敗すると、「堕落」の変調を受け、もう一度「試練表」を使用する。'
415
+ ],
416
+ },
417
+
418
+ "PRCT" => {
419
+ name: "挑戦テーマ表【武勇】",
420
+ type: '1D6',
421
+ table: [
422
+ '腕相撲',
423
+ '喧嘩',
424
+ '度胸試し',
425
+ 'レスリング',
426
+ '狩り',
427
+ '武勇伝自慢'
428
+ ],
429
+ },
430
+
431
+ "TCCT" => {
432
+ name: "挑戦テーマ表【技術】",
433
+ type: '1D6',
434
+ table: [
435
+ '織物',
436
+ '戦車レース',
437
+ 'マラソン',
438
+ 'アクションゲーム',
439
+ '射的',
440
+ '資格自慢'
441
+ ],
442
+ },
443
+
444
+ "INCT" => {
445
+ name: "挑戦テーマ表【頭脳】",
446
+ type: '1D6',
447
+ table: [
448
+ 'パズル',
449
+ '謎かけ',
450
+ 'チェス',
451
+ '筆記試験',
452
+ '禅問答',
453
+ '学歴自慢'
454
+ ],
455
+ },
456
+
457
+ "PSCT" => {
458
+ name: "挑戦テーマ表【霊力】",
459
+ type: '1D6',
460
+ table: [
461
+ '詩作',
462
+ '動物を手なずける',
463
+ '北風と太陽',
464
+ '絵画',
465
+ '演奏',
466
+ 'のど自慢'
467
+ ],
468
+ },
469
+
470
+ "LVCT" => {
471
+ name: "挑戦テーマ表【愛】",
472
+ type: '1D6',
473
+ table: [
474
+ 'ナンパ勝負',
475
+ '誰かからより愛される',
476
+ '美人コンテスト',
477
+ 'ティッシュ配り',
478
+ '借り物競争',
479
+ '恋愛自慢'
480
+ ],
481
+ },
482
+
483
+ "DACT" => {
484
+ name: "挑戦テーマ表【日常】",
485
+ type: '1D6',
486
+ table: [
487
+ '料理',
488
+ '大食い',
489
+ '呑み比べ',
490
+ '倹約生活',
491
+ 'サバイバル',
492
+ 'リア充自慢'
493
+ ],
494
+ },
495
+
496
+ "RGT" => {
497
+ name: "ランダムギフト表",
498
+ type: '1D6',
499
+ table: [
500
+ 'ランダムに選んだPCと同じ親神の親神ギフトの中から選ぶ。',
501
+ 'GMが選んだキャラクターと同じ親神の親神ギフトの中から選ぶ。',
502
+ 'ランダムに選んだPCと同じ神群の神群ギフトの中から選ぶ。',
503
+ 'GMが選んだキャラクターと同じ神群の神群ギフトの中から選ぶ。',
504
+ '好きな背景ギフトの中から選ぶ。',
505
+ '好きな汎用ギフトの中から選ぶ。'
506
+ ],
507
+ },
508
+
509
+ "FBT" => {
510
+ name: "決戦戦果表",
511
+ type: '1D6',
512
+ table: [
513
+ '1D6枚の神貨を獲得する。',
514
+ '[戦闘に経過した偵察・乱戦・追撃ラウンド数の合計+2]枚の神貨を獲得する。',
515
+ '[倒した怪物の本体レベル+2]枚の神貨を獲得する。',
516
+ '[黒の領域の覚醒段階+2]枚の神貨を獲得。',
517
+ '「ランダムアイテム表」で、アイテムを入手できる。',
518
+ '「ランダムアイテム表」で、アイテムを入手できる。'
519
+ ],
520
+ },
521
+
522
+ "CHVT" => {
523
+ name: "中華神群試練表",
524
+ type: '1D6',
525
+ table: [
526
+ 'たどりついた場所は、桃源郷であった。すべてを忘れて、しばらく楽しんでしまう。年齢が2D6点上昇し、「堕落」の変調を受ける。',
527
+ '風にさらわれて、仙人に出会う。仙人は、稽古をつけてくれるが、激しい修行に体はボロボロになってしまった。好きな領域にインガを一つ配置し、「重傷4」の変調を受ける。',
528
+ '美男・美女に誘惑されるが、それは妖怪の化けた姿だった。たぶらかされたことに、怒りを覚える。「憤怒」の変調を受ける。',
529
+ '名前を呼ばれたので、返事をしたら、瓶の中に吸い込まれてしまった。瓶の中から脱出をするまでに苦労をする。2D6点のダメージを受け、「恥辱」の変調を受ける。',
530
+ '地府で行われてる閻魔の裁判に参考人として招集される。下手な証言をしたために、疑われて地獄に落とされかかった。「絶望」の変調を受ける。',
531
+ '麒麟の死骸を発見してしまう。これは、不吉の前触れだ。黒の領域にインガを一つ配置する。'
532
+ ],
533
+ },
534
+
535
+ "LCVT" => {
536
+ name: "ラストクロニクル神群試練表",
537
+ type: '1D6',
538
+ table: [
539
+ 'レ・ムゥの五色の太陽がすべて輝きを失う「千年夜」の到来を幻視する。これは起こりうる未来なのだろうか……。黒の領域にインガを1つ配置する。',
540
+ '召喚された小野小町が退屈を持て余してる。彼女の退屈を紛らわせるため【頭脳】か【愛】で判定する。失敗した場合、黒の領域にインガを1つ配置する。',
541
+ '血肉を貨幣代わりに扱う商人・ブラッドトレーダーと出会う。ラストクロニクル神群の聖地の買い物リストからアイテムを1つ選ぶ。【生命力】を「価格×3点」消費することで、選んだアイテムを獲得する。',
542
+ 'あなたは旅の途中で美女と出会い、意気投合する。しかし、その女性はメレドゥスの魔闘士・メニズマだった。彼女は去り際にあなたの精気を奪い取る。【生命力】と【活力】がそれぞれ1D6点減少する。',
543
+ '強欲なる司都官が治める街に迷い込んでしまう。通行料として神貨を1D6点支払う。支払えない場合、2D6点ダメージを受ける。',
544
+ '放浪の勇者・アルマイルから挨拶代わりの一撃を受ける。1D6点ダメージを受け、アルマイルからの【想い】が1点上昇する。'
545
+ ],
546
+ },
547
+
548
+ "KCVT" => {
549
+ name: "ケルト神群試練表",
550
+ type: '1D6',
551
+ table: [
552
+ '怪物が奏でる銀の竪琴の音色が聞こえてきて、しばらくの間、眠ってしまう。眠っている間に、妖精たちに悪戯された。「恥辱」の変調を受け、アイテムを一つ選んで失う。',
553
+ 'かつて倒した敵の娘から呪いをかけられてしまい、左腕が麻痺して動かなくなる。このセッションの間、【武勇】のランクが一段階減少する(Dより下にはならない)。',
554
+ 'エイネーという女性に、泉の底にある指輪を取ってきて欲しいと頼まれる。泉の底に潜って戻って来ると、自分が加齢してしまっていることに気付く。罠だったのだ。自分の年齢をD66歳増やし、【活力】が0点になる。',
555
+ '悪いドルイド僧から求婚を迫られる。急な話に戸惑っていると、ドルイド僧は怒りだし、PCを鹿に変える呪いをかけた。このセッションの間、【日常】のランクが一段階減少する(Dより下にはならない)。',
556
+ 'ウィッカーマンに閉じ込められ、焼かれてしまう。「重傷4」の変調を受ける。',
557
+ '道案内をしてくれた美女にそそのかされて、女人の国にたどりついてしまう。誘惑に耐えながら、なんとか脱出する。「堕落」と「臆病2」の変調を受ける。'
558
+ ],
559
+ },
560
+
561
+ "SAT" => {
562
+ name: "店内雰囲気表",
563
+ type: 'D66',
564
+ table: [
565
+ [11, "山の中にある峠の茶屋"],
566
+ [12, "煙草の煙がたゆたうセルフ式コーヒーチェーン店"],
567
+ [13, "山上りの座卓がある和風茶寮"],
568
+ [14, "ロココ調の優美で華やかな雰囲気の高級サロン"],
569
+ [15, "ヴィクトリア調のシックで上品なティーハウス"],
570
+ [16, "古い歌謡曲がかかり、テーブル筐体が懐かしい純喫茶"],
571
+ [22, "若い子で賑わうポップな内装のいかにもなチェーン店"],
572
+ [23, "ミッドセンチュリーの家具がお洒落なカフェ"],
573
+ [24, "ジュークボックスが目立つアメリカンダイナー"],
574
+ [25, "ピアノ曲が静かに流れる落ち着いた喫茶店"],
575
+ [26, "ノマドな若者が目立つコーヒーチェーン店"],
576
+ [33, "かわいい給仕さんがたくさんいるメイドカフェ"],
577
+ [34, "独特の茶器でゆったりお茶を楽しめる中国茶館"],
578
+ [35, "アースカラーが懐かしい健康志向なナチュラルカフェ"],
579
+ [36, "見晴らしのいいカフェテラスが自慢のオープンカフェ"],
580
+ [44, "壁一面にレコードが飾られているジャズ喫茶"],
581
+ [45, "24時間営業で荒れた雰囲気の漫画喫茶"],
582
+ [46, "色々なアナログゲームが楽しめるゲームカフェ"],
583
+ [55, "ショッピングモールのフードコート内にある出店"],
584
+ [56, "ビジネスマンたちが商談にいそしむ談話室"],
585
+ [66, "水タバコを吸いながら会話に興じる中東風カフェ"],
586
+ ],
587
+ },
588
+
589
+ "SMT" => {
590
+ name: "特殊メニュー表",
591
+ type: 'D66',
592
+ table: [
593
+ [11, "アド・パトレス(ケルト)"],
594
+ [12, "アムブロシア(ギリシア)"],
595
+ [13, "ネクタル(ギリシア)"],
596
+ [14, "アムリタ(インド)"],
597
+ [15, "ソーマ(インド)"],
598
+ [16, "ヤシオリ(ヤマト)"],
599
+ [22, "変若水/おちみず(ヤマト)"],
600
+ [23, "天舐酒/あまのたむけざけ(ヤマト)"],
601
+ [24, "エリクサー(錬金術)"],
602
+ [25, "ハオマ(ペルシア)"],
603
+ [26, "金丹(中華)"],
604
+ [33, "神農茶(中華)"],
605
+ [34, "チョコラトル(アステカ)"],
606
+ [35, "クヴァシル(北欧)"],
607
+ [36, "ヘイズルーンの乳(北欧)"],
608
+ [44, "ホワイト・ドロップ(エジプト)"],
609
+ [45, "リキッド・ゴールド(エジプト)"],
610
+ [46, "ジヴァヤ・ヴォジャ(スラブ)"],
611
+ [55, "スハルジク(メソポタミア)"],
612
+ [56, "ニンフサグのミルク(メソポタミア)"],
613
+ [66, "黄金の蜂蜜酒(クトゥルフ)"],
614
+ ],
615
+ },
616
+
617
+ }.freeze
618
+
619
+ register_prefix(['R[A-DS].*'] + TABLES.keys)
620
+ end
621
+ end
622
+ end