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
@@ -49,7 +49,6 @@ module BCDice
49
49
 
50
50
  @sort_add_dice = true
51
51
  @sort_barabara_dice = true
52
- @enabled_d66 = true
53
52
  @d66_sort_type = D66SortType::ASC
54
53
  end
55
54
 
@@ -929,10 +928,11 @@ module BCDice
929
928
  ),
930
929
  }.freeze
931
930
 
932
- register_prefix([
931
+ register_prefix(
933
932
  'DVT', 'DVTM', 'WP1T', 'WP2T', 'WP3T', 'WP4T',
934
933
  'KTM', 'BT', 'KHT', 'KMT', 'KST', 'KSYT', 'KKT', 'KSNT',
935
- ] + TABLES.keys)
934
+ TABLES.keys
935
+ )
936
936
  end
937
937
  end
938
938
  end
@@ -252,7 +252,7 @@ module BCDice
252
252
  ),
253
253
  }.freeze
254
254
 
255
- register_prefix(['K[AC]\d[-+\d]*', 'CTR'] + TABLES.keys)
255
+ register_prefix('K[AC]\d[-+\d]*', 'CTR', TABLES.keys)
256
256
  end
257
257
  end
258
258
  end
@@ -17,11 +17,11 @@ module BCDice
17
17
  ・判定
18
18
   JDx or JDx+y or JDx-y or JDx,z or JDx+y,z JDx-y,z
19
19
   (x=難易度、y=補正、z=ファンブル率(リスク))
20
- ・履歴表 (HST、HSTx) xに数字(1,2)で表を個別ロール
20
+ ・履歴表 (HST)
21
21
  ・願い事表 (-WT)
22
22
   死(DWT)、復讐(RWT)、勝利(VWT)、獲得(PWT)、支配(CWT)、繁栄(FWT)
23
23
   強化(IWT)、健康(HWT)、安全(SAWT)、長寿(LWT)、生(EWT)
24
- ・万能命名表 (NAME) xに数字(1,2,3)で表を個別ロール
24
+ ・万能命名表 (NAME, NAMEx) xに数字(1,2,3)で表を個別ロール
25
25
  ・サブプロット表 (-SPT)
26
26
   オカルト(OSPT)、家族(FSPT)、恋愛(LOSPT)、正義(JSPT)、修行(TSPT)
27
27
   笑い(BSPT)、意地悪(MASPT)、恨み(UMSPT)、人気(POSPT)、仕切り(PASPT)
@@ -45,7 +45,6 @@ module BCDice
45
45
  super(command)
46
46
 
47
47
  @sort_add_dice = true
48
- @enabled_d66 = true
49
48
  @d66_sort_type = D66SortType::ASC
50
49
  end
51
50
 
@@ -54,15 +53,18 @@ module BCDice
54
53
  return '' if target == '?'
55
54
  return '' unless cmp_op == :>=
56
55
 
57
- if dice_total <= 2
58
- " ファンブル(判定失敗。【視聴率】が20%減少)"
59
- elsif dice_total >= 12
60
- " スペシャル(判定成功。【視聴率】が10%増加)"
61
- elsif total >= target
62
- " 成功"
63
- else
64
- " > 失敗"
65
- end
56
+ result =
57
+ if dice_total <= 2
58
+ translate("KillDeathBusiness.fumble")
59
+ elsif dice_total >= 12
60
+ translate("KillDeathBusiness.special")
61
+ elsif total >= target
62
+ translate("success")
63
+ else
64
+ translate("failure")
65
+ end
66
+
67
+ return " > #{result}"
66
68
  end
67
69
 
68
70
  def eval_game_system_specific_command(command)
@@ -72,7 +74,7 @@ module BCDice
72
74
  case command
73
75
  when JUDGE_DICE_REG
74
76
  result = judgeDice(command)
75
- text = "判定#{result}"
77
+ text = translate("KillDeathBusiness.JD.name") + result
76
78
  return text
77
79
  end
78
80
 
@@ -84,7 +86,7 @@ module BCDice
84
86
 
85
87
  def judgeDice(command)
86
88
  unless command.match(JUDGE_DICE_REG)
87
- return '1'
89
+ return nil
88
90
  end
89
91
 
90
92
  target = Regexp.last_match(2).to_i
@@ -94,19 +96,19 @@ module BCDice
94
96
  result = ""
95
97
 
96
98
  if target > 12
97
- result += "【#{command}】 > 難易度が12以上はスペシャルのみ成功。\n"
99
+ result += "【#{command}】 > #{translate('KillDeathBusiness.JD.warning.over_target_number')}\n"
98
100
  target = 12
99
101
  end
100
102
 
101
103
  if target < 5
102
- result += "【#{command}】 > 難易度の最低は5。\n"
104
+ result += "【#{command}】 > #{translate('KillDeathBusiness.JD.warning.min_target_is_five')}\n"
103
105
  target = 5
104
106
  end
105
107
 
106
108
  if fumble < 2
107
109
  fumble = 2
108
110
  elsif fumble > 11
109
- result += "【#{command}】 > スペシャルを出すと必ず成功なので、ファンブル率は11とする。\n"
111
+ result += "【#{command}】 > #{translate('KillDeathBusiness.JD.warning.over_fumble')}\n"
110
112
  fumble = 11
111
113
  end
112
114
 
@@ -114,20 +116,25 @@ module BCDice
114
116
  number = dice_list.sum()
115
117
  diceText = dice_list.join(",")
116
118
 
117
- result += "【難易度#{target}、補正#{modify}、ファンブル率#{fumble}】 > 出目(#{diceText}) > "
119
+ result += [
120
+ translate("KillDeathBusiness.JD.options", target: target, modifier: modify, fumble: fumble),
121
+ " > ",
122
+ translate("KillDeathBusiness.JD.dice_value", dice_value: diceText),
123
+ " > ",
124
+ ].join("")
118
125
 
119
126
  if number == 2
120
- result += "出目が2なのでファンブル!(判定失敗。【視聴率】が20%減少)"
127
+ result += translate("KillDeathBusiness.JD.fumble")
121
128
  elsif number == 12
122
- result += "出目が12なのでスペシャル!(判定成功。【視聴率】が10%増加)"
129
+ result += translate("KillDeathBusiness.JD.special")
123
130
  elsif number <= fumble
124
- result += "出目がファンブル率以下なのでファンブル!(判定失敗。【視聴率】が20%減少)"
131
+ result += translate("KillDeathBusiness.JD.less_than_fumble_target")
125
132
  else
126
133
  number += modify
127
134
  if number < target
128
- result += "達成値#{number}、難易度未満なので判定失敗!"
135
+ result += translate("KillDeathBusiness.JD.failure", value: number)
129
136
  else
130
- result += "達成値#{number}、難易度以上なので判定成功!"
137
+ result += translate("KillDeathBusiness.JD.success", value: number)
131
138
  end
132
139
  end
133
140
 
@@ -135,57 +142,25 @@ module BCDice
135
142
  end
136
143
 
137
144
  def rollTableCommand(command)
138
- result = roll_tables(command, TABLES)
145
+ command = ALIAS[command] || command
146
+ result = roll_tables(command, self.class::TABLES)
139
147
  return result if result
140
148
 
141
149
  tableName = ""
142
150
  result = ""
143
151
 
144
152
  case command
145
-
146
- when "HST"
147
- tableName, result, number = getHistoryTableResult
148
-
149
153
  when /^ST(\d)?$/
150
154
  # シーン表
151
155
  type = Regexp.last_match(1).to_i
152
156
 
153
157
  tableName, result, number = getSceneTableResult(type)
154
-
155
- when /^.+WT$/i
156
- # 願い事表
157
- tableName, result, number = getWishTableResult(command)
158
-
159
158
  when /^NAME(\d)?$/
160
159
  # 万能命名表
161
160
  type = Regexp.last_match(1).to_i
162
161
  tableName, result, number = getNameTableResult(type)
163
-
164
- when /^.+SPT$/i
165
- # サブプロット表
166
- tableName, result, number = getSubprotTableResult(command)
167
-
168
- when "CMT"
169
- # CM表
170
- tableName, result, number = getCmTableResult()
171
-
172
- when "ERT"
173
- # 副作用蘇生表
174
- tableName, result, number = getErTableResult()
175
-
176
- when "WKT"
177
- # 一週間表
178
- tableName, result, number = getWKTableResult()
179
-
180
162
  when /^EST$/i, /^sErviceST$/i
181
163
  tableName, result, number = getServiceSceneTableResult()
182
-
183
- when "SOUL"
184
- tableName, result, number = getSoulTableResult()
185
-
186
- when "STGT"
187
- tableName, result, number = getSceneTelopGenericTableResult()
188
-
189
164
  when /^HSAT(\d)?$/
190
165
  type = Regexp.last_match(1).to_i
191
166
  tableName, result, number = getHairStylistAbuseTableResult(type)
@@ -197,117 +172,23 @@ module BCDice
197
172
  when /^SKL(T|J)$/
198
173
  type = Regexp.last_match(1)
199
174
  tableName, result, number = getSkillTableResult(type)
200
-
201
- when "PCDT"
202
- # 製作委員決定表
203
- tableName, result, number = getpcTableResult()
204
- when "OHT"
205
- # 実際どうだったのか表
206
- tableName, result, number = getohTableResult()
207
- when "PCT1"
208
- # ヘルライオンタスク表
209
- tableName, result, number = getplTableResult()
210
- when "PCT2"
211
- # ヘルクロウタスク表
212
- tableName, result, number = getprTableResult()
213
- when "PCT3"
214
- # ヘルスネークタスク表
215
- tableName, result, number = getpnTableResult()
216
- when "PCT4"
217
- # ヘルドラゴンタスク表
218
- tableName, result, number = getpdTableResult()
219
- when "PCT5"
220
- # ヘルフライタスク表
221
- tableName, result, number = getpfTableResult()
222
- when "PCT6"
223
- # ヘルゴートタスク表
224
- tableName, result, number = getpgTableResult()
225
- when "PCT7"
226
- # ヘルベアタスク表
227
- tableName, result, number = getpbTableResult()
228
175
  end
229
176
 
230
177
  if result.empty?
231
178
  return ""
232
179
  end
233
180
 
234
- text = "#{tableName}(#{number}):#{result}"
181
+ text = "#{tableName}(#{number}) > #{result}"
235
182
  return text
236
183
  end
237
184
 
238
- def getHistoryTableResult
239
- tableName = "履歴表"
240
-
241
- table = [
242
- '魔術
243
- あなたは悪魔との接触を目指して研磨を積んでいたオカルティスト、または恐怖の探索者である。たいへんな苦労の末、ようやく現れた悪魔は、願いと引き替えに番組に出ろ、などと言い出した。あなたは少々あっけにとられながらも、そもそも悪魔を探していた理由である願い事を叶えるため、彼らの主催する番組に出演する事を承諾した。',
244
- '天才
245
- あなたはある分野での天才である。なんの天才であるのかは、キャラクター作成を進めるうちに思いついたら決めてもいいし、まったく決めなくてもかまわない。とにかく、天才が番組に登場するとキャラが立って面白くなると考えた悪魔は、あなたの目の前に番組の出演交渉のために現れた。あなたはその話に乗り、魂の回収人になることに決めた。',
246
- '狂気
247
- あなたは頭がおかしい。そのため、周囲の社会とうまくかみ合わない人生を送っていた。悪魔はそこに出現し、社会をあなたに合わせて変えてしまうことが可能だと言った。ただし人を殺すゲーム番組で優勝しなければならないらしい。しかし、あなたは頭がおかしいので、人を殺すところは気にもならなかった。とにかく勝てば幸せになれるのだ。がんばろう。',
248
- '絶望
249
- あなたはなんらかの失敗によって失意のどん底にあった。合法、あるいは違法な薬物に溺れ、生活はどんどん荒み、そろそろ死んでしまおうかと考えているところに悪魔が現れた。そいつの言うことには、なんかリアリティ番組で勝てば、この状況から抜け出せるらしい。もはや失うものなどないあなたは、その話に飛びつき、番組に出演することにした。',
250
- '先達
251
- あなたは過去『キルデスビジネス』の勝利者と知り合いである。急に理由もなく大きな成功をおさめた知り合いに事情を聞くと、こっそりと悪魔が主催する殺人ゲーム番組のことを教えてくれた。あなたは願い事を叶えてもらうために、その知り合いを通して悪魔に推薦してもらい、番組に参加することになった。知り合いは、きっと番組を見ているだろう。',
252
- '友人
253
- あなたは平穏な人生を送っていたが、あるとき目の前に悪魔が現れる。そいつは番組出演のエントリーシートを持っていて、そこにはあなたの名前が書かれていた。友人が勝手にあなたの名前で番組にエントリーシートを送っていたのだ! あなたはそのまま拉致され、むりやり願い事を決めさせられ、悪趣味な番組で暴力を撒き散らす事になってしまった。',
254
- ]
255
- result, number = get_table_by_1d6(table)
256
-
257
- return tableName, result, number
258
- end
259
-
260
185
  def getSceneTableResult(type)
261
186
  debug("getSceneTableResult type", type)
262
187
 
263
- tableName = "シーン表"
188
+ tableName = translate("KillDeathBusiness.ST.name")
264
189
 
265
- sceneTable1 = [
266
- [11, 'あなたが根城にしていた'],
267
- [12, 'あなたの写真で壁が埋め尽くされた'],
268
- [13, 'アナログテレビが山と積まれた'],
269
- [14, 'ゴミで埋め尽くされた'],
270
- [15, 'ヘル'],
271
- [16, '押し寄せてくる砂に埋もれた'],
272
- [22, '価値あるもので豪華に飾られた'],
273
- [23, '監視機器で電子の要塞と化した'],
274
- [24, '奇妙なオブジェだらけの'],
275
- [25, '巨大な穴のふちに危うく引っかかった'],
276
- [26, '極彩色の壁画に彩られた'],
277
- [33, '消えかけて点滅する明かりに照らされた'],
278
- [34, '青白く何もかもが凍りついた'],
279
- [35, '赤い血と鉄のにおいに満ちた'],
280
- [36, '太陽が強烈な光を投げかける'],
281
- [44, '鳥が無数に集まってきている'],
282
- [45, '燃え上がる炎に照らされた'],
283
- [46, '白い霧で少し先すら見えない'],
284
- [55, '腐った死体が折り重なる'],
285
- [56, '有毒な汚水がたっぷり詰まった'],
286
- [66, '略奪を受けて空っぽになった'],
287
- ]
288
- sceneTable2 = [
289
- [11, 'オフィス'],
290
- [12, '祭壇'],
291
- [13, 'スタジオ'],
292
- [14, '倉庫'],
293
- [15, 'バス停'],
294
- [16, '牢獄'],
295
- [22, '暗闇'],
296
- [23, '駅'],
297
- [24, '屋上'],
298
- [25, '下水道'],
299
- [26, '学校'],
300
- [33, '研究室'],
301
- [34, '車内'],
302
- [35, '森'],
303
- [36, '庭園'],
304
- [44, '店'],
305
- [45, '農園'],
306
- [46, '廃墟'],
307
- [55, '墓地'],
308
- [56, '民家'],
309
- [66, '野原'],
310
- ]
190
+ sceneTable1 = translate("KillDeathBusiness.ST.table1")
191
+ sceneTable2 = translate("KillDeathBusiness.ST.table2")
311
192
 
312
193
  result = ''
313
194
  number = 0
@@ -320,210 +201,19 @@ module BCDice
320
201
  else
321
202
  result1, num1 = get_table_by_d66_swap(sceneTable1)
322
203
  result2, num2 = get_table_by_d66_swap(sceneTable2)
323
- result = "#{result1}#{result2}"
204
+ result = translate("KillDeathBusiness.ST.format", result1: result1, result2: result2)
324
205
  number = "#{num1},#{num2}"
325
206
  end
326
207
 
327
208
  return tableName, result, number
328
209
  end
329
210
 
330
- def getWishTableResult(command)
331
- debug("getWishTableResult command", command)
332
-
333
- tableName = ''
334
- table = []
335
-
336
- case command
337
- when /^DWT$/i, /^DeathWT$/i
338
- tableName = "願い事表「死」"
339
- table = [
340
- '今の美しさを保ったまま死にたい。',
341
- 'おもしろい死にかたをしてみたい。',
342
- '自殺する勇気がないので死にたい。',
343
- '死んだらどうなるのか見てみたい。',
344
- 'とても嫌なことがあったので死にたい。',
345
- '不老不死に飽きたので死にたい。',
346
- ]
347
- when /^RWT$/i, /^RevengeWT$/i
348
- tableName = "願い事表「復讐」"
349
- table = [
350
- '家族を殺した犯人に復讐したい。',
351
- '自分より幸せな隣人に復讐したい。',
352
- '自分を裏切った友人に復讐したい。',
353
- '自分を捨てた恋人に復讐したい。',
354
- '大事なものを盗んだ犯人に復讐したい。',
355
- '手ひどく負けたライバルに復讐したい。',
356
- ]
357
- when /^VWT$/i, /^VictoryWT$/i
358
- tableName = "願い事表「勝利」"
359
- table = [
360
- 'かつて負けたライバルに勝利したい。',
361
- '倒したい有名人(故人)がいる。',
362
- '倒したい有名人がいる。',
363
- '特定の業界で一番の実力者になりたい。',
364
- '特定のゲームで最強のプレイヤーになりたい。',
365
- '特定のテストで一位になりたい。',
366
- ]
367
- when /^PWT$/i, /^PossesionWT$/i
368
- tableName = "願い事表「獲得」"
369
- table = [
370
- '欲しいアイテムがある。',
371
- '欲しい生き物がいる。',
372
- '欲しい関係がある。',
373
- '欲しい親族がいる。',
374
- '欲しい知識がある。',
375
- '欲しい不動産がある。',
376
- ]
377
- when /^CWT$/i, /^ControlWT$/i
378
- tableName = "願い事表「支配」"
379
- table = [
380
- '支配したい人物集団がいる。',
381
- '支配したい地域がある。',
382
- '世界を征服したい。',
383
- '選挙で勝ちたい。',
384
- '這いつくばらせたい人がいる。',
385
- 'わがままな縁者を思い通りにしたい。',
386
- ]
387
- when /^FWT$/i, /^FlourishWT$/i
388
- tableName = "願い事表「繁栄」"
389
- table = [
390
- '落ちぶれた一族を復権させたい。',
391
- '地元経済を活性化させたい。',
392
- '趣味のジャンルに人を集めたい。',
393
- '絶滅した生き物を復活させたい。',
394
- '動物や植物を絶滅から救いたい。',
395
- 'とにかくたくさんお金が欲しい。',
396
- ]
397
- when /^IWT$/i, /^IntensifyWT$/i
398
- tableName = "願い事表「強化」"
399
- table = [
400
- '世界最強になりたい。',
401
- '世界で最も美しくなりたい。',
402
- '世界で最も賢くなりたい。',
403
- '世界で最も幸せになりたい。',
404
- '世界で最もタフになりたい。',
405
- '世界で最も速くなりたい。',
406
- ]
407
- when /^HWT$/i, /^HealthWT$/i
408
- tableName = "願い事表「健康」"
409
- table = [
410
- '完成させたい薬物がある。',
411
- '絶滅させたい病原菌がある。',
412
- '難病から回復させたい縁者がいる。',
413
- '難病から回復したい。',
414
- '病気で死なせてしまった人を復活させたい。',
415
- '病気にならない体が欲しい。',
416
- ]
417
- when /^SaWT$/i, /^SafetyWT$/i
418
- tableName = "願い事表「安全」"
419
- table = [
420
- '穏やかな生活を送りたい。',
421
- '穏やかに暮らして欲しい人がいる。',
422
- '終わらせたい争いがある。',
423
- '事故で死なせてしまった人を復活させたい。',
424
- '事故に遭わない能力が欲しい。',
425
- '迫り来る世界の危機を回避したい。',
426
- ]
427
- when /^LWT$/i, /^LongevityWT$/i
428
- tableName = "願い事表「長寿」"
429
- table = [
430
- '今の美しさを保ちたい。',
431
- '今の強さを保ちたい。',
432
- '子供が一人前になるまで死ねない。',
433
- '不老の体が欲しい。',
434
- 'ボケたくない。',
435
- '孫の顔を見てみたい。',
436
- ]
437
- when /^EWT$/i, /^ExistWT$/i
438
- tableName = "願い事表「生」"
439
- table = [
440
- '生きている実感が欲しい。',
441
- '今とは違う人生をやり直したい。',
442
- '死んでしまったので復活したい。',
443
- '死んでしまった人を復活させたい。',
444
- '生レバー復活しないかな。',
445
- '理想の人生を手に入れたい。',
446
- ]
447
- end
448
-
449
- result, number = get_table_by_1d6(table)
450
- debug("getWishTableResult result", result)
451
-
452
- return tableName, result, number
453
- end
454
-
455
211
  def getNameTableResult(type)
456
- tableName = "万能命名表"
212
+ tableName = translate("KillDeathBusiness.NAME.name")
457
213
 
458
- nameTable1 = [
459
- [11, 'アナログ'],
460
- [12, 'イージー'],
461
- [13, 'エターナル'],
462
- [14, 'エレクトロ'],
463
- [15, 'オート'],
464
- [16, 'キング'],
465
- [22, 'クール'],
466
- [23, 'グリム'],
467
- [24, 'グレート'],
468
- [25, 'スーパー'],
469
- [26, 'スプーク'],
470
- [33, 'スマート'],
471
- [34, 'ドレッド'],
472
- [35, 'ハイテク'],
473
- [36, 'ハンターズ'],
474
- [44, 'ブラック'],
475
- [45, 'ヘル'],
476
- [46, 'マジック'],
477
- [55, 'メカニカル'],
478
- [56, 'ラヴ'],
479
- [66, 'レッド'],
480
- ]
481
- nameTable2 = [
482
- [11, 'X'],
483
- [12, 'アビス'],
484
- [13, 'グレイブ'],
485
- [14, 'ゴールド'],
486
- [15, 'ゴシック'],
487
- [16, 'シノビ'],
488
- [22, 'スペシャル'],
489
- [23, 'デーモン'],
490
- [24, 'デジタル'],
491
- [25, 'デス'],
492
- [26, 'デビル'],
493
- [33, 'ナイトメア'],
494
- [34, 'バロック'],
495
- [35, 'ブラッド'],
496
- [36, 'ブレイク'],
497
- [44, 'ブレイズ'],
498
- [45, 'フロスト'],
499
- [46, 'メガ'],
500
- [55, 'メカナイズド'],
501
- [56, 'リンボ'],
502
- [66, 'ロボ'],
503
- ]
504
- nameTable3 = [
505
- [11, 'アーム'],
506
- [12, 'アイ'],
507
- [13, 'イヤー'],
508
- [14, 'ウィング'],
509
- [15, 'エンジン'],
510
- [16, 'カード'],
511
- [22, 'ガン'],
512
- [23, 'ギア'],
513
- [24, 'キャノン'],
514
- [25, 'サーキット'],
515
- [26, 'スキン'],
516
- [33, 'ソード'],
517
- [34, 'タービン'],
518
- [35, 'ハート'],
519
- [36, 'ハンド'],
520
- [44, 'ビーム'],
521
- [45, 'プレート'],
522
- [46, 'ヘア'],
523
- [55, 'メカニズム'],
524
- [56, 'モーター'],
525
- [66, 'レッグ'],
526
- ]
214
+ nameTable1 = translate("KillDeathBusiness.NAME.table1")
215
+ nameTable2 = translate("KillDeathBusiness.NAME.table2")
216
+ nameTable3 = translate("KillDeathBusiness.NAME.table3")
527
217
 
528
218
  result = ''
529
219
  number = 0
@@ -546,449 +236,36 @@ module BCDice
546
236
  return tableName, result, number
547
237
  end
548
238
 
549
- def getSubprotTableResult(command)
550
- tableName = ''
551
- table = []
552
-
553
- case command
554
- when /^OSPT$/i, /^OccultSPT$/i
555
- tableName = "サブプロット表「オカルト」"
556
- table = [
557
- '『死の探求』
558
- 回収人から一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、番組による頻繁な死が相手をどう変えていくのか観察したくなる。相手への関係を属性「研究対象」で獲得する。【深度】は1になる。
559
- クリア条件:相手が、あなたの登場しているシーンで二回死亡する。死亡によって相手がどう変わったのか、勝手なことをつらつらと語ってもいいし、なにも語らずにわかったような顔をしていても構わない。
560
- 報酬:【視聴率】10%増加、400【ソウル】',
561
- '『来訪者』
562
- キャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、相手が着ているものは巧妙な偽装であり、その正体が宇宙人であることに気付く。相手への関係を属性「宇宙人」で獲得する。【深度】は1になる。
563
- クリア条件:相手への関係の【深度】を2以上にする。すると、相手は自分の本当の姿を教えてくれる。本当に宇宙人なのかどうかは相手次第で、別にどちらでもかまわない。適当に喜んだりがっかりしておくこと。
564
- 報酬:【視聴率】10%増加、200【ソウル】',
565
- '『記憶喪失』
566
- キャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、その瞬間に、相手が何かを知っているという確信だけを残し、あとのすべての個人的な記憶を失う。相手への関係を、属性「知人」で獲得する。【深度】は1になる。
567
- クリア条件:相手への関係の【深度】を3にする。すると、相手はあなたがどんな人物だったのか思い出させてくれる。直接思い出しても構わないし、なにげない仕草が思い出すきっかけになるのかもしれない。
568
- 報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】、相手がNPCなら600【ソウル】',
569
- '『秘密結社』
570
- キャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手がなにげなく行っていた動作が、あなたの所属する秘密結社のメンバーであることを示すサインだと見抜く。相手への関係を、属性「メンバー」で獲得する。【深度】は1になる。
571
- クリア条件:相手への関係の【深度】を2以上にする。相手は本当にメンバーなのかもしれないし、あなたの勘違いかもしれない。どちらにせよ、探りを入れながら近づくことで、相手のことがよくわかった。
572
- 報酬:【視聴率】10%増加、200【ソウル】',
573
- '『殺人鬼』
574
- キャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手が有名な連続殺人犯の犯人であると確信する。顔や性別は変えたのかもしれない。相手への関係を、属性「殺人鬼」で獲得する。【深度】は1になる。
575
- クリア条件:連続殺人鬼を許せないなら、相手を戦闘で一度倒す。または、連続殺人鬼のファンなら、相手と一緒に「サービス」シーンを成功させる。どちらにせよ、相手が本当に連続殺人をやったのかははっきりしない。
576
- 報酬:【視聴率】10%増加、クリア条件達成時の相手への関係【深度】× 200【ソウル】',
577
- '『魔法使い』
578
- キャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手はもともと本当に魔法が使える人間であり、持っている道具は高名なマジックアイテムだと確信する。相手への関係を、属性「魔法使い」で獲得する。【深度】は1となる。
579
- クリア条件:相手への関係の【深度】を2以上にし、かつ相手からあなたへの関係の【深度】を1以上にする。根負けした相手は魔法を教えてくれて、あなたは満足する。ちなみに、この魔法は効果があいまいでハッキリしないものを適当に設定する。
580
- 報酬:【視聴率】10%増加、あなたと相手の両方に300【ソウル】',
581
- ]
582
- when /^FSPT$/i, /^FamilySPT$/i
583
- tableName = "サブプロット表「家族」"
584
- table = [
585
- '『説得』
586
- キャラクターから一人選び、相手が「小道具」で習得している特技を指定特技として判定を行う。判定に成功すると、相手が持っているのはあなたの贈りものであり、旧友が悪趣味なショーに出ているのだとわかる。降りるように説得しなければ。相手への関係を、属性「旧友」で獲得する。【深度】は1になる。
587
- クリア条件:相手への関係の【深度】を3にする。すると、説得をやるだけやったあなたは満足する。相手は多分諦めない。または、選択された「旧友」が死亡するか(回収人なら)地獄に墜ちる。すると、なんだかあきらめがつく。
588
- 報酬:【視聴率】10%増加、400【ソウル】',
589
- '『生き別れ』
590
- キャラクターから一人選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手が家族特有の特徴を持っていることがわかり、かなり昔に生き別れた家族だと確信する。相手への関係を、属性「生き別れ」で獲得する。【深度】は1になる。
591
- クリア条件:相手への関係の【深度】を3にする。すると、相手はあなたのことを思い出す。まるで違う環境で暮らしてきたのかもしれないが、あなたたちのルーツは同じだ。続柄や生別したときの状況は好きに設定できるし、別に設定しなくてもかまわない。
592
- 報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】相手がNPCなら600【ソウル】',
593
- '『家族自慢』
594
- 回収人ーから一人選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の職業を聞き出したうえで、同じ分野で相手より成功している家族の話を聞かせてやれる。相手への関係を、属性「自慢済み」で獲得する。【深度】は1になる。
595
- クリア条件:三人のキャラクターへ【深度】1以上の関係を獲得し、すべての属性を「自慢済み」にする。すでに「自慢済み」の人は、死んでいたりいなくなっても大丈夫。かなり嫌がられそうだが、まあ仕方がない。
596
- 報酬:【視聴率】10%増加、400【ソウル】',
597
- '『捨て猫』
598
- 回収人から一人選び、相手が「感情」で修得している特技を指定特技として判定を行う。判定に成功すると、懐から仔猫が出てくる。これは相手が故あって捨てた猫だが、あなたはそれが許せない。相手への関係を、属性「猫の飼い主」で獲得する。【深度】は1になる。
599
- クリア条件:相手に猫を飼わせるため、戦闘で一度倒す。すると、相手は猫を飼うことに同意する。猫の詳細なスペックを決めてもいいし、決めなくてもかまわない。あと、動物の種類も実は自由だ。
600
- 報酬:【視聴率】10%増加、クリア条件達成時の相手への関係の【深度】× 200【ソウル】',
601
- '『義理の家族』
602
- 回収人から一人選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、衣装の傾向から、相手が義理の家族であることが判明する。こんなところでなにをやっているんだ。相手への関係を、属性「義理の家族」で獲得する。【深度】は1になる。
603
- クリア条件:相手への関係の【深度】を2以上にする。すると、相手はなぜ番組に出ることになったのか、そのときどんな状況や気分だったのかを話してくれる。または、相手が地獄に墜ちると、縁が切れてクリアだ。
604
- 報酬:【視聴率】10%増加、200【ソウル】',
605
- '『孤独な人』
606
- キャラクターから一人選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、相手が孤独に耐えている寂しい人物であることを確信する。あなたが相手を救うのだ。相手への関係を、属性「孤独な人」で獲得する。【深度】は1になる。
607
- クリア条件:相手への関係の【深度】を2以上にする。すると、相手は打ち解ける……かもしれないし、なにも変わないかもしれない。ただ、あなたには、相手の孤独が少し癒やされたことがわかる。
608
- 報酬:【視聴率】10%増加、200【ソウル】',
609
- ]
610
- when /^LoSPT$/i, /^LoveSPT$/i
611
- tableName = "サブプロット表「恋愛」"
612
- table = [
613
- '『禁断の恋』
614
- 標的が「衣装」で修得している特技を指定特技として判定を行う。標的がすでに死亡している場合、サブプロット表を振りなおす。判定に成功すると、標的に一目惚れするか、標的が前から好きだった人であったことが判明する。急がないと殺されてしまう。相手への関係を、属性「好きな人」で獲得する。【深度】は1となる。
615
- クリア条件:相手への関係の【深度】を3にする。すると、標的はあなたの思いに対してなんらかの答えを返す。結果がどうあれ、いい経験になるだろう。または、相手への関係の【深度】が2以上の状態で、相手が死亡してもいい。嘆こう。
616
- 報酬:【視聴率】10%増加、400【ソウル】',
617
- '『番組内デート』
618
- 回収人から一人を選び相手が「情動」で修得している特技を指定特技として判定を行う判定に成功すると、相手とあなたは番組開始前からつきあっている。収録のついでに仲を進展させてもいいかもしれない。相手への関係を、属性「恋人」で獲得する。【深度】は1になる。
619
- クリア条件:相手への関係の【深度】を2以上にし、相手からあなたの関係の【深度】も2以上にする。するとけっこういい感じに関係が発展する。番組終了時に視聴者にお知らせすることがあるかもしれない。
620
- 報酬:【視聴率】10%増加、あなたと相手の両方に400【ソウル】',
621
- '『悩み相談』
622
- キャラクターから一人を選び相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の職業的見地から恋愛に関するアドバイスをもらえるかもしれないと気づく。相手への関係を属性「相談役」で獲得する。【深度】は1になる。
623
- クリア条件:相手への関係の【深度】は3にする。恋愛に関するアドバイスをもらった気になる。相手がその気で言ったかは関係ない。最後に関係の属性を『好きな人』に変えたりするとそれっぽい。
624
- 報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】相手がNPCなら600【ソウル】',
625
- '『人気獲得』
626
- キャラクターから一人を選び相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手とあなたが並ぶと非常に画面映えして視聴者に受けると確信する。誘ってサービスシーンを成功させればヘル視聴者に愛されるだろう。相手への関係を属性「相棒」で獲得する。【深度】は1になる。
627
- クリア条件:相手と一緒にサービスシーンを成功させる。驚くべきことに、ヘル視聴者は本当にコンビが気に入ってしまう。ただ、もう一度同じことをやっても、ウケるかどうかはわからない。
628
- 報酬:【視聴率】10%増加、200【ソウル】',
629
- '『贈り物』
630
- キャラクターから一人を選び相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の望みがなんとなくわかる。欲しいものすらわかるので、あげたら好きになってもらえるかもしれない。なにが欲しいのか、相手に実際に尋ねる必要はない。相手への関係を属性「欲しがり」で獲得する。【深度】は1になる。
631
- クリア条件:相手への関係の【深度】を2以上にする。すると相手は貴方のプレゼントを受け取る。何を渡したのかは適当に決めてかまわないが、迷ったらヘルCM表をつかうこと。
632
- 報酬:【視聴率】10%増加、200【ソウル】',
633
- '『手料理』
634
- キャラクターから一人を選び相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の持っているものがヒントになって、すごい料理を思いつく。もしかしたら材料にするのかもしれない。相手への関係を属性「毒見役」で獲得する。【深度】は1になる。
635
- クリア条件:相手に戦闘を挑み、キラートリックで倒す。このとき、キラートリックの名前は思いついた料理の名前に変更される。困ったら万能命名表を使うこと。
636
- 報酬:【視聴率】10%増加、500【ソウル】',
637
- ]
638
- when /^JSPT$/i, /^JusticeSPT$/i
639
- tableName = "サブプロット表「正義」"
640
- table = [
641
- '『殺せない標的』
642
- 標的が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手があなたの正義に照らし合わせて申し分のない人物である事が分かる(もしくは、実は非常に善良な人物であったことがわかる)。これを殺させるわけにはいかない。相手への関係を、属性「護衛対象」で獲得する。【深度】は1になる。
643
- クリア条件:結果フェイズまで相手を生き残らせる。なぜ味方をしたのか、なぜ味方をするのか、相手に語ってあげると喜ぶかもしれない。
644
- 報酬:【視聴率】10%増加、700【ソウル】',
645
- '『親友の復讐』
646
- キャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手が身につけていた装身具が、あなたの親友を殺害した犯人の特徴とぴったり合致することがわかる。相手への関係を、属性「犯人」で獲得する。【深度】は1になる。
647
- クリア条件:相手への関係の【深度】を2以上にする。すると、相手は自白する。そのあとに戦闘を挑み、一度相手を倒せ。死んだものは帰ってこないが、あなたは満足する。
648
- 報酬:【視聴率】10%増加、400【ソウル】',
649
- '『護身』
650
- キャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、相手はかつてあなたに断罪された事があり、それを恨みに思っていることが明らかになる。相手への関係を、属性「復讐者」で獲得する。【深度】は1になる。
651
- クリア条件:結果フェイズまで標的に殺されない。すると、なんとかやりすごせる・・・・・・が、次はどうなることやら。
652
- 報酬:【視聴率】10%増加、相手が回収人なら500【ソウル】相手がNPCなら100【ソウル】',
653
- '『心酔』
654
- 回収人から一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手を第一印象から善人だと確信し、いろんな理屈をつけて相手の願いごとを正義だと信じ込む。相手への関係を、属性「善人」で獲得する。【深度】は1になる。
655
- クリア条件:相手への関係の【深度】を2以上にする。すると、相手の願いごとの本質を理解し、酔いから醒めたり、忠実な協力者となることを約束したりする。
656
- 報酬:【視聴率】10%増加、200【ソウル】',
657
- '『悪党』
658
- キャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、相手はその筋では有名な悪い職業人であることが判明する。こいつを放っておけば悲しむ人が出るだろう。相手への関係を、属性「悪人」で獲得する。【深度】は1になる。
659
- クリア条件:悪人を許せないなら、相手を戦闘で一度倒す。または、改心させたいなら、相手への関係の【深度】を3にする。相手が本当に改心するかどうかは関係なく、会心の説得を撃ち放ったことで、あなたは満足する。
660
- 報酬:【視聴率】10%増加、クリア条件達成時の相手への関係【深度】�200【ソウル】',
661
- '『サイドキック』
662
- 回収人から一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、相手は自分の相棒として悪を倒すのに最適な人物であると確信する。サイドキックだ。相手への関係を、属性「仲間」で獲得する。【深度】は1になる。
663
- クリア条件:自分が登場しているシーンで、相手が誰かを倒し、そのあと自分が殺されずに戦闘が終了する。相手を褒めて、仲間にふさわしい人物だと宣言してあげよう。
664
- 報酬:【視聴率】10%増加、300【ソウル】',
665
- ]
666
- when /^TSPT$/i, /^TrainingSPT$/i
667
- tableName = "サブプロット表「修行」"
668
- table = [
669
- '『戦闘狂』
670
- 回収人から一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、周りにいる強そうな人に対して対抗心が沸いてくる。結局、勝つのは一人なんだから、今から叩いておいたほうがいい。相手への関係を、属性「敵」で獲得する。【深度】は1になる。
671
- クリア条件:相手を含む三人のキャラクターを一回以上死亡させる。すると、あなたの戦闘熱はおさまる。そこから仲良くできるかどうかは微妙なところかもしれない。
672
- 報酬:【視聴率】10%増加、600【ソウル】',
673
- '『弟子入り』
674
- キャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは、その職業の世界的権威を発見する。故あって引退して久しいが、教えを請えば今後の人生の役に立つだろう。教える気があるかどうかは知らないが。相手への関係を、属性「師匠」で獲得する。【深度】は1になる。
675
- クリア条件:相手への関係の【深度】を3にする。すると、相手は何かを教えてくれる。あるいは、もう教えることはなにもないと言うだろう。
676
- 報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】相手がNPCなら600【ソウル】',
677
- '『ライバル』
678
- キャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。成功すると、相手はあなたに特定の分野で勝利したことのある人物だとわかる。奴に勝たねば、あなたは先に進めない。相手への関係を、属性「ライバル」で獲得する。【深度】は1になる。
679
- クリア条件:2サイクル目以降で相手を一度倒す。あなたが倒すまで、相手は他のキャラクターに倒されてはならない。お前を倒すのは俺だって決まってるんだからな!
680
- 報酬:【視聴率】10%増加、相手が回収人なら300【ソウル】相手がNPCなら500【ソウル】',
681
- '『改造』
682
- 回収人から一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、相手に比べて自分の肉体が貧弱すぎるような気がしてくる。改造してもっと強くならなければ。相手への関係を、属性「基準線」で獲得する。【深度】は1になる。
683
- クリア条件:相手よりも多くのヘルサイバーをインストールした状態で結果フェイズを迎える。この時数えるのは個数だけ、そして同じ数ではダメだ。
684
- 報酬:【視聴率】10%増加、600【ソウル】',
685
- '『装備改善』
686
- 回収人から一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の持っている装備について興味が湧く。自分の能力上昇のヒントになるかもしれない。相手への関係を、属性「いい装備」で獲得する。【深度】は1になる。
687
- クリア条件:相手への関係の【深度】を2以上にする。すると、相手は持ち物について解説してくれるか、あるいはキッパリと断る。あなたの探索はそこで終わるが、経験は残る。
688
- 報酬:【視聴率】10%増加、200【ソウル】',
689
- '『特訓』
690
- 回収人から一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると相手は自分と同じく修行不足を痛感しているのだと確信する。一緒にトレーニングだ。相手への関係を、属性「特訓仲間」で獲得する。【深度】は1になる。
691
- クリア条件:相手への関係の【深度】を2以上にする。すると、あなたと相手はなんらかの手応えを感じて、特訓は終わる。このタイミングでキラートリックの名前を変えたりしてもかまわない。
692
- 報酬:【視聴率】10%増加、200【ソウル】',
693
- ]
694
- when /^BSPT$/i, /^BeamSPT$/i
695
- tableName = "サブプロット表「笑い」"
696
- table = [
697
- '『大サービス』
698
- キャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、この殺伐とした番組を和やかにできるのは、自分と相手しかいないと確信する。相手への関係を、属性「相棒」で獲得する。【深度】は1になる。
699
- クリア条件:相手と一緒に。「サービス」シーンの判定に2回成功する。すると、なんだか番組が楽しくなったような気もするが……変わってない気もする。あなたの戦いはまだ続く。
700
- 報酬:【視聴率】10%増加、あなたと相手の両方に300【ソウル】',
701
- '『脱げ』
702
- キャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の衣装をいい感じで脱がせればウケが取れると確信してしまう。相手への関係を、属性「脱がせたい」で獲得する。【深度】は1になる。
703
- クリア条件:相手に戦闘を挑み。キラートリックで倒す。このとき、相手の衣装はバラバラに粉砕され、ヘルスタイリストが相手を罵倒しながら新しいものを用意することになる。
704
- 報酬:【視聴率】10%増加、500【ソウル】',
705
- '『いい話』
706
- キャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手はヘコんでいるのか嫌なことがあるのか、表情に乏しい。笑顔を取り戻してやらなければ。相手への関係を、属性「暗い奴」で獲得する。【深度】は1になる。
707
- クリア条件:相手への関係の【深度】を3にする。相手は少し笑顔を見せたかもしれないし、光の加減でそう見えただけかもしれない。だが、あなたは確かな手応えを感じる。
708
- 報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】相手がNPCなら600【ソウル】',
709
- '『笑い屋』
710
- キャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、相手は援護がないとサービスシーンがキツそうだな、と直感する。相手への関係を、属性「真面目な奴」で獲得する。【深度】は1になる。
711
- クリア条件:相手の登場する「サービス」シーンに自分も登場し、カメラの外から笑い声を出すロールプレイを行う。
712
- 報酬:【視聴率】10%増加、あなたと相手の両方に100【ソウル】',
713
- '『戦闘回避』
714
- キャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の願いごとに深く共感してしまう。そのため、相手の邪魔はしたくはなくなる。相手への関係を、属性「勝つべき人」で獲得する。【深度】は1になる。
715
- クリア条件:結果フェイズまで直接相手を殺さない。すると、誰も気づかないかもしれないが、あなたは自分のやるべきことをやったことになる。
716
- 報酬:【視聴率】10%増加、200【ソウル】',
717
- '『親友』
718
- キャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、その小道具についての会話をきっかけに、相手への興味が芽生える。もしかしたら友達になれるかもしれない。相手への関係を、属性「友人」で獲得する。【深度】は1になる。
719
- クリア条件:相手への関係の【深度】を2以上にする。すると、あなたと相手は友情のようなもので結ばれるかもしれないし、やはり無理だったのだと、あなたが諦めるかもしれない。
720
- 報酬:【視聴率】10%増加、200【ソウル】',
721
- ]
722
-
723
- end
724
-
725
- result, number = get_table_by_1d6(table)
726
-
727
- return tableName, result, number
728
- end
729
-
730
- def getCmTableResult()
731
- tableName = "CM表"
732
- table = [
733
- [11, 'あなたのTシャツ/決めポーズの姿が背中にプリントされたTシャツです。そして、フロントにはあの名台詞が!'],
734
- [12, 'あなたのアクションフィギュア/放送中から大人気!職人が一つ一つ入魂の手作り!夜になると、込められた魂が泣き叫びます。'],
735
- [13, 'ヘルーレイボックス/シーズン666の全てがここに……特典映像満載で送る、豪華ボックスセット!予約特典はヘルくんストラップです。'],
736
- [14, 'ヘルエアコン/これさえあれば、火事の最中でも気温は氷点下!逆に家を燃やすこともできますよ。温度調節機能は有料オプションです!'],
737
- [15, 'ヘルおむつ/ヘルギャザーで漏れをストップ、666年間履きっぱなしでも平気!中身がどうなるか保証しません、ヘルおむつ'],
738
- [16, 'ヘルサプリ/寝なくても平気!カラフルな幻覚が見える!でもメイン機能は健康増進です。ヘルサプリで健康生活を!'],
739
- [22, 'ヘルツアーズ/お得な料金で地獄百景を回ろう!苦しむ人間との魂の触れ合いが満載!ヘルツアーズでは、他社ではできない体験をお約束します。'],
740
- [23, 'ヘルテレビ/夜中に女性が出てきますが、気にしなければ大丈夫!アナログヘルテレビは政府の協賛を得ています。'],
741
- [24, 'ヘルビール/アルコール度数666%、ヘルホップ使用。地獄の渇きにはヘルビール……違いの分かる人のために。'],
742
- [25, 'ヘルフォン/ドヤ顔のノマド気取りをぶちのめすこともできます。そう、ヘルフォンならね。'],
743
- [26, 'ヘルまんじゅう/数千年のご愛顧をいただいております、地獄銘菓ヘルまんじゅう。うまい、ヘルうますぎる。しかしながら、食べると死にます。'],
744
- [33, 'ヘルモービル/人を轢けば轢くほど速くなり……走りは別次元へ。ヘルモービルが、お求めやすい価格で新登場。'],
745
- [34, 'ヘル会話教室/隣人をうまく罵れない?イヤな奴に言いくるめられた?ヘル会話を学べば、どんな相手も激昂させられます!'],
746
- [35, 'ヘル金融/金利666%の安心がここに。ヘル金融の取り立ては、非常に紳士的だと評判です。'],
747
- [36, 'ヘル汁(健康飲料)/辺獄で採れた新鮮な毒草を、そのまま粉末にしました。これを飲めば、もう病気や老化の心配はいりません。健康飲料ヘル汁。'],
748
- [44, 'ヘル整形外科/無保険かつ無免許ですが、どんな注文にも応えます。ヘル整形外科は、あなたのおっしゃる通りの外見を実現します!'],
749
- [45, 'ヘル生命保険/すぐ死ぬあなたに、ヘル生命の安全コース。残された人には地獄が待っています。'],
750
- [46, 'ヘル洗剤/どんなにしつこい血糊や汚物も一撃!どんな色の服も地獄の黒に染まります!ヘル洗剤、好評発売中!'],
751
- [55, 'ヘル洗濯機/666層式、音速を超えた回転があなたの衣装を粉々に!なにをしたかったのか忘れれば壮観です。ヘル洗濯機!'],
752
- [56, 'ヘル掃除機/好評の壁面粉砕機能に加えて、今年のモデルには屋根吸引機能も!ヘル掃除機のスイッチを入れるだけで、あなたの家がなくなります。'],
753
- [66, 'ヘル入浴剤/体が溶ける!新感覚で話題を呼んだヘル入浴剤がついに登場!死体の処理には使わないでください。'],
754
- ]
755
- result, number = get_table_by_d66_swap(table)
756
-
757
- return tableName, result, number
758
- end
759
-
760
- def getErTableResult()
761
- tableName = "蘇生副作用表"
762
- table = [
763
- [11, 'おいそそうな匂いがするようになった'],
764
- [12, 'おまけでヤギが出てきた'],
765
- [13, '髪が蛍光色に変わった'],
766
- [14, '声がロボっぽくなった'],
767
- [15, '先が三角形になったシッポが生えた'],
768
- [16, '頭上に謎のプログレスバーが出ている'],
769
- [22, '性別が変わった'],
770
- [23, '全身にモザイクがかかった'],
771
- [24, '全体的に半透明になった'],
772
- [25, 'ちょっと腐った'],
773
- [26, '肌が蛍光色に変わった'],
774
- [33, '羽が生えた'],
775
- [34, '番組参加中の記憶を失った'],
776
- [35, '額に第三の目が開いた'],
777
- [36, '微妙に浮いてる'],
778
- [44, 'ひよこにかわった'],
779
- [45, '不合格品のスタンプを押された'],
780
- [46, '太った'],
781
- [55, '耳が好きな動物のものに変わった'],
782
- [56, '痩せた'],
783
- [66, '立派な角が額に生えた'],
784
- ]
785
- result, number = get_table_by_d66_swap(table)
786
-
787
- return tableName, result, number
788
- end
789
-
790
- def getWKTableResult()
791
- tableName = "一週間表"
792
- table = [
793
- [11, '家を追い出されたヘルPが泊まりに来た'],
794
- [12, '危険なオーラを醸し出せるようになり、非常にモテた'],
795
- [13, '地獄落ちを覚悟し、身辺整理を行った'],
796
- [14, '地獄テレビ情報雑誌にインタビューを受けた'],
797
- [15, '実家の商売が好調になるが、客がみんなヘルピープル'],
798
- [16, '信号待ちをしていたら、仕事中の悪魔にサインを求められた'],
799
- [22, '親戚が番組を見ていて、電話で感想を伝えてきた'],
800
- [23, '次の週の護衛天使と知り合いになった'],
801
- [24, '次の週の標的と知り合いになった'],
802
- [25, 'トラウマが残って全く眠れず、酒に溺れた'],
803
- [26, '願いが叶うなら働かなくていいし、仕事を辞めた'],
804
- [33, '願いとは別に出演報酬が振り込まれたので豪遊した'],
805
- [34, '番組中のノリで人をはたいたら、なんだか死んでしまった'],
806
- [35, '番組や悪魔が怖くなって世界中を逃げ回った'],
807
- [36, 'ファンを名乗るストーカーに自宅を荒らされた'],
808
- [44, 'ふと思い立って山に籠り、修行に明け暮れた'],
809
- [45, 'ヘルスタイリストに自宅の衣類をすべて燃やされた'],
810
- [46, 'ヘルドクターが借金の申し込みに来た'],
811
- [55, 'ヘルドレスの偽物を売りつけようとする下級悪魔と戦った'],
812
- [56, '他の回収人のうち一人と同じ職場だったことが明らかに'],
813
- [66, '妙に寄付を募る営業電話がかかってくる週だった'],
814
- ]
815
- result, number = get_table_by_d66_swap(table)
816
-
817
- return tableName, result, number
818
- end
819
-
820
239
  def getServiceSceneTableResult()
821
- tableName = "サービスシーン表"
822
- sceneTable = [
823
- '脱衣系サービスシーン表',
824
- '暴力系サービスシーン表',
825
- '旅行系サービスシーン表',
826
- '恋愛系サービスシーン表',
827
- '感動系サービスシーン表',
828
- '別ジャンルサービスシーン表',
240
+ table_name = translate("KillDeathBusiness.EST.name")
241
+ tables = [
242
+ translate("KillDeathBusiness.EST.tables.undressing"), # 脱衣系サービスシーン表
243
+ translate("KillDeathBusiness.EST.tables.violence"), # 暴力系サービスシーン表
244
+ translate("KillDeathBusiness.EST.tables.travel"), # 旅行系サービスシーン表
245
+ translate("KillDeathBusiness.EST.tables.love"), # 恋愛系サービスシーン表
246
+ translate("KillDeathBusiness.EST.tables.emotion"), # 感動系サービスシーン表
247
+ translate("KillDeathBusiness.EST.tables.other_genre"), # 別ジャンルサービスシーン表
829
248
  ]
830
- sceneGroup, number1 = get_table_by_1d6(sceneTable)
831
249
 
832
- case sceneGroup
833
- when "脱衣系サービスシーン表"
834
- table = [
835
- '衣装の不調',
836
- '着替え',
837
- '脱衣麻雀',
838
- '入浴',
839
- '水着で戦う',
840
- '野球拳',
841
- ]
842
- when "暴力系サービスシーン表"
843
- table = [
844
- '勝ったあとの暴力',
845
- '集団の暴力',
846
- '暴力をのほめかす会話',
847
- '負けた後の暴力',
848
- 'まったく無意味な暴力',
849
- '無意味な暴力',
850
- ]
851
- when "旅行系サービスシーン表"
852
- table = [
853
- '移動機関の紹介',
854
- '地元の遊びの紹介',
855
- '地元の動物の紹介',
856
- '地元の宿の紹介',
857
- '寝起きドッキリ',
858
- '名物料理の紹介',
859
- ]
860
- when "恋愛系サービスシーン表"
861
- table = [
862
- 'キスシーン',
863
- '恋に気付く',
864
- '恋に悩む',
865
- 'デートシーン',
866
- '秘密を告白する',
867
- 'ラブシーン',
868
- ]
869
- when "感動系サービスシーン表"
870
- table = [
871
- '家族の愛に気付く',
872
- 'かっこいいことを言う',
873
- '失敗して落ち込む',
874
- '地元住民と触れ合う',
875
- '死んだ人の話をする',
876
- '高いところでかっこいいことをいう',
877
- ]
878
- else
879
- table = [
880
- 'サイコサスペンス',
881
- 'スペースオペラ',
882
- '童話',
883
- 'ヒロイックファンタジー',
884
- 'モンスターホラー',
885
- 'ロボ',
886
- ]
887
- end
250
+ number1 = @randomizer.roll_once(6)
251
+ scene_table = tables[number1 - 1]
888
252
 
889
- resultTmp, number2 = get_table_by_1d6(table)
890
- result = "#{sceneGroup}「#{resultTmp}」を行う。"
891
- number = "#{number1}#{number2}"
253
+ number2 = @randomizer.roll_once(6)
254
+ scene = scene_table[:items][number2 - 1]
892
255
 
893
- return tableName, result, number
894
- end
895
-
896
- def getSoulTableResult()
897
- tableName = "ソウル放出表"
898
- table = [
899
- '100',
900
- '200',
901
- '200',
902
- '200',
903
- '300',
904
- '300',
905
- ]
906
- result, number = get_table_by_1d6(table)
907
-
908
- return tableName, result, number
909
- end
910
-
911
- def getSceneTelopGenericTableResult()
912
- tableName = "汎用演出表"
913
- table = [
914
- '大きくて分かりやすい文字でテロップが出る',
915
- '回想に合わせて再現ビデオが流れる',
916
- '関係者が登場人物について語る',
917
- 'ゲストヘルピープルが行動を論評する',
918
- '行動の是非についてヘル視聴者の投票が始まる',
919
- 'ヘルバンドの新曲がBGMとして流れる',
920
- ]
921
- result, number = get_table_by_1d6(table)
256
+ result = translate("KillDeathBusiness.EST.format", scene: scene_table[:name], chosen: scene)
257
+ number = "#{number1}#{number2}"
922
258
 
923
- return tableName, result, number
259
+ return table_name, result, number
924
260
  end
925
261
 
926
262
  def getHairStylistAbuseTableResult(type)
927
- tableName = "ヘルスタイリスト罵倒表"
928
-
929
- hellStylistAbuseTable1 = [
930
- [11, ' 汁まみれになった'],
931
- [12, ' お爺ちゃんがこのまえ捨てた'],
932
- [13, ' 失敗メイクの'],
933
- [14, ' 低予算の映画のモンスター代わりにされた'],
934
- [15, ' 仲間はずれの'],
935
- [16, ' 悪い意味で成分無調整の'],
936
- [22, ' 宇宙人が中身を抜いていったあとの'],
937
- [23, ' 化学処理班が処理しにきそうな'],
938
- [24, ' 革命直後にギロチンにかけられた'],
939
- [25, ' 狂気の芸術家が想像で作りあげた'],
940
- [26, ' 故郷の村を帝国軍に焼かれた直後の'],
941
- [33, ' 五年ぶりにベッドの下から出てきた'],
942
- [34, ' 高速道路でなんども轢かれた'],
943
- [35, ' 死後六週間の'],
944
- [36, ' 失敗料理を無理に食べた'],
945
- [44, ' 小さい子供がはじめて描いた'],
946
- [45, ' 箪笥と壁の隙間に住み着いた'],
947
- [46, ' 猫がくわえてもってきた'],
948
- [55, ' 有名なタコっぽいモンスターを見てしまった'],
949
- [56, ' 旅行先で財布がないことに気づいた'],
950
- [66, ' 猟奇殺人を趣味にしている'],
951
- ]
952
- hellStylistAbuseTable2 = [
953
- [11, ' アルマジロ'],
954
- [12, ' イソギンチャク'],
955
- [13, ' カメムシ'],
956
- [14, ' カモノハシ'],
957
- [15, ' クジャク'],
958
- [16, ' クラゲ'],
959
- [22, ' ゴキブリ'],
960
- [23, ' ゴミムシ'],
961
- [24, ' サル'],
962
- [25, ' ドブネズミ'],
963
- [26, ' ナマケモノ'],
964
- [33, ' ナマコ'],
965
- [34, ' うんこ'],
966
- [35, ' フンコロガシ'],
967
- [36, ' ペンギン'],
968
- [44, ' ミジンコ'],
969
- [45, ' 古い人形'],
970
- [46, ' 人食い熊'],
971
- [55, ' 毒トカゲ'],
972
- [56, ' 毛虫'],
973
- [66, ' 野良犬'],
974
- ]
263
+ tableName = translate("KillDeathBusiness.HSAT.name")
975
264
 
976
- hellStylistwtable1 = [
977
- '「まるで『',
978
- '「まるで『',
979
- '「まさに『',
980
- '「まさに『',
981
- '「あなたは『',
982
- '「あなたは『',
983
- ]
984
- hellStylistwtable2 = [
985
- '』みたいよ!」',
986
- '』みたいだわ!」',
987
- '』じゃないの!」',
988
- '』ね。」',
989
- '』に見えるわ。」',
990
- '』そっくりよ!」',
991
- ]
265
+ hellStylistAbuseTable1 = translate("KillDeathBusiness.HSAT.abuse_table1")
266
+ hellStylistAbuseTable2 = translate("KillDeathBusiness.HSAT.abuse_table2")
267
+ hellStylistwtable1 = translate("KillDeathBusiness.HSAT.prefix_table")
268
+ hellStylistwtable2 = translate("KillDeathBusiness.HSAT.suffix_table")
992
269
 
993
270
  case type
994
271
  when 1
@@ -1000,7 +277,7 @@ module BCDice
1000
277
  result2, num2 = get_table_by_d66_swap(hellStylistAbuseTable2)
1001
278
  before, = get_table_by_1d6(hellStylistwtable1)
1002
279
  after, = get_table_by_1d6(hellStylistwtable2)
1003
- result = "#{before}#{result1}#{result2}#{after}"
280
+ result = "#{before}#{result1} #{result2}#{after}"
1004
281
  number = "#{num1},#{num2}"
1005
282
  end
1006
283
 
@@ -1008,23 +285,16 @@ module BCDice
1008
285
  end
1009
286
 
1010
287
  def getSkillTableResult(type)
1011
- skillTableFull = [
1012
- ['職業', ['無職', '芸術家', '研究者', '家事手伝い', '学生', '悪漢', '労働者', '探偵', '大物', '医師', '公務員']],
1013
- ['動作', ['叫ぶ', '閃く', '斬る', '振る', '投げる', '殴る', '蹴る', '跳ぶ', '撃つ', '掴む', '待つ']],
1014
- ['小道具', ['ピアス', '髪飾り', '銃', 'ネックレス', 'ベルト', '眼鏡', '帽子', '時計', '剣', 'リング', 'タトゥー']],
1015
- ['衣装', ['ネイキッド', 'アウトドア', 'エスニック', 'ヒップホップ', 'ミリタリー', 'フォーマル', 'トラッド', 'ゴシック', 'パンク', 'メタル', 'アイドル']],
1016
- ['情動', ['愛', '喜び', '期待', '焦り', '自負', '怒り', '悲しみ', '嫉妬', '恐怖', '恥', '嫌悪']],
1017
- ['願望', ['死', '復讐', '勝利', '支配', '獲得', '繁栄', '強化', '安全', '健康', '長寿', '生']],
1018
- ]
288
+ skillTableFull = translate("KillDeathBusiness.SKLT.items")
1019
289
  skillTable, num1 = get_table_by_1d6(skillTableFull)
1020
290
  skillGroup, table = skillTable
1021
291
  if type == "T"
1022
- tableName = "指定特技ランダム決定表"
292
+ tableName = translate("KillDeathBusiness.SKLT.name")
1023
293
  skill, num2 = get_table_by_2d6(table)
1024
294
  result = "「#{skillGroup}」《#{skill}》"
1025
295
  number = "#{num1},#{num2}"
1026
296
  else
1027
- tableName = "指定特技分野ランダム決定表"
297
+ tableName = translate("KillDeathBusiness.SKLJ.name")
1028
298
  result = skillGroup
1029
299
  number = num1
1030
300
  end
@@ -1033,99 +303,33 @@ module BCDice
1033
303
  end
1034
304
 
1035
305
  def getExtraTableResult(type)
1036
- tableName = "エキストラ表"
306
+ tableName = translate("KillDeathBusiness.EXT.name")
1037
307
  extraTable1 = [
1038
- [11, "あなたの親友である"],
1039
- [12, "あなたと恨んで付け狙っている"],
1040
- [13, "いそがしく電話で話し込んでいる"],
1041
- [14, "ころんで逃げ損ねた"],
1042
- [15, "シーンの背景の持ち主である"],
1043
- [16, "架空の人物だと思われていた神"],
1044
- [22, "過去のシーズン優勝者である"],
1045
- [23, "気分よく酔っ払った"],
1046
- [24, "恐怖で身をすくませている"],
1047
- [25, "業界では有名な"],
1048
- [26, "幸せな家庭を持つ"],
1049
- [33, "広域指名手配されている"],
1050
- [34, "今朝のニュースで特集されていた"],
1051
- [35, "常に微笑みを絶やさない大物"],
1052
- [36, "真実の探求の過程で発狂した"],
1053
- [44, "地元では負けを知らない"],
1054
- [45, "非常に動作にキレのある"],
1055
- [46, "普通の"],
1056
- [55, "変身ヒーローの正体である"],
1057
- [56, "『#{getNameTableResult(0)[1]}』の異名を持つ"],
1058
- [66, "歴史上の人物だが実は生きていた"],
1059
- ]
1060
- extraTable2 = [
1061
- [11, "サラリーマン"],
1062
- [12, "スポーツ選手"],
1063
- [13, "チンピラ"],
1064
- [14, "ドライバー"],
1065
- [15, "ねずみ"],
1066
- [16, "パイロット"],
1067
- [22, "映画監督"],
1068
- [23, "犬"],
1069
- [24, "刺客"],
1070
- [25, "主婦"],
1071
- [26, "小説家"],
1072
- [33, "雀士"],
1073
- [34, "政治家"],
1074
- [35, "大金持ち"],
1075
- [36, "大男"],
1076
- [44, "謎の美女"],
1077
- [45, "猫"],
1078
- [46, "美少女"],
1079
- [55, "文化人"],
1080
- [56, "勇者"],
1081
- [66, "神"],
1082
- ]
1083
- extraTable3 = [
1084
- [11, "怪しい箱の中から"],
1085
- [12, "哀れな犠牲者を殺しながら"],
1086
- [13, "牛に乗りつつ"],
1087
- [14, "馬に乗りつつ"],
1088
- [15, "壁を粉砕しながら"],
1089
- [16, "壁を粉砕しながら"],
1090
- [22, "濃い霧の中からゆっくりと"],
1091
- [23, "自動ドアを抜けながら"],
1092
- [24, "上空から急降下しつつ"],
1093
- [25, "全速力で走りつつ"],
1094
- [26, "高いところから"],
1095
- [33, "テーマ音楽とともに"],
1096
- [34, "通りがかりに"],
1097
- [35, "名前と職業のテロップと一緒に"],
1098
- [36, "バイクに乗りつつ"],
1099
- [44, "墓をやぶって"],
1100
- [45, "部下を大勢引き連れて"],
1101
- [46, "吹きすさぶ風を纏い"],
1102
- [55, "武器を構えつつ"],
1103
- [56, "ヘルポータルを通って"],
1104
- [66, "炎をバックに"],
1105
- ]
1106
- extraTable4 = [
1107
- [11, "愛らしく登場"],
1108
- [12, "あざやかに登場"],
1109
- [13, "あっさりと登場"],
1110
- [14, "怪しく登場"],
1111
- [15, "荒々しく登場"],
1112
- [16, "勢い良く登場"],
1113
- [22, "美しく登場"],
1114
- [23, "偉そうに登場"],
1115
- [24, "おごそかに登場"],
1116
- [25, "恐ろしく登場"],
1117
- [26, "かっこよく登場"],
1118
- [33, "気取って登場"],
1119
- [34, "死の予感とともに登場"],
1120
- [35, "しめやかに登場"],
1121
- [36, "上品に登場"],
1122
- [44, "だらしなく登場"],
1123
- [45, "知的に登場"],
1124
- [46, "なごやかに登場"],
1125
- [55, "なめらかに登場"],
1126
- [56, "不機嫌に登場"],
1127
- [66, "陽気に登場"],
308
+ [11, translate("KillDeathBusiness.EXT.table1.11")],
309
+ [12, translate("KillDeathBusiness.EXT.table1.12")],
310
+ [13, translate("KillDeathBusiness.EXT.table1.13")],
311
+ [14, translate("KillDeathBusiness.EXT.table1.14")],
312
+ [15, translate("KillDeathBusiness.EXT.table1.15")],
313
+ [16, translate("KillDeathBusiness.EXT.table1.16")],
314
+ [22, translate("KillDeathBusiness.EXT.table1.22")],
315
+ [23, translate("KillDeathBusiness.EXT.table1.23")],
316
+ [24, translate("KillDeathBusiness.EXT.table1.24")],
317
+ [25, translate("KillDeathBusiness.EXT.table1.25")],
318
+ [26, translate("KillDeathBusiness.EXT.table1.26")],
319
+ [33, translate("KillDeathBusiness.EXT.table1.33")],
320
+ [34, translate("KillDeathBusiness.EXT.table1.34")],
321
+ [35, translate("KillDeathBusiness.EXT.table1.35")],
322
+ [36, translate("KillDeathBusiness.EXT.table1.36")],
323
+ [44, translate("KillDeathBusiness.EXT.table1.44")],
324
+ [45, translate("KillDeathBusiness.EXT.table1.45")],
325
+ [46, translate("KillDeathBusiness.EXT.table1.46")],
326
+ [55, translate("KillDeathBusiness.EXT.table1.55")],
327
+ [56, lambda { translate("KillDeathBusiness.EXT.table1.56", name: getNameTableResult(0)[1]) }],
328
+ [66, translate("KillDeathBusiness.EXT.table1.66")],
1128
329
  ]
330
+ extraTable2 = translate("KillDeathBusiness.EXT.table2")
331
+ extraTable3 = translate("KillDeathBusiness.EXT.table3")
332
+ extraTable4 = translate("KillDeathBusiness.EXT.table4")
1129
333
 
1130
334
  case type
1131
335
  when 1
@@ -1148,273 +352,87 @@ module BCDice
1148
352
  return tableName, result, number
1149
353
  end
1150
354
 
1151
- def getpcTableResult()
1152
- tableName = "製作委員決定表"
1153
- table = [
1154
- [11, 'ヘルライオン'],
1155
- [12, 'ヘルライオン'],
1156
- [13, 'ヘルライオン'],
1157
- [14, 'ヘルクロウ'],
1158
- [15, 'ヘルクロウ'],
1159
- [16, 'ヘルクロウ'],
1160
- [22, 'ヘルスネーク'],
1161
- [23, 'ヘルスネーク'],
1162
- [24, 'ヘルスネーク'],
1163
- [25, 'ヘルドラゴン'],
1164
- [26, 'ヘルドラゴン'],
1165
- [33, 'ヘルドラゴン'],
1166
- [34, 'ヘルフライ'],
1167
- [35, 'ヘルフライ'],
1168
- [36, 'ヘルフライ'],
1169
- [44, 'ヘルゴート'],
1170
- [45, 'ヘルゴート'],
1171
- [46, 'ヘルゴート'],
1172
- [55, 'ヘルベア'],
1173
- [56, 'ヘルベア'],
1174
- [66, 'ヘルベア'],
1175
- ]
1176
- result, number = get_table_by_d66_swap(table)
1177
-
1178
- return tableName, result, number
1179
- end
1180
-
1181
- def getohTableResult()
1182
- tableName = "実際どうだったのか表"
1183
- table = [
1184
- 'おおむね【興行収入】の予測は正確だった。増減はなしで、回収人はしばらく公共の場所でモテる。',
1185
- '思ったよりいけた!【興行収入】が4D6億ヘル円増加。ジャンルの佳作として五年後も話に上る。',
1186
- 'ちょっとゴタついて公開時期を逃した。【興行収入】が4D6億ヘル円減少。ヘルーレイの売り上げに期待しよう。',
1187
- '何の間違いか、同時期に他シーズンの映画版が公開される。【興行収入】は半分になる。',
1188
- 'なんの間違いか、ヘルアカデミー賞をいっぱい取った。【興行収入】は2倍になる!',
1189
- 'エピソード中の表現が微妙かつ厄介な問題を引き起こし、たくさんのヘルピープルが嫌な気分になったうえ公開ナシに。',
1190
- ]
1191
- result, number = get_table_by_1d6(table)
1192
-
1193
- return tableName, result, number
1194
- end
1195
-
1196
- def getplTableResult()
1197
- tableName = "ヘルライオンタスク表"
1198
- table = [
1199
- '「フランス語。」指定特技は《芸術家》。なぜか登場人物全員がフランス語でしか会話できないシーンが設定される。知っている限りのフランス語を駆使して意思疎通を試みろ!',
1200
- '「会話がない。」指定特技は《跳ぶ》。会話そのものが下劣でエンターテイメント的だということで、全く言葉を発することが許されないシーン表が設定される。ジェスチャーで頑張れ!',
1201
- '「名言の引用。」指定特技は《髪飾り》。過去の名作映画や小説、歴史上の出来事などからパクってきた名言しか口にできないシーンが設定される。教養がないと喋れない!',
1202
- '「登場人物の増加。」指定特技は《トラッド》。登場人物が無駄に倍に増え、それぞれ個性的な悩みや事件を語り始める。このままでは面倒だしギャラもかさむので、全員殺そう。',
1203
- '「漠然とした不安。」指定特技は《自負》。特定のものごとではなく、ぼんやりとした不安感に延々苦しんだり落ち込んだりするシーンを強要される。これを退屈にしないのは難しい!',
1204
- '「長回し。」指定特技は《生》。カットの切り替わりなしで、30分ほど同じシーンが続く。NGは許されない。これで間を持たせられるのはプロの俳優くらいのものだが、回収人は演技の素人だ。',
1205
- ]
1206
- result, number = get_table_by_1d6(table)
1207
-
1208
- return tableName, result, number
1209
- end
1210
-
1211
- def getprTableResult()
1212
- tableName = "ヘルクロウタスク表"
1213
- table = [
1214
- '「しょぼいゲスト。」指定特技は《悪漢》。一般人や犬、弟やお母さんがゲストとして登場する。本来のゲストとの差額は着服される。事情を知らされていないゲストとうまく絡め!',
1215
- '「実家での撮影。」指定特技は《叫ぶ》。撮影場所が実家になる。本来のロケ費用は着服される。家人を説得して、うまく撮影許可をもらわなければ赤字が出てしまうだろう!',
1216
- '「普段着での撮影。」指定特技は《眼鏡》。なぜかヘルスタイリストが休みで、その分の人件費と衣装代は着服される。普段着のまま超常のアクションをこなすのは不可能に近い!',
1217
- '「徒歩で移動する。」指定特技は《ゴシック》。ヘルポータルの予算を着服された。ひたすらシーンまで歩かないと撮影すらできない。撮影前に疲れ切ってしまうと、観客にも伝わるだろう。',
1218
- '「特殊効果が出ない。」指定特技は《期待》。リアルタイム特殊効果の予算を着服された!予算なしで働こうとしないヘルSFXエンジニアを、なんとか泣き落としで働かせろ!',
1219
- '「食事が出ない。」指定特技は《獲得》。食事の時間だが、ヘル仕出し弁当が来ない。その分の予算を着服されたのだ。空腹のままいい演技をするには、気合に頼るしかない。',
1220
- ]
1221
- result, number = get_table_by_1d6(table)
1222
-
1223
- return tableName, result, number
1224
- end
1225
-
1226
- def getpnTableResult()
1227
- tableName = "ヘルスネークタスク表"
1228
- table = [
1229
- '「仇。」指定特技は《家事手伝い》。過去改変により、任意の相手が、急に親の仇や恋人の仇になる。戸惑わずに怒りに燃えよう。なぜこうなったのか、考えてしまってはダメだ!',
1230
- '「些細なことから大喧嘩。」指定特技は《待つ》。任意の相手と、どうでもいい理由でけんかをすることを強要される。本当にどうでもよくなって仲たがいをやめることは許されない。',
1231
- '「利益が相反する。」指定特技は《ネックレス》。任意の相手の願いごとと自分の願いごとが両立しないことをアピールさせられる。そうでなくても、むりやり理由をひねり出せ!',
1232
- '「神敵。」指定特技は《ネイキッド》。趣味や宗教を理由に、任意の相手と仲たがいすることを強要される。話してわかってしまったり、趣味の幅が広がってはいけない。',
1233
- '「幼児期のトラウマ。」指定特技は《嫉妬》。過去改変で哀しい記憶が捏造され、猟奇殺人犯としてキャラ付される。若干引いてしまったり、悲しさを乗り越えてはダメだ。狂え!',
1234
- '「人類一般への憎しみ。」指定特技は《復讐》。理由なく人を憎むことを強要される。もともと性格のいい回収人にとってはかなりの難行だ。人類の悪いところ探しをしよう!',
1235
- ]
1236
- result, number = get_table_by_1d6(table)
1237
-
1238
- return tableName, result, number
1239
- end
1240
-
1241
- def getpdTableResult()
1242
- tableName = "ヘルドラゴンタスク表"
1243
- table = [
1244
- '「バリエーションを見たくてNG。」指定特技は《大物》。別に悪い演技ではないのに、ちょっと違うバリエーションを何度もやらされるぞ。キレずに耐えてくれ!',
1245
- '「なんか違うからNG。」指定特技は《殴る》。回収人の演技に難癖をつけられた。しかしどんな演技をすればいいのか教えてはくれない。キレずに耐えてくれ!他の人を殴れ!',
1246
- '「まだ時間があるからNG。」指定特技は《タトゥー》。クソみたいな理由でNGを出されたが、とにかくキレずに耐えてくれ。ヘルドラゴンが機嫌を損ねると広告費が削られる!',
1247
- '「予算を使い切りたくてNG。」指定特技は《ネイキッド》。まだ人件費が使えるからもう一回、とかいう理由でやり直しだ。キレずに耐えてくれ。ヤツは金を持ってるんだ!',
1248
- '「機嫌が悪いのでNG。」指定特技は《怒り》。家で何かイヤなことがあったので難癖をつけられた。もう、なにをしてもOKは出ない。キレずに耐えてくれ。いつかは終わる!',
1249
- '「お前そのものがNG。」指定特技は《安全》。回収人の人選そのものに難癖をつけられた。あなたにNGを出すことだけが目的だ。キレずに耐えてくれ。相手は超強いのだ。',
1250
- ]
1251
- result, number = get_table_by_1d6(table)
1252
-
1253
- return tableName, result, number
1254
- end
1255
-
1256
- def getpfTableResult()
1257
- tableName = "ヘルフライタスク表"
1258
- table = [
1259
- '「汚いトイレ。」指定特技は《探偵》。すごく不衛生な場所に背景が変更される。肥溜めと見まごうばかりのトイレか、肥溜めだ。臭いに耐えられるかどうか、そこが勝負の分かれ目だ!',
1260
- '「芸術的陰部隠し。」指定特技は《跳ぶ》。全裸でシーンを過ごすが映ってはいけないものがある。本来なら水着の布地がある部分がカメラに映らないように、障害物を活用しろ!',
1261
- '「触手。」指定特技は《ベルト》。唐突に触手モンスターが登場する。彼は紳士的だが容赦なく襲いかかってくるので、セクシーに負けろ!さもなくば観客はがっかりするだろう!',
1262
- '「ヌルヌル。」指定特技は《トラッド》。なんだか粘液が入ったバケツが登場する。これを被ってシーンを始めろというのだ。成分もわからない粘液はイヤだが、なんとか耐えろ!',
1263
- '「病原体を経口摂取する。」指定特技は《恐怖》。病気の原因になりそうなものを無理やり食べることに。具体的には排泄物や腐敗したもの、最初から不衛生なものなどだ。',
1264
- '「局部へのひどい打撃。」指定特技は《死》。ヘルADや他のキャラクターから局部を強打されることを強要される。死なずにうまく痛がれ。下手をするとショックでそのまま死ぬ!',
1265
- ]
1266
- result, number = get_table_by_1d6(table)
1267
-
1268
- return tableName, result, number
1269
- end
1270
-
1271
- def getpgTableResult()
1272
- tableName = "ヘルゴートタスク表"
1273
- table = [
1274
- '「アイドルが仲間として登場。」指定特技は《医師》。推しアイドルが回収人の味方として登場するので、スムーズに関係を築いて共闘し、相手を立てよう。リスペクトだ!',
1275
- '「アイドルが敵として登場。」指定特技は《蹴る》。推しアイドルが標的の味方。回収人の敵として登場!見せ場を用意してあげつつ、うまく倒せ。一方的ではダメだ!',
1276
- '「アイドルが無意味に登場。」指定特技は《剣》。推しアイドルが登場するが、なぜ登場するのか誰もわからない。本人も役を教えられていない。即興で何とかしろ!',
1277
- '「アイドルの仲間になる。」指定特技は《エスニック》。推しアイドルの仲間となり、唐突に恋や冒険をすることに。黄金の魂と関係ない話が続くが、観客にそれを気づかせるな!',
1278
- '「アイドルと握手。」指定特技は《愛》。推しアイドルが急に出てきて握手してくれる。急なことだが、とまどってはいけない。流れるように話題を作って会話し、握手へのコメントをしよう」!',
1279
- '「混ざってダンス。」指定特技は《健康》。いきなりダンスシーンが始まる!ただし回収人はバックダンサーだ。歌え!踊りきれ!息切れしたり笑顔が引きつるとNGだ!',
1280
- ]
1281
- result, number = get_table_by_1d6(table)
1282
-
1283
- return tableName, result, number
1284
- end
1285
-
1286
- def getpbTableResult()
1287
- tableName = "ヘルベアタスク表"
1288
- table = [
1289
- '「ヘルふとん。」指定特技は《大物》。地獄のような寝心地を提供する、一枚200万ヘル円のヘルふとんをアピールすることに。素材は絶対そんなにしないから、技術を強調しよう。',
1290
- '「ヘルハンドバッグ。」指定特技は《掴む》。無限にものが入るハンドバッグをアピールだ。ただし狙ったものを取り出せないし、バッグのなかにバッグを入れると、ひどいことが起きる。',
1291
- '「へルマスク。」指定特技は《帽子》。完全にヘルPの頭部を再現した高級マスクを被り、その素晴らしさをアピールしながら映画を撮影しよう。なお、視界はすごく悪い。',
1292
- '「ヘルカメラ。」指定特技は《アイドル》。かならず心霊写真が写るカメラを観客に売りつけろ!霊障が起きることもあるんだが、それを悟られてはいけない。写真をはっきり見られるな!',
1293
- '「ヘルウォッチ。」指定特技は《焦り》。時間はわからないが超かっこいい時計をアピール。それってブレスレットじゃないのか、と突っ込まれる前に逃げ切るんだ!',
1294
- '「ヘルお札。」指定特技は《繁栄》。願いを成就する悪霊が、あなたの成功を確約!その後は成功したまま事故で死ぬことになるが、そんなの些細なことだ!',
1295
- ]
1296
- result, number = get_table_by_1d6(table)
1297
-
1298
- return tableName, result, number
355
+ ALIAS = {
356
+ "DeathWT" => "DWT",
357
+ "RevengeWT" => "RWT",
358
+ "VictoryWT" => "VWT",
359
+ "PossesionWT" => "PWT",
360
+ "ControlWT" => "CWT",
361
+ "FlourishWT" => "FWT",
362
+ "IntensifyWT" => "IWT",
363
+ "HealthWT" => "HWT",
364
+ "SafetyWT" => "SAWT",
365
+ "LongevityWT" => "LWT",
366
+ "ExistWT" => "EWT",
367
+ "OccultSPT" => "OSPT",
368
+ "FamilySPT" => "FSPT",
369
+ "LoveSPT" => "LOSPT",
370
+ "JusticeSPT" => "JSPT",
371
+ "TrainingSPT" => "TSPT",
372
+ "BeamSPT" => "BSPT",
373
+ }.transform_keys(&:upcase).freeze
374
+
375
+ class << self
376
+ private
377
+
378
+ def translate_tables(locale)
379
+ {
380
+ "HST" => DiceTable::Table.from_i18n("KillDeathBusiness.table.HST", locale),
381
+ "DWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.DWT", locale),
382
+ "RWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.RWT", locale),
383
+ "VWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.VWT", locale),
384
+ "PWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PWT", locale),
385
+ "CWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.CWT", locale),
386
+ "FWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.FWT", locale),
387
+ "IWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.IWT", locale),
388
+ "HWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.HWT", locale),
389
+ "SAWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.SAWT", locale),
390
+ "LWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.LWT", locale),
391
+ "EWT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.EWT", locale),
392
+ "OSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.OSPT", locale),
393
+ "FSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.FSPT", locale),
394
+ "LOSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.LOSPT", locale),
395
+ "JSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.JSPT", locale),
396
+ "TSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.TSPT", locale),
397
+ "BSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.BSPT", locale),
398
+ "CMT" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.CMT", locale),
399
+ "ERT" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.ERT", locale),
400
+ "WKT" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.WKT", locale),
401
+ "SOUL" => DiceTable::Table.from_i18n("KillDeathBusiness.table.SOUL", locale),
402
+ "STGT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.STGT", locale),
403
+ "PCDT" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.PCDT", locale),
404
+ "OHT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.OHT", locale),
405
+ "PCT1" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT1", locale),
406
+ "PCT2" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT2", locale),
407
+ "PCT3" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT3", locale),
408
+ "PCT4" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT4", locale),
409
+ "PCT5" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT5", locale),
410
+ "PCT6" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT6", locale),
411
+ "PCT7" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PCT7", locale),
412
+ "ANSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.ANSPT", locale),
413
+ "MASPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.MASPT", locale),
414
+ "MOSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.MOSPT", locale),
415
+ "PASPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PASPT", locale),
416
+ "POSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.POSPT", locale),
417
+ "UMSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.UMSPT", locale),
418
+ }
419
+ end
1299
420
  end
1300
421
 
1301
- TABLES = {
1302
- "ANSPT" => DiceTable::Table.new(
1303
- "サブプロット表「対悪魔」",
1304
- "1D6",
1305
- [
1306
- "『退魔の印』\nキャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の持っているものが有名なマジックアイテムであり、将来的に悪魔と戦うときに有用だと確信する。貸してもらう約束をとりつけなければ!相手への関係を、属性「退魔師」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると、相手は小道具を譲ることに同意してくれる。それが役に立つのかは、また別の話。\n報酬:【視聴率】10%増加、200【ソウル】",
1307
- "『サービスしない』\nキャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の姿がヒントになって、サービスシーンが失敗すればヘルピープルがガッカリするだろうと気づく。相手への関係を、属性「失敗要因」で獲得する。【深度】は1になる。\nクリア条件:相手がサービスシーンを失敗したところに居合わせる。結局、心の声なども放送されているので、あなたの無謀な試みはヘル視聴者に筒t抜けだ。\n報酬:【視聴率】10%増加、あなたと相手の両方に200【ソウル】",
1308
- "『悪魔の手下』\nキャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の職業がなんであるのか気づく……それは昔からあなたが悪魔の手下とみなしている職業だった!相手への関係を、属性「悪魔の手下」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると誤解が解けて、職業的偏見も解消される……あるいは、本当に悪魔の手下であったことが判明する。\n報酬:【視聴率】10%増加、200【ソウル】",
1309
- "『番組失敗』\nキャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の抱いている興奮や不安を、ヘルPも同様に抱いていることが分かる。つまり、この番組がうまくいかなければ、悪魔が一匹苦しむ。相手への関係を、属性「気づき」で獲得する。【深度】は1になる。\nクリア条件:結果フェイズ開始時に【視聴率】が30%以下になっていること。これで奴をリンボにトばせるかもしれない。\n報酬:【視聴率】10%増加、200【ソウル】",
1310
- "『不殺』\n標的が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、標的を殺さないことで悪魔の力を削ぐことができると気づく。そのためには、相手を守らないといけない。相手への関係を、属性「守るべき人」で獲得する。【深度】は1になる。\nクリア条件:結果フェイズまで相手を生き残らせる。怒るヘルPに皮肉の一つでも言ってやるといいだろう。\n報酬:【視聴率】10%増加、700【ソウル】",
1311
- "『仲間』\nキャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手が悪魔と戦う際に力になってくれる人物だと確信する。愚かな番組への協力をやめさせれば、きっと大丈夫だ。相手への関係を、属性「同士」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を3にする。結局断られるかもしれないが、あなたは言うだけ言ったことで満足した。\n報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】 相手がNPCなら600【ソウル】"
1312
- ]
1313
- ),
1314
- "MASPT" => DiceTable::Table.new(
1315
- "サブプロット「意地悪」",
1316
- "1D6",
1317
- [
1318
- "『二位狙い』\nキャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたはがっかりした相手の顔を見たくなる。相手への関係を、属性「二位にしたい」で獲得する。【深度】は1になる。\nクリア条件:結果フェイズに他のサブプロットクリアの処理が終わったあとで、相手の【ソウル】が回収人のなかで最も多い状態ではないこと。ギリギリの二位にしてやることで、いい顔が見られるだろう。\n報酬:【視聴率】10%増加、相手の所持【ソウル】と同じだけの【ソウル】(最低0、最大600)",
1319
- "『偏見』\nキャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の職業に対して根強い偏見を持っていることになる。どんどんイヤミを言っていこう。相手への関係を、属性「いらない奴」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を3にする。あなたの偏見は解消されるのかもしれないし、あるいは相手がひどく落ち込むことで、あなたが勝利を確信するのかもしれない。\n報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】 相手がNPCなら600【ソウル】",
1320
- "『ダメ衣装』\nキャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の衣装が非常にダメだと確信する。罵倒したい。いやむしろ罵倒しないといけない。相手への関係を、属性「服がダメ」で獲得する。【深度】は1になる。\nクリア条件:相手と同じシーンに三回登場し、三シーンにわたってヘルスタイリスト罵倒表を使った罵倒を行う。オリジナルの罵倒でもかまわない。\n報酬:【視聴率】10%増加、あなたと相手の両方に100【ソウル】",
1321
- "『弱そうな奴』\nキャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の動きが非常に一般人じみていて簡単に倒せそうであると確信する。相手への関係を、属性「弱そう」で獲得する。【深度】は1になる。\nクリア条件:相手に戦闘を挑みキラートリックで倒す。ラッキーヒットだったのかもしれないし、相手は本当にチョロかったのかもしれない。だが、そんなことは結果の前には関係ない。\n報酬:【視聴率】10%増加、500【ソウル】",
1322
- "『ニセブランド』\nキャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の持っているアイテムがニセのブランド品だと確信する!これはしつこく言い立てなければ!相手への関係を、属性「情報弱者」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。あなたの間違いが判明するか、あなたが正しかったことが判明するか、あるいはどうでもよくなるか。選ぶのはあなただ!\n報酬:【視聴率】10%増加、200【ソウル】",
1323
- "『泣かせたい』\nキャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の泣き顔がヘル視聴者(と、あなた)に非常な満足感を与えてくれるであろうと確信する。相手への関係を、属性「泣かせたい人」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。相手は泣き出すか、そっと涙を流す……が、理由は相手が決定する。血が目に入っただけかもしれない。\n報酬:【視聴率】10%増加、200【ソウル】"
1324
- ]
1325
- ),
1326
- "MOSPT" => DiceTable::Table.new(
1327
- "サブプロット表「金儲け」",
1328
- "1D6",
1329
- [
1330
- "『悪魔の代わり』\n回収人から一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたは相手の願いを叶える現実的な方法を思いつく。まとまった予算があれば可能だ。あとは売り込むだけ!相手への関係を、属性「新規顧客」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を3にする。すると、相手は承諾する……番組で負けたらの話だが。そして約束は守られない可能性がある。\n報酬:【視聴率】10%増加、400【ソウル】",
1331
- "『スカウト』\nキャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、相手こそあなたのビジネスに必要な人材だったと気がつく。番組の勝敗がどうなるにせよ、番組終了後に相手を確保しておきたい。相手への関係を、属性「即戦力」で獲得する。【深度】は1になる。\nクリア条件:このサブプロットを獲得した次のセッションの導入シーンの始めに相手が登場する。地獄に堕ちているとダメ。\n報酬:【視聴率】10%増加、200【ソウル】",
1332
- "『売り出し』\nキャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、ヘルドレスの下に隠された相手の体格が、マスのニーズにぴったりと合致するものだと確信する。マネージメントして大儲けだ!相手への関係を、属性「モデル候補」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると相手のプロフィールをある程度把握することに成功し、あとで勝手に売り出すことが可能になる。\n報酬:【視聴率】10%増加、200【ソウル】",
1333
- "『クローン』\nキャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、その小道具はデザインがかっこいいうえに、ちょっとした施設があれば簡単にコピー品を量産できることに気がつく。相手への関係を、属性「オリジナル」で獲得する。【深度】は1になる。\nクリア条件:相手を戦闘で一度倒す。ヘルERに送られる相手の小道具をそっと抜き取り、グレーな感じの工場に送ろう。来週には世界中に出回っているはずだ。\n報酬:【視聴率】10%増加、300【ソウル】",
1334
- "『チャンプ』\nキャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の身のこなしのなかに、任意の格闘技の世界チャンプになれる素質を見て取る。いいトレーナーをつければイケるはずだ!相手への関係を、属性「原石」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると、相手は興味を示した、とあなたが確信する。チャンピオンのマネージャーとして栄華を極めるあなたの未来が目に浮かぶ。\n報酬:【視聴率】10%増加、200【ソウル】",
1335
- "『ゆるキャラ』\nキャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手のムードにぴったりのキャラを思いつく。あなたの考えた変な語尾をつけさせることができれば、大ヒット間違いなしだ……!相手への関係を、属性「中身」で獲得する。【深度】は1になる。\nクリア条件:語尾を一つ指定する。相手が登場するメインフェイズのうち三つで、プレイヤーのものを含む発言すべてにその語尾をつけて喋るとクリア。他のプレイヤーやゲームマスターに語尾の欠落を指摘されるとNG。\n報酬:【視聴率】10%増加、あなたと相手の両方に300【ソウル】"
1336
- ]
1337
- ),
1338
- "PASPT" => DiceTable::Table.new(
1339
- "サブプロット表「仕切り」",
1340
- "1D6",
1341
- [
1342
- "『協力しろ』\nキャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手は番組の内容にうんざりしていて、はなから協力する気がないのだと確信する。説得して番組を盛り上げるようにしなくては!相手への関係を、属性「非協力的」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を3にする。すると相手はあなたの意気込みを分かってくれたような……くれないような。まあとにかく一区切りがつく。\n報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】相手がNPCなら600【ソウル】",
1343
- "『願いごと変更』\nキャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の願いは番組的によくないものだと確信する。もっと盛り上がるような、いい願いに変えさせなければ!相手への関係を、属性「願いが下手」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると、相手は願いごとをあなたが提案したものに変更することに同意する。そして、後で本当に変更したりしなかったりするだろう。\n報酬:【視聴率】10%増加、200【ソウル】",
1344
- "『少しの助け』\nキャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手は自分が手を貸してやらないとダメな奴だと直感する。放っておいたらなんの役にも立たずにいるだけになってしまうだろう。相手への関係を、属性「一人ではダメ」で獲得する。【深度】は1になる。\nクリア条件:相手に対して判定への協力を行い、その判定が成功する。すると相手の成功にも自分の協力にも満足がいき、感動的なBGMも流れる。\n報酬:【視聴率】10%増加、クリア条件達成時の相手への関係【深度】×200【ソウル】",
1345
- "『トリビア』\nキャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の職業的知識をトリビアとして披露することが番組には不可欠だと確信してしまう。なんとかして聞き出さなければ。相手への関係を、属性「トリビア係」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。いくつか職業的知識がヘル視聴者に披露されたことで、視聴者ではなくあなたの知識欲が満たされた。\n報酬:【視聴率】10%増加、200【ソウル】",
1346
- "『決め台詞』\nキャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手が小道具を使うときにドラマティックな決め台詞を使えば番組的にオイシイと気づく。言わせたい……!相手への関係を、属性「素人」で獲得する。【深度】は1になる。\nクリア条件:相手が参加する戦闘の開始時に、あなたの考えた決め台詞を相手に二回言わせる。途中で台詞を変えたらカウントしなおし。\n報酬:【視聴率】10%増加、あなたと相手の両方に300【ソウル】",
1347
- "『テコ入れ回避』\nキャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、こんな人がいるんじゃあ番組の視聴率も期待できないと確信してしまう。頑張らなければ。誰が?あなたが!相手への関係を、属性「売れなさそう」で獲得する。【深度】は1になる。\nクリア条件:結果フェイズ開始時に【視聴率】が40%以上になっている。危ない場面もあったかもしれないが、とりあえずOKだ。\n報酬:【視聴率】10%増加、300【ソウル】 クリア時にフィーバーが発生していれば、さらに300【ソウル】"
1348
- ]
1349
- ),
1350
- "POSPT" => DiceTable::Table.new(
1351
- "サブプロット表「人気」",
1352
- "1D6",
1353
- [
1354
- "『踏み台』\nキャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手のようなムードの人物と一緒にサービスシーンを行えばヘル視聴者に愛されると確信する。相手への関係を、属性「踏み台」で獲得する。【深度】は1になる。\nクリア条件:相手と一緒にサービスシーンを成功させる。意図していたのかは不明だが、相手のアシストによりサービスは成功、ちょっと実況されたりもする。\n報酬:【視聴率】10%増加、200【ソウル】",
1355
- "『器用さ』\nキャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、どんな相手と組ませてもソツなくこなすマルチな人材としてヘルPにチヤホヤされる未来が目に浮かぶ。まずはあいつからだ。相手への関係を、属性「最初の課題」で獲得する。【深度】は1になる。\nクリア条件:合計三人のキャラクターと一緒にサービスシーンを三回成功させる。それぞれ違うキャラクターと行うこと。成功するたびにヘル視聴者はあなたの器用さに感銘を受ける。\n報酬:【視聴率】10%増加、500【ソウル】 クリア時にフィーバーが発生していれば、さらに300【ソウル】",
1356
- "『主役争い』\nキャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の願いごとはヘル視聴者にウケて人気が出てしまいそうだと直感する。なんとか相手を自分のストーリーに巻き込まなければ。相手への関係を、属性「脇役候補」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を3にする。相手のことを深く知り、ヘルカメラに向かって事情を語らせることで、こいつのストーリーは終わったと確信できた!\n報酬:【視聴率】10%増加、相手が回収人なら400【ソウル】 相手がNPCなら500【ソウル】",
1357
- "『アレを奪え』\nキャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、相手の持っているものは自分にこそふさわしいと確信する。ヘルスタイリストのチョイスは間違っていた。あれはあなたのものだ!相手への関係を、属性「アイテムハンガー」で獲得する。【深度】は1になる。\nクリア条件:暴力で奪うなら、相手を戦闘で一度倒す。譲ってもらいたいなら、相手への関係の【深度】を3にする。どちらにせよ、クリア条件を達成した時点であなたは高揚感に包まれて満足してしまい、結局小道具はいらないものだったと悟る。\n報酬:【視聴率】10%増加、クリア条件達成時の相手への関係【深度】×200【ソウル】",
1358
- "『振り付け』\nキャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手のなにげない動きに対して、今年の流行ナンバーワンになる可能性を見て取る。あの振り付けを盗まなければ……!相手への関係を、属性「無自覚な天才」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると相手は振り付けを教えてくれて、あなたは完全にそれをモノにする。流行るかどうかはまた別の問題だ。\n報酬:【視聴率】10%増加、200【ソウル】",
1359
- "『着こなし』\nキャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、相手のヘルドレスの着こなしはあなたを完全に凌駕していると確信してしまう。他の面では勝っているのに。相手への関係を、属性「ファッショナブル」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると相手は着こなしについて丁寧な、あるいは短いが核心を突いていると思われる助言をあなたにしてくれる。役に立ったり立たなかったりするだろう。\n報酬:【視聴率】10%増加、200【ソウル】"
1360
- ]
1361
- ),
1362
- "UMSPT" => DiceTable::Table.new(
1363
- "サブプロット表「恨み」",
1364
- "1D6",
1365
- [
1366
- "『悲しい過去』\nキャラクターから一人を選び、相手が「職業」で修得している特技を指定特技として判定を行う。判定に成功すると、相手と同じ職業の人に虐げられた悲しい過去が、あなたの脳裏にフラッシュバックする。相手への関係を、属性「奴らの同類」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。相手を深く知っていくなかで、あなたの恨みは溶けて消えるか、さらに深まって人格の一部になるだろう。\n報酬:【視聴率】10%増加、200【ソウル】",
1367
- "『昔の恋人』\nキャラクターから一人を選び、相手が「動作」で修得している特技を指定特技として判定を行う。判定に成功すると、相手とあなたの昔の恋人がまったく同じ癖を持っている事が判明する!もしや……そして、手ひどくフラれた過去がフラッシュバックする。相手への関係を、属性「昔の恋人」で獲得する。【深度】は1になる。\nクリア条件:なぜフッたのか聞き出すため戦闘で一度倒す。すると、相手は理由を語るか、あるいはただの人違いであったことが判明する。いずれにせよあなたは人間的に成長できる……かもしれない。\n報酬:【視聴率】10%増加、クリア条件達成時の【関係深度】×200【ソウル】",
1368
- "『間違い』\nキャラクターから一人を選び、相手が「情動」で修得している特技を指定特技として判定を行う。判定に成功すると、相手と同じモチベーションで行動する人に敗北した過去が、あなたの脳裏にフラッシュバックする。奴らは間違っている。それを地獄に知らしめなければ!相手への関係を、属性「悪人」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると、相手は分かってくれる。または、あなたは理解してもらえたと思い込む。今日は久々にいい気分で眠れそうだ。\n報酬:【視聴率】10%増加、あなたと相手の両方に100【ソウル】",
1369
- "『破れた夢』\nキャラクターから一人を選び、相手が「願望」で修得している特技を指定特技として判定を行う。判定に成功すると、あなたはかつて同じ夢を抱き、そして破れていたことが判明する。夢を諦める悲しいシーンが脳裏にフラッシュバックする。相手への関係を、属性「破滅しそう」で獲得する。【深度】は1になる。\nクリア条件:相手がサブプロットを達成したシーンに登場する。すると、あなたは相手の成功を我がことのように喜んでいる自分に気づく。もしかしたら、これがきっかけで変われるのかもしれない。\n報酬:【視聴率】10%増加、300【ソウル】",
1370
- "『仇の手下』\nキャラクターから一人を選び、相手が「小道具」で修得している特技を指定特技として判定を行う。判定に成功すると、その小道具にはあなたが生涯の敵として定めた人物が関わっていることが明らかになる。そんなものを使うとは……許せん!相手への関係を、属性「奴らの手下」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にする。すると、相手は本当に奴らの手下であると確信できる。本当のところは不明。そのあとに戦闘を挑み、一度相手を倒せ。すると、あなたは満足する。次は奴だ。\n報酬:【視聴率】10%増加、300【ソウル】",
1371
- "『服よこせ』\nキャラクターから一人を選び、相手が「衣装」で修得している特技を指定特技として判定を行う。判定に成功すると、その衣装は本当はあなたが着たかったものだと判明する。ヘルスタイリストへの抗議がひどい罵倒とともに却下されるシーンが脳裏にフラッシュバックする。相手への関係を、属性「服よこせ」で獲得する。【深度】は1になる。\nクリア条件:相手への関係の【深度】を2以上にし、かつ相手からあなたへの関係の【深度】を1以上にする。根負けした相手はちょっとヘルドレスを貸してくれて、あなたは満足する。ちなみに、本当に似合っているかどうかは関係ない。\n報酬:【視聴率】10%増加、あなたと相手の両方に300【ソウル】"
1372
- ]
1373
- ),
1374
- }.freeze
422
+ TABLES = translate_tables(:ja_jp)
1375
423
 
1376
- register_prefix([
1377
- 'HST',
424
+ register_prefix(
1378
425
  'ST[1-2]?',
1379
- 'DWT', 'DeathWT',
1380
- 'RWT', 'RevengeWT',
1381
- 'VWT', 'VictoryWT',
1382
- 'PWT', 'PossesionWT',
1383
- 'CWT', 'ControlWT',
1384
- 'FWT', 'FlourishWT',
1385
- 'IWT', 'IntensifyWT',
1386
- 'HWT', 'HealthWT',
1387
- 'SaWT', 'SafetyWT',
1388
- 'LWT', 'LongevityWT',
1389
- 'EWT', 'ExistWT',
1390
- 'NAME[1-3]?', 'NAME[1-3]?',
1391
- 'OSPT', 'OccultSPT',
1392
- 'FSPT', 'FamilySPT',
1393
- 'LoSPT', 'LoveSPT',
1394
- 'JSPT', 'JusticeSPT',
1395
- 'TSPT', 'TrainingSPT',
1396
- 'BSPT', 'BeamSPT',
1397
- 'CMT',
426
+ 'NAME[1-3]?',
1398
427
  'EST', 'sErviceST',
1399
- 'SOUL',
1400
- 'STGT',
1401
428
  'HSAT[1-2]?',
1402
429
  'EXT[1-4]?',
1403
430
  'SKLT',
1404
431
  'SKLJ',
1405
- 'ERT',
1406
- 'WKT',
1407
- 'PCDT',
1408
- 'OHT',
1409
- 'PCT1',
1410
- 'PCT2',
1411
- 'PCT3',
1412
- 'PCT4',
1413
- 'PCT5',
1414
- 'PCT6',
1415
- 'PCT7',
1416
- 'JD.*'
1417
- ] + TABLES.keys)
432
+ 'JD'
433
+ )
434
+ register_prefix(TABLES.keys)
435
+ register_prefix(ALIAS.keys)
1418
436
  end
1419
437
  end
1420
438
  end