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,501 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class Amadeus_Korean < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'Amadeus:Korean'
8
+
9
+ # ゲームシステム名
10
+ NAME = '아마데우스'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = '国際化:Korean:아마데우스'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
17
+ ・판정(Rx±y@z>=t)
18
+  다이스별로 성공, 실패의 판정을 합니다.
19
+  x:x에 랭크(S,A~D)를 입력.
20
+  y:y에 수정치를 입력. ±의 계산에 대응. 생략가능.
21
+  z:z에 스페셜이 되는 주사위 눈의 최저치를 입력.
22
+  생략한 경우, 6의 값만 스페셜이 됩니다.
23
+  t:t에 목표치를 입력. ±의 계산에 대응. 생략가능.
24
+  목표치를 생략한 경우, 목표치는 4로 계산됩니다.
25
+  예) RA RB-1 RC>=5 RD+2 RS-1@5>=6
26
+  ※ RB++ 나 RA- 같은, 플러스 마이너스만의 표기로는 계산되지 않습니다.
27
+  "달성치"_"판정결과"["주사위 눈""대응하는 인과"]와 같이 출력됩니다.
28
+  단, C.D랭크에서는 대응하는 인과가 출력되지 않습니다.
29
+  출력예) 1_펌블![1흑] / 3_실패[3청]
30
+ ・각종표
31
+  ・조우표 ECT/관계표 RT/부모마음표 PRT/전장표 BST/휴식표 BT/
32
+   펌블표 FT/치명상표 FWT/전과표 BRT/랜덤아이템표 RIT/
33
+   손상표 WT/악몽표 NMT/목표표 TGT/制約表 CST
34
+ ・試練表(~VT)
35
+  ギリシャ神群 GCVT/ヤマト神群 YCVT/エジプト神群 ECVT/
36
+  クトゥルフ神群 CCVT/北欧神群 NCVT/ダンジョン DGVT/日常 DAVT
37
+ ・挑戦テーマ表(~CT)
38
+  武勇 PRCT/技術 TCCT/頭脳 INCT/霊力 PSCT/愛 LVCT/日常 DACT
39
+ INFO_MESSAGE_TEXT
40
+
41
+ def initialize(command)
42
+ super(command)
43
+
44
+ @sort_add_dice = true
45
+ @enabled_d66 = true
46
+ @d66_sort_type = D66SortType::ASC
47
+ end
48
+
49
+ def eval_game_system_specific_command(command)
50
+ text = amadeusDice(command)
51
+ return text unless text.nil?
52
+
53
+ info = TABLES[command.upcase]
54
+ return nil if info.nil?
55
+
56
+ name = info[:name]
57
+ type = info[:type]
58
+ table = info[:table]
59
+
60
+ text, number =
61
+ case type
62
+ when '1D6'
63
+ get_table_by_1d6(table)
64
+ when '2D6'
65
+ get_table_by_2d6(table)
66
+ when 'D66'
67
+ get_table_by_d66_swap(table)
68
+ end
69
+
70
+ return nil if text.nil?
71
+
72
+ return "#{name}(#{number}) > #{text}"
73
+ end
74
+
75
+ def amadeusDice(command)
76
+ return nil unless /^(R([A-DS])([\+\-\d]*))(@(\d))?((>(=)?)([\+\-\d]*))?(@(\d))?$/i =~ command
77
+
78
+ commandText = Regexp.last_match(1)
79
+ skillRank = Regexp.last_match(2)
80
+ modifyText = Regexp.last_match(3)
81
+ signOfInequality = (Regexp.last_match(7).nil? ? ">=" : Regexp.last_match(7))
82
+ targetText = (Regexp.last_match(9).nil? ? "4" : Regexp.last_match(9))
83
+ if nil | Regexp.last_match(5)
84
+ specialNum = Regexp.last_match(5).to_i
85
+ elsif nil | Regexp.last_match(11)
86
+ specialNum = Regexp.last_match(11).to_i
87
+ else
88
+ specialNum = 6
89
+ end
90
+
91
+ diceCount = CHECK_DICE_COUNT[skillRank]
92
+ modify = ArithmeticEvaluator.eval(modifyText)
93
+ target = ArithmeticEvaluator.eval(targetText)
94
+
95
+ diceList = @randomizer.roll_barabara(diceCount, 6)
96
+ diceText = diceList.join(",")
97
+ specialText = (specialNum == 6 ? "" : "@#{specialNum}")
98
+
99
+ message = "(#{commandText}#{specialText}#{signOfInequality}#{targetText}) > [#{diceText}]#{modifyText} > "
100
+ diceList = [diceList.min] if skillRank == "D"
101
+ is_loop = false
102
+ diceList.each do |dice|
103
+ if is_loop
104
+ message += " / "
105
+ elsif diceList.length > 1
106
+ is_loop = true
107
+ end
108
+ achieve = dice + modify
109
+ result = check_success(achieve, dice, signOfInequality, target, specialNum)
110
+ if is_loop
111
+ message += "#{achieve}_#{result}[#{dice}#{INGA_TABLE[dice]}]"
112
+ else
113
+ message += "#{achieve}_#{result}[#{dice}]"
114
+ end
115
+ end
116
+
117
+ return message
118
+ end
119
+
120
+ def check_success(total_n, dice_n, signOfInequality, diff, special_n)
121
+ return "펌블!" if dice_n == 1
122
+ return "스페셜!" if dice_n >= special_n
123
+
124
+ cmp_op = Normalize.comparison_operator(signOfInequality)
125
+ target_num = diff.to_i
126
+
127
+ if total_n.send(cmp_op, target_num)
128
+ "성공"
129
+ else
130
+ "실패"
131
+ end
132
+ end
133
+
134
+ CHECK_DICE_COUNT = {"S" => 4, "A" => 3, "B" => 2, "C" => 1, "D" => 2}.freeze
135
+ INGA_TABLE = [nil, "흑", "적", "청", "녹", "백", "임의"].freeze
136
+
137
+ TABLES =
138
+ {
139
+ "ECT" => {
140
+ name: "조우표",
141
+ type: '1D6',
142
+ table: [
143
+ "고백. 당신은 신과 인간(짐승의 아이의 경우는 무언가의 동물)이 서로 사랑해 태어난 신의 아이입니다. 최근이 되어 그 사실과 예언에 관해 자신의 부모로부터 전해듣게 되었습니다. 당신은 양친이 있는 경우 어느 한쪽은 의붓부모가 됩니다.",
144
+ "고아. 당신은 부모에 대해 아무것도 몰랐습니다. 가혹한 환경에서 사는 동안, 당신의 형제자매가 당신을 맞이하러 왔습니다. 그리고 당신은 신의 아이이자, 예언의 당사자라는 것을 전해듣습니다.",
145
+ "가족. 당신은 신의 아이로서 어린 시절부터 생활해왔습니다. 현실과 <성지>를 왔다갔다하며 여러가지 것들을 신인 부모에게서 가르침 받았습니다. 그리고, 언젠가 모험에 나서, 영웅이 될 날을 즐겁게 기다리고 있었습니다.",
146
+ "혈맥. 당신의 일족에게는 '거대한 운명의 소유자가 태어난다'라고 하는 예언이 전해져 왔습니다. 그 예언의 아이가 당신입니다. 아마도, 당신의 먼 선조는 신이었을 것입니다. 일족은 당신에게 큰 기대와 두려움을 가지고 있습니다.",
147
+ "총애. 당신의 자질과 재능은 신에게 인정받았습니다. 그리고, 꿈 속에서 부모신과 만나, <신의 피>를 직접 하사받았습니다. 그 이후로, 당신은 불가사의한 것들이 보이거나 들리거나 하게 되었습니다.",
148
+ "귀의. 당신은 괴물에 의해 생명의 위협을 받았습니다. 하지만, 신의 피를 받은 것으로 죽음의 문턱에서 되돌아 왔습니다. 그 이후로, 당신은 당신을 구해준 신에게 귀의하여 인생을 바치기로 했습니다.",
149
+ ],
150
+ },
151
+
152
+ "BST" => {
153
+ name: "전장표",
154
+ type: '1D6',
155
+ table: [
156
+ "묘지. 라운드 종료 시 PC와 괴물의 본체는 【생명력】이 1D6점 감소한다. PC가 기프트를 사용할 때 흑의 영역의 인과가 추가로 2개 있는것으로 취급한다.",
157
+ "시가지. 모든 PC와 괴물은 입히는 데미지가 1D6점 상승한다. PC가 기프트를 사용할 때 적의 영역의 인과가 추가로 2개 있는것으로 취급한다.",
158
+ "수중. 잠수상태가 아닌 PC는 모든 판정에 -1의 수정치가 붙는다. 라운드 종료 시, 잠수상태가 아닌 PC와 괴물의 본체는 【생명력】이 1D6점 감소한다. PC가 기프트를 사용할 때 청의 영역의 인과가 추가로 2개 있는것으로 취급한다.",
159
+ "삼림. 모든 PC와 괴물은 받는 데미지가 1D6점 감소한다. PC가 기프트를 사용할 때 녹의 영역의 인과가 추가로 2개 있는것으로 취급한다.",
160
+ "공중. 비행상태가 아닌 PC는 모든 판정에 -1의 수정치가 붙는다. 전투종료 시 괴물의 【생명력】이 1점이상 남아있을 경우 그 전투중에 한번도 비행상태가 되지 않은 PC와 괴물의 본체는 【생명력】이 [전투에 소비한 난전 라운드 수x3D6]점 감소한다. PC가 기프트를 사용할 때 백의 영역의 인과가 추가로 2개 있는것으로 취급한다.",
161
+ "평지. 아무런 효과도 없다.",
162
+ ],
163
+ },
164
+
165
+ "RT" => {
166
+ name: "관계표",
167
+ type: '1D6',
168
+ table: [
169
+ "연심(플러스) / 살의(마이너스)",
170
+ "동정(플러스) / 모멸(마이너스)",
171
+ "동경(플러스) / 질투(마이너스)",
172
+ "신뢰(플러스) / 의심(마이너스)",
173
+ "공감(플러스) / 밥맛(마이너스)",
174
+ "소중(플러스) / 귀찮(마이너스)",
175
+ ],
176
+ },
177
+
178
+ "PRT" => {
179
+ name: "부모마음표",
180
+ type: '1D6',
181
+ table: [
182
+ "귀엽다(플러스) / 건방지다(마이너스)",
183
+ "기대(플러스) / 위협(마이너스)",
184
+ "자랑(플러스) / 수치(마이너스)",
185
+ "애정(플러스) / 무관심(마이너스)",
186
+ "유용(플러스) / 걱정(마이너스)",
187
+ "과보호(플러스) / 집착(마이너스)",
188
+ ],
189
+ },
190
+
191
+ "FT" => {
192
+ name: "펌블표",
193
+ type: '1D6',
194
+ table: [
195
+ "운명의 수레바퀴가 회전한다. 각각의 영역의 인과를 적->청->녹->백->적으로 옮긴다.",
196
+ "동료에게 민폐를 끼친다. 자신 이외의 PC전원은 【생명력】이 1점 감소한다.",
197
+ "이 실패는 나중에 빌미가 될지도 모른다. 자신의 【생명력】이 1D6점 감소한다.",
198
+ "너무 큰 실패에 다른 사람들의 태도가 변한다. 자신에 대해 가장 높은 【마음】을 가지고 있는 캐릭터 전원의 【마음】의 속성이 반전한다.",
199
+ "마음에 큰 동요가 생긴다. 자신에 속성에 대응한 상태이상을 획득한다.\n(흑->절망, 적->분노, 청->두려움3, 녹->타락, 백->수치)",
200
+ "주변에 활기가 사라진다. 운명의 수레바퀴에서 흑의 영역 이외의 인과를 모두 1개씩 제거한다.",
201
+ ],
202
+ },
203
+
204
+ "BT" => {
205
+ name: "휴식표",
206
+ type: 'D66',
207
+ table: [
208
+ [11, "토착 괴물이 습격해왔다! 어떻게든 격퇴했지만 부상을 입었다. 자신은 1D6점 데미지를 입는다."],
209
+ [12, "미녀의 목욕을 훔쳐보고 말았다. 1D6을 굴려 1~2라면 「타락」, 3~4라면 「수치」, 5~6이라면 「중상1」의 상태이상을 획득한다."],
210
+ [13, "욕심이 강한 상인을 만났다. 이 신에 등장한 모든 캐릭터는 아이템을 살 수 있다. 단, 평소의 가격보다 1 높다."],
211
+ [14, "자신의 과거의 이야기를 한다. 어째서 이런 얘기가 됐지? PC 중에서 자신에 대해 가장 높은 【마음】을 가지고 있는 PC 전원은 【마음】의 속성이 반전한다."],
212
+ [15, "주변의 공기가 변한다. 운명의 수레바퀴가 움직일 예감! 각각의 영역의 인과를 적->청->녹->백->적으로 옮긴다."],
213
+ [16, "당신은 무심코 노래를 부른다. 어느샌가 모두가 그 노래에 집중하고 있었다. 흑의 영역 이외의 원하는 인과 1개를 다른 영역으로 옮긴다."],
214
+ [22, "〈절계〉의 바깥 세계의 친구를 떠올린다. 모두 건강하게 지내고 있을까? 이 PC가【일상】의 판정에 성공하면 자신의 상태이상 1개를 회복하거나 흑의 영역의 인과를 하나 제거할 수 있다."],
215
+ [23, "기묘한 상인을 만났다. 이 신에 등장한 모든 캐릭터는 아이템을 살 수 있다."],
216
+ [24, "말하는 동물에게 부탁을 받는다. 동물들도 이 신화재해로 고생하고 있는듯 하다. 이 PC는 「이 괴물의 본체의 【생명력】을 0으로 한다」라는 추가의 【임무】를 받는다. 이 【임무】를 달성하면 추가로 경험치를 20점 받는다."],
217
+ [25, "멋진 꿈을 꾼다. 이 표를 굴린 PC는 자신의 PC 이외의 캐릭터 1명에 대한 【마음】이 1점 상승한다."],
218
+ [26, "소중한 사람에게서 당신을 걱정하는 문자를 받았다. 뭐라고 답장하지? 이 표를 굴린 PC는 【일상】의 판정에 성공하면 자신의 상태이상을 1개 회복하거나 자신이 가진 【마음】의 체크를 1개 해제한다."],
219
+ [33, "친절한 상인을 만났다. 이 신에 등장한 모든 캐릭터는 아이템을 살 수 있다. 단, 평소의 가격보다 1 낮다.(1 미만은 되지 않는다.)"],
220
+ [34, "무기의 정비를 한다. 이 표를 굴린 PC는 【일상】의 판정에 성공하면 이 세션 동안 무기 1개의 위력을 1점 상승시킬 수 있다."],
221
+ [35, "마지막으로 쇼핑을 했을때 잔돈을 더 받은걸 깨달았다. 코인을 1개 획득한다."],
222
+ [36, "식사를 하면서 동료들과 떠든다. 이 신에 등장해서 식사를 한 PC 전원은 자신이 가진 【마음】의 체크를 1개 해제한다."],
223
+ [44, "잠깐 잠들었는지 이상한 꿈을 꾼다. 이 표를 굴린 PC는 【영력】의 판정에 성공하면 원하는 예언카드 1장의 【진실】을 볼 수 있다."],
224
+ [45, "양아치들에게 얽힌 이성을 발견한다. 이 표를 굴린 PC가 【무용】의 판정에 성공하면 그 NPC는 이 표를 굴린 PC에 대한 【마음】을 1점 획득한다. 이 NPC를 협력자로 한다면 이 표를 굴린 PC가 이름과 관계를 자유롭게 정한다."],
225
+ [46, "기분좋은 바람이 분다. 운명이 당신을 도와주는듯한 기분이 든다. 원하는 영역에 인과를 1개 배치한다."],
226
+ [55, "눈을 뜨면 머리맡에 선물이 있다. 누굴까……? 이 표를 굴린 PC는 「랜덤 아이템표」를 사용한다."],
227
+ [56, "곤란해하는 신화생물을 도와줬다. 이 표를 굴린 PC는【일상】의 판정에 성공하면 다음 이동판정을 자동으로 성공한다.(달성치는 6으로 한다)"],
228
+ [66, "부모신이 당신에게 이야기하고 있다. 부모자식간의 대화다. 이 표를 굴린 PC는 【일상】의 판정에 성공하면 자신의 부모신에 대한 【마음】이나 부모신의 자신에 대한 【마음】중 하나를 1점 상승시킨다."],
229
+ ],
230
+ },
231
+
232
+ "FWT" => {
233
+ name: "치명상표",
234
+ type: '1D6',
235
+ table: [
236
+ "절망적인 공격을 받는다. 이 캐릭터는 사망한다.",
237
+ "고통의 비명을 지르고 무참하게 무너진다. 이 캐릭터는 행동불능이 되고 흑의 영역의 인과가 1 증가한다.",
238
+ "공격을 받은 무기가 부숴지고 적의 공격에 직격당한다. 이 캐릭터는 행동불능이 되고 아이템란 에서 무기 하나를 파괴한다.",
239
+ "강렬한 일격을 받아 기절한다. 이 캐릭터는 행동불능이 된다.",
240
+ "의식은 있지만 일어날 수 없다. 이 캐릭터는 행동불능이 되고 다음 신이 되면 【생명력】이 1점으로 회복된다.",
241
+ "기적적으로 버틴다. 【생명력】이 1점으로 회복된다.",
242
+ ],
243
+ },
244
+ "BRT" => {
245
+ name: "전과표",
246
+ type: '1D6',
247
+ table: [
248
+ "코인을 1개 획득한다.",
249
+ "코인을 1D6개 획득한다.",
250
+ "원하는 영역에 인과를 1개 배치한다.",
251
+ "흑의 영역의 인과를 1개 제거한다.",
252
+ "「랜덤 아이템표」를 1번 사용한다.",
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
+ "「두려움3」의 상태이상을 획득한다.",
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 중에서 가장 【생명력】이 낮은 PC 1명을 선택한다. 가장 낮은 【생명력】인 사람이 여럿 있을 경우, 그 중에서 GM이 자유롭게 선택한다.",
306
+ "교활. 가장 숫자가 높은 패러그래프에 있는 PC 1명을 선택한다. 전원이 장외에 있을 경우, 장외에 있는 PC 전원을 목표로 선택한다.",
307
+ "비도. PC 중에서 가장 【무용】랭크가 낮은 PC 1명을 선택한다. 가장 낮은 랭크를 가진 사람이 여럿 있을 경우, 그 중에서 가장 낮은 모드를 가진 사람을 1명 선택한다. 모드도 같을 경우, 그 중에서 GM이 자유롭게 선택한다.",
308
+ "견실. PC 중에서 가장 【기술】랭크가 낮은 PC 1명을 선택한다. 가장 낮은 랭크를 가진 사람이 여럿 있을 경우, 그 중에서 가장 낮은 모드를 가진 사람을 1명 선택한다. 모드도 같을 경우, 그 중에서 GM이 자유롭게 선택한다.",
309
+ "호쾌. PC 중에서 가장 【무용】랭크가 높은 PC 1명을 선택한다. 가장 높은 랭크를 가진 사람이 여럿 있을 경우, 그 중에서 가장 높은 모드를 가진 사람을 1명 선택한다. 모드도 같을 경우, 그 중에서 GM이 자유롭게 선택한다.",
310
+ "교활. 가장 숫자가 낮은 패러그래프에 있는 PC 1명을 선택한다. 전원이 장외에 있을 경우, 장외에 있는 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
+ }.freeze
497
+
498
+ register_prefix(['R[A-DS].*'] + TABLES.keys)
499
+ end
500
+ end
501
+ end