bcdice 3.0.0.pre.alpha.1 → 3.0.0.pre.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -1
  3. data/.rubocop.yml +12 -0
  4. data/.rubocop_todo.yml +1 -0
  5. data/CHANGELOG.md +34 -0
  6. data/Gemfile +6 -3
  7. data/Rakefile +52 -18
  8. data/bcdice.gemspec +2 -0
  9. data/i18n/Amadeus/ja_jp.yml +386 -0
  10. data/i18n/Amadeus/ko_kr.yml +148 -0
  11. data/i18n/Cthulhu/ja_jp.yml +11 -0
  12. data/i18n/Cthulhu/ko_kr.yml +11 -0
  13. data/i18n/Cthulhu/zh_hant.yml +11 -0
  14. data/i18n/DetatokoSaga/ja_jp.yml +74 -0
  15. data/i18n/DetatokoSaga/ko_kr.yml +74 -0
  16. data/i18n/DoubleCross/ja_jp.yml +53 -0
  17. data/i18n/DoubleCross/ko_kr.yml +53 -0
  18. data/i18n/Dracurouge/ja_jp.yml +1374 -0
  19. data/i18n/Dracurouge/ko_kr.yml +295 -0
  20. data/i18n/Fiasco/ja_jp.yml +10 -0
  21. data/i18n/Fiasco/ko_kr.yml +10 -0
  22. data/i18n/FutariSousa/ja_jp.yml +720 -0
  23. data/i18n/FutariSousa/ko_kr.yml +746 -0
  24. data/i18n/Insane/ja_jp.yml +454 -0
  25. data/i18n/Insane/ko_kr.yml +502 -0
  26. data/i18n/Kamigakari/ja_jp.yml +276 -0
  27. data/i18n/Kamigakari/ko_kr.yml +204 -0
  28. data/i18n/KillDeathBusiness/ja_jp.yml +1092 -0
  29. data/i18n/KillDeathBusiness/ko_kr.yml +1062 -0
  30. data/i18n/LogHorizon/ja_jp.yml +3082 -0
  31. data/i18n/LogHorizon/ko_kr.yml +923 -0
  32. data/i18n/MagicaLogia/ja_jp.yml +564 -0
  33. data/i18n/MonotoneMuseum/ja_jp.yml +525 -0
  34. data/i18n/MonotoneMuseum/ko_kr.yml +89 -0
  35. data/i18n/Nechronica/ja_jp.yml +57 -0
  36. data/i18n/Nechronica/ko_kr.yml +14 -0
  37. data/i18n/StratoShout/ja_jp.yml +160 -0
  38. data/i18n/StratoShout/ko_kr.yml +160 -0
  39. data/i18n/ja_jp.yml +5 -0
  40. data/i18n/ko_kr.yml +7 -0
  41. data/i18n/zh_hant.yml +3 -0
  42. data/lib/bcdice/arithmetic/node.rb +154 -0
  43. data/lib/bcdice/base.rb +87 -101
  44. data/lib/bcdice/common_command.rb +2 -0
  45. data/lib/bcdice/common_command/add_dice.rb +5 -41
  46. data/lib/bcdice/common_command/add_dice/node.rb +92 -16
  47. data/lib/bcdice/common_command/add_dice/parser.rb +374 -274
  48. data/lib/bcdice/common_command/add_dice/parser.y +153 -0
  49. data/lib/bcdice/common_command/add_dice/randomizer.rb +25 -33
  50. data/lib/bcdice/common_command/barabara_dice.rb +6 -47
  51. data/lib/bcdice/common_command/barabara_dice/node.rb +84 -0
  52. data/lib/bcdice/common_command/barabara_dice/parser.rb +336 -0
  53. data/lib/bcdice/common_command/barabara_dice/parser.y +107 -0
  54. data/lib/bcdice/common_command/calc.rb +7 -30
  55. data/lib/bcdice/common_command/calc/node.rb +30 -0
  56. data/lib/bcdice/common_command/calc/parser.rb +271 -0
  57. data/lib/bcdice/common_command/calc/parser.y +79 -0
  58. data/lib/bcdice/common_command/choice.rb +137 -19
  59. data/lib/bcdice/common_command/d66_dice.rb +48 -34
  60. data/lib/bcdice/common_command/lexer.rb +46 -0
  61. data/lib/bcdice/common_command/repeat.rb +102 -0
  62. data/lib/bcdice/common_command/reroll_dice.rb +8 -158
  63. data/lib/bcdice/common_command/reroll_dice/node.rb +198 -0
  64. data/lib/bcdice/common_command/reroll_dice/parser.rb +421 -0
  65. data/lib/bcdice/common_command/reroll_dice/parser.y +158 -0
  66. data/lib/bcdice/common_command/upper_dice.rb +10 -129
  67. data/lib/bcdice/common_command/upper_dice/node.rb +181 -0
  68. data/lib/bcdice/common_command/upper_dice/parser.rb +412 -0
  69. data/lib/bcdice/common_command/upper_dice/parser.y +143 -0
  70. data/lib/bcdice/common_command/version.rb +9 -17
  71. data/lib/bcdice/deprecated/checker.rb +78 -0
  72. data/lib/bcdice/dice_table/d66_grid_table.rb +8 -0
  73. data/lib/bcdice/dice_table/d66_table.rb +10 -0
  74. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +75 -17
  75. data/lib/bcdice/dice_table/sai_fic_skill_table/category.rb +25 -0
  76. data/lib/bcdice/dice_table/sai_fic_skill_table/skill.rb +23 -0
  77. data/lib/bcdice/dice_table/table.rb +8 -0
  78. data/lib/bcdice/game_system.rb +7 -1
  79. data/lib/bcdice/game_system/AFF2e.rb +1 -1
  80. data/lib/bcdice/game_system/AceKillerGene.rb +2 -2
  81. data/lib/bcdice/game_system/Airgetlamh.rb +3 -3
  82. data/lib/bcdice/game_system/Alsetto.rb +1 -1
  83. data/lib/bcdice/game_system/Alshard.rb +1 -1
  84. data/lib/bcdice/game_system/AlterRaise.rb +2 -2
  85. data/lib/bcdice/game_system/Amadeus.rb +46 -507
  86. data/lib/bcdice/game_system/Amadeus_Korean.rb +12 -456
  87. data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
  88. data/lib/bcdice/game_system/Arianrhod.rb +0 -1
  89. data/lib/bcdice/game_system/ArsMagica.rb +1 -1
  90. data/lib/bcdice/game_system/Avandner.rb +1 -1
  91. data/lib/bcdice/game_system/BBN.rb +1 -1
  92. data/lib/bcdice/game_system/BadLife.rb +1 -1
  93. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  94. data/lib/bcdice/game_system/BeastBindTrinity.rb +1 -2
  95. data/lib/bcdice/game_system/BeginningIdol.rb +2 -3
  96. data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2 -3
  97. data/lib/bcdice/game_system/BladeOfArcana.rb +2 -2
  98. data/lib/bcdice/game_system/BlindMythos.rb +1 -1
  99. data/lib/bcdice/game_system/BloodCrusade.rb +0 -1
  100. data/lib/bcdice/game_system/BloodMoon.rb +0 -1
  101. data/lib/bcdice/game_system/CardRanker.rb +1 -2
  102. data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
  103. data/lib/bcdice/game_system/Chill.rb +1 -1
  104. data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
  105. data/lib/bcdice/game_system/ColossalHunter.rb +1 -2
  106. data/lib/bcdice/game_system/Comes.rb +50 -0
  107. data/lib/bcdice/game_system/CrashWorld.rb +1 -1
  108. data/lib/bcdice/game_system/Cthulhu.rb +94 -97
  109. data/lib/bcdice/game_system/Cthulhu7th.rb +108 -67
  110. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
  111. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
  112. data/lib/bcdice/game_system/CthulhuTech.rb +8 -14
  113. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +7 -190
  114. data/lib/bcdice/game_system/Cthulhu_Korean.rb +5 -186
  115. data/lib/bcdice/game_system/DarkBlaze.rb +9 -5
  116. data/lib/bcdice/game_system/DarkDaysDrive.rb +17 -15
  117. data/lib/bcdice/game_system/DarkSouls.rb +1 -1
  118. data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
  119. data/lib/bcdice/game_system/DemonParasite.rb +1 -2
  120. data/lib/bcdice/game_system/DetatokoSaga.rb +48 -149
  121. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +6 -274
  122. data/lib/bcdice/game_system/DiceOfTheDead.rb +9 -6
  123. data/lib/bcdice/game_system/DoubleCross.rb +102 -81
  124. data/lib/bcdice/game_system/DoubleCross_Korean.rb +13 -330
  125. data/lib/bcdice/game_system/Dracurouge.rb +376 -1678
  126. data/lib/bcdice/game_system/Dracurouge_Korean.rb +16 -271
  127. data/lib/bcdice/game_system/EarthDawn.rb +1 -1
  128. data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
  129. data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
  130. data/lib/bcdice/game_system/Elysion.rb +3 -4
  131. data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
  132. data/lib/bcdice/game_system/Emoklore.rb +131 -0
  133. data/lib/bcdice/game_system/EndBreaker.rb +1 -2
  134. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
  135. data/lib/bcdice/game_system/Fiasco.rb +87 -70
  136. data/lib/bcdice/game_system/Fiasco_Korean.rb +7 -95
  137. data/lib/bcdice/game_system/FilledWith.rb +462 -566
  138. data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
  139. data/lib/bcdice/game_system/FutariSousa.rb +103 -938
  140. data/lib/bcdice/game_system/FutariSousa_Korean.rb +7 -948
  141. data/lib/bcdice/game_system/{Gurps.rb → GURPS.rb} +184 -217
  142. data/lib/bcdice/game_system/Garako.rb +131 -39
  143. data/lib/bcdice/game_system/GardenOrder.rb +2 -2
  144. data/lib/bcdice/game_system/GehennaAn.rb +1 -1
  145. data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
  146. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  147. data/lib/bcdice/game_system/GoldenSkyStories.rb +1 -1
  148. data/lib/bcdice/game_system/Gorilla.rb +1 -1
  149. data/lib/bcdice/game_system/GranCrest.rb +2 -3
  150. data/lib/bcdice/game_system/GundogRevised.rb +1 -1
  151. data/lib/bcdice/game_system/GundogZero.rb +1 -1
  152. data/lib/bcdice/game_system/GurpsFW.rb +2 -3
  153. data/lib/bcdice/game_system/HarnMaster.rb +2 -2
  154. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -2
  155. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  156. data/lib/bcdice/game_system/HuntersMoon.rb +1 -2
  157. data/lib/bcdice/game_system/Illusio.rb +2 -2
  158. data/lib/bcdice/game_system/Insane.rb +90 -717
  159. data/lib/bcdice/game_system/Insane_Korean.rb +7 -719
  160. data/lib/bcdice/game_system/Kamigakari.rb +47 -242
  161. data/lib/bcdice/game_system/Kamigakari_Korean.rb +6 -394
  162. data/lib/bcdice/game_system/KanColle.rb +3 -3
  163. data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
  164. data/lib/bcdice/game_system/KillDeathBusiness.rb +162 -1144
  165. data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +6 -1459
  166. data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
  167. data/lib/bcdice/game_system/LiveraDoll.rb +2 -2
  168. data/lib/bcdice/game_system/LogHorizon.rb +350 -3379
  169. data/lib/bcdice/game_system/LogHorizon_Korean.rb +55 -1357
  170. data/lib/bcdice/game_system/LostRecord.rb +0 -1
  171. data/lib/bcdice/game_system/LostRoyal.rb +1 -2
  172. data/lib/bcdice/game_system/MagicaLogia.rb +158 -1044
  173. data/lib/bcdice/game_system/MeikyuDays.rb +1 -2
  174. data/lib/bcdice/game_system/MeikyuKingdom.rb +4 -4
  175. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -5
  176. data/lib/bcdice/game_system/MetalHead.rb +1 -1
  177. data/lib/bcdice/game_system/MetalHeadExtream.rb +2 -2
  178. data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
  179. data/lib/bcdice/game_system/MonotoneMuseum.rb +38 -239
  180. data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +10 -270
  181. data/lib/bcdice/game_system/NSSQ.rb +159 -0
  182. data/lib/bcdice/game_system/Nechronica.rb +34 -73
  183. data/lib/bcdice/game_system/Nechronica_Korean.rb +11 -128
  184. data/lib/bcdice/game_system/NeverCloud.rb +1 -1
  185. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  186. data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
  187. data/lib/bcdice/game_system/NinjaSlayer.rb +12 -11
  188. data/lib/bcdice/game_system/NjslyrBattle.rb +1 -1
  189. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -2
  190. data/lib/bcdice/game_system/OracleEngine.rb +1 -1
  191. data/lib/bcdice/game_system/OrgaRain.rb +2 -2
  192. data/lib/bcdice/game_system/Paradiso.rb +1 -1
  193. data/lib/bcdice/game_system/Paranoia.rb +1 -1
  194. data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
  195. data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
  196. data/lib/bcdice/game_system/Peekaboo.rb +22 -122
  197. data/lib/bcdice/game_system/Postman.rb +2 -2
  198. data/lib/bcdice/game_system/PulpCthulhu.rb +3 -3
  199. data/lib/bcdice/game_system/Raisondetre.rb +2 -2
  200. data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
  201. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  202. data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
  203. data/lib/bcdice/game_system/RuinBreakers.rb +296 -0
  204. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  205. data/lib/bcdice/game_system/SRS.rb +1 -2
  206. data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
  207. data/lib/bcdice/game_system/Satasupe.rb +1 -2
  208. data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
  209. data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
  210. data/lib/bcdice/game_system/ShadowRun5.rb +2 -2
  211. data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
  212. data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +1 -1
  213. data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
  214. data/lib/bcdice/game_system/ShinobiGami.rb +1 -2
  215. data/lib/bcdice/game_system/ShoujoTenrankai.rb +2 -2
  216. data/lib/bcdice/game_system/Skynauts.rb +1 -1
  217. data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
  218. data/lib/bcdice/game_system/StellarKnights.rb +1 -2
  219. data/lib/bcdice/game_system/SterileLife.rb +1 -1
  220. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +1 -2
  221. data/lib/bcdice/game_system/StratoShout.rb +44 -247
  222. data/lib/bcdice/game_system/StratoShout_Korean.rb +6 -282
  223. data/lib/bcdice/game_system/Strave.rb +2 -2
  224. data/lib/bcdice/game_system/SwordWorld.rb +8 -9
  225. data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -3
  226. data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -3
  227. data/lib/bcdice/game_system/TherapieSein.rb +1 -1
  228. data/lib/bcdice/game_system/TokumeiTenkousei.rb +1 -1
  229. data/lib/bcdice/game_system/TokyoGhostResearch.rb +2 -2
  230. data/lib/bcdice/game_system/Torg.rb +2 -2
  231. data/lib/bcdice/game_system/Torg1_5.rb +1 -1
  232. data/lib/bcdice/game_system/TorgEternity.rb +1 -1
  233. data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
  234. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  235. data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -2
  236. data/lib/bcdice/game_system/UnsungDuet.rb +139 -0
  237. data/lib/bcdice/game_system/Utakaze.rb +1 -1
  238. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
  239. data/lib/bcdice/game_system/Villaciel.rb +1 -2
  240. data/lib/bcdice/game_system/Warhammer.rb +1 -1
  241. data/lib/bcdice/game_system/Warhammer4.rb +329 -0
  242. data/lib/bcdice/game_system/WitchQuest.rb +1 -1
  243. data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
  244. data/lib/bcdice/game_system/YankeeYogSothoth.rb +15 -15
  245. data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
  246. data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
  247. data/lib/bcdice/game_system/filled_with/cook_tables.rb +119 -0
  248. data/lib/bcdice/game_system/filled_with/lot_tables.rb +155 -0
  249. data/lib/bcdice/loader.rb +6 -8
  250. data/lib/bcdice/preprocessor.rb +15 -40
  251. data/lib/bcdice/repl.rb +1 -1
  252. data/lib/bcdice/result.rb +83 -0
  253. data/lib/bcdice/translate.rb +11 -0
  254. data/lib/bcdice/version.rb +1 -1
  255. metadata +80 -4
@@ -35,7 +35,6 @@ module BCDice
35
35
  super(command)
36
36
 
37
37
  @sort_add_dice = true
38
- @enabled_d66 = true
39
38
  @d66_sort_type = D66SortType::ASC
40
39
  end
41
40
 
@@ -409,7 +408,7 @@ module BCDice
409
408
  ),
410
409
  }.freeze
411
410
 
412
- register_prefix(['\d+MD6?.*', '\d+R6.*'] + TABLES.keys)
411
+ register_prefix('\d+MD6?.*', '\d+R6.*', TABLES.keys)
413
412
  end
414
413
  end
415
414
  end
@@ -41,7 +41,7 @@ module BCDice
41
41
  ・D66ダイスあり
42
42
  INFO_MESSAGE_TEXT
43
43
 
44
- register_prefix([
44
+ register_prefix(
45
45
  '\d+MK.*', '\d+R6.*',
46
46
  'LRT', 'ORT', 'CRT', 'ART', 'FRT',
47
47
  'TBT', 'CBT', 'SBT', 'VBT', 'FBT', 'ABT', 'WBT', 'LBT',
@@ -57,13 +57,12 @@ module BCDice
57
57
  '\d+RET',
58
58
  'PNT\d*', 'MLT\d*',
59
59
  'KNT\d+', 'WORD\d+'
60
- ])
60
+ )
61
61
 
62
62
  def initialize(command)
63
63
  super(command)
64
64
 
65
65
  @sort_add_dice = true
66
- @enabled_d66 = true
67
66
  @d66_sort_type = D66SortType::ASC
68
67
  end
69
68
 
@@ -181,7 +180,8 @@ module BCDice
181
180
 
182
181
  if signOfInequality != "" # 成功度判定処理
183
182
  cmp_op = Normalize.comparison_operator(signOfInequality)
184
- output += check_result(total_n, dice_now, dice_list, 6, cmp_op, diff)
183
+ output += get2D6Result(total_n, dice_now, cmp_op, diff)
184
+ output += getKiryokuResult(total_n, dice_list, diff)
185
185
  end
186
186
 
187
187
  return output
@@ -50,13 +50,13 @@ module BCDice
50
50
   ・新名前表 NNAMEx (xは個数)
51
51
     芸術 NMAR/食べ物 NMFO/日用品 NMDN/地名 NMPL/機械 NMMA/神様 NMGO
52
52
   ・単語表1/2/3/4 WORD1/WORD2/WORD3/WORD4
53
-  ・生まれ決定表 BDT/生まれ表:才覚 TBO/魅力 CBO/探索 SBO/武勇 TBO
53
+  ・生まれ決定表 BDT/生まれ表:才覚 TBO/魅力 CBO/探索 SBO/武勇 VBO
54
54
   ・初期装備表 IEQ
55
55
   ・地名決定表 PNTx (xは個数)/迷宮風景表 MLTx (xは個数)
56
56
  ・D66ダイスあり
57
57
  INFO_MESSAGE_TEXT
58
58
 
59
- register_prefix([ # ダイスボットで使用するコマンドを配列で列挙すること。
59
+ register_prefix(
60
60
  '\d+MK.*', '\d+R6.*',
61
61
  'IG', 'TT', 'NT', 'RMS',
62
62
  'CFT', 'FWT', 'CAT', 'KDT', 'KCT',
@@ -72,14 +72,13 @@ module BCDice
72
72
  'BUS', 'SHS', 'ASS', 'SUS', 'SCS', 'LAS', 'NES', 'COS', 'ENS', 'TOS',
73
73
  'ABUS', 'ASHS', 'AASS', 'ASUS', 'ASCS', 'ALAS', 'ANES', 'ACOS', 'AENS', 'ATOS',
74
74
  'SE', 'ARN', 'WEN', 'NEN', 'CEN', 'SEN', 'OEN',
75
- 'DFT\d+',
76
- ])
75
+ 'DFT\d+'
76
+ )
77
77
 
78
78
  def initialize(command)
79
79
  super(command)
80
80
 
81
81
  @sort_add_dice = true
82
- @enabled_d66 = true
83
82
  @d66_sort_type = D66SortType::ASC
84
83
  end
85
84
 
@@ -35,7 +35,7 @@ module BCDice
35
35
  例)CRCM98 対物で数値98の戦闘結果を参照する。
36
36
  MESSAGETEXT
37
37
 
38
- register_prefix(['AR', 'SR', 'HR<=.+', 'CC', 'ACT', 'ACL', 'ACS', 'CRC[A-Z]\d+'])
38
+ register_prefix('AR', 'SR', 'HR<=.+', 'CC', 'ACT', 'ACL', 'ACS', 'CRC[A-Z]\d+')
39
39
 
40
40
  def eval_game_system_specific_command(command)
41
41
  result = roll_tables(command, TABLES)
@@ -50,13 +50,13 @@ module BCDice
50
50
  荒野ランダムエンカウント表:WENC[n]
51
51
  MESSAGETEXT
52
52
 
53
- register_prefix([
53
+ register_prefix(
54
54
  '[AS]R\d+.*',
55
55
  '(HU|BK|WA|SC|BG|IN|PT|HT|TA|AC|HE|TR|VT|BO|CS|TH|AM|GD|HC|BI|BT|AI)HIT\d*',
56
56
  'SUV[A-Z]\d+', '[HTALMEBPD]DMG[LMHO]',
57
57
  'CRT\d*', '[GSME]AC\d*', '[ASL]MA\d*(\+\d+)?',
58
58
  'SEC', 'NAC', 'LDC', '[W]ENC\d*'
59
- ])
59
+ )
60
60
 
61
61
  def eval_game_system_specific_command(command)
62
62
  text =
@@ -7,7 +7,7 @@ module BCDice
7
7
  module GameSystem
8
8
  class MetallicGuardian < SRS
9
9
  # 固有のコマンドの接頭辞を設定する
10
- register_prefix(['2D6.*', 'MG.*'])
10
+ register_prefix('2D6.*', 'MG.*')
11
11
 
12
12
  # 成功判定のエイリアスコマンドを設定する
13
13
  set_aliases_for_srs_roll('MG')
@@ -40,7 +40,6 @@ module BCDice
40
40
  # 式、出目ともに送信する
41
41
 
42
42
  # D66ダイスあり(出目をソートしない)
43
- @enabled_d66 = true
44
43
  @d66_sort_type = D66SortType::NO_SORT
45
44
  # バラバラロール(Bコマンド)でソートする
46
45
  @sort_add_dice = true
@@ -54,7 +53,7 @@ module BCDice
54
53
  return ret
55
54
  end
56
55
 
57
- return roll_tables(command, TABLES)
56
+ return roll_tables(command, self.class::TABLES)
58
57
  end
59
58
 
60
59
  private
@@ -68,8 +67,8 @@ module BCDice
68
67
  dice_count = m[1].to_i
69
68
  modify_number = m[2] ? ArithmeticEvaluator.eval(m[2]) : 0
70
69
  target = m[3].to_i
71
- critical = (m[5] || 12).to_i
72
- fumble = (m[7] || 2).to_i
70
+ critical = m[5]&.to_i || 12
71
+ fumble = m[7]&.to_i || 2
73
72
 
74
73
  dice_list = @randomizer.roll_barabara(dice_count, 6).sort
75
74
  dice_value = dice_list.sum()
@@ -78,13 +77,13 @@ module BCDice
78
77
 
79
78
  result =
80
79
  if dice_value <= fumble
81
- "自動失敗"
80
+ translate("MonotoneMuseum.automatic_failure")
82
81
  elsif dice_value >= critical
83
- "自動成功"
82
+ translate("MonotoneMuseum.automatic_success")
84
83
  elsif total >= target
85
- "成功"
84
+ translate("success")
86
85
  else
87
- "失敗"
86
+ translate("failure")
88
87
  end
89
88
 
90
89
  sequence = [
@@ -101,6 +100,14 @@ module BCDice
101
100
  # D66を振って決定する
102
101
  # 1項目あたり出目2つに対応する
103
102
  class MMTable < DiceTable::D66RangeTable
103
+ # @param key [String]
104
+ # @param locale [Symbol]
105
+ # @return [MMTable]
106
+ def self.from_i18n(key, locale)
107
+ table = I18n.translate(key, locale: locale, raise: true)
108
+ new(table[:name], table[:items])
109
+ end
110
+
104
111
  # @param name [String]
105
112
  # @param items [Array<String>]
106
113
  def initialize(name, items)
@@ -117,238 +124,30 @@ module BCDice
117
124
  RANGE = [11..12, 13..14, 15..16, 21..22, 23..24, 25..26, 31..32, 33..34, 35..36, 41..42, 43..44, 45..46, 51..52, 53..54, 55..56, 61..62, 63..64, 65..66].freeze
118
125
  end
119
126
 
120
- TABLES = {
121
- "ET" => DiceTable::D66GridTable.new(
122
- "感情表",
123
- [
124
- ["【信頼(しんらい)】", "【有為(ゆうい)】", "【友情(ゆうじょう)】", "【純愛(じゅんあい)】", "【慈愛(じあい)】", "【憧れ(あこがれ)】"],
125
- ["【恐怖(きょうふ)】", "【脅威(きょうい)】", "【憎悪(ぞうお)】", "【不快感(ふかいかん)】", "【食傷(しょくしょう)】", "【嫌悪(けんお)】"],
126
- ["【好意(こうい)】", "【庇護(ひご)】", "【遺志(いし)】", "【懐旧(かいきゅう)】", "【尽力(じんりょく)】", "【忠誠(ちゅうせい)】"],
127
- ["【不安(ふあん)】", "【侮蔑(ぶべつ)】", "【嫉妬(しっと)】", "【劣等感(れっとうかん)】", "【優越感(ゆうえつかん)】", "【憐憫(れんびん)】"],
128
- ["【尊敬(そんけい)】", "【感服(かんぷく)】", "【慕情(ぼじょう)】", "【同情(どうじょう)】", "【傾倒(けいとう)】", "【好奇心(こうきしん)】"],
129
- ["【偏愛(へんあい)】", "【執着(しゅうちゃく)】", "【悔悟(かいご)】", "【警戒心(けいかいしん)】", "【敵愾心(てきがいしん)】", "【忘却(ぼうきゃく)】"],
130
- ]
131
- ),
132
- "ET2" => DiceTable::D66GridTable.new(
133
- "感情表2.0",
134
- [
135
- ["【プレイヤーの任意】", "【同一視(どういつし)】", "【連帯感(れんたいかん)】", "【幸福感(こうふくかん)】", "【親近感(しんきんかん)】", "【誠意(せいい)】"],
136
- ["【懐旧(かいきゅう)】", "【同郷(どうきょう)】", "【同志(どうし)】", "【くされ縁(くされえん)】", "【期待(きたい)】", "【好敵手(こうてきしゅ)】"],
137
- ["【借り(かり)】", "【貸し(かし)】", "【献身(けんしん)】", "【義兄弟(ぎきょうだい)】", "【幼子(おさなご)】", "【親愛(しんあい)】"],
138
- ["【疎外感(そがいかん)】", "【恥辱(ちじょく)】", "【憐憫(れんびん)】", "【隔意(かくい)】", "【嫌悪(けんお)】", "【猜疑心(さいぎしん)】"],
139
- ["【厭気(けんき)】", "【不信感(ふしんかん)】", "【怨念(おんねん)】", "【悲哀(ひあい)】", "【悪意(あくい)】", "【殺意(さつい)】"],
140
- ["【敗北感(はいぼくかん)】", "【徒労感(とろうかん)】", "【黒い泥(くろいどろ)】", "【憤懣(ふんまん)】", "【無関心(むかんしん)】", "【プレイヤーの任意】"],
141
- ]
142
- ),
143
- "OT" => DiceTable::Table.new(
144
- "兆候表",
145
- "2D6",
146
- [
147
- "【信念の喪失】\n[出自]を喪失する。特徴は失われない。",
148
- "【昏倒】\nあなたは[戦闘不能]になる。",
149
- "【肉体の崩壊】\nあなたは2D6点のHPを失う。",
150
- "【放心】\nあなたはバッドステータスの[放心]を受ける。",
151
- "【重圧】\nあなたはバッドステータスの[重圧]を受ける。",
152
- "【現在の喪失】\n現在持っているパートナーをひとつ喪失する。",
153
- "【マヒ】\nあなたはバッドステータスの[マヒ]を受ける。",
154
- "【邪毒】\nあなたはバッドステータスの[邪毒]5を受ける。",
155
- "【色彩の喪失】\n漆黒、墨白、透明化……。その禍々しい色彩の喪失は他らなぬ異形化の片鱗だ。",
156
- "【理由の喪失】\n[境遇]を喪失する。特徴は失われない。",
157
- "【存在の喪失】\nあなたの存在は一瞬、この世界から消失する。",
158
- ]
159
- ),
160
- "DT" => DiceTable::Table.new(
161
- "歪み表",
162
- "2D6",
163
- [
164
- "【世界消失】\n演目の舞台がすべて失われる。舞台に残っているのはキミたちと異形、伽藍だけだ。クライマックスフェイズへ。",
165
- "【生命減少】\n演目の舞台となっている街や国から動物や人間の姿が少なくなる。特に子供の姿は見られない。",
166
- "【空間消失】\n演目の舞台の一部(建物一棟程度)が消失する。",
167
- "【天候悪化】\n激しい雷雨に見舞われる。",
168
- "【生命繁茂】\nシーン内に植物が爆発的に増加し、建物はイバラのトゲと蔓草に埋没する。",
169
- "【色彩喪失】\n世界から色彩が失われる。世界のすべてをモノクロームになったかのように認識する。",
170
- "【神権音楽】\n美しいが不安を覚える音が流れる。音は人々にストレスを与え、街の雰囲気は悪化している。",
171
- "【鏡面世界】\n演目の舞台に存在するあらゆる文字は鏡文字になる。",
172
- "【時空歪曲】\n昼夜が逆転する。昼間であれば夜になり、夜であれば朝となる。",
173
- "【存在修正】\nGMが任意に決定したNPCの性別や年齢、外見が変化する。",
174
- "【人体消失】\nシーンプレイヤーのパートナーとなっているNPCが消失する。どのNPCが消失するかは、GMが決定する。",
175
- ]
176
- ),
177
- "DT2" => MMTable.new(
178
- "歪み表ver2.0",
179
- [
180
- "【色彩侵食】\nシーン内に存在するあらゆる無生物と生物は、白と黒とのモノトーンの存在となる。紡ぎ手は【縫製】難易度8の判定に成功すれば、この影響を受けない。この効果は歪みをもたらした異形の死によって解除される。",
181
- "【虚無現出】\nほつれの中から虚無がしみ出す。シーンに登場しているエキストラは虫一匹にいたるまで消滅し、二度と現れない。",
182
- "【季節変容】\n季節が突如として変化する。1D6し、1なら春、2なら夏、3なら秋、4なら冬、5ならプレイしている現在の季節、6ならGMの任意とせよ。",
183
- "【ほつれ】\n世界がひび割れ、ほつれが現出する。ほつれに触れたものは虚無に飲み込まれ、帰ってくることはない。",
184
- "【異形化】\nシーン内のすべてのエキストラは何らかの異形化を受ける。これを治癒する術はない。異形の群れ(『IZ』P.237)×1D6と戦闘させてもよい。",
185
- "【死の行進】\n人々の心に虚無が広がり、不安と絶望に満たされていく。逃れられぬ恐怖から逃れようと、人々はみずから、あるいは無意識のうちに死へと向かい行動を始める。",
186
- "【時間加速】\nシーン内に存在するあらゆる無生物と生物は、2D6年ぶん時間が加速する。生物なら老化する。紡ぎ手は【縫製】難易度8の判定に成功すれば、この影響を受けない。",
187
- "【時間逆流】\nシーン内に存在するあらゆる無生物と生物は、2D6年ぶん時間が逆流する。生物ならば若返る。製造年/生年より前に戻った場合は虚無に飲まれ消滅する。紡ぎ手は【縫製】難易度8の判定に成功すれば、この影響を受けない。",
188
- "【災害到来】\n嵐、火山の噴火、洪水など、ほつれによって乱された自然が、人々に牙をむく。",
189
- "【人心荒廃】\n歪みによってもたらされた不安と恐怖は、人々を捨て鉢にさせる。",
190
- "【平穏無事】\n何も起きない。紡ぎ手は背筋が凍るほどの恐怖を覚える。",
191
- "【疫病蔓延】\n登場しているキャラクターは【肉体】難易度8の判定を行ない、失敗すると[邪毒]5を受ける。病の治療法の有無などについてはGMが決定する。迷ったら、伽藍を倒すと病も消滅する、とせよ。",
192
- "【異端審問】\n異端審問の時は近い。PCたちが紡ぎ手であることが知れ渡れば、PCたちも火刑台へと送られることになろう。",
193
- "【歪み出現】\nほつれの破片から歪みが現れ、人々を襲撃する。病魔(『IZ』P.238)×2と戦闘を行なわせてもよい。また、別の異形でもよい。",
194
- "【悪夢現出】\nシーン内のあらゆる人々は恐るべき恐怖の夢を見る。心弱きものたちは、伽藍にすがるか、異端者を火あぶりにせねばこの夢から逃れられぬと考えるだろう。",
195
- "【鼠の宴】\n鼠の大群が出現し、穀物を食い荒らし、疫病をまき散らす。大鼠(『MM』P.240)×1D6と戦闘を行なわせてもよい。",
196
- "【歪曲御標】\n歪んだ御標が下される。歪み表(『MM』P.263)を振ること。",
197
- "【地域消滅】\n演目の舞台となっている地域そのものが消えてなくなる。影響下にあるすべてのキャラクター(伽藍を含む)は【縫製】難易度10の判定に成功すれば脱出できる。失敗した場合即座に死亡する。エキストラは無条件で死亡する。",
198
- ]
199
- ),
200
- "WDT" => DiceTable::Table.new(
201
- "世界歪曲表",
202
- "2D6",
203
- [
204
- "【消失】\n世界からボスキャラクターが消去され、消滅する。エンディングフェイズへ。",
205
- "【自己犠牲】\nチャートを振ったPCのパートナーとなっているNPCのひとりが死亡する。チャートを振ったPCのHPとMPを完全に回復させる。",
206
- "【生命誕生】\nキミたちは大地の代わりに何かの生き物の臓腑の上に立っている。登場しているキャラクター全員に[邪毒]5を与える。",
207
- "【歪曲拡大】\nシーンに登場している紡ぎ手ではないNPCひとりが漆黒の凶獣(『MM』P.240)に変身する。",
208
- "【暴走】\n“ほつれ”がいくつも生まれ、シーンに登場しているすべてのキャラクターの剥離値を+1する。",
209
- "【幻像世界】\n周囲の空間は歪み、破壊的なエネルギーが充満する。次に行なわれるダメージロールに+5D6する。",
210
- "【変調】\n右は左に、赤は青に、上は下に、歪みが身体の動きを妨げる。登場しているキャラクター全員に[狼狽]を与える。",
211
- "【空間消失】\n演目の舞台が煙のように消失する。圧倒的な喪失感により、登場しているキャラクター全員に[放心]を与える。",
212
- "【生命消失】\n次のシーン以降、エキストラは一切登場できない。現在のシーンのエキストラに関してはGMが決定する。",
213
- "【自己死】\nもっとも剥離値の高いPCひとりが[戦闘不能]になる。複数のPCが該当した場合はGMがランダムに決定する。",
214
- "【世界死】\n世界の破滅。難易度12の【縫製】判定に成功すると破滅から逃れられる。失敗すると行方不明になる。エンディングフェイズへ。",
215
- ]
216
- ),
217
- "WDT2" => MMTable.new(
218
- "世界歪曲表ver2.0",
219
- [
220
- "【歪みの茨】\nシーン全体が鋼鉄よりも硬い茨の棘によって埋め尽くされる。飛行状態でないキャラクターは、移動を行う度に〈刺〉3D6+[そのシーンで登場するキャラクターの中で最大の演者レベル]点のダメージを受ける。",
221
- "【世界歪曲】\n世界歪曲表(『MM』P264)を振る。",
222
- "【さかさま世界】\n空か゛地面に、地面が空になる。そのシーン中、全ての飛行状態であるキャラクターは飛行状態でないものとして、飛行状態にないキャラクターは飛行状態として扱う。",
223
- "【海の記憶】\n存在するはずのない潮騒が聞こえ、世界の全てが波に飲み込まれる。このシーン中、飛行状態でない全てのキャラクターは水中状態として扱う。",
224
- "【空間湾曲】\n世界は歪む。こことあそこは意味を失う。このシーンの間、全てのキャラクターの移動力は∞となり、特技と装備の射程は全て「視界」となる。",
225
- "【濃霧世界】\nミルクよりも白く、濃厚な霧が世界を閉ざす。このシーンの間、特技と装備の射程が「視界」「6m以上」出会った場合、すべて「5m」に変更される。",
226
- "【豪雨】\nすさまじい雨が降る。雨は全ての人の心を凍らせる。このシーンの間、「種別:銃」である武器を用いた攻撃のファンブル値を+6する。また、別エンゲージへの物理攻撃の達成値を-2する。",
227
- "【どろどろ】\n足下がいつの間にか不定型な泥沼になっている。このシーンの間、飛行状態でないキャラクターが同一エンゲージに対して行う物理攻撃のファンブル値を+6する。",
228
- "【暴風】\n風は吹きすさび運命を嘲笑する。このシーンの間、飛行状態でないキャラクターが同一エンゲージに対して行う物理攻撃のファンブル値を+6する",
229
- "【魔法暴走】\n魔法の力は暴走し、もう誰の手にも負えない。世界は終わる。消えていく。このシーンの間、「種別:術」の特技を用いた判定のファンブル値は+6される",
230
- "【自己死】\n巨大なほつれが発生し、致命的なダメージを負う。最も剥離値の高いPCひとりが戦闘不能になる。複数のPCが該当した場合はGMがランダムに決定する",
231
- "【虚構の報い】\n紡ぎ手によってゆがめられ続けた因果が逆襲する。このシーンで《虚構現出》を使用した場合、代償に加えて10D6点の実ダメージを受ける。このダメージは軽減できず、移し替えることもできない。",
232
- "【虚構の果て】\n神が見捨てたのか、神を見捨てたのか。逸脱の果て、世界は終わる。あなたはこのシーンで逸脱能力を使用した場合、上昇した剥離値の10倍だけの実ダメージを受ける。このダメージは軽減できず、移し替えることも出来ない。",
233
- "【人格交代】\n魂、厳密には魂の背後にあるナニモノカが入れ替わる。左隣のプレイヤーにキャラクターシートを渡し、このシーン中はそのプレイヤーがあなたのPCを演じる。GMが認めれば、GMもNPCと入れ替えてもいい。",
234
- "【因果の糸】\n嗤う声がする。「逸脱の結果は共有しようよ?」PC全員の剥離値を平均し(端数切り上げ)、全員の剥離値をその計算結果に書き換える、",
235
- "【剣に斃る】\n人を裁く者に報いを、剣には剣の対価を。このシーンで攻撃を行いファンブルした場合、5D6点の実ダメージを受ける。",
236
- "【秘密暴露】\n隠しておきたい秘密を小鳥が囀り、リスが囁く。登場している全ての紡ぎ手、異形、伽藍は隠しておきたい秘密(そのキャラクターの主観で良い)ひとつを明らかにする。さもなければ、10D6点の実ダメージを受ける。このダメージは軽減も移し替えも出来ない。",
237
- "【荒廃の王】\n気がつくと全てのキャラクターは、虚ろの荒野の荒廃の王(『MM』p.212)の身体の飢えにいる。全てのキャラクターはその虚無に巻き込まれ、5D6点の実ダメージを受ける。このダメージは軽減も移し替えも出来ない。荒廃の王があなたたちにどのような影響をもたらすかはGMの任意とせよ。",
238
- ]
239
- ),
240
- "OT2" => MMTable.new(
241
- "兆候表ver2.0",
242
- [
243
- "【信念の喪失】\nあなたの精神があなたの過去を否定する。あなたは[出自]とそれにまつわる記憶をそのシーン中喪失する。特徴の効果は失われないが、其れを認識することは出来ない。",
244
- "【昏倒】\nもうあなたは逸脱の重さに耐えることは出来ない。これが世界に刃向かった報いだ。あなたは[戦闘不能]になる。すでに[戦闘不能]なら、[死亡]する。",
245
- "【肉体の崩壊】\n硝子の砕ける音がして、あなたも砕けていく。あなたは2D6+キャラクターレベル点の【HP】を失う。",
246
- "【放心】\nあなたの心に大きな衝動が襲いかかる。心は伽藍に向かって歪み、瞳は色のない悪夢を見る。あなたはバッドステータスの[放心]を受ける。",
247
- "【重圧】\nどこからかあなたを嘲笑する声がする。「こうして御標に背いた愚か者は、鎖に繋がれて責め苦を受けるのです」。あなたはバッドステータスの[重圧]を受ける。",
248
- "【現在の喪失】\n現在持っているパートナーをひとつ喪失する。あなたは何かを失ったことには気がつくが、その人物のことは思い出せない。この効果はその演目の間、継続する。もちろん、新しく人間関係を構築することも出来ない。",
249
- "【マヒ】\n異形化した肉体の変異に、魂が耐えられない。身体がしびれ、震えが止まらない。あなたはバッドステータスの[マヒ]を受ける。",
250
- "【邪毒】\n意識の深いところで異形化が進行し、あなたの肉体を蝕みはじめる。あなたはバッドステータスの[邪毒]5を受ける。",
251
- "【色彩の喪失】\nあなたの身体から色が消えて曇白へと近付いてゆく。服や化粧などで隠すことは出来るが、ばれれば異端尋問は免れまい。あなたの剥離値を+1D6する。(この効果では兆候表を振らない)",
252
- "【理由の喪失】\nあなたの精神があなたの現在を否定する。あなたは[境遇]とそれにまつわる記憶をそのシーン中喪失する。特徴の効果は失われないが、其れを認識することはできない。",
253
- "【存在の喪失】\nふいに、煙のようにあなたの姿がかき消えた。あなたの存在は一瞬、この世界から喪失する。あなたの剥離値を+1D6する。(この効果では兆候表を振らない)",
254
- "【逸脱の対価】\n逸脱能力を用いた結果この表を振ることになった場合にのみ適用する(そうでないなら振り直し)。この表を振る原因となった逸脱能力はこのラウンド(戦闘中でないならシーン)中はもはや使用できない。",
255
- "【逸脱の重責】\n世界から逸脱した結果、肉体が急激に異形化し身体を苛む。[上昇した剥離値×10]点の【HP】を失う。",
256
- "【急激な異形化】\n身体の一部(耳、指、瞳)などが歪んだ獣のそれになる。しかし、そのことはあなたの力ともなる。【HP】を(キャラクターレベル)D6点回復する(回復できない状態でも回復する)。あなたの剥離値を+2する(この効果では兆候表を振らない)。",
257
- "【精神の崩壊】\n身体が異形化し、世界から剥離していく。あなたの存在はぼやけてやがて消えていく。魂すらも。あなたは2D6+キャラクターレベル点の【MP】を失う。",
258
- "【逸脱の呪い】\n逸脱能力を用いた結果この表を振ることになった場合にのみ適用する(そうでないなら振り直し)。この表を振る原因となった逸脱能力は、この演目の間あなたが使用する場合、剥離値の上昇を2倍に数える。",
259
- "【剥離の伝播】\n世界の歪みは広がり、拡散し、誰も逃れられない。あなたの剥離値が、シーンに登場しているPCで最も剥離値の高いPCと同じになる。あなたが最も高いなら、最も低いPCの剥離値があなたと同じになる(複数登場している場合はランダムに選ぶこと)。",
260
- "【運命の恩寵】\n恩寵、あるいは悲劇への対価か。あなたは逸脱能力をその演目中に限り、更に一種類使用できるようになる(任意に選択せよ)。選択した逸脱能力の剥離値上昇は+1される。",
261
- ]
262
- ),
263
- "DTO" => MMTable.new(
264
- "歪み表(野外)",
265
- [
266
- "【死の蔓延】\n木は枯れて奇っ怪な姿になり、花はしおれる。大気は淀んだ腐敗臭を放ち、岩はねじくれる。すべてのものが死の気配に包まれる",
267
- "【歪曲御標】\n歪んだ御標が下される。歪み表(『MM』P263)を振ること。",
268
- "【季節変容】\n季節が突如として変化する。1D6し、1なら春、2なら夏、3なら秋、4なら冬、5なら四季が狂ったように変動し、6ならGMの任意とせよ。急激な季節の変化は、自然と人々の健康を痛めつける。",
269
- "【ほつれ】\n世界がひび割れ、ほつれが現出する。ほつれに触れたものは虚無に飲み込まれ、帰ってくることはない。",
270
- "【異形化】\n周囲の動物たちが歪みによって異形と化し、襲撃してくる。異形の群れ(『IZ』P237)×1D6体と戦闘になっても良い。",
271
- "【凍結世界】\n気温が異様に低下し、すべてのものが凍結する。また、凍結した世界の中で戦闘する全てのキャラクターは、防御判定にファンブルした場合狼狽を受ける。",
272
- "【天候暴走】\n大嵐、竜巻、吹雪、酷暑などの異常気象が発生する。船は木の葉のように揺れ、獣は恐怖に騒ぐ。このシーン中に行うすべての移動はその距離が半減する。",
273
- "【天の怒り】\n歪みによってあり得ないほどの異常気象が発生する。全てを吹き飛ばす風が吹き、雷鳴が唸る。このシーン中、あらゆるキャラクターは飛行状態になることは出来ない。",
274
- "【迷いの森】\n周囲の景色や地形が地図や知識にあるものと全く違っている。どこかに向かっているなら【知覚】難易度12の判定に失敗した場合、迷った結果として【MP】2D6点を失う",
275
- "【死の世界】\n世界は異様に美しくなる。水には一匹の魚もなく、藪には一匹の虫もいない。空に鳥は飛ばない。不気味な静寂が世界を包む。",
276
- "【影絵芝居】\nそこかしこの暗闇から、紡ぎ手たちの(あるいは登場するNPCの)不吉な運命を暗示する歌声が聞こえてくる。それは異形の声や虚無の軋みの音、あるいは歪みの幻影かもしれない。",
277
- "【色彩浸食】\n世界が漆黒と曇白に塗り分けられる。シーン内に登場するあらゆる無生物と生物は、白と黒のモノトーンの存在になる。紡ぎ手は【縫製】難易度8の判定に成功すれば、この影響を受けない。",
278
- "【濃霧】\nたとえそこが地底であっても、曇白の濃霧があたりを包み込む。手を伸ばしたら、その指先が見えないほどだ。濃霧内での攻撃は、敵との距離を2倍に計算する。",
279
- "【異形出現】\nほつれの中から、おぞましく人を襲うことしか考えぬ異形の群れが現れ、恐怖のうちに居合わせた人々を襲撃する。GMが望むなら、異形の群れ(『IZ』P237)×1D6と戦闘を行わせても良い。また、GMは状況に応じて別のエネミーを選択しても良い。",
280
- "【鉱脈露出】\nあり得ないほどの豊富な鉱脈が露出する。黄金、宝石、海ならば珊瑚などだ。人々は目の色を変えて鉱脈に群がる。それによってもたらされる混乱についてはGMが決定せよ。",
281
- "【虚無現出】\nほつれの中から虚無がしみ出す。シーンに登場しているエキストラは虫一匹にいたるまで消滅し、二度と現れない。",
282
- "【汚染世界】\n水は毒を含み、大気は有毒の霧に包まれる。登場している全てのキャラクターは【体力】難易度10の判定を行い、失敗すると邪毒5を受ける。エキストラがどうなるかはGMが決定するが、治療されなければ早晩死亡するだろう。",
283
- "【地域消滅】\n演目の舞台となっている地域そのものが消えてなくなる。影響下にあるすべてのキャラクター(伽藍を含む)は【縫製】難易度10の判定に成功すれば脱出できる。失敗した場合即座に死亡する。エキストラは無条件で死亡する。",
284
- ]
285
- ),
286
- "DTS" => MMTable.new(
287
- "歪み表(海)",
288
- [
289
- "【海域汚染】\n赤潮が発生する。あるいは海水そのものが毒に変わる。登場している全てのキャラクターは【体力】難易度10の判定を行い、失敗すると邪毒5を受ける。エキストラがどうなるかはGMが決定するが、治療されなければ早晩死亡するだろう。",
290
- "【色彩浸食】\n世界が漆黒と曇白に塗り分けられる。シーン内に登場するあらゆる無生物と生物は、白と黒のモノトーンの存在になる。紡ぎ手は【縫製】難易度8の判定に成功すれば、この影響を受けない。",
291
- "【異形の海】\n海の生物や海守りたちが異形化する。戦闘となる。GMは適切と思われるエネミーを配置すること。",
292
- "【海底火山】\n海底火山が噴火する。海水は熱されて周囲の生物は次々と死滅し、海守りたちも苦しむ。海からのしぶきは熱湯となる。具体的な効果はGMが決定せよ。",
293
- "【歪曲御標】\n歪んだ御標が下される。歪み表(『MM』P263)を振ること。",
294
- "【曇白の海】\n海の水が曇白になる。虚無への甘い誘いに満ちた海に触れたものは、考えることをやめ、意思なき人形のようになり、いずれ溶けて消滅してしまう。この歪みが1D6シーン(または1D6日)以内に消えない場合、すべてのキャラクターは(PCも含め)エキストラとなって二度と自我を取り戻すことはない。GMは何らかの理由で効果を受けないキャラクターを設定しても良い。",
295
- "【黒い海】\n海の水が漆黒に染まっていく。海の中にいると一寸先も見えない、[種別:射撃]の武器による攻撃のファンブル値を+5する。",
296
- "【壁面崩壊】\n海の壁面が崩壊し、ヒビが入る。ヒビを何とかすることができなければ、水圧によって1D6シーン(または1D6時間)後には崩壊し、海があふれ出すことになる。",
297
- "【固形化】\n海の水が固形化する。その中にいるものは氷で硬められたように身動きが取れず、ただ死を待つのみ。エキストラは完全に動けなくなる。エネミーやPCは等しく重圧&捕縛を受ける。この効果は歪みが引き受けられるまでの間、毎シーン&毎ラウンドの開始後に再度適用される。",
298
- "【氾濫】\n海の水が急激に増幅し、水槽からあふれ出す。シーンに登場している海守りのクラスを持たないキャラクターの【HP】は即座に0になる。ただし《大河の導き》の効果を受けているキャラクターと《ミズモノ》を取得しているキャラクターは3D6点の【HP】を消費することでこの効果を打ち消せる。",
299
- "【塩の雪】\n空から雪のように塩が降ってくる。人々は初めは喜ぶが、降り続ける雪は田畑を荒らし、人の身にも害を及ぼす。それでも塩は降り止まない。",
300
- "【真水化】\n海が真水になる。人間の中には喜ぶ者もいるが、海の生物たちにとっては死を意味する。",
301
- "【海流消失】\n海の海流が消える。海守りの力を持ってしても潮を起こすことはできない。よどんた海水は腐敗し、海の恩恵を受けて暮らす者たちは次々に病にかかる。",
302
- "【崩れる世界】\n海の周囲(海の内部ではなく、その外部)で爆発的にほつれが広がっていく。その規模はGMが決定するが、遠からず住人たちは死を迎えることになるだろう。",
303
- "【酒の海】\n海の水が酒になる。水を飲んだすべての者は酔っ払い理性を失う。その様はまるで暗黒期に滅亡した“怠惰の古都”を彷彿とさせる。",
304
- "【冷たき海】\n海の水が魂を凍らせるような冷たさになる。水に触れた者は暗く排他的で疑心暗鬼になり、互いを憎悪するようになる。また、全てのキャラクターは海水に触れている限り、毎シーン【MP】を2D6点失う。",
305
- "【大渦巻き】\n巨大な大渦が出現する。渦の中心は虚無に通じており、海守りの力を持ってしても渦を消すことはできない。海中にいる全てのキャラクターは2D6を振り、出た目に等しい【HP】を失う。ただし出目が2の場合、即座に【HP】が0となる。",
306
- "【海の終焉】\n海を維持している生命の力そのものが消える。水は鎖、魚はしに、波は薙ぐ。あらゆる生命は死ぬ。",
307
- ]
308
- ),
309
- "EDT" => DiceTable::Table.new(
310
- "永劫消失表",
311
- "2D6",
312
- [
313
- "【無慈悲な現実】\n願いも希望も叶いはしない。伽藍を倒すことができた、それが精一杯の、あなたたちに許された幸福だったのだ。意識が、虚無へと呑まれ消えていく……。\n> ダイスの後振りは行なえず、伽藍となる",
314
- "【命の消失】\n虚無はあなたの命を飲み込んでいった。身体が糸の切れた操り人形のように崩折れ、地面へと倒れ伏す。これが、あなたの人生の終わりなのだろうか………\n> あなたは死亡する。PCとして生き続けることを望む場合、キャラクターの成長の際にクラス:屍人(『TM』P90)を取得すること。",
315
- "【魂の消失】\nあなたの心に虚無が忍び寄る。まったく虚ろでからっぽな絶望。まだ、あなたは伽藍になったりなどしない。まだ……今は。\n> 【精神力】を-[演者レベル]D6する(下限値1)",
316
- "【肉体の消失】\n伽藍に捥がれたか、ほつれに呑まれたか。すべてを消失させる虚無はあなたの身体をも食らっていった。肉体の一部を失いつつも、あなたは辛うじて命を繋ぐことができたのだ。\n> 【耐久値】を-[演者レベル]D6する(下限値1)",
317
- "【思い人の消失】\n大切な誰かがいた。愛か憎悪か、あなたの人生に刻まれた無二の存在だ。だが、思いのすべては虚無に呑まれて消えてしまった。例え相手の顔を覚えていることができたとしても、胸焦がす思いはもうないのだ。\n> 固定化しているパートナーからひとりを選択し消失する。演目中に喪失した固定化しているパートナーがいる場合は、優先的に代償とすること。",
318
- "【境遇の消失】\nなぜ紡ぎ手となったのか……大切ななにかがあったはずだ。自分の人生を賭けるような、大切な、“なにか”が。けれど、もう思い出すことはできない。二度と、思い出せないだろう。\n> 境遇を消失する(特性も使用不可)",
319
- "【出自の消失】\nあなたがどこから来たのか、何者であったのか。故郷や家族の思い出が虚無の向こうに消えていく。もはや永久に、思い出すことはできないだろう。\n> 出自を消失する(特性も使用不可)",
320
- "【虚無の爪痕】\n四肢に激痛が走った。あなたの身体には虚無の爪痕がくっきりと残り、消えることなく身体を蝕み続けるだろう。\n> 【行動値】を-5する(下限値1)",
321
- "【虚無の浸食】\n鼓動が不吉なリズムを刻む。身体が、魂が虚無に侵され消え失せてしまうような恐ろしい感覚。たとえ目に見えずとも、着実にあなたは虚無へ近づいている……。\n> アフタープレイで基本剥離値を+3する(上限値9)。代償の支払いが可能であるかは剥離チェック時に確定すること。",
322
- "【異形化の発現】\nあなたの身体に禍々しい、色なき変容が現れた。ついに異形化がはじまったのだ。人々は恐れの混じった目で、君を石持て追うだろう。\n> あなたは異形となる。PCとして生き続けることを望む場合、キャラクター成長の際にクラス:異形(『MM』P116)を取得すること。",
323
- "【一念の奇跡】\n奇跡は起きた。想いが神へと届いたか、それとも紡ぎ手の一念か、その身のなにを失うこともなく、あなたはこの戦いを終えることを許されたのだ。\n> 代償は発生しない",
324
- ]
325
- ),
326
- "DTM" => MMTable.new(
327
- "歪み表(館・城)",
328
- [
329
- "【ほつれ】\n世界がひび割れ、ほつれが現出する。ほつれに触れたものは虚無に飲み込まれ、帰ってくることはない。",
330
- "【色彩浸食】\n世界が漆黒と曇白とに塗り分けられる。シーン内に存在するあらゆる無生物と生物は、白と黒のトーンの存在となる。この効果は歪みをもたらした異形の死によって解除される。",
331
- "【狂える色時計】\n柱時計や時計塔が狂ったように時を刻む。歪みを引き受けなかった場合、シーン内に存在するあらゆる無生物と生物は2D6年の歳月が過ぎたものとして振る舞う。生物なら老化する。",
332
- "【凶月】\n館の窓から曇白の月が見える。禍々しい月の光に照らされた館にいるすべての人物は、心を虚無に囚われ自ら死へと向かいはじめる。",
333
- "【無限図書館】\nどこまでも続く図書館。そこにある本が、知識への誘惑を囁いてくる。【意志】難易度14の判定に失敗した場合、1D6時間を浪費し、同じだけの【MP】を失う。",
334
- "【曇白の部屋】\n曇白の部屋に閉じ込められる。心が朽ち始め、異形へと近づいていく。この歪みが1D6シーン(または1D6時間)以内に消えない場合、すべてのキャラクターは(PCも含め)エキストラとなって二度と自我を取り戻すことはない。",
335
- "【悪しき鏡】\n鏡台や手鏡、鏡の部屋などから、鏡の中の自分がにやにやとこっちを見ている。すべての紡ぎ手の行なう判定のファンブル値を+3する。",
336
- "【歪みの音色】\n館内に人を不安にさせる音楽が響きはじめる。心はかき乱され、自分以外の誰もが化け物の姿に見えはじめる。【縫製】難易度8の判定に失敗したキャラクターは即座に【MP】が0になる。",
337
- "【暗闇の回廊】\n光をも塗りつぶす漆黒の闇が満ち、蝋燭の灯がすべて消える。何らかの手段で魔法的な光をPCたちが有していない限り、射撃攻撃の達成値は-5される。何らかの暗視能力や強力な嗅覚などを持つ、とGMが判断したキャラクターはこの効果を受けない。",
338
- "【動く植物】\n屋敷の植物、鳥や薔薇などが動き出し、襲いかかってくる。【反射】難易度12の判定に失敗すると、〈斬〉5D6のダメージを受ける。",
339
- "【黒い影】\n歪みによって、館に(あるいは館の建っている場所に)住んでいた過去の人物たちが影となって蘇り、館内を徘徊する。【反射】難易度10の判定に失敗したPCは発見され、【MP】4D6点となる。",
340
- "【凶暴な獣】\n館に飼われている猛獣や、屋敷に住み着くネズミや鳥などが異形化し襲いかかってくる。GMは適切なエネミーを登場させ、戦闘を行なってもよい。",
341
- "【牙持つ部屋】\n部屋が歪み、入ってきたものを食らおうと牙を剥く。室内にいるすべてのキャラクターは2D6を振り、出た目に等しい【HP】を失う。ただし出目が2の場合、即座に【HP】が0となる。",
342
- "【灼熱の暖炉】\n暖炉から炎が噴き出し襲いかかる。登場しているキャラクターは【反射】難易度12の判定を行ない、失敗すると【HP】4D6点を失う。",
343
- "【無限回廊】\n果てしなく続く通廊に迷い込む。どこまで行っても同じ部屋だ。1D6時間【あるいはGMが定めた時間】を浪費し、同じだけの【HP】を失う。",
344
- "【奇妙な人形】\n登場キャラクターと同じ顔の人形かからくりが現われ話しかけてくる。幻影か、そのように作られているのかは歪みを引き受けるまでわからない。登場しているPCはシーン終了時に【MP】を2D6点失う。",
345
- "【動く家具】\n椅子や戸棚、シャンデリアなどの家具、あるいはからくりが歪みの影響で動き襲いかかってくる。GMは任意のエネミーを登場させ、戦闘を行なってもよい。",
346
- "【炎上】\n館が炎上をはじめる。ここに留まっていれば、問答無用で死ぬことになるだろう。",
347
- ]
348
- ),
349
- }.freeze
127
+ class << self
128
+ private
129
+
130
+ def translate_tables(locale)
131
+ {
132
+ "ET" => DiceTable::D66GridTable.from_i18n("MonotoneMuseum.table.ET", locale),
133
+ "ET2" => DiceTable::D66GridTable.from_i18n("MonotoneMuseum.table.ET2", locale),
134
+ "OT" => DiceTable::Table.from_i18n("MonotoneMuseum.table.OT", locale),
135
+ "DT" => DiceTable::Table.from_i18n("MonotoneMuseum.table.DT", locale),
136
+ "DT2" => MMTable.from_i18n("MonotoneMuseum.table.DT2", locale),
137
+ "WDT" => DiceTable::Table.from_i18n("MonotoneMuseum.table.WDT", locale),
138
+ "WDT2" => MMTable.from_i18n("MonotoneMuseum.table.WDT2", locale),
139
+ "OT2" => MMTable.from_i18n("MonotoneMuseum.table.OT2", locale),
140
+ "DTO" => MMTable.from_i18n("MonotoneMuseum.table.DTO", locale),
141
+ "DTS" => MMTable.from_i18n("MonotoneMuseum.table.DTS", locale),
142
+ "EDT" => DiceTable::Table.from_i18n("MonotoneMuseum.table.EDT", locale),
143
+ "DTM" => MMTable.from_i18n("MonotoneMuseum.table.DTM", locale),
144
+ }
145
+ end
146
+ end
147
+
148
+ TABLES = translate_tables(:ja_jp).freeze
350
149
 
351
- register_prefix(['\d+D6.*'] + TABLES.keys)
150
+ register_prefix('\d+D6.*', TABLES.keys)
352
151
  end
353
152
  end
354
153
  end
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bcdice/game_system/MonotoneMuseum"
4
+
3
5
  module BCDice
4
6
  module GameSystem
5
- class MonotoneMuseum_Korean < Base
7
+ class MonotoneMuseum_Korean < MonotoneMuseum
6
8
  # ゲームシステムの識別子
7
9
  ID = 'MonotoneMuseum:Korean'
8
10
 
@@ -21,284 +23,22 @@ module BCDice
21
23
    자동성공, 자동실패, 성공, 실패를 자동표기합니다.
22
24
  ・각종표
23
25
   ・감정표 ET/감정표 2.0 ET2
24
-  ・징조표  OT
25
-  ・일그러짐표 DT/일그러짐표ver2.0 DT2
26
-  ・세계왜곡표  WDT
26
+  ・징조표 OT/兆候表ver2.0 OT2
27
+  ・일그러짐표 DT/일그러짐표ver2.0 DT2/歪み表(野外) DTO/歪み表(海) DTS/歪み表(館・城) DTM
28
+  ・세계왜곡표  WDT/世界歪曲表2.0 WDT2
29
+  ・永劫消失表 EDT
27
30
  ・D66다이스 있음
28
31
  INFO_MESSAGE_TEXT
29
32
 
30
- register_prefix(['2D6.*', 'ET', 'ET2', 'OT', 'DT', 'DT2', 'WDT'])
33
+ register_prefix_from_super_class()
31
34
 
32
35
  def initialize(command)
33
36
  super(command)
34
37
 
35
- @enabled_d66 = true
36
- @d66_sort_type = D66SortType::NO_SORT
37
- @sort_add_dice = true
38
- end
39
-
40
- def eval_game_system_specific_command(command)
41
- result = checkRoll(command)
42
- return result unless result.empty?
43
-
44
- debug("판정롤이 아닙니다")
45
-
46
- debug("각종표로써 처리")
47
- return rollTableCommand(command)
48
- end
49
-
50
- def checkRoll(string)
51
- output = ''
52
-
53
- crit = 12
54
- fumble = 2
55
-
56
- return output unless /^2D6([\+\-\d]*)>=(\d+)(\[(\d+)?(,(\d+))?\])?$/i =~ string
57
-
58
- modText = Regexp.last_match(1)
59
- target = Regexp.last_match(2).to_i
60
- crit = Regexp.last_match(4).to_i if Regexp.last_match(4)
61
- fumble = Regexp.last_match(6).to_i if Regexp.last_match(6)
62
-
63
- mod = 0
64
- mod = ArithmeticEvaluator.eval(modText) unless modText.nil?
65
-
66
- dice_list = @randomizer.roll_barabara(2, 6).sort
67
- total = dice_list.sum()
68
- dice_str = dice_list.join(",")
69
- total_n = total + mod.to_i
70
-
71
- output = "#{total}[#{dice_str}]+#{mod} → #{total_n}"
72
-
73
- if total >= crit
74
- output += " > 자동 성공"
75
- elsif total <= fumble
76
- output += " > 자동 실패"
77
- elsif total_n >= target
78
- output += " > 성공"
79
- else
80
- output += " > 실패"
81
- end
82
-
83
- output = "(#{string}) > #{output}"
84
-
85
- return output
86
- end
87
-
88
- def rollTableCommand(command)
89
- output = ''
90
- type = ""
91
-
92
- case command
93
- when /ET2/i
94
- type = "감정표2.0"
95
- output, total_n = mm_emotion_table_ver2()
96
- when /ET/i
97
- type = "감정표"
98
- output, total_n = mm_emotion_table()
99
- when /OT/i
100
- type = "징조표"
101
- output, total_n = mm_omens_table()
102
- when /DT2/i
103
- type = "일그러짐표ver2.0"
104
- output, total_n = mm_distortion_table_ver2()
105
- when /WDT/i
106
- type = "세계왜곡표"
107
- output, total_n = mm_world_distortion_table()
108
- when /DT/i
109
- type = "징조표"
110
- output, total_n = mm_distortion_table()
111
- end
112
-
113
- output = "#{type}(#{total_n}) > #{output}" if output != ''
114
-
115
- return output
38
+ @locale = :ko_kr
116
39
  end
117
40
 
118
- # 감정표(d66)[ET]
119
- def mm_emotion_table
120
- table = [
121
- "【신뢰(信頼)】",
122
- "【유위(有為)】",
123
- "【우정(友情)】",
124
- "【순애(純愛)】",
125
- "【자애(慈愛)】",
126
- "【동경(憧れ)】",
127
- "【공포(恐怖)】",
128
- "【위협(脅威)】",
129
- "【증오(憎悪)】",
130
- "【불쾌감(不快感)】",
131
- "【식상(食傷)】",
132
- "【혐오(嫌悪)】",
133
- "【호의(好意)】",
134
- "【비호(庇護)】",
135
- "【유지(遺志)】",
136
- "【회고(懐旧)】",
137
- "【진력(尽力)】",
138
- "【충성(忠誠)】",
139
- "【불안(不安)】",
140
- "【모멸(侮蔑)】",
141
- "【질투(嫉妬)】",
142
- "【열등감(劣等感)】",
143
- "【우월감(優越感)】",
144
- "【연민(憐憫)】",
145
- "【존경(尊敬)】",
146
- "【감복(感服)】",
147
- "【모정(慕情)】",
148
- "【동정(同情)】",
149
- "【심취(傾倒)】",
150
- "【호기심(好奇心)】",
151
- "【편애(偏愛)】",
152
- "【집착(執着)】",
153
- "【회개(悔悟)】",
154
- "【경계심(警戒心)】",
155
- "【적개심(敵愾心)】",
156
- "【망각(忘却)】",
157
- ]
158
- return get_table_by_d66(table)
159
- end
160
-
161
- # 감정표2.0(d66)[ET2]
162
- def mm_emotion_table_ver2
163
- table = [
164
- "【플레이어의 임의】",
165
- "【동일시(同一視)】",
166
- "【연대감(連帯感)】",
167
- "【행복감(幸福感)】",
168
- "【친근감(親近感)】",
169
- "【성의(誠意)】",
170
- "【회고(懐旧)】",
171
- "【동향(同郷)】",
172
- "【동지(同志)】",
173
- "【악연(くされ縁)】",
174
- "【기대(期待)】",
175
- "【호적수(好敵手)】",
176
- "【빌려(借り)】",
177
- "【대여(貸し)】",
178
- "【헌신(献身)】",
179
- "【의형제(義兄弟)】",
180
- "【어린 아이(幼子)】",
181
- "【친애(親愛)】",
182
- "【소외감(疎外感)】",
183
- "【치욕(恥辱)】",
184
- "【연민(憐憫)】",
185
- "【격의(隔意)】",
186
- "【혐오(嫌悪)】",
187
- "【시의심(猜疑心)】",
188
- "【염기(厭気)】",
189
- "【불신감(不信感)】",
190
- "【원한(怨念)】",
191
- "【비애(悲哀)】",
192
- "【악의(悪意)】",
193
- "【살의(殺意)】",
194
- "【패배감(敗北感)】",
195
- "【헛수고감(徒労感)】",
196
- "【뒷 마음(黒い泥)】",
197
- "【분만(憤懣)】",
198
- "【무관심(無関心)】",
199
- "【플레이어의 임의】",
200
- ]
201
- return get_table_by_d66(table)
202
- end
203
-
204
- # 징조표(2d6)[OT]
205
- def mm_omens_table
206
- table = [
207
- "【신념의 상실】\n[출신]을 상실한다. 특징은 없어지지 않는다.",
208
- "【졸도】\n[전투불능]이 된다.",
209
- "【육체의 붕괴】\n2D6 점의 HP를 잃는다.",
210
- "【방심】\n배드 스테이터스[방심]을 받는다.",
211
- "【중압】\n배드 스테이터스[중압]을 받는다.",
212
- "【현재의 상실】\n현재 가지고 있는 파트너 한 명을 상실한다.",
213
- "【마비】\n배드 스테이터스[마비]를 받는다.",
214
- "【사독】\n배드 스테이터스[사독] 5를 받는다.",
215
- "【색채의 상실】\n칠흑、묵백、투명화……. 그 두려운 색채의 상실은 틀림없는 이형화의 편린이다.",
216
- "【이유의 상실】\n[처지]를 상실한다. 특징은 없어지지 않는다.",
217
- "【존재의 상실】\n당신의 존재는 일순간, 이 세계로부터 소실한다.",
218
- ]
219
-
220
- return get_table_by_2d6(table)
221
- end
222
-
223
- # 일그러짐표(2D6)[DT]
224
- def mm_distortion_table
225
- table = [
226
- "【세계소실】\n연극의 무대가 모두 없어진다. 무대에 남아있는 것은 너희들과 이형, 가람뿐이다. 클라이맥스 페이즈로.",
227
- "【생명감소】\n연극의 무대에 있는 거리나 나라로부터 동물이나 인간의 모습이 적어진다. 특히 아이들의 모습을 볼 수 없다.",
228
- "【공간소실】\n연극의 무대 일부(건물 한 개 동 정도)가 소실한다.",
229
- "【날씨악화】\n격렬한 뇌우에 휩쓸린다.",
230
- "【생명번무】\n씬 내에 식물이 폭발적으로 증가하고, 건물은 가시나무의 가시와 덩굴풀에 파묻힌다.",
231
- "【색채상실】\n세계로부터 색채가 없어진다. 방적공(PC)이외의 사람들은 세계의 모든 것이 모노크롬처럼 되었다고 인식한다.",
232
- "【신권음악】\n아름답지만 불안을 느끼는 소리가 흐른다. 소리는 사람들에게 스트레스를 주어 거리의 분위기가 악화하고 있다.",
233
- "【경면세계】\n연극의 무대에 존재하는 모든 문자는 거울처럼 역전된다.",
234
- "【시공왜곡】\n밤낮이 역전한다. 낮이면 밤이 되고, 밤이면 아침이 된다.",
235
- "【존재수정】\nGM이 임의로 결정한 NPC의 성별이나 연령, 외관이 변화한다.",
236
- "【인체소실】\n씬 플레이어의 파트너로 되어있는 NPC가 소실한다. 어느 NPC가 소실되는지는 GM이 결정한다.",
237
- ]
238
- return get_table_by_2d6(table)
239
- end
240
-
241
- # 일그러짐표ver2.0(d66)[DT2]
242
- def mm_distortion_table_ver2
243
- table = [
244
- "【색채침식】\n씬 내에 존재하는 모든 무생물과 생물은 흰색과 흑백으로 이루어진 모노톤의 존재가 된다. 방적공은 【봉제】 난이도 8의 판정에 성공하면 이 영향을 받지 않는다. 이 효과는 일그러짐을 가져온 이형의 죽음에 의해서 해제된다.",
245
- "【색채침식】\n씬 내에 존재하는 모든 무생물과 생물은 흰색과 흑백으로 이루어진 모노톤의 존재가 된다. 방적공은 【봉제】 난이도 8의 판정에 성공하면 이 영향을 받지 않는다. 이 효과는 일그러짐을 가져온 이형의 죽음에 의해서 해제된다.",
246
- "【허무출현】\n일그러짐 중에서 허무가 배어 나온다. 씬에 등장하고 있는 엑스트라는 벌레 한 마리에 이르기까지 소멸해서 두 번 다시 나타나지 않는다.",
247
- "【허무출현】\n일그러짐 중에서 허무가 배어 나온다. 씬에 등장하고 있는 엑스트라는 벌레 한 마리에 이르기까지 소멸해서 두 번 다시 나타나지 않는다.",
248
- "【계절변용】\n계절이 갑자기 변화한다. 1D6을 굴려서 1이라면 봄, 2라면 여름, 3이라면 가을, 4라면 겨울, 5라면 플레이하고 있는 현재의 계절, 6이라면 GM의 임의대로 변한다.",
249
- "【계절변용】\n계절이 갑자기 변화한다. 1D6을 굴려서 1이라면 봄, 2라면 여름, 3이라면 가을, 4라면 겨울, 5라면 플레이하고 있는 현재의 계절, 6이라면 GM의 임의대로 변한다.",
250
- "【일그러짐】\n세계에 금이 가서 일그러짐이 출현한다. 일그러짐에 접한 것은 허무에 삼켜져 돌아올 일은 없다.",
251
- "【일그러짐】\n세계에 금이 가서 일그러짐이 출현한다. 일그러짐에 접한 것은 허무에 삼켜져 돌아올 일은 없다.",
252
- "【이형화】\n씬 내에 모든 엑스트라는 어떠한 이형화를 받는다. 이것을 치유 할 방법은 없다. 이형의 무리(『인카르챤드』 P.237)×1D6와 전투시켜도 좋다.",
253
- "【이형화】\n씬 내에 모든 엑스트라는 어떠한 이형화를 받는다. 이것을 치유 할 방법은 없다. 이형의 무리(『인카르챤드』 P.237)×1D6와 전투시켜도 좋다.",
254
- "【죽음의 행진】\n사람들의 마음에 허무가 퍼져, 불안과 절망으로 채워져 간다. 피할 수 없는 공포로부터 피하려고 사람들은 스스로 혹은 무의식중에 죽음을 향해 행동을 시작한다.",
255
- "【죽음의 행진】\n사람들의 마음에 허무가 퍼져, 불안과 절망으로 채워져 간다. 피할 수 없는 공포로부터 피하려고 사람들은 스스로 혹은 무의식중에 죽음을 향해 행동을 시작한다.",
256
- "【시간가속】\n씬 내에 존재하는 모든 무생물과 생물은 2D6년만큼 시간이 가속한다. 생물이라면 노화한다. 방적공은 【봉제】 난이도 8의 판정에 성공하면 이 영향을 받지 않는다.",
257
- "【시간가속】\n씬 내에 존재하는 모든 무생물과 생물은 2D6년만큼 시간이 가속한다. 생물이라면 노화한다. 방적공은 【봉제】 난이도 8의 판정에 성공하면 이 영향을 받지 않는다.",
258
- "【시간역류】\n씬 내에 존재하는 모든 무생물과 생물은 2D6년만큼 시간이 역류한다. 생물이라면 젊어진다. 제조년/생년보다 앞으로 돌아왔을 때는 허무에 삼켜져서 소멸한다. 방적공은 【봉제】 난이도 8의 판정에 성공하면 이 영향을 받지 않는다.",
259
- "【시간역류】\n씬 내에 존재하는 모든 무생물과 생물은 2D6년만큼 시간이 역류한다. 생물이라면 젊어진다. 제조년/생년보다 앞으로 돌아왔을 때는 허무에 삼켜져서 소멸한다. 방적공은 【봉제】 난이도 8의 판정에 성공하면 이 영향을 받지 않는다.",
260
- "【재해도래】\n폭풍우, 화산분화, 홍수 등, 흐트러짐에 의해서 어지럽혀진 자연이 사람들에게 송곳니를 드러낸다.",
261
- "【재해도래】\n폭풍우, 화산분화, 홍수 등, 흐트러짐에 의해서 어지럽혀진 자연이 사람들에게 송곳니를 드러낸다.",
262
- "【인심황폐】\n일그러짐에 의해 초래된 불안과 공포는 사람들을 자포자기하게 한다.",
263
- "【인심황폐】\n일그러짐에 의해 초래된 불안과 공포는 사람들을 자포자기하게 한다.",
264
- "【평온무사】\n아무것도 일어나지 않는다. 방적공들은 등골이 오싹할 정도의 공포를 느낀다.",
265
- "【평온무사】\n아무것도 일어나지 않는다. 방적공들은 등골이 오싹할 정도의 공포를 느낀다.",
266
- "【역병만연】\n등장하고 있는 캐릭터는 【육체】 난이도 8의 판정을 하여 실패하면 [사독]5를 받는다. 병의 치료법의 유무 등에 대해서는 GM이 결정한다. 고민된다면 가람을 쓰러트리면 병도 소멸한다, 라고 하라.",
267
- "【역병만연】\n등장하고 있는 캐릭터는 【육체】 난이도 8의 판정을 하여 실패하면 [사독]5를 받는다. 병의 치료법의 유무 등에 대해서는 GM이 결정한다. 고민된다면 가람을 쓰러트리면 병도 소멸한다, 라고 하라.",
268
- "【이단심문】\n이단심문의 시기가 가깝다. PC들이 방적공인 것이 알려진다면, PC들도 화형대로 보내지게 될 것이다.",
269
- "【이단심문】\n이단심문의 시기가 가깝다. PC들이 방적공인 것이 알려진다면, PC들도 화형대로 보내지게 될 것이다.",
270
- "【일그러짐출현】\n흐트러짐의 파편으로부터 일그러짐이 나타나 사람들을 습격한다. 병마(『인카르챤드』 P.238)×2와 전투를 하게 해도 좋다. 또, 다른 이형이라도 좋다.",
271
- "【일그러짐출현】\n흐트러짐의 파편으로부터 일그러짐이 나타나 사람들을 습격한다. 병마(『인카르챤드』 P.238)×2와 전투를 하게 해도 좋다. 또, 다른 이형이라도 좋다.",
272
- "【악몽출현】\n씬 내의 모든 사람은 무서운 공포의 꿈을 꾼다. 마음 약한 사람들은 가람에 매달리던가, 이단자들을 화형에 처하는 것으로 이 꿈에서 벗어날 수 있을 거로 생각할 것이다.",
273
- "【악몽출현】\n씬 내의 모든 사람은 무서운 공포의 꿈을 꾼다. 마음 약한 사람들은 가람에 매달리던가, 이단자들을 화형에 처하는 것으로 이 꿈에서 벗어날 수 있을 거로 생각할 것이다.",
274
- "【쥐의 연회】\n다수의 쥐의 떼가 출현하여 곡물을 들쑤셔 먹고 역병을 흩뿌린다. 대형 쥐(『MM』 P.240)×1D6와 전투를 하게 해도 좋다.",
275
- "【쥐의 연회】\n다수의 쥐의 떼가 출현하여 곡물을 들쑤셔 먹고 역병을 흩뿌린다. 대형 쥐(『MM』 P.240)×1D6와 전투를 하게 해도 좋다.",
276
- "【왜곡길잡이표】\n삐뚤어진 길잡이표가 내려진다. 일그러짐표(『MM』 P.263)를 굴릴 것.",
277
- "【왜곡길잡이표】\n삐뚤어진 길잡이표가 내려진다. 일그러짐표(『MM』 P.263)를 굴릴 것.",
278
- "【지역소멸】\n연극의 무대가 되는 지역 그 자체가 사라져서 없어진다. 영향 아래에 있는 모든 캐릭터(가람을 포함한다)는 【봉제】 난이도 10의 판정에 성공하면 탈출할 수 있다. 실패했을 경우 그 즉시 사망한다. 엑스트라는 무조건 사망한다.",
279
- "【지역소멸】\n연극의 무대가 되는 지역 그 자체가 사라져서 없어진다. 영향 아래에 있는 모든 캐릭터(가람을 포함한다)는 【봉제】 난이도 10의 판정에 성공하면 탈출할 수 있다. 실패했을 경우 그 즉시 사망한다. 엑스트라는 무조건 사망한다.",
280
- ]
281
- return get_table_by_d66(table)
282
- end
283
-
284
- # 世界歪曲表(2D6)[WDT]
285
- def mm_world_distortion_table
286
- table = [
287
- "【소실】\n세계로부터 보스 캐릭터가 소거되어 소멸한다. 엔딩 페이즈로 직행.",
288
- "【자기희생】\n표를 굴린 PC의 파트너로 되어있는 NPC 중 1명이 사망한다. 표를 굴린 PC의 HP와 MP를 완전회복시킨다.",
289
- "【생명탄생】\n그대들은 대지 대신에 무엇인가의 생물의 내장 위에 서있다. 등장하고 있는 캐릭터 전원에게 [사독]5를 준다.",
290
- "【왜곡확대】\n씬에 등장하고 있는 방적공이 아닌 NPC 하나가 칠흑의 흉수(『MM』 P.240)로 변신한다.",
291
- "【폭주】\n“흐트러짐”이 대량으로 생겨나 씬에 등장하고 있는 모든 캐릭터의 박리치를 +1 한다.",
292
- "【환상세계】\n주위의 공간이 삐뚤어져 파괴적인 에너지가 충만하다. 다음에 행해지는 대미지 산출에 +5D6한다.",
293
- "【변조】\n오른쪽은 왼쪽으로, 빨강은 파랑으로, 위는 아래로, 일그러짐이 신체의 움직임을 방해한다. 등장하고 있는 캐릭터 전원에게 [낭패]를 준다.",
294
- "【공간소실】\n연극의 무대가 연기와도 같이 소실된다. 압도적인 상실감에 의해 등장하고 있는 캐릭터 전원에게 [방심]을 준다.",
295
- "【생명소실】\n다음 씬 이후, 엑스트라는 일절 등장할 수 없다. 현재의 씬의 엑스트라에 관해서는 GM이 결정한다.",
296
- "【자기사(自己死)】\n가장 박리치가 높은 PC 하나가 [전투불능]이 된다. 복수의 PC가 해당했을 때는 GM이 랜덤으로 결정한다.",
297
- "【세계사(世界死)】\n세계의 파멸. 난이도 12의 【봉제】 판정에 성공하면 파멸로부터 회피할 수 있다. 실패하면 행방불명이 된다. 엔딩 페이즈로 직행.",
298
- ]
299
-
300
- return get_table_by_2d6(table)
301
- end
41
+ TABLES = translate_tables(:ko_kr).freeze
302
42
  end
303
43
  end
304
44
  end