bcdice 3.0.0.pre.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.github/.codecov.yaml +10 -0
  4. data/.github/workflows/coverage.yaml +21 -0
  5. data/.github/workflows/lint.yaml +13 -0
  6. data/.github/workflows/test.yml +20 -0
  7. data/.gitignore +14 -0
  8. data/.rubocop.yml +96 -0
  9. data/.rubocop_todo.yml +113 -0
  10. data/CHANGELOG.md +868 -0
  11. data/Gemfile +11 -0
  12. data/LICENSE +29 -0
  13. data/README.md +38 -0
  14. data/ROADMAP.md +30 -0
  15. data/Rakefile +118 -0
  16. data/bcdice.gemspec +27 -0
  17. data/bin/repl.rb +21 -0
  18. data/docs/README.txt +2028 -0
  19. data/docs/dicebot_sort_key.md +72 -0
  20. data/docs/how_to_make_dicebot.md +453 -0
  21. data/lib/bcdice.rb +8 -0
  22. data/lib/bcdice/arithmetic_evaluator.rb +167 -0
  23. data/lib/bcdice/base.rb +423 -0
  24. data/lib/bcdice/command_parser.rb +242 -0
  25. data/lib/bcdice/common_command.rb +23 -0
  26. data/lib/bcdice/common_command/add_dice.rb +54 -0
  27. data/lib/bcdice/common_command/add_dice/node.rb +488 -0
  28. data/lib/bcdice/common_command/add_dice/parser.rb +282 -0
  29. data/lib/bcdice/common_command/add_dice/randomizer.rb +48 -0
  30. data/lib/bcdice/common_command/barabara_dice.rb +57 -0
  31. data/lib/bcdice/common_command/calc.rb +39 -0
  32. data/lib/bcdice/common_command/choice.rb +35 -0
  33. data/lib/bcdice/common_command/d66_dice.rb +63 -0
  34. data/lib/bcdice/common_command/reroll_dice.rb +190 -0
  35. data/lib/bcdice/common_command/upper_dice.rb +165 -0
  36. data/lib/bcdice/common_command/version.rb +26 -0
  37. data/lib/bcdice/dice_table.rb +8 -0
  38. data/lib/bcdice/dice_table/chain_table.rb +33 -0
  39. data/lib/bcdice/dice_table/d66_grid_table.rb +26 -0
  40. data/lib/bcdice/dice_table/d66_range_table.rb +26 -0
  41. data/lib/bcdice/dice_table/d66_table.rb +34 -0
  42. data/lib/bcdice/dice_table/range_table.rb +267 -0
  43. data/lib/bcdice/dice_table/roll_result.rb +43 -0
  44. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +32 -0
  45. data/lib/bcdice/dice_table/table.rb +35 -0
  46. data/lib/bcdice/enum.rb +15 -0
  47. data/lib/bcdice/format.rb +36 -0
  48. data/lib/bcdice/game_system.rb +187 -0
  49. data/lib/bcdice/game_system/AFF2e.rb +141 -0
  50. data/lib/bcdice/game_system/AceKillerGene.rb +55 -0
  51. data/lib/bcdice/game_system/Airgetlamh.rb +117 -0
  52. data/lib/bcdice/game_system/Alsetto.rb +124 -0
  53. data/lib/bcdice/game_system/Alshard.rb +27 -0
  54. data/lib/bcdice/game_system/AlterRaise.rb +282 -0
  55. data/lib/bcdice/game_system/Amadeus.rb +622 -0
  56. data/lib/bcdice/game_system/Amadeus_Korean.rb +501 -0
  57. data/lib/bcdice/game_system/AnimaAnimus.rb +96 -0
  58. data/lib/bcdice/game_system/Arianrhod.rb +50 -0
  59. data/lib/bcdice/game_system/ArsMagica.rb +149 -0
  60. data/lib/bcdice/game_system/Avandner.rb +101 -0
  61. data/lib/bcdice/game_system/BBN.rb +143 -0
  62. data/lib/bcdice/game_system/BadLife.rb +435 -0
  63. data/lib/bcdice/game_system/BarnaKronika.rb +188 -0
  64. data/lib/bcdice/game_system/BattleTech.rb +530 -0
  65. data/lib/bcdice/game_system/BeastBindTrinity.rb +348 -0
  66. data/lib/bcdice/game_system/BeginningIdol.rb +2527 -0
  67. data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2378 -0
  68. data/lib/bcdice/game_system/BladeOfArcana.rb +252 -0
  69. data/lib/bcdice/game_system/BlindMythos.rb +460 -0
  70. data/lib/bcdice/game_system/BloodCrusade.rb +423 -0
  71. data/lib/bcdice/game_system/BloodMoon.rb +213 -0
  72. data/lib/bcdice/game_system/CardRanker.rb +249 -0
  73. data/lib/bcdice/game_system/ChaosFlare.rb +181 -0
  74. data/lib/bcdice/game_system/Chill.rb +163 -0
  75. data/lib/bcdice/game_system/Chill3.rb +52 -0
  76. data/lib/bcdice/game_system/CodeLayerd.rb +132 -0
  77. data/lib/bcdice/game_system/ColossalHunter.rb +569 -0
  78. data/lib/bcdice/game_system/CrashWorld.rb +81 -0
  79. data/lib/bcdice/game_system/Cthulhu.rb +252 -0
  80. data/lib/bcdice/game_system/Cthulhu7th.rb +767 -0
  81. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +386 -0
  82. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +383 -0
  83. data/lib/bcdice/game_system/CthulhuTech.rb +263 -0
  84. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +243 -0
  85. data/lib/bcdice/game_system/Cthulhu_Korean.rb +240 -0
  86. data/lib/bcdice/game_system/DarkBlaze.rb +207 -0
  87. data/lib/bcdice/game_system/DarkDaysDrive.rb +425 -0
  88. data/lib/bcdice/game_system/DarkSouls.rb +91 -0
  89. data/lib/bcdice/game_system/DeadlineHeroes.rb +583 -0
  90. data/lib/bcdice/game_system/DemonParasite.rb +524 -0
  91. data/lib/bcdice/game_system/DetatokoSaga.rb +310 -0
  92. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +310 -0
  93. data/lib/bcdice/game_system/DiceBot.rb +17 -0
  94. data/lib/bcdice/game_system/DiceOfTheDead.rb +111 -0
  95. data/lib/bcdice/game_system/DoubleCross.rb +373 -0
  96. data/lib/bcdice/game_system/DoubleCross_Korean.rb +371 -0
  97. data/lib/bcdice/game_system/Dracurouge.rb +1856 -0
  98. data/lib/bcdice/game_system/Dracurouge_Korean.rb +310 -0
  99. data/lib/bcdice/game_system/DungeonsAndDragons.rb +19 -0
  100. data/lib/bcdice/game_system/EarthDawn.rb +225 -0
  101. data/lib/bcdice/game_system/EarthDawn3.rb +275 -0
  102. data/lib/bcdice/game_system/EarthDawn4.rb +272 -0
  103. data/lib/bcdice/game_system/EclipsePhase.rb +51 -0
  104. data/lib/bcdice/game_system/Elric.rb +36 -0
  105. data/lib/bcdice/game_system/Elysion.rb +1213 -0
  106. data/lib/bcdice/game_system/EmbryoMachine.rb +227 -0
  107. data/lib/bcdice/game_system/EndBreaker.rb +132 -0
  108. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +27 -0
  109. data/lib/bcdice/game_system/Fiasco.rb +123 -0
  110. data/lib/bcdice/game_system/Fiasco_Korean.rb +122 -0
  111. data/lib/bcdice/game_system/FilledWith.rb +1543 -0
  112. data/lib/bcdice/game_system/FullMetalPanic.rb +27 -0
  113. data/lib/bcdice/game_system/FutariSousa.rb +994 -0
  114. data/lib/bcdice/game_system/FutariSousa_Korean.rb +994 -0
  115. data/lib/bcdice/game_system/Garako.rb +559 -0
  116. data/lib/bcdice/game_system/GardenOrder.rb +451 -0
  117. data/lib/bcdice/game_system/GehennaAn.rb +136 -0
  118. data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +120 -0
  119. data/lib/bcdice/game_system/GoblinSlayer.rb +168 -0
  120. data/lib/bcdice/game_system/GoldenSkyStories.rb +77 -0
  121. data/lib/bcdice/game_system/Gorilla.rb +44 -0
  122. data/lib/bcdice/game_system/GranCrest.rb +518 -0
  123. data/lib/bcdice/game_system/Gundog.rb +52 -0
  124. data/lib/bcdice/game_system/GundogRevised.rb +294 -0
  125. data/lib/bcdice/game_system/GundogZero.rb +261 -0
  126. data/lib/bcdice/game_system/Gurps.rb +403 -0
  127. data/lib/bcdice/game_system/GurpsFW.rb +2330 -0
  128. data/lib/bcdice/game_system/HarnMaster.rb +208 -0
  129. data/lib/bcdice/game_system/HatsuneMiku.rb +706 -0
  130. data/lib/bcdice/game_system/Hieizan.rb +48 -0
  131. data/lib/bcdice/game_system/HouraiGakuen.rb +270 -0
  132. data/lib/bcdice/game_system/HuntersMoon.rb +503 -0
  133. data/lib/bcdice/game_system/Illusio.rb +89 -0
  134. data/lib/bcdice/game_system/InfiniteFantasia.rb +51 -0
  135. data/lib/bcdice/game_system/Insane.rb +822 -0
  136. data/lib/bcdice/game_system/Insane_Korean.rb +773 -0
  137. data/lib/bcdice/game_system/IthaWenUa.rb +38 -0
  138. data/lib/bcdice/game_system/JamesBond.rb +45 -0
  139. data/lib/bcdice/game_system/Kamigakari.rb +394 -0
  140. data/lib/bcdice/game_system/Kamigakari_Korean.rb +428 -0
  141. data/lib/bcdice/game_system/KanColle.rb +938 -0
  142. data/lib/bcdice/game_system/KemonoNoMori.rb +258 -0
  143. data/lib/bcdice/game_system/KillDeathBusiness.rb +1420 -0
  144. data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +1510 -0
  145. data/lib/bcdice/game_system/KurayamiCrying.rb +49 -0
  146. data/lib/bcdice/game_system/LiveraDoll.rb +375 -0
  147. data/lib/bcdice/game_system/LogHorizon.rb +3567 -0
  148. data/lib/bcdice/game_system/LogHorizon_Korean.rb +1407 -0
  149. data/lib/bcdice/game_system/LostRecord.rb +30 -0
  150. data/lib/bcdice/game_system/LostRoyal.rb +242 -0
  151. data/lib/bcdice/game_system/MagicaLogia.rb +1148 -0
  152. data/lib/bcdice/game_system/MeikyuDays.rb +415 -0
  153. data/lib/bcdice/game_system/MeikyuKingdom.rb +466 -0
  154. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +269 -0
  155. data/lib/bcdice/game_system/MetalHead.rb +249 -0
  156. data/lib/bcdice/game_system/MetalHeadExtream.rb +917 -0
  157. data/lib/bcdice/game_system/MetallicGuardian.rb +31 -0
  158. data/lib/bcdice/game_system/MonotoneMuseum.rb +354 -0
  159. data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +304 -0
  160. data/lib/bcdice/game_system/Nechronica.rb +211 -0
  161. data/lib/bcdice/game_system/Nechronica_Korean.rb +160 -0
  162. data/lib/bcdice/game_system/NeverCloud.rb +74 -0
  163. data/lib/bcdice/game_system/NightWizard.rb +231 -0
  164. data/lib/bcdice/game_system/NightWizard3rd.rb +24 -0
  165. data/lib/bcdice/game_system/NightmareHunterDeep.rb +117 -0
  166. data/lib/bcdice/game_system/NinjaSlayer.rb +274 -0
  167. data/lib/bcdice/game_system/NjslyrBattle.rb +54 -0
  168. data/lib/bcdice/game_system/Nuekagami.rb +293 -0
  169. data/lib/bcdice/game_system/OneWayHeroics.rb +134 -0
  170. data/lib/bcdice/game_system/OracleEngine.rb +265 -0
  171. data/lib/bcdice/game_system/OrgaRain.rb +77 -0
  172. data/lib/bcdice/game_system/Oukahoushin3rd.rb +162 -0
  173. data/lib/bcdice/game_system/Paradiso.rb +323 -0
  174. data/lib/bcdice/game_system/Paranoia.rb +64 -0
  175. data/lib/bcdice/game_system/ParanoiaRebooted.rb +109 -0
  176. data/lib/bcdice/game_system/ParasiteBlood.rb +231 -0
  177. data/lib/bcdice/game_system/Pathfinder.rb +21 -0
  178. data/lib/bcdice/game_system/Peekaboo.rb +324 -0
  179. data/lib/bcdice/game_system/Pendragon.rb +39 -0
  180. data/lib/bcdice/game_system/PhantasmAdventure.rb +73 -0
  181. data/lib/bcdice/game_system/Postman.rb +185 -0
  182. data/lib/bcdice/game_system/PulpCthulhu.rb +184 -0
  183. data/lib/bcdice/game_system/Raisondetre.rb +171 -0
  184. data/lib/bcdice/game_system/RecordOfLodossWar.rb +58 -0
  185. data/lib/bcdice/game_system/RecordOfSteam.rb +149 -0
  186. data/lib/bcdice/game_system/RokumonSekai2.rb +110 -0
  187. data/lib/bcdice/game_system/RoleMaster.rb +24 -0
  188. data/lib/bcdice/game_system/RuneQuest.rb +47 -0
  189. data/lib/bcdice/game_system/RyuTuber.rb +266 -0
  190. data/lib/bcdice/game_system/Ryutama.rb +199 -0
  191. data/lib/bcdice/game_system/SRS.rb +348 -0
  192. data/lib/bcdice/game_system/SamsaraBallad.rb +111 -0
  193. data/lib/bcdice/game_system/Satasupe.rb +1173 -0
  194. data/lib/bcdice/game_system/ScreamHighSchool.rb +128 -0
  195. data/lib/bcdice/game_system/SevenFortressMobius.rb +34 -0
  196. data/lib/bcdice/game_system/ShadowRun.rb +26 -0
  197. data/lib/bcdice/game_system/ShadowRun4.rb +49 -0
  198. data/lib/bcdice/game_system/ShadowRun5.rb +80 -0
  199. data/lib/bcdice/game_system/SharedFantasia.rb +69 -0
  200. data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +85 -0
  201. data/lib/bcdice/game_system/ShinkuuGakuen.rb +506 -0
  202. data/lib/bcdice/game_system/ShinobiGami.rb +680 -0
  203. data/lib/bcdice/game_system/ShoujoTenrankai.rb +677 -0
  204. data/lib/bcdice/game_system/Skynauts.rb +324 -0
  205. data/lib/bcdice/game_system/SteamPunkers.rb +485 -0
  206. data/lib/bcdice/game_system/StellarKnights.rb +856 -0
  207. data/lib/bcdice/game_system/SterileLife.rb +452 -0
  208. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +103 -0
  209. data/lib/bcdice/game_system/StratoShout.rb +316 -0
  210. data/lib/bcdice/game_system/StratoShout_Korean.rb +314 -0
  211. data/lib/bcdice/game_system/Strave.rb +223 -0
  212. data/lib/bcdice/game_system/SwordWorld.rb +491 -0
  213. data/lib/bcdice/game_system/SwordWorld2_0.rb +295 -0
  214. data/lib/bcdice/game_system/SwordWorld2_5.rb +121 -0
  215. data/lib/bcdice/game_system/TherapieSein.rb +93 -0
  216. data/lib/bcdice/game_system/TokumeiTenkousei.rb +96 -0
  217. data/lib/bcdice/game_system/TokyoGhostResearch.rb +122 -0
  218. data/lib/bcdice/game_system/TokyoNova.rb +19 -0
  219. data/lib/bcdice/game_system/Torg.rb +364 -0
  220. data/lib/bcdice/game_system/Torg1_5.rb +139 -0
  221. data/lib/bcdice/game_system/TorgEternity.rb +414 -0
  222. data/lib/bcdice/game_system/TrinitySeven.rb +364 -0
  223. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +287 -0
  224. data/lib/bcdice/game_system/TwilightGunsmoke.rb +527 -0
  225. data/lib/bcdice/game_system/Utakaze.rb +153 -0
  226. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +132 -0
  227. data/lib/bcdice/game_system/Villaciel.rb +555 -0
  228. data/lib/bcdice/game_system/WARPS.rb +33 -0
  229. data/lib/bcdice/game_system/WaresBlade.rb +34 -0
  230. data/lib/bcdice/game_system/Warhammer.rb +336 -0
  231. data/lib/bcdice/game_system/WitchQuest.rb +275 -0
  232. data/lib/bcdice/game_system/WorldOfDarkness.rb +135 -0
  233. data/lib/bcdice/game_system/YankeeYogSothoth.rb +440 -0
  234. data/lib/bcdice/game_system/YearZeroEngine.rb +134 -0
  235. data/lib/bcdice/game_system/ZettaiReido.rb +142 -0
  236. data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +383 -0
  237. data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +89 -0
  238. data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +196 -0
  239. data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +223 -0
  240. data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +214 -0
  241. data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +610 -0
  242. data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +117 -0
  243. data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +380 -0
  244. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +184 -0
  245. data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +417 -0
  246. data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +912 -0
  247. data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +121 -0
  248. data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +67 -0
  249. data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +166 -0
  250. data/lib/bcdice/game_system/one_way_heroics/tables.rb +668 -0
  251. data/lib/bcdice/loader.rb +37 -0
  252. data/lib/bcdice/normalize.rb +38 -0
  253. data/lib/bcdice/preprocessor.rb +87 -0
  254. data/lib/bcdice/randomizer.rb +137 -0
  255. data/lib/bcdice/repl.rb +155 -0
  256. data/lib/bcdice/user_defined_dice_table.rb +153 -0
  257. data/lib/bcdice/version.rb +3 -0
  258. metadata +304 -0
@@ -0,0 +1,348 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bcdice/arithmetic_evaluator'
4
+ require 'bcdice/format'
5
+ require 'bcdice/normalize'
6
+ require 'bcdice/dice_table/table'
7
+ require 'bcdice/dice_table/d66_grid_table'
8
+
9
+ # ビーストバインド トリニティのダイスボット
10
+ #
11
+ # = 前ver(1.43.07)からの変更・修正
12
+ # * nBBで判定を行う際、「ダイスを1個しか振らない場合」の達成値計算が正しくなかった誤りを修正。
13
+ # * @x(クリティカル値指定)、を加減式で入力できるように仕様変更。クリティカル値は、加減式での入力なら%w(人間性からのクリティカル値計算)と併用可能に。
14
+ # * #y(ファンブル値指定)を加減式で入力できるように仕様変更。また、「ファンブルしても達成値が0にならない」モード#Ayを追加。
15
+ # * &v(出目v未満のダイスを出目vとして扱う)のモードを追加。2018年12月現在、ゲーマーズ・フィールド誌先行収録データでのみ使用するモードです。
16
+ # * 「暴露表」および「正体判明チャート」をダイスボットに組み込み。
17
+ # * どどんとふ以外のボーンズ&カーズを用いたオンラインセッション用ツールにあわせ、ヘルプメッセージ部分からイニシアティブ表についての言及を削除。
18
+ module BCDice
19
+ module GameSystem
20
+ class BeastBindTrinity < Base
21
+ # ゲームシステムの識別子
22
+ ID = 'BeastBindTrinity'
23
+
24
+ # ゲームシステム名
25
+ NAME = 'ビーストバインド トリニティ'
26
+
27
+ # ゲームシステム名の読みがな
28
+ SORT_KEY = 'ひいすとはいんととりにてい'
29
+
30
+ # ダイスボットの使い方
31
+ HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
32
+ ・判定 (nBB+m%w@x#y$z&v)
33
+  n個のD6を振り、出目の大きい2個から達成値を算出。修正mも可能。
34
+
35
+  %w、@x、#y、$z、&vはすべて省略可能。
36
+ >%w:現在の人間性が w であるとして、クリティカル値(C値)を計算。
37
+ ・省略した場合、C値=12として達成値を算出する。
38
+ >@x:クリティカル値修正。(加減式でも入力可能)
39
+ ・xに直接数字を書くと、C値をその数字に上書きする。
40
+  「絶対にクリティカルしない」状態は、@13など xを13以上に指定すること。
41
+ ・xの先頭が「+」か「-」なら、計算したC値にその値を加算。例)@-1、@+2
42
+  この方法でC値をプラスする場合、上限は12となる。
43
+ >#y、#Ay:ファンブル値修正。(加減式でも入力可能)
44
+ ・yに直接数字を書くと、ファンブル値をその数字に設定。
45
+ ・yの数字の先頭が「+」か「-」なら、ファンブル値=2にその数字を加算。例)#+2
46
+ ・※#Ayとすると、ファンブルしても達成値を通常通り算出。 例)#A+1
47
+ >$z:ダイスの出目をzに固定して判定する。複数指定可。
48
+    《運命歪曲》など「ダイスの1個を振り直す」効果等に使用する。
49
+  例)2BB$1 →ダイスを2個振る判定で、ダイス1個の出目を1で固定
50
+  例)2BB$16→ダイスを2個振る判定で、ダイスの出目を1と6で固定
51
+ >&v:出目がv未満のダイスがあれば、出目がvだったものとして達成値を計算する。
52
+  例)2BB&3 →出目3未満(→出目1、2)を出目3だったものとして計算。
53
+
54
+ ・D66ダイスあり
55
+ ・邂逅表:EMO
56
+ ・暴露表:EXPO_A
57
+ ・魔獣化暴露表:EXPO_B
58
+ ・アイドル専用暴露表:EXPO_I
59
+ ・アイドル専用魔獣化暴露表:EXPO_J
60
+ ・正体判明チャートA~C:FACE_A, FACE_B, FACE_C
61
+ INFO_MESSAGE_TEXT
62
+
63
+ def initialize(command)
64
+ super(command)
65
+
66
+ @enabled_d66 = true
67
+ @d66_sort_type = D66SortType::ASC
68
+ end
69
+
70
+ class BBCommand
71
+ def initialize(command)
72
+ @command = command
73
+ parse()
74
+ end
75
+
76
+ def roll(randomizer)
77
+ if @parse_error
78
+ return nil
79
+ end
80
+
81
+ @randomizer = randomizer
82
+
83
+ dice_list_org = roll_with_dice_pool()
84
+ if dice_list_org.empty?
85
+ return "ERROR:振るダイスの数が0個です"
86
+ end
87
+
88
+ dice_list_filtered = dice_list_org.map { |dice| [dice, @dice_value_lower_limit].max }.sort
89
+ @dice_total = dice_list_filtered.inject(0, :+)
90
+
91
+ total = calc_total()
92
+
93
+ dice_list_org_str = "[#{dice_list_org.join(',')}]" if dice_list_filtered != dice_list_org
94
+
95
+ sequence = [
96
+ command_expr(),
97
+ dice_list_org_str,
98
+ interim_expr(dice_list_filtered),
99
+ dice_status(),
100
+ total.to_s,
101
+ result_compare(total)
102
+ ].compact
103
+
104
+ return sequence.join(" > ")
105
+ end
106
+
107
+ private
108
+
109
+ def parse()
110
+ m = /^(\d+)(?:R6|BB6?)((?:[\+\-]\d+)+)?(?:%(\-?\d+))?(?:@([\+\-\d]+))?(?:#(A)?([\+\-\d]+))?(?:\$([1-6]+))?(?:&([1-6]))?(?:([>=]+)(\d+))?$/.match(@command)
111
+ unless m
112
+ @parse_error = true
113
+ return
114
+ end
115
+
116
+ @dice_num = m[1].to_i
117
+ @modify_number = m[2] ? ArithmeticEvaluator.eval(m[2]) : 0
118
+
119
+ @critical = parse_critical(m[3], m[4])
120
+
121
+ @keep_value_on_fumble = !m[5].nil?
122
+
123
+ @fumble = parse_fumble(m[6])
124
+
125
+ @dice_pool = m[7] ? m[7].split("").map(&:to_i) : []
126
+ @dice_pool.pop(@dice_pool.size - @dice_num) if @dice_pool.size > @dice_num
127
+
128
+ @dice_value_lower_limit = m[8].to_i
129
+
130
+ @cmp_op = Normalize.comparison_operator(m[9])
131
+ @target_number = m[10]&.to_i
132
+
133
+ @parse_error = false
134
+ end
135
+
136
+ # @param humanity [String, nil]
137
+ # @param atmark [String, nil]
138
+ # @return [Integer]
139
+ def parse_critical(humanity, atmark)
140
+ humanity = humanity ? humanity.to_i : 99
141
+ atmark_value = atmark ? ArithmeticEvaluator.eval(atmark) : 0
142
+
143
+ critical =
144
+ if /^[+-]/.match(atmark)
145
+ [critical_from_humanity(humanity) + atmark_value, 12].min
146
+ elsif atmark
147
+ atmark_value
148
+ else
149
+ critical_from_humanity(humanity)
150
+ end
151
+
152
+ return critical
153
+ end
154
+
155
+ def critical_from_humanity(humanity)
156
+ if humanity <= 0
157
+ 9
158
+ elsif humanity <= 20
159
+ 10
160
+ elsif humanity <= 40
161
+ 11
162
+ else
163
+ 12
164
+ end
165
+ end
166
+
167
+ # @param sharp [String, nil]
168
+ # @return [Integer]
169
+ def parse_fumble(sharp)
170
+ sharp_value = sharp ? ArithmeticEvaluator.eval(sharp) : 0
171
+
172
+ if /^[+-]/.match(sharp)
173
+ 2 + sharp_value
174
+ elsif sharp
175
+ sharp_value
176
+ else
177
+ 2
178
+ end
179
+ end
180
+
181
+ def roll_with_dice_pool
182
+ dice_times = @dice_num - @dice_pool.size
183
+ dice_list = @randomizer.roll_barabara(dice_times, 6) + @dice_pool
184
+
185
+ return dice_list.sort
186
+ end
187
+
188
+ def command_expr
189
+ modifier = Format.modifier(@modify_number)
190
+ "(#{@dice_num}BB#{modifier}@#{@critical}\##{@fumble}#{@cmp_op}#{@target_number})"
191
+ end
192
+
193
+ def interim_expr(dice_list)
194
+ expr = "#{@dice_total}[#{dice_list.join(',')}]#{Format.modifier(@modify_number)}"
195
+ expr += "+20" if critical?
196
+
197
+ return expr
198
+ end
199
+
200
+ def dice_status
201
+ if fumble?
202
+ "ファンブル"
203
+ elsif critical?
204
+ "クリティカル"
205
+ end
206
+ end
207
+
208
+ def fumble?
209
+ @dice_total <= @fumble
210
+ end
211
+
212
+ def critical?
213
+ @dice_total >= @critical
214
+ end
215
+
216
+ def calc_total
217
+ total = @dice_total + @modify_number
218
+ if fumble?
219
+ total = 0 unless @keep_value_on_fumble
220
+ elsif critical?
221
+ total += 20
222
+ end
223
+
224
+ if total < 0
225
+ total = 0
226
+ end
227
+
228
+ return total
229
+ end
230
+
231
+ def result_compare(total)
232
+ if @cmp_op
233
+ total.send(@cmp_op, @target_number) ? "成功" : "失敗"
234
+ end
235
+ end
236
+ end
237
+
238
+ def eval_game_system_specific_command(command)
239
+ if (ret = roll_tables(command, TABLES))
240
+ return ret
241
+ end
242
+
243
+ bb = BBCommand.new(command)
244
+ return bb.roll(@randomizer)
245
+ end
246
+
247
+ TABLES = {
248
+ 'EMO' => DiceTable::D66GridTable.new(
249
+ '邂逅表',
250
+ [
251
+ ['家族', '家族', '信頼', '信頼', '忘却', '忘却'],
252
+ ['慈愛', '慈愛', '憧憬', '憧憬', '感銘', '感銘'],
253
+ ['同志', '同志', '幼子', '幼子', '興味', '興味'],
254
+ ['ビジネス', 'ビジネス', '師事', '師事', '好敵手', '好敵手'],
255
+ ['友情', '友情', '忠誠', '忠誠', '恐怖', '恐怖'],
256
+ ['執着', '執着', '軽蔑', '軽蔑', '憎悪', '憎悪'],
257
+ ]
258
+ ),
259
+ 'EXPO_A' => DiceTable::Table.new(
260
+ '暴露表',
261
+ '1D6',
262
+ [
263
+ '噂になるがすぐ忘れられる',
264
+ '都市伝説として処理される',
265
+ 'ワイドショーをにぎわす',
266
+ 'シナリオ中[迫害状態]になる',
267
+ '絆の対象ひとりに正体が知られる',
268
+ '魔獣化暴露表へ'
269
+ ]
270
+ ),
271
+ 'EXPO_B' => DiceTable::Table.new(
272
+ '魔獣化暴露表',
273
+ '1D6',
274
+ [
275
+ 'トンデモ業界の伝説になる',
276
+ 'シナリオ中[迫害状態]になる',
277
+ 'シナリオ中[迫害状態]になる',
278
+ '絆の対象ひとりに正体が知られる',
279
+ '絆の対象ひとりに正体が知られる',
280
+ '自衛隊退魔部隊×2D6体の襲撃'
281
+ ]
282
+ ),
283
+ 'EXPO_I' => DiceTable::Table.new(
284
+ 'アイドル専用暴露表',
285
+ '1D6',
286
+ [
287
+ '愉快な伝説として人気になる',
288
+ 'ワイドショーをにぎわす',
289
+ '炎上。シナリオ中[迫害状態]',
290
+ '所属事務所に2D6時間説教される',
291
+ '絆の対象ひとりに正体が知られる',
292
+ 'アイドル専用魔獣化暴露表へ'
293
+ ]
294
+ ),
295
+ 'EXPO_J' => DiceTable::Table.new(
296
+ 'アイドル専用魔獣化暴露表',
297
+ '1D6',
298
+ [
299
+ 'シナリオ中[迫害状態]になる',
300
+ 'シナリオ中[迫害状態]になる',
301
+ '絆の対象ひとりに正体が知られる',
302
+ '事務所から契約を解除される',
303
+ '絆の対象ひとりに正体が知られる',
304
+ '1D6本のレギュラー番組を失う'
305
+ ]
306
+ ),
307
+ 'FACE_A' => DiceTable::Table.new(
308
+ '正体判明チャートA',
309
+ '1D6',
310
+ [
311
+ 'あなたを受け入れてくれる',
312
+ 'あなたを受け入れてくれる',
313
+ '絆が(拒絶)に書き換わる',
314
+ '絆がエゴに書き換わる',
315
+ '気絶しその事実を忘れる',
316
+ '精神崩壊する'
317
+ ]
318
+ ),
319
+ 'FACE_B' => DiceTable::Table.new(
320
+ '正体判明チャートB',
321
+ '1D6',
322
+ [
323
+ 'あなたを受け入れてくれる',
324
+ '狂乱し攻撃してくる',
325
+ '退場。その場から逃亡。暴露表へ',
326
+ '絆がエゴに書き換わる',
327
+ '精神崩壊する',
328
+ '精神崩壊する'
329
+ ]
330
+ ),
331
+ 'FACE_C' => DiceTable::Table.new(
332
+ '正体判明チャートC',
333
+ '1D6',
334
+ [
335
+ 'あなたを受け入れてくれる',
336
+ '退場。その場から逃亡。暴露表へ',
337
+ '退場。その場から逃亡。暴露表へ',
338
+ '絆がエゴに書き換わる',
339
+ '精神崩壊する',
340
+ '精神崩壊する'
341
+ ]
342
+ ),
343
+ }.freeze
344
+
345
+ register_prefix(['\d+BB.*', '\d+R6.*'] + TABLES.keys)
346
+ end
347
+ end
348
+ end
@@ -0,0 +1,2527 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class BeginningIdol < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'BeginningIdol'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'ビギニングアイドル'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'ひきにんくあいとる'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
17
+ ・パフォーマンス [r]PDn[+m/-m](r:場に残った出目 n:振る数 m:修正値)
18
+ ・ワールドセッティング仕事表 BWT:大手芸能プロ LWT:弱小芸能プロ
19
+  TWT:ライブシアター CWT:アイドル部 LO[n]:地方アイドル(n:チャンス)
20
+  SU:情熱の夏 WI:ぬくもりの冬 NA:大自然 GA:女学園 BA:アカデミー
21
+ ・仕事表 WT VA:バラエティ MU:音楽関係 DR:ドラマ関係
22
+  VI:ビジュアル関係 SP:スポーツ CHR:クリスマス PAR:パートナー関係
23
+  SW:お菓子 AN:動物 MOV:映画 FA:ファンタジー
24
+ ・ランダムイベント RE
25
+ ・ハプニング表 HA
26
+ ・特技リスト AT[n](n:分野No.)
27
+ ・アイドルスキル修得表 SGT:チャレンジガールズ RS:ロードトゥプリンス
28
+ ・変調 BT[n](n:発生数)
29
+ ・アイテム IT[n](n:獲得数)
30
+ ・アクセサリー ACT:種別決定 ACB:ブランド決定 ACE:効果表
31
+ ・衣装 DT:チャレンジガールズ RC:ロードトゥプリンス FC:フォーチュンスターズ
32
+ ・無茶ぶり表 LUR:地方アイドル SUR:情熱の夏 WUR:ぬくもりの冬
33
+  NUR:大自然 GUR:女学園 BUR:アカデミー
34
+ ・センタールール HW:向かい風シーン表 FL:駆け出しシーン表 LN:孤独表
35
+  マイスキル【MS:名前決定 MSE:効果表】 演出表【ST FST:ファンタジー】
36
+ ・合宿ルール 散策表【SH:ショッピングモール MO:山 SEA:海 SPA:温泉街】
37
+  TN:夜語りシチュエーション表 成長表【CG:コモン GG:ゴールド】
38
+ ・サビ表 CHO SCH:情熱の夏 WCH:ぬくもりの冬 NCH:大自然
39
+  GCH:女性向け PCH:力強い
40
+ ・キャラ空白表 CBT:チャレンジガールズ RCB:ロードトゥプリンス
41
+ ・趣味空白表 HBT:チャレンジガールズ RHB:ロードトゥプリンス
42
+ ・マスコット暴走表 RU
43
+ ・アイドル熱湯風呂 nC:バーストタイム(n:温度) BU:バースト表
44
+ ・攻撃 n[S]A[r][+m/-m](n:振る数 S:失敗しない r:取り除く出目 m:修正値)
45
+ ・かんたんパーソン表 SIP
46
+ ・会場表
47
+  BVT:大手芸能プロ LVT:弱小芸能プロ TVT:ライブシアター CVT:アイドル部
48
+ ・場所表
49
+  BST:大手芸能プロ LST:弱小芸能プロ TST:ライブシアター CST:アイドル部
50
+ ・プレッシャー種別決定表
51
+  BPT:大手芸能プロ LPT:弱小芸能プロ TPT:ライブシアター CPT:アイドル部
52
+ ・道具表
53
+  BIT:大手芸能プロ LIT:弱小芸能プロ TIT:ライブシアター CIT:アイドル部
54
+ []内は省略可 D66入れ替えあり
55
+ INFO_MESSAGE_TEXT
56
+
57
+ register_prefix([
58
+ '[1-7]*PD\d+(?:[\+\-]\d+)?',
59
+ 'HW',
60
+ 'BWT',
61
+ 'LWT',
62
+ 'TWT',
63
+ 'CWT',
64
+ 'LO\d{0,2}',
65
+ 'SU',
66
+ 'WI',
67
+ 'NA',
68
+ 'GA',
69
+ 'BA',
70
+ 'WT',
71
+ 'VA',
72
+ 'MU',
73
+ 'DR',
74
+ 'VI',
75
+ 'SP',
76
+ 'CHR',
77
+ 'PAR',
78
+ 'SW',
79
+ 'AN',
80
+ 'MOV',
81
+ 'FA',
82
+ 'RE',
83
+ 'HA',
84
+ 'AT[1-6]?',
85
+ 'LUR',
86
+ 'SUR',
87
+ 'WUR',
88
+ 'NUR',
89
+ 'GUR',
90
+ 'BUR',
91
+ 'BT\d*',
92
+ 'SGT',
93
+ 'RS',
94
+ 'SH',
95
+ 'MO',
96
+ 'SEA',
97
+ 'SPA',
98
+ 'TN',
99
+ 'CG',
100
+ 'GG',
101
+ 'FL',
102
+ 'LN',
103
+ 'MS',
104
+ 'MSE',
105
+ 'ST',
106
+ 'FST',
107
+ 'CHO',
108
+ 'SCH',
109
+ 'WCH',
110
+ 'NCH',
111
+ 'GCH',
112
+ 'PCH',
113
+ 'IT\d*',
114
+ 'ACT',
115
+ 'ACB',
116
+ 'ACE',
117
+ 'DT',
118
+ 'RC',
119
+ 'FC',
120
+ 'CBT',
121
+ 'RCB',
122
+ 'HBT',
123
+ 'RHB',
124
+ 'RU',
125
+ '\d{2}C',
126
+ 'BU',
127
+ '\d+S?A[1-6]*(?:[\+\-]\d+)?',
128
+ 'SIP',
129
+ 'BVT',
130
+ 'LVT',
131
+ 'TVT',
132
+ 'CVT',
133
+ 'BST',
134
+ 'LST',
135
+ 'TST',
136
+ 'CST',
137
+ 'BPT',
138
+ 'LPT',
139
+ 'TPT',
140
+ 'CPT',
141
+ 'BIT',
142
+ 'LIT',
143
+ 'TIT',
144
+ 'CIT'
145
+ ])
146
+
147
+ def initialize(command)
148
+ super(command)
149
+
150
+ @sort_add_dice = true
151
+ @enabled_d66 = true
152
+ @d66_sort_type = D66SortType::ASC
153
+ end
154
+
155
+ def check_nD6(total, dice_total, _dice_list, cmp_op, target)
156
+ return '' if target == '?'
157
+ return '' unless cmp_op == :>=
158
+
159
+ if dice_total <= 2
160
+ " > ファンブル(変調がランダムに1つ発生し、PCは【思い出】を1つ獲得する)"
161
+ elsif dice_total >= 12
162
+ " > スペシャル!(PCは【思い出】を1つ獲得する)"
163
+ elsif total >= target
164
+ " > 成功"
165
+ else
166
+ " > 失敗"
167
+ end
168
+ end
169
+
170
+ alias check_2D6 check_nD6
171
+
172
+ def eval_game_system_specific_command(command)
173
+ case command.upcase
174
+ when /^([1-7]*)PD(\d+)([\+\-]\d+)?$/
175
+ counts = Regexp.last_match(2).to_i
176
+ return nil if counts <= 0
177
+
178
+ residual = Regexp.last_match(1)
179
+ adjust = Regexp.last_match(3).to_i
180
+
181
+ return rollPerformance(counts, residual, adjust)
182
+
183
+ when 'HW'
184
+ title = '向かい風シーン表'
185
+ table = [
186
+ "誰もいない屋内。静寂が世界を包んでいる。嵐の前の静けさだ。",
187
+ "話し声が絶えない夕暮れの帰り道。みんなが明るい声を上げる中、自分の周りだけがぽっかり穴が空いたかのように静かだ。",
188
+ "曇り空になってきた。早く屋内に行かないと、雨でぬれてしまうかもしれない。",
189
+ "ゲリラ豪雨だ。傘も持ってきていないので、激しい雨に打たれるしかない。ついてないな。",
190
+ "夜空を雲が覆いつくしてしまっている。空を見上げても、星の輝きは見えない。",
191
+ "屋内の電気がトラブルで点灯しないようだ。暗い世界は、気分まで滅入ってしまう。",
192
+ ]
193
+ return textFrom1D6Table(title, table)
194
+
195
+ when 'BWT'
196
+ title = '大手芸能プロダクション仕事表'
197
+ table = [
198
+ [11, "オフ", ''],
199
+ [12, "先輩アイドルが司会を務めるバラエティ番組に出演! どんなコーナーを任されるんだろう?", '趣味分野からランダム'],
200
+ [13, "先輩アイドルと街歩き番組で共演。この街には何があるんだろう?", '出身分野からランダム'],
201
+ [14, "先輩アイドルが音楽番組に出演。バックダンサーを務めることに。", '《ダンス/趣味9》'],
202
+ [15, "先輩アイドルと一緒にグラビア撮影。負けないように目立とう。", '《マイペース/キャラ4》'],
203
+ [16, "アイドル紹介番組で、先輩アイドルから紹介される。元気にいこう。", '《元気/キャラ8》'],
204
+ [22, "オフ", ''],
205
+ [23, "先輩アイドルのラジオ番組にゲスト出演。トークでうまく盛り上げられるかな?", '《キャラ分野の空白/キャラ7》'],
206
+ [24, "同期アイドルたちと一緒に、大掛かりなアスレチックセットに挑戦!", '《運動神経/才能8》'],
207
+ [25, "特別な衣装で行う演劇の仕事がやって来た。どんな衣装なんだろう?", '属性分野からランダム'],
208
+ [26, "プロダクションの超大御所が出演する番組に呼ばれる。", '《胆力/才能5》'],
209
+ [33, "オフ", ''],
210
+ [34, "シーンプレイヤーのキャラクターを活かしたミニドラマが制作される。", 'シーンプレイヤーの修得しているキャラ分野の特技'],
211
+ [35, "海外ロケを行うプロダクション制作の旅番組に出演。今日はどこまで行くんだろうか?", '《海外/出身12》'],
212
+ [36, "プロダクション内の劇場で、シーンプレイヤーの「好きなもの」を使った演劇が始まる。", 'シーンプレイヤーの修得している趣味分野の特技'],
213
+ [44, "オフ", ''],
214
+ [45, "ファッションブランドと提携したファッションショーに招待される。", '《おしゃれ/趣味5》'],
215
+ [46, "アイドル雑誌の出版社から取材がやってきた。うまく対応しよう。", '《物腰丁寧/キャラ10》'],
216
+ [55, "オフ", ''],
217
+ [56, "シリーズもののドラマにちょっとした役で出演!", '《演技力/才能12》'],
218
+ [66, "プロダクション内で総選挙が開始! 今回のテーマは……?", 'ランダム'],
219
+ ]
220
+ return textFromD66Table(title, table)
221
+
222
+ when 'LWT'
223
+ title = '弱小芸能プロダクション仕事表'
224
+ table = [
225
+ [11, "オフ", ''],
226
+ [12, "パートナープレイヤーの「身体的特徴」にびびっと来たTV曲からオファーが来る。", 'パートナープレイヤーが修得している身長分野の特技'],
227
+ [13, "スタントマンなしのアクションドラマが製作開始! オーディションを受けることに。", '《運動神経/才能8》'],
228
+ [14, "歌番組のオーディションに挑戦! たくさんのライバルの中から、選ばれることを目指す!", '《集中力/キャラ4》'],
229
+ [15, "飲み屋に営業へ。アイドルにあまり興味なさそうな客層だけど……。", '《マイペース/キャラ4》'],
230
+ [16, "結婚式のパンフレット写真を撮ることに。花嫁さんってどんな気分だろう?", '《スタイル/才能3》'],
231
+ [22, "オフ", ''],
232
+ [23, "CDデビューをかけて、バラエティ番組で他のアイドルと対決!", 'キャラ分野からランダム'],
233
+ [24, "CDショップで、CDを手渡し販売。よろしくお願いします。", '《元気/キャラ8》'],
234
+ [25, "ローカル番組に出演。この地方では、何が流行っているんだろう?", '出身分野からランダム'],
235
+ [26, "劇の脇役を勝ち取るためにオーディションを受ける。平凡な女の子を演じるらしい。", '《プレーン/属性7》'],
236
+ [33, "オフ", ''],
237
+ [34, "パートナープレイヤーの「好きなもの」が題材のドラマが製作中。オーディションを受けよう。", 'パートナープレイヤーが修得している属性分野の特技'],
238
+ [35, "パートナープレイヤーの「嫌いなもの」を題材にしたドラマにオファーが……。", 'パートナープレイヤーが修得している趣味分野の特技'],
239
+ [36, "コーラスに欠員が出たアイドルライブの穴埋めとして選ばれる。主役のキャラに合わせないと。", '属性分野からランダム'],
240
+ [44, "オフ", ''],
241
+ [45, "PCたちの事務所にレポートのカメラが入る。小さいけどがんばってます!", 'ランダム'],
242
+ [46, "オフ", ''],
243
+ [55, "オフ", ''],
244
+ [56, "オフ", ''],
245
+ [66, "オフ", ''],
246
+ ]
247
+ return textFromD66Table(title, table)
248
+
249
+ when 'TWT'
250
+ title = 'ライブシアター仕事表'
251
+ table = [
252
+ [11, "オフ", ''],
253
+ [12, "シアター内でドラマを収録。テーマは、パートナープレイヤーの「好きなもの」だ。", 'パートナープレイヤーが修得している属性分野の特技'],
254
+ [13, "シアター内で売り出すCDを制作。テーマは、シーンプレイヤーの「好きなもの」だ。", 'シーンプレイヤーが修得している趣味分野の特技'],
255
+ [14, "シアターの売店に駆り出される。直接お客さんと触れ合うチャンス!", '《笑顔/才能7》'],
256
+ [15, "シアター内でグッズを販売。今の売れ線は何かな?", 'キャラ分野からランダム'],
257
+ [16, "シアター内で握手会を開催! 来てくれたみんなに感謝を。", '《気配り/才能9》'],
258
+ [22, "オフ", ''],
259
+ [23, "今回の劇、シーンプレイヤーの【背景】を元にしたノンフィクションドラマ!", '趣味分野からランダム'],
260
+ [24, "シアターを使って、バラエティの企画が開始。みんなを笑わせよう。", '《ばか/キャラ12》'],
261
+ [25, "シアターに流れるミニラジオの収録。メンバーに無茶ぶりをするコーナーが見せ場。", 'キャラ分野からランダム'],
262
+ [26, "シアターにファッションデザイナーを招いてファッションショー。うまく魅せていこう。", '属性分野からランダム'],
263
+ [33, "オフ", ''],
264
+ [34, "シアター企画、1D6時間耐久ダンスが始まる……!", '《体力/才能6》'],
265
+ [35, "シアター企画、パートナープレイヤーは「嫌いなもの」に何回挑戦できるか!", 'パートナープレイヤーが修得している趣味分野の特技'],
266
+ [36, "シアター企画、シーンプレイヤー対「嫌いなもの」!", 'シーンプレイヤーが修得しているキャラ分野の特技'],
267
+ [44, "オフ", ''],
268
+ [45, "シアター企画、非常に高いゴールを使ったバスケット! ……本当にできるの?", '《190~/身長12》'],
269
+ [46, "シアター企画、動物と触れ合うアイドルの姿を中継!", '《ペット/趣味3》'],
270
+ [55, "オフ", ''],
271
+ [56, "シアターの外で行う仕事をこなす。", 'ランダム'],
272
+ [66, "オフ", ''],
273
+ ]
274
+ return textFromD66Table(title, table)
275
+
276
+ when 'CWT'
277
+ title = 'アイドル部仕事表'
278
+ table = [
279
+ [11, "オフ", ''],
280
+ [12, "先生に頼まれて、入部希望者たちの校内案内を務めることになった。", '《物腰丁寧/キャラ10》'],
281
+ [13, "校内イベントの司会進行をすることになった。うまく盛り上げられるかな?", '《ポップ/属性9》'],
282
+ [14, "校内放送に出演。全校生徒の前でも、緊張しないようにしないと。", '《胆力/才能5》'],
283
+ [15, "部活の大会に応援をしに行くことに。長い試合は、体力勝負だ。", '《体力/才能6》'],
284
+ [16, "アイドル部を取材する記者がやって来た。うまく自分たちの言葉を語れるかな?", '《気配り/才能9》'],
285
+ [22, "オフ", ''],
286
+ [23, "近くの幼稚園で歌を披露することになった。小さい子と目線を合わせないと……。", '《~125/身長2》'],
287
+ [24, "メイド喫茶をすることになった。パートナープレイヤーの「好きなもの」が主なメニューだ。", 'パートナープレイヤーが修得している趣味分野の特技'],
288
+ [25, "校内のイベントを取材することになった。そこにはパートナープレイヤーの「嫌いなもの」が……。", 'パートナープレイヤーが修得しているキャラ分野の特技'],
289
+ [26, "パートナープレイヤーの「ファッション特徴」を活かした、校内ファッションショー。", 'パートナープレイヤーが修得している属性分野の特技'],
290
+ [33, "オフ", ''],
291
+ [34, "地元の商店街からお店の手伝いを依頼される。町を盛り上げていこう。", '《ショッピング/趣味8》'],
292
+ [35, "地元のイベントに出演。郷土愛が試される!", 'プロデューサーが出身分野の特技から選ぶ'],
293
+ [36, "パートナープレイヤーの「身体的特徴」に惹かれた企業からオファーが来た!", '《セクシー/属性4》'],
294
+ [44, "オフ", ''],
295
+ [45, "オフ", ''],
296
+ [46, "オフ", ''],
297
+ [55, "オフ", ''],
298
+ [56, "オフ", ''],
299
+ [66, "オフ", ''],
300
+ ]
301
+ return textFromD66Table(title, table)
302
+
303
+ when /^LO(\d{0,2})$/
304
+ value = Regexp.last_match(1)
305
+ title = '地方アイドル仕事表'
306
+ table = [
307
+ [11, "オフ", ''],
308
+ [12, "オフ", ''],
309
+ [13, "握手会をすることになった。遠方から自分たち目当てにやって来るお客さんも多数見える。チャンスが5以下ならオフ。", '《アイドル/趣味12》'],
310
+ [14, "ミニコンサートが全国放送で小さく紹介される。ちょっとだけ、外見が注目されたみたいだ。チャンスが4以下ならオフ。", '《スタイル/才能3》'],
311
+ [15, "地元ラジオ局で自分たちの番組が始まる。チャンスが3以下ならオフ。", '《キャラ分野の空白/趣味7》'],
312
+ [16, "地元のテレビ局にゲスト出演。うまく自分たちを紹介できるだろうか? チャンスが3以下ならオフ。", '好きな出身分野の特技'],
313
+ [22, "オフ", ''],
314
+ [23, "街頭でティッシュ配りの手伝いをする。笑顔を忘れずに、がんばろう。", '《笑顔/才能7》'],
315
+ [24, "地元のお手伝いの一環として、害虫退治に駆り出された。なぜ、こんなことに。", '《胆力/才能5》'],
316
+ [25, "畑仕事のお手伝いをすることになった。とりあえず、体力が要求される。", '《体力/才能6》'],
317
+ [26, "ショッピングモールのお手伝いをすることになった。うまくお手伝いができれば、繁盛するかも。", '《ショッピング/趣味8》'],
318
+ [33, "オフ", ''],
319
+ [34, "インターネットラジオに出演。声とトークで。地域のことを伝えていこう。", '《異国文化/才能2》'],
320
+ [35, "地元のテレビ局の取材が入る。テーマは、地方でがんばっている人たちだ。", '《元気/キャラ8》'],
321
+ [36, "デパートで風船を配るお手伝い。子どもたち相手のお仕事は、ちょっと大変です。", '《気配り/才能9》'],
322
+ [44, "オフ", ''],
323
+ [45, "着ぐるみを着て、市民と交流。暑くてつらい仕事だけど、大切な交流の時間です。", '《バーニング/属性10》'],
324
+ [46, "観光地の物販コーナーで地元の特産品を売るお手伝い。地方アイドル的に、大切なお仕事。", '好きな出身分野の特技'],
325
+ [55, "オフ", ''],
326
+ [56, "動画サイトのチャンネルで、自分たちの宣伝を行なうことに。世界中に発信!", '《スター/属性12》'],
327
+ [66, "オフ", ''],
328
+ ]
329
+ return textFromD66Table(title, table, value)
330
+
331
+ when 'SU'
332
+ title = '情熱の夏仕事表'
333
+ table = [
334
+ [11, "オフ", ''],
335
+ [12, "飲料水のコマーシャル。美味しそうに飲もう。", '《演技力/才能12》'],
336
+ [13, "夏のパレードのコマーシャル。今回のテーマは、パートナープレイヤーの「好きなもの」。", 'パートナープレイヤーが修得している趣味分野の特技'],
337
+ [14, "海水浴場のコマーシャル。見ている人に、元気をおすそ分けできればいいな。", '《ポップ/属性9》'],
338
+ [15, "避暑地のコマーシャル。涼しいところで、ゆったりと過ごしているところをお届け。", '《マイペース/キャラ4》'],
339
+ [16, "虫避け商品のコマーシャル。虫に立ち向かう男らしさを求められる。", '《硬派/キャラ9》'],
340
+ [22, "オフ", ''],
341
+ [23, "水族館で元気なイルカたちとショーをする。", '《元気/キャラ8》'],
342
+ [24, "少年野球の始球式を任される。球児たちに恥ずかしくないピッチングを魅せないと。", '《スポーツ/趣味4》'],
343
+ [25, "夏のファッションを雑誌で発表することになった。この時期のコーデはこれ!", '《おしゃれ/趣味5》'],
344
+ [26, "番組で夏野菜を美味しく食べる必要に迫られる。ゴーヤをアイドルらしく食べよう。", '《沖縄/出身2》'],
345
+ [33, "オフ", ''],
346
+ [34, "ビーチバレーで敵のアイドルと対決だ! 夏の暑さに負けるな!", '《バーニング/属性10》'],
347
+ [35, "ビーチで他のアイドルとナンパ対決をすることになった。どちらがうまくこなせるかな?", '《軟派/キャラ5》'],
348
+ [36, "夏のグルメ特集! 夏バテ防止のためにも、たくさん食べるところを魅せなければ。", '《料理/趣味6》'],
349
+ [44, "オフ", ''],
350
+ [45, "夏休みの子供たちと触れ合う番組に呼ばれる。子供たちの相手も大変だ。", '《気配り/才能9》'],
351
+ [46, "夏の旅行番組。夏ならではの、地元の強みを伝えることに。", 'シーンプレイヤーが修得している出身分野の特技'],
352
+ [55, "オフ", ''],
353
+ [56, "夏だからアツアツのお風呂に叩きこまれる。リアクションを撮りたいようだ。", '《ばか/キャラ12》'],
354
+ [66, "オフ", ''],
355
+ ]
356
+ return textFromD66Table(title, table)
357
+
358
+ when 'WI'
359
+ title = 'ぬくもりの冬仕事表'
360
+ table = [
361
+ [11, "オフ", ''],
362
+ [12, "クリスマスがテーマのコマーシャルソングを歌う。恋人たちに祝福を!", '《パッション/属性8》'],
363
+ [13, "スキー場のコマーシャルムービーを撮ることに。うまく滑れるといいな。", '《スポーツ/趣味4》'],
364
+ [14, "苦い失恋をテーマにしたコマーシャルムービーを撮ることになった。クールに決めよう。", '《クール/属性11》'],
365
+ [15, "スケートリンクのコマーシャルムービーに出演。氷上で華麗にダンスを決めよう。", '《ダンス/趣味9》'],
366
+ [16, "アイスのコマーシャルムービーに出演。寒いのを耐えろ!", '《胆力/才能5》'],
367
+ [22, "オフ", ''],
368
+ [23, "年末年始に流れる鉄道のコマーシャルムービーに起用される。清潔感のある演技が必要だ。", '《プレーン/属性7》'],
369
+ [24, "温泉地のコマーシャル。温泉に必要なのは、やっぱりセクシーさかな?", '《セクシー/属性4》'],
370
+ [25, "冬ファッションを雑誌で紹介することになった。冬コーデはこれで決まり!", '《おしゃれ/趣味5》'],
371
+ [26, "雪かきの大変さを伝えるために、東北で雪かきを手伝う。これは重労働だ。", '《東北地方/出身10》'],
372
+ [33, "オフ", ''],
373
+ [34, "年末のバラエティ番組で、関西の芸人と一緒にコントをやることになった。ノリを合わせよう。", '《近畿地方/出身6》'],
374
+ [35, "年末のフェスで、有名アイドルたちと共演! スターに負けない迫力を出そう。", '《スター/属性12》'],
375
+ [36, "冬の北海グルメを伝えるために、北海道に飛ぶ。果たして、寒さに耐えられるのか。", '《北海道/出身11》'],
376
+ [44, "オフ", ''],
377
+ [45, "冬のグルメ特集。鍋の作り方を教えます。", '《料理/趣味6》'],
378
+ [46, "バレンタインに向けて、女の子たちにアドバイス。", '《フェミニン/属性5》'],
379
+ [55, "オフ", ''],
380
+ [56, "冬だからアツアツのお風呂に叩きこまれる。暖かいというか熱い!", '《ばか/キャラ12》'],
381
+ [66, "オフ", ''],
382
+ ]
383
+ return textFromD66Table(title, table)
384
+
385
+ when 'NA'
386
+ title = '大自然仕事表'
387
+ table = [
388
+ [11, "オフ", ''],
389
+ [12, "渓流で釣り対決! たくさん釣ったほうが勝ち!", '《集中力/才能4》'],
390
+ [13, "海岸で釣りをすることに。釣った魚がおいしいほうが勝ち。", '《胆力/才能5》'],
391
+ [14, "虫取りに挑戦。元気に戯れる図を撮りたいとのこと。", '《元気/キャラ8》'],
392
+ [15, "キャンプを張ろう。みんな快適に寝泊りができるように、心配りが大事。", '《気配り/才能9》'],
393
+ [16, "海で泳ぎの対決。自分のペースを守って、戦おう。", '《マイペース/キャラ4》'],
394
+ [22, "オフ", ''],
395
+ [23, "森でナンパ対決! ……動物にモテた方が勝ち!", '《ペット/趣味3》'],
396
+ [24, "森で鬼ごっこをすることになった。相手の動きを読めば勝てる!", 'パートナープレイヤーが修得している身長分野の特技'],
397
+ [25, "森の奥で、動物との戦いが始まった。や、やるしかない。", '《運動神経/才能8》'],
398
+ [26, "オフ", ''],
399
+ [33, "オフ", ''],
400
+ [34, "料理ができる男をここでアピール! 飯盒炊爨(はんごうすいさん)に挑戦!", '《料理/趣味6》'],
401
+ [35, "山登り対決。早く登るよりも、怪我をしないように気をつけたい。", '《体力/才能6》'],
402
+ [36, "薪拾い。地味な絵面になってしまうので、退屈をさせないように魅せよう。", '《キャラ分野の空白/キャラ7》'],
403
+ [44, "オフ", ''],
404
+ [45, "視聴者が喜びそうなここだけの話をパートナープレイヤーにする。", 'パートナープレイヤーが修得しているキャラ分野の特技'],
405
+ [46, "些細なことでパートナープレイヤーと喧嘩になる。どっちが強いか勝負だ!", 'パートナープレイヤーが修得している才能分野の特技'],
406
+ [55, "オフ", ''],
407
+ [56, "ドラム缶風呂を用意することに。……熱いんだけど!", '《バーニング/属性10》'],
408
+ [66, "オフ", ''],
409
+ ]
410
+ return textFromD66Table(title, table)
411
+
412
+ when 'GA'
413
+ title = '聖デトワール女学園仕事表'
414
+ table = [
415
+ [11, "オフ", ''],
416
+ [12, "オフ", ''],
417
+ [13, "オフ", ''],
418
+ [14, "オフ", ''],
419
+ [15, "オフ", ''],
420
+ [16, "オフ", ''],
421
+ [22, "学園が主催しているアイドル触れ合いイベントに出演。美しく振舞おう。", '《スタイル/才能3》'],
422
+ [23, "学園のアイドルたちが出ているラジオに出演。先輩たちに負けないように、がんばろう。", '《元気/キャラ8》'],
423
+ [24, "学園と提携しているブランドのファッションショーに登場。", '《おしゃれ/趣味5》'],
424
+ [25, "学園を紹介するDVDに出演。うまく魅力を紹介できるかな?", '《気配り/才能9》'],
425
+ [26, "学内オーディションに出場。勝ち抜けば、歌番組に出場できる!", '《胆力/才能5》'],
426
+ [33, "学園が制作しているアイドルドラマに吸血鬼役で出演。恐ろし気な演技、できるかな?", '《オカルト/趣味2》'],
427
+ [34, "学園が制作しているドラマに出演。演技の中で、どうやって個性を出していこうか。", 'キャラ分野からランダム'],
428
+ [35, "学園主催のミニライブに出演。たくさんの出演者の中から、どうやって目立とう。", 'キャラ分野からランダム'],
429
+ [36, "学園の先輩たちと共演するライブイベントに出演。", '《胆力/才能5》'],
430
+ [44, "学園の紹介で、おいしい芋の紹介番組に出演。北海道に出発だ!", '《北海道/出身11》'],
431
+ [45, "学内オーディションで、ポップなCMのイメージガールを決定。戦い抜こう。", '《ポップ/属性9》'],
432
+ [46, "学内のミュージカルに出演することになった。自分たちの実力を舞台の上で発揮しよう。", '《演技力/才能12》'],
433
+ [55, "市内の店舗を手伝うドキュメンタリー番組を撮ることに。お店を手伝おう。", '《物腰丁寧/キャラ10》'],
434
+ [56, "市内のスタジオで収録されている朝の情報番組に出演。朝から元気に行こう。", '《元気/キャラ8》'],
435
+ [66, "裏山を使った簡単なPV撮影! 山での撮影は体力が要求される。", '《体力/才能6》'],
436
+ ]
437
+ return textFromD66Table(title, table)
438
+
439
+ when 'BA'
440
+ title = 'アカデミー仕事表'
441
+ table = [
442
+ [11, "オフ", ''],
443
+ [12, "オフ", ''],
444
+ [13, "オフ", ''],
445
+ [14, "オフ", ''],
446
+ [15, "オフ", ''],
447
+ [16, "オフ", ''],
448
+ [22, "アカデミーの中でも、特に優秀な成績を収めた者を表彰する式が開催される。", '《スター/属性12》'],
449
+ [23, "アカデミー主催の音楽祭に出演。楽器を演奏して、その姿で魅せよう。", '《音楽/趣味11》'],
450
+ [24, "アカデミーが製作しているドラマに出演。脇役だけど、しっかりと存在感を出していこう。", '《演技力/才能12》'],
451
+ [25, "番組の企画で、アカデミー生のアクションを見せることになった。", '《運動神経/才能9》'],
452
+ [26, "番組の1コーナーで、アカデミー生が様々なスポーツに挑戦する必要があるらしい。がんばろう。", '《スポーツ/趣味4》'],
453
+ [33, "先輩と一緒にバラエティ番組に出演。面白いリアクションを期待される。", '《ばか/キャラ10》'],
454
+ [34, "先輩のライブでバックコーラスに参加。美しい声を添えよう。", '《音楽/趣味11》'],
455
+ [35, "先輩のライブでバックダンサーとして出演。ダイナミックな演出に負けないようにしよう。", '《ダンス/趣味9》'],
456
+ [36, "先輩が主演を務めているアニメ映画に脇役の声優として出演。光る演技を見せよう。", '《演技力/才能12》'],
457
+ [44, "同級生と一緒に、漫画作品をモデルにしたミュージカルに出演。熱い気合を求められる。", '《バーニング/属性10》'],
458
+ [45, "同級生と一緒にキャラ付けの強いビジュアル系バンドを組んで、試験のステージで発表。", 'キャラ分野からランダム'],
459
+ [46, "同級生とファッションを競い合う、セルフプロデュース試験が始まる。", '《おしゃれ/趣味5》'],
460
+ [55, "一般教養の試験が始まる。恐ろしいことに、その様子を生中継するらしい。", '《学力/才能10》'],
461
+ [56, "アイドルの歴史を使った、クイズ試験が始まる。", '《アイドル/趣味12》'],
462
+ [66, "試験のテーマは耽美。セクシーさを仲間と競い合おう。", '《セクシー/属性4》'],
463
+ ]
464
+ return textFromD66Table(title, table)
465
+
466
+ when 'WT'
467
+ title = '仕事表'
468
+ table = [
469
+ [11, "オフ", ''],
470
+ [12, "握手会が始まる。アイドルとして重要な場面、集中していこう。", '《アイドル/趣味12》'],
471
+ [13, "パートナープレイヤーの「嫌いなもの」に取材をすることになった。大丈夫かな……?", 'パートナープレイヤーが修得している趣味分野の特技'],
472
+ [14, "シーンプレイヤーの「好きなもの」に関する番組の仕事だ! テンション上がるー!", 'シーンプレイヤーが修得している趣味分野の特技'],
473
+ [15, "パートナープレイヤーの「ファッション特徴」を活かす仕事がやって来た。", 'パートナープレイヤーが修得している属性分野の特技'],
474
+ [16, "クライアントから、もっとパートナープレイヤーの「個性特技」を推していこうよ、と提案を受ける。", 'パートナープレイヤーの個性特技'],
475
+ [22, "オフ", ''],
476
+ [23, "学園ドラマを撮影! 二人のキャラ付けはどうなるのかな?", 'キャラ分野からランダム'],
477
+ [24, "ドラマのアクションシーンを撮ることに。コンビネーションで切り抜けよう。", '身長分野からランダム'],
478
+ [25, "感動系のドラマに出演。どんな能力が必要になるかな?", '才能分野からランダム'],
479
+ [26, "趣味の番組に出演。こんな世界があるのか……。", '趣味分野からランダム'],
480
+ [33, "オフ", ''],
481
+ [34, "アイドルだらけのバラエティ番組に参戦! どのアイドルよりも高い点数を取るといいらしい!", '《ばか/キャラ12》'],
482
+ [35, "スポーツ番組の賑やかしとして呼ばれた! スポーツのこと、わかりますか?", '《スポーツ/趣味4》'],
483
+ [36, "クイズ番組に二人でゲスト出演。力を合わせて勝ち抜くか、それとも自分らしさを重視するか……。", '《学力/才能10》'],
484
+ [44, "オフ", ''],
485
+ [45, "料理番組に出演。どんな料理を作ろうかな。", '《料理/趣味8》'],
486
+ [46, "CDショップでサイン会を開催。ファンを喜ばせることができるかな?", '《気配り/才能9》'],
487
+ [55, "オフ", ''],
488
+ [56, "二人にグラビア撮影の仕事が来た。スタイルのよさを魅せるチャンス?", '《スタイル/才能3》'],
489
+ [66, "オフ", ''],
490
+ ]
491
+ return textFromD66Table(title, table)
492
+
493
+ when 'VA'
494
+ title = 'バラエティ仕事表'
495
+ table = [
496
+ [11, "オフ", ''],
497
+ [12, "食べたものをリポートする番組に出演。どうすれば味を言葉で表現できるだろうか?", '《料理/趣味6》'],
498
+ [13, "スポーツする番組に出演。どれだけ活躍できるかが試される。", '《スポーツ/趣味4》'],
499
+ [14, "トーク番組に出演。二人の喋りをうまく魅せなければ。", '《気配り/才能9》'],
500
+ [15, "猛獣の檻に入って、ボール遊びをすることに。度胸が肝心!", '《胆力/才能5》'],
501
+ [16, "パートナープレイヤーの「好きなもの」を題材にした番組コーナーを任された。", 'パートナープレイヤーの修得している趣味分野の特技'],
502
+ [22, "オフ", ''],
503
+ [23, "街歩き番組に出演。軽快なトークで、素人の人たちからうまい言葉を引き出そう。", '《軟派/キャラ5》'],
504
+ [24, "釣り番組に出ることになったが、大物を釣るまで帰れないという。さて、動きの少ない釣りでどうやって目立つか……。", '《キャラ分野の空白/キャラ7》'],
505
+ [25, "パートナープレイヤーの「嫌いなもの」を題材にした番組コーナーで、いじり役を任されることになった。", 'パートナープレイヤーの修得しているキャラ分野の特技'],
506
+ [26, "クイズ番組に出演。問題とどう向き合うか、それが大事だ。", '《学力/才能10》'],
507
+ [33, "オフ", ''],
508
+ [34, "農作業体験番組に出演。クワを持って畑に出かけよう。", '《体力/才能6》'],
509
+ [35, "工作体験番組に出演。いい物をスタジオにお届けできるよう、物づくりを真剣に行おう。", '《集中力/才能4》'],
510
+ [36, "電子ゲームやアナログゲームを遊ぶ番組に出演。どんな風に盛り上げられるかな?", '《ゲーム/趣味10》'],
511
+ [44, "オフ", ''],
512
+ [45, "今日は漫才をするようだ。笑わせるには、何が必要だろうか。", '《ばか/キャラ12》'],
513
+ [46, "シチュエーションコントに出演。大げさな演技が求められる。", '《演技力/才能12》'],
514
+ [55, "オフ", ''],
515
+ [56, "趣味的な番組に出ることになった。今日のテーマは何かな。", '《趣味分野の空白/趣味7》'],
516
+ [66, "オフ", ''],
517
+ ]
518
+ return textFromD66Table(title, table)
519
+
520
+ when 'MU'
521
+ title = '音楽関係仕事表'
522
+ table = [
523
+ [11, "オフ", ''],
524
+ [12, "シーンプレイヤーとパートナープレイヤーでミニライブをすることになった。うまく声を合わせよう。", 'パートナープレイヤーの修得している属性分野の特技'],
525
+ [13, "歌番組で取り上げられる。どんな気持ちで歌ったのか、うまく表現して伝えよう。", '《パッション/属性8》'],
526
+ [14, "パートナープレイヤーとハーモニーを重ねる歌がやってきた。二人の特徴をうまく声に乗せよう。", 'パートナープレイヤーの修得している才能分野の特技'],
527
+ [15, "CDの手渡し販売が開始。心を込めて、笑顔で手渡しだ。", '《笑顔/才能7》'],
528
+ [16, "レコーディングに音楽業界の大物が立ち会う。緊張せず、自分の実力を発揮しよう。", '《胆力/才能5》'],
529
+ [22, "オフ", ''],
530
+ [23, "パートナープレイヤーと話し合って歌詞を作ることになった。お互いのことをよく理解しよう。", 'パートナープレイヤーの修得しているキャラ分野の特技'],
531
+ [24, "活動範囲を広げるために、色々な楽器に挑戦!", '《音楽/趣味11》'],
532
+ [25, "高級そうなバーで歌うことに。高級感のあるファッションを身につけることを条件に歌うことを許される。", '《セレブ/才能11》'],
533
+ [26, "中学生がターゲットのCDを販売することになった。心の中の中学生を解放するときが来た!", '《中二病/キャラ2》'],
534
+ [33, "オフ", ''],
535
+ [34, "子供向けの歌を作ることになった。視線を子供に近づけないと。", '《~125/身長2》'],
536
+ [35, "結婚式の歌を任される。祝福の気持ちを込めて歌おう。", '《気配り/才能9》'],
537
+ [36, "レースを盛り上げるアップテンポな曲を作ることに。", '《元気/キャラ8》'],
538
+ [44, "オフ", ''],
539
+ [45, "パートナープレイヤーの地元を象徴するような歌を作ることになった。地元の話を聞き出そう。", 'パートナープレイヤーの修得している出身分野の特技'],
540
+ [46, "ホラームービーの主題歌を担当することになった。怖さを声で表現できるだろうか?", '《オカルト/趣味2》'],
541
+ [55, "オフ", ''],
542
+ [56, "作曲家の先生と打ち合わせ。自分のイメージをうまく伝えられるかな?", '《物腰丁寧/キャラ10》'],
543
+ [66, "オフ", ''],
544
+ ]
545
+ return textFromD66Table(title, table)
546
+
547
+ when 'DR'
548
+ title = 'ドラマ関係仕事表'
549
+ table = [
550
+ [11, "オフ", ''],
551
+ [12, "エキストラで出演。できるだけ目立たないように……。", '《プレーン/属性7》'],
552
+ [13, "刑事ドラマに刑事役で出演。クールに決めよう。", '《クール/属性11》'],
553
+ [14, "刑事ドラマに犯人役で出演。悪いことをはぐらかす演技が必要だ。", '《ミステリアス/キャラ3》'],
554
+ [15, "医療ドラマに医者役で出演。臓器や血にひるまずがんばろう。", '《胆力/才能5》'],
555
+ [16, "再現アニメの吹き替えに挑戦。できるだけ丁寧に。", '《物腰丁寧/キャラ10》'],
556
+ [22, "オフ", ''],
557
+ [23, "悪役に挑戦。暗い気持ちが必要だ。", '《ダーク/属性3》'],
558
+ [24, "学園ドラマに悩める生徒役で出演。青春らしさをどこまで見せようか。", '《中二病/キャラ2》'],
559
+ [25, "時代劇に出演。硬派に決めるシーンがやって来た。", '《硬派/キャラ9》'],
560
+ [26, "特撮にヒーロー役で出演。熱い演技を見せるとき!", '《バーニング/属性10》'],
561
+ [33, "オフ", ''],
562
+ [34, "共演者に超有名人が! 緊張せずにがんばろう。", '《マイペース/キャラ4》'],
563
+ [35, "気難しい監督にいろいろ注意される。どう対応したものか……。", '《スター/属性12》'],
564
+ [36, "パートナープレイヤーの【背景】を再現したミニドラマを撮るようだ。彼の過去をどう表現したものか。", 'パートナープレイヤーの修得している属性分野の特技'],
565
+ [44, "オフ", ''],
566
+ [45, "アクションドラマに出演。アクションを決められるかどうかがカギだ。", '《運動神経/才能8》'],
567
+ [46, "恋愛ドラマに出演。共演者をどきどきさせる演技が必要とのこと。", '《セクシー/属性4》'],
568
+ [55, "オフ", ''],
569
+ [56, "感動系ドラマに出演。泣くシーンは、ここ一番の見せ場だ!", '《演技力/才能12》'],
570
+ [66, "オフ", ''],
571
+ ]
572
+ return textFromD66Table(title, table)
573
+
574
+ when 'VI'
575
+ title = 'ビジュアル関係仕事表'
576
+ table = [
577
+ [11, "オフ", ''],
578
+ [12, "ビーチでグラビア撮影の仕事が入る。肉体美を見せるとき。", '《セクシー/属性4》'],
579
+ [13, "ファッション誌の取材がやって来て、自分らしいファッションを見せてほしいと頼まれる。", '《キャラ分野の空白/キャラ7》'],
580
+ [14, "地方ごとのファッションを取り入れるファッションショーが開幕。出演することに。", '出身分野からランダム'],
581
+ [15, "ファッションショーにモデルとして登場。完璧なスタイルを見せつけろ。", '《スタイル/才能3》'],
582
+ [16, "雑誌でシーンプレイヤーおすすめコーデを紹介するようだ。どんな組み合わせを街に発信しようか。", '《おしゃれ/趣味5》'],
583
+ [22, "オフ", ''],
584
+ [23, "パートナープレイヤーの「身体的特徴」がちょっとした流行になった。乗るしかない、このビッグウェーブに。", 'パートナープレイヤーが修得している身長分野の特技'],
585
+ [24, "深夜番組の1コーナーに、シーンプレイヤーの「身体的特徴」の特集が組まれるようだ。それに乗っかろう。", 'シーンプレイヤーが修得している身長分野の特技'],
586
+ [25, "ニュース番組の1コーナーで、パートナープレイヤーの「ファッション特徴」が紹介される。うまくアシストしよう。", 'パートナープレイヤーが修得している身長分野の特技'],
587
+ [26, "シーンプレイヤーの「ファッション特徴」を売っている企業から、CMに出てくれないかと頼まれる。", 'シーンプレイヤーが修得している属性分野の特技'],
588
+ [33, "オフ", ''],
589
+ [34, "女性のファッションについて語る番組に出演。", '《フェミニン/属性5》'],
590
+ [35, "高い身長向けの衣装が届いた。これを使ってうまく魅せられるのか?", '《190~/身長12》'],
591
+ [36, "テレビ番組でアニメキャラのコスプレをすることに。自分らしく決めポーズ。", '《趣味分野の空白/趣味7》'],
592
+ [44, "オフ", ''],
593
+ [45, "低身長向けコーデを作ったデザイナーから連絡が入る。それを見事に着こなしてほしいとのこと。", '《146/身長6》'],
594
+ [46, "子供と共演するCMを撮ることになった。子供に愛されるファッションを考えよう。", '《~125/身長2》'],
595
+ [55, "オフ", ''],
596
+ [56, "パートナープレイヤーを宣材用の撮影向けにコーディネートすることになった。さて、どうしてやろうか。", 'パートナープレイヤーが修得している身長分野の特技'],
597
+ [66, "オフ", ''],
598
+ ]
599
+ return textFromD66Table(title, table)
600
+
601
+ when 'SP'
602
+ title = 'スポーツ仕事表'
603
+ table = [
604
+ [11, "オフ", ''],
605
+ [12, "オフ", ''],
606
+ [13, "オフ", ''],
607
+ [14, "オフ", ''],
608
+ [15, "オフ", ''],
609
+ [16, "オフ", ''],
610
+ [22, "マラソン大会に参加することになった。とにかく、走ろう。", '《体力/才能6》'],
611
+ [23, "サッカー選手たちにインタビュー! サッカーの魅力を聞き出そう。", '《スポーツ/趣味4》'],
612
+ [24, "野球の始球式をすることになった。自分らしく、キャラクターを前面に出して投げるのがコツ。", '《キャラ分野の空白/キャラ7》'],
613
+ [25, "バスケットボールを体験! その魅力を伝えよう。", '《スポーツ/趣味4》'],
614
+ [26, "ラグビーのパワフルさを間近で体験。見ている人たちにも迫力を伝えないと。", '《スポーツ/趣味4》'],
615
+ [33, "アメフトのハーフタイムショーの短い時間を任される。集中して魅力を出し切ろう。", '《集中力/才能4》'],
616
+ [34, "チアリーディング(男性アイドルは応援団)でスポーツ選手たちの応援をすることに。みんながんばれ!", '《キュート/属性6》'],
617
+ [35, "陸上競技を一通り体験! それぞれの種目の見どころを発信しよう。", '《運動神経/才能8》'],
618
+ [36, "水泳をする仕事がやってきた。競泳水着をカッコよく着こなそう。", '《クール/属性11》'],
619
+ [44, "スポーツドリンクのCMだ。「生き返る」感じを出していこう。", '《パッション/属性8》'],
620
+ [45, "運動靴のCM。パートナープレイヤーを力強く追い抜いて、速くなれることをアピール!", '《バーニング/属性10》'],
621
+ [46, "ジャージや体操服のCMが入ってきた。うまく着こなして、運動着もおしゃれなことを証明しよう。", '《おしゃれ/趣味5》'],
622
+ [55, "近々開催される大会の応援団長を任された。出場する選手たちにエールを送ろう!", '《元気/キャラ8》'],
623
+ [56, "テニスの試合をパートナープレイヤーとやることになった。ダブルスでいこう。", 'パートナープレイヤーが修得している属性分野の特技'],
624
+ [66, "ゴルフコースを回りながら、プロから手ほどきを受けることに。丁寧な言葉遣いで、大人っぽく振舞おう。", '《物腰丁寧/キャラ10》'],
625
+ ]
626
+ return textFromD66Table(title, table)
627
+
628
+ when 'CHR'
629
+ title = 'クリスマス仕事表'
630
+ table = [
631
+ [11, "オフ", ''],
632
+ [12, "オフ", ''],
633
+ [13, "オフ", ''],
634
+ [14, "オフ", ''],
635
+ [15, "オフ", ''],
636
+ [16, "オフ", ''],
637
+ [22, "雪の積もる野外コンサートホールでミニライブ。苛酷な環境だけど、耐え抜かないと。", '《体力/才能6》'],
638
+ [23, "ラジオの公開録音中に、クリスマスケーキ作りにチャレンジすることになった。うまく作れるかな?", '《料理/趣味6》'],
639
+ [24, "アイドルが提案するクリスマスデート用のファッションを雑誌で紹介。勝てるコーデを考えてみよう。", '《おしゃれ/趣味5》'],
640
+ [25, "ケーキ屋さんと提携して、クリスマスケーキの売り込みをすることに。", '《ショッピング/趣味8》'],
641
+ [26, "地元の中学校のクリスマスイベントに登場。学生のみんなと一緒に盛り上がろう。", '《パッション/属性8》'],
642
+ [33, "クリスマスに放映される特別ドラマにパートナープレイヤーの恋人役で出演。恋愛をうまく演じられるかな?", '《演技力/才能12》'],
643
+ [34, "トークバラエティのクリスマス特番に呼ばれて収録を始める。本日のテーマは、「恋」について。", '《軟派/キャラ5》'],
644
+ [35, "ラジオ番組で、家族と過ごすクリスマスの思い出について語ることになった。", '《異国文化/才能2》'],
645
+ [36, "セクシーサンタグランプリというファッション大会に出ることになった。セクシーアイドルたちと対決だ!", '《セクシー/属性4》'],
646
+ [44, "遊園地で行われるクリスマスイベントのCMを撮影することになった。楽しそうな笑顔を見せよう。", '《笑顔/才能7》'],
647
+ [45, "サンタクロースの格好をして、小学生たちにプレゼントを配ることになった。オファーはかわいさ重視!", '《キュート/属性6》'],
648
+ [46, "サンタクロースの格好をして、街でイベントをすることに。異国っぽさをうまく出せるかな?", '《海外/出身12》'],
649
+ [55, "クリスマスをテーマにした写真集が発売。そのうちの何枚かを担当することに。", '《スタイル/才能3》'],
650
+ [56, "新人アイドルたちが歌うクリスマスソングを収めたカバーアルバムが発売。自分たちも収録されています。", '《音楽/趣味11》'],
651
+ [66, "アイドルとデートをした気分になれるDVDが発売。自分たちも、クリスマス編の収録を行った。", '《アイドル/趣味12》'],
652
+ ]
653
+ return textFromD66Table(title, table)
654
+
655
+ when 'PAR'
656
+ title = 'パートナー関係仕事表'
657
+ table = [
658
+ [11, "オフ", ''],
659
+ [12, "オフ", ''],
660
+ [13, "オフ", ''],
661
+ [14, "オフ", ''],
662
+ [15, "オフ", ''],
663
+ [16, "オフ", ''],
664
+ [22, "パートナープレイヤーの【背景】に関する仕事がやって来る。こいつは何を見てきたんだ?", 'パートナープレイヤーの個性特技'],
665
+ [23, "パートナープレイヤーの「好きなもの」に関する仕事がやって来る。場を盛り上げていこう。", 'パートナープレイヤーが修得している趣味分野の特技'],
666
+ [24, "パートナープレイヤーの「嫌いなもの」に関する仕事がやって来る。どうフォローしたものか。", 'パートナープレイヤーが修得しているキャラ分野の特技'],
667
+ [25, "パートナープレイヤーの「身体的特徴」に関する仕事がやって来る。どこがいいのかを聞いてみる。", 'パートナープレイヤーが修得している属性分野の特技'],
668
+ [26, "パートナープレイヤーの「ファッション特徴」に関する仕事がやって来る。自分も真似をすることに。", 'パートナープレイヤーが修得している身長分野の特技'],
669
+ [33, "パートナープレイヤーの個性特技に関する仕事がやって来る。合わせてみよう。", 'パートナープレイヤーの個性特技'],
670
+ [34, "パートナープレイヤーの「身体的特徴」に関する仕事がやって来る。どこがいいのかを聞いてみる。", 'パートナープレイヤーが修得している属性分野の特技'],
671
+ [35, "パートナープレイヤーが修得している属性分野の特技に関する仕事がやって来る。", 'パートナープレイヤーが修得している属性分野の特技'],
672
+ [36, "パートナープレイヤーが修得しているキャラ分野の特技に関する仕事がやって来る。", 'パートナープレイヤーが修得しているキャラ分野の特技'],
673
+ [44, "シーンプレイヤーの【背景】を振り返らせるような仕事がやって来た。今はアイドルとしてそれをこなそう。", 'シーンプレイヤーの個性特技'],
674
+ [45, "パートナープレイヤーが修得している趣味分野の特技に関する仕事がやって来る。", 'パートナープレイヤーが修得している趣味分野の特技'],
675
+ [46, "パートナープレイヤーが修得している出身分野の特技に関する仕事がやって来る。", 'パートナープレイヤーが修得している出身分野の特技'],
676
+ [55, "シーンプレイヤーの個性特技に関する仕事がやって来る。今こそ見せ場だ!", 'シーンプレイヤーの個性特技'],
677
+ [56, "パートナープレイヤーが修得している才能分野の特技に関する仕事がやって来る。", 'パートナープレイヤーが修得している才能分野の特技'],
678
+ [66, "シーンプレイヤーの「好きなもの」に関する仕事がやって来る。やったぜ!", 'シーンプレイヤーの個性特技'],
679
+ ]
680
+ return textFromD66Table(title, table)
681
+
682
+ when 'SW'
683
+ title = 'お菓子仕事表'
684
+ table = [
685
+ [11, "オフ", ''],
686
+ [12, "オフ", ''],
687
+ [13, "オフ", ''],
688
+ [14, "オフ", ''],
689
+ [15, "オフ", ''],
690
+ [16, "オフ", ''],
691
+ [22, "おいし過ぎて止まらない様子を描く、ふわふわなお菓子のCMを行う。", '《ポップ/属性9》'],
692
+ [23, "苦い恋模様を描く、ビターチョコレートのCM撮影を行う。", '《ダーク/属性3》'],
693
+ [24, "甘い恋模様を描く、甘いチョコレートのCM撮影を行う。", '《キュート/属性6》'],
694
+ [25, "家でポリポリ食べているところを描く、スナック菓子のCMを行う。", '《プレーン/属性7》'],
695
+ [26, "青春の汗を流す様子を描く、甘い飲料水のCMを行う。", '《バーニング/属性10》'],
696
+ [33, "チョコレートを食べて脳細胞を活性化させる探偵のドラマに出演する。", '《集中力/才能4》'],
697
+ [34, "朝のシリアルを食べて元気いっぱいな様子を描く、CM撮影を行う。", '《元気/キャラ8》'],
698
+ [35, "眠いときに目がすっきりと覚める様子を描く、刺激の強いお菓子のCM撮影を行う。", '《パッション/属性8》'],
699
+ [36, "一本で栄養補給ができる様子を描く、健康補助食品なお菓子のCM撮影を行う。", '《クール/属性11》'],
700
+ [44, "地元にある駄菓子屋さんのプロモーションを手伝う。", '《ショッピング/趣味8》'],
701
+ [45, "料理番組で、市販のお菓子を使った新しいおやつの開発を任される。", '《料理/趣味6》'],
702
+ [46, "お菓子の家を再現したアトラクション施設を宣伝する。", '《フェミニン/属性5》'],
703
+ [55, "情報番組の1コーナーで、お勧めのケーキを紹介する。", '《料理/趣味6》'],
704
+ [56, "お菓子をテーマにした、夢いっぱいの遊園地の宣伝を行う。", '《笑顔/才能7》'],
705
+ [66, "チョコレートを使ったグラビア撮影をすることになる。", '《スタイル/才能3》'],
706
+ ]
707
+ return textFromD66Table(title, table)
708
+
709
+ when 'AN'
710
+ title = '動物仕事表'
711
+ table = [
712
+ [11, "オフ", ''],
713
+ [12, "オフ", ''],
714
+ [13, "オフ", ''],
715
+ [14, "オフ", ''],
716
+ [15, "オフ", ''],
717
+ [16, "オフ", ''],
718
+ [22, "ライオンの檻に、餌を届ける仕事がやって来る。勇気を出して踏み込もう。", '《胆力/才能5》'],
719
+ [23, "ハムスターと戯れる絵を作る。", '《ペット/趣味4》'],
720
+ [24, "牛の乳しぼり体験を動画にしよう。", '《集中力/才能4》'],
721
+ [25, "かわいい猫の動画を撮るために、きまぐれな猫の機嫌をとりにいく。", '《ペット/趣味4》'],
722
+ [26, "犬の散歩シーンを撮るためにも、犬と信頼関係を作る。", '《ペット/趣味4》'],
723
+ [33, "公園の鳩に餌をあげるシーンの手伝いをする。", '《マイペース/キャラ4》'],
724
+ [34, "象の上に乗って、コメントを述べる仕事。", '《エスニック/属性2》'],
725
+ [35, "ぬるぬるしたどじょうを手づかみする絵を要求される。", '《セクシー/属性4》'],
726
+ [36, "ウサギをなでる絵を作る仕事がやって来る。不安そうなウサギを安心させよう。", '《ペット/趣味4》'],
727
+ [44, "奈良の鹿に餌をあげるドラマに出演。", '《近畿地方/出身6》'],
728
+ [45, "馬に乗って、競馬場を駆ける映像を撮ることに。うまく乗りこなそう。", '《セレブ/才能11》'],
729
+ [46, "水族館でペンギンたちと一緒に遊ぶシーンを撮影。", '《キュート/属性6》'],
730
+ [55, "蛇を手づかみする番組企画が入る。", '《胆力/才能5》'],
731
+ [56, "海に入って、魚や貝を見つける企画をすることになった。", '《元気/キャラ8》'],
732
+ [66, "山奥で歩き回って、色々な昆虫を見つける仕事を行う。", '《体力/才能6》'],
733
+ ]
734
+ return textFromD66Table(title, table)
735
+
736
+ when 'MOV'
737
+ title = '映画仕事表'
738
+ table = [
739
+ [11, "オフ", ''],
740
+ [12, "オフ", ''],
741
+ [13, "オフ", ''],
742
+ [14, "オフ", ''],
743
+ [15, "オフ", ''],
744
+ [16, "オフ", ''],
745
+ [22, "ゾンビ映画にゾンビ役で出演。動く死体らしい演技を心がけよう。", '《ダーク/属性3》'],
746
+ [23, "時代劇映画にサムライ役で出演。厚い忠義を見せよう。", '《硬派/キャラ9》'],
747
+ [24, "西部劇映画にガンマン役で出演。静かに熱い役を演じよう。", '《バーニング/属性10》'],
748
+ [25, "SF映画に未来のエンジニア役で出演。難しい言葉をクールに言い放とう。", '《クール/属性11》'],
749
+ [26, "カンフー映画に若き拳法家役で出演。激しいアクションで敵と戦おう。", '《運動神経/才能8》'],
750
+ [33, "恋愛映画に当て馬役として出演。フラれたあとに感情的になる演技が大事。", '《演技力/才能12》'],
751
+ [34, "現代劇に中学二年生役として出演。現代の若者を演技で表現しよう。", '《中二病/キャラ2》'],
752
+ [35, "特撮ヒーローにヒーロー役として出演。スーツアクターのアクションに、アフレコで魂を載せよう。", '《演技力/才能12》'],
753
+ [36, "ホラー映画に主役として出演。悲鳴や動きで怖がっているところを見せよう。", '《ダーク/属性3》'],
754
+ [44, "インド映画にダンサーとして出演。情熱的な踊りで映画を盛り上げよう。", '《ダンス/趣味9》'],
755
+ [45, "ミステリー映画の犯人役として出演。怪しげな演技で人々を魅了しよう。", '《ミステリアス/キャラ3》'],
756
+ [46, "戦争映画に出演。哀しみの叫びを上げよう。", '《演技力/才能12》'],
757
+ [55, "ちょっとしたお色気シーンを撮ることに。", '《セクシー/属性4》'],
758
+ [56, "ドキュメンタリー映画で、過去の偉人を演じることに。その人の一生をトレースしよう。", '《演技力/才能12》'],
759
+ [66, "おバカな映画に、突き抜けたバカ役として出演。バカになれ!", '《ばか/キャラ12》'],
760
+ ]
761
+ return textFromD66Table(title, table)
762
+
763
+ when 'FA'
764
+ title = 'ファンタジー仕事表'
765
+ table = [
766
+ [11, "オフ", ''],
767
+ [12, "オフ", ''],
768
+ [13, "オフ", ''],
769
+ [14, "オフ", ''],
770
+ [15, "オフ", ''],
771
+ [16, "オフ", ''],
772
+ [22, "ドラゴンと対峙しても、引かない勇気を見せるシーン。", '《胆力/才能5》'],
773
+ [23, "怪物の群れを魔法で一掃するシーン。", '《ポップ/属性9》'],
774
+ [24, "剣を使って街を荒らす盗賊たちを成敗するシーン。", '《硬派/キャラ9》'],
775
+ [25, "斧を振るって、動く植物を破壊するシーン。", '《体力/才能6》'],
776
+ [26, "仲間と一緒に槍で突いて、敵の兵士を追い返すシーン。", '《気配り/才能9》'],
777
+ [33, "歌と踊りでファンタジーの住民たちを惹きつけるシーン。", '《音楽/趣味11》'],
778
+ [34, "酒場で芸を披露して、人気者になるシーン。", '《軟派/キャラ5》'],
779
+ [35, "無実の罪でとらえられ、牢屋から脱出するシーン。", '《ミステリアス/キャラ3》'],
780
+ [36, "突然現れた魔物の群れに襲われるシーン。", '《どじ/キャラ11》'],
781
+ [44, "巨大な魔物に、みんなで立ち向かっていくシーン。", '《気配り/才能9》'],
782
+ [45, "悪の魔法使いによって、呪いをかけられるシーン。", '《ダーク/属性3》'],
783
+ [46, "新しい武器と防具を調達して、着こなすシーン。", '《おしゃれ/趣味5》'],
784
+ [55, "一面の草原を駆け抜けるシーン。", '《元気/キャラ8》'],
785
+ [56, "疲れている王様を元気づけてあげるシーン。", '《パッション/属性8》'],
786
+ [66, "空を駆ける不思議な船に乗って、感動するシーン。", '《笑顔/才能7》'],
787
+ ]
788
+ return textFromD66Table(title, table)
789
+
790
+ when 'RE'
791
+ title = 'ランダムイベント'
792
+
793
+ number = @randomizer.roll_once(6)
794
+ if number.even?
795
+ name = 'オンイベント表'
796
+ table = [
797
+ [11, "雨女は誰?", 96],
798
+ [12, "千客万来☆アイドル喫茶", 97],
799
+ [13, "フチドル", 98],
800
+ [14, "生放送は踊る", 99],
801
+ [15, "貸し切りプールの誘惑", 100],
802
+ [16, "ケーオンストリート!", 101],
803
+ [21, "アイドル×アニメ×ドリーマー!", 102],
804
+ [22, "一日警察署長、緊急出動!?", 103],
805
+ [23, "アイドルフィン!", 104],
806
+ [24, "「カラオケ採点ガチバトル☆」", 105],
807
+ [25, "「大正乙女ろまんてぃっく」", 106],
808
+ [26, "鳩時計ラジオ", 107],
809
+ [31, "「ガチ学院」CM", 108],
810
+ [32, "「カラフルアイスクリーム」モデル", 109],
811
+ [33, "忙しすぎる毎日", 110],
812
+ [34, "悩める新人デザイナー", 112],
813
+ [35, "「スクール☆ライフ」", 113],
814
+ [36, "魔法のように", 114],
815
+ [41, "食レポとその後", 115],
816
+ [42, "ソロライブ!", 116],
817
+ [43, "お昼の放送", 117],
818
+ [44, "文化祭!", 118],
819
+ [45, "商店街を救え!", 120],
820
+ [46, "二つの仕事", 121],
821
+ [51, "温泉にて", 122],
822
+ [52, "アイドル探偵と豪華客船", 124],
823
+ [53, "のうぎょう", 125],
824
+ [54, "コント撮影", 127],
825
+ [55, "アイドルVSサメ", 128],
826
+ [56, "駅前で歌う", 130],
827
+ [61, "街の清掃ボランティア", 131],
828
+ [62, "ミニユニット活動", 132],
829
+ [63, "カブトムシ狩り", 134],
830
+ [64, "ポスター作り", 135],
831
+ [65, "メロディ", 136],
832
+ [66, "さいてい新聞部の取材", 138],
833
+ ]
834
+ else
835
+ name = 'オフイベント表'
836
+ table = [
837
+ [11, "アイドル、未知との遭遇", 139],
838
+ [12, "神様おねがい!", 140],
839
+ [13, "プチ合宿の罠!?", 141],
840
+ [14, "どこかで会ったような……", 142],
841
+ [15, "アイデンティティがっ!", 143],
842
+ [16, "ホリダシ×オオソウジ", 144],
843
+ [21, "エンドレス!? 握手会", 146],
844
+ [22, "不安な路線変更", 147],
845
+ [23, "全力ねこレース", 148],
846
+ [24, "恐怖の再テスト!", 149],
847
+ [25, "たくさんのファンレター", 150],
848
+ [26, "夕暮れの帰り道。", 152],
849
+ [31, "どきどき♪ 調理実習", 153],
850
+ [32, "超アイドル衣装?", 154],
851
+ [33, "おもいでの修学旅行", 156],
852
+ [34, "アルバイト!", 158],
853
+ [35, "ドライブしよう!", 159],
854
+ [36, "ファミレス攻防戦", 160],
855
+ [41, "総合練習", 162],
856
+ [42, "歌声はお腹から", 164],
857
+ [43, "メイクレッスン基本から", 165],
858
+ [44, "怪我", 166],
859
+ [45, "エゴサ", 168],
860
+ [46, "喫茶店でひと息", 169],
861
+ [51, "天体観測ツアー", 170],
862
+ [52, "謎のコーチ", 172],
863
+ [53, "屋上にて", 174],
864
+ [54, "クラスメイトより", 176],
865
+ [55, "最強アイドル伝", 177],
866
+ [56, "イメチェンしよう", 178],
867
+ [61, "郊外ショッピング施設", 179],
868
+ [62, "お見舞い", 180],
869
+ [63, "ライブを観よう!", 181],
870
+ [64, "頂を目指す", 182],
871
+ [65, "重いコンダラ", 183],
872
+ [66, "アイドル改造計画", 184],
873
+ ]
874
+ end
875
+
876
+ dice = @randomizer.roll_d66(D66SortType::NO_SORT)
877
+ outcome, text, page = table.assoc(dice)
878
+ return "#{title} > (1D6) > #{number}\n#{name} > [#{outcome}] > #{text}(『ビギニングロード』#{page}ページ)"
879
+
880
+ when 'HA'
881
+ title = 'ハプニング表'
882
+ table = [
883
+ [11, "ハプニングなし", ''],
884
+ [12, "ハプニングなし", ''],
885
+ [13, "ハプニングなし", ''],
886
+ [14, "ハプニングなし", ''],
887
+ [15, "ハプニングなし", ''],
888
+ [16, "ハプニングなし", ''],
889
+ [22, "パートナープレイヤーに、地方からオファーが来た。その土地独特の文化を学んで、パートナープレイヤーに伝えよう。", 'AT6'],
890
+ [23, "グラビア撮影だが、用意された衣装のサイズがパートナープレイヤーに合わなかった。何とかして、衣装を合わせなければいけない。", 'パートナープレイヤーが修得している身長分野の特技'],
891
+ [24, "ダンス撮影中。パートナープレイヤーのダンスに迷いが見えた。何かアドバイスをして、迷いを取り払いたい。", '《ダンス/趣味9》'],
892
+ [25, "歌の仕事だが、パートナープレイヤーの歌がどこかぎこちない。うまく本来の歌を取り戻させよう。", 'パートナープレイヤーが修得している属性分野の特技'],
893
+ [26, "体力を消費する仕事の最中に、パートナープレイヤーが倒れてしまった! 急いで処置をしなければ!", '《気配り/才能9》'],
894
+ [33, "パートナープレイヤーにマイナースポーツのCMが回ってきたが、知らない様子だ。ルールを教えよう。", '《スポーツ/趣味4》'],
895
+ [34, "パートナープレイヤーのキャラに合わない仕事が舞い込んだ。演技力で乗り切ってほしい。", '《演技力/才能12》'],
896
+ [35, "パートナープレイヤーが風邪をひいてしまう。次の仕事までに、なんとか治してもらわなければ。", '《元気/キャラ8》'],
897
+ [36, "パートナープレイヤーの属性らしくない衣装が来てしまった。うまくアレンジできればいいけど。", '《おしゃれ/趣味5》'],
898
+ [44, "パートナープレイヤーのテンションが低い。テンションを上げるようなことを言おう。", '《バーニング/属性10》'],
899
+ [45, "パートナープレイヤーの仕事に必要な小道具が足りなくなった。調達しよう。", '《ショッピング/趣味8》'],
900
+ [46, "パートナープレイヤーに外国から仕事が舞い込んできた。外国の文化に合わせた仕事をしなければ。", '《異国文化/才能2》'],
901
+ [55, "パートナープレイヤーに大会社からの仕事のオファーがやって来る。プレッシャーに負けないように後押ししよう。", '《胆力/才能5》'],
902
+ [56, "パートナープレイヤーと他のアイドルグループとのコラボイベントが行われる。そのアイドルの情報を集めてこよう。", '《アイドル/趣味12》'],
903
+ [66, "パートナープレイヤーの周りで、幽霊騒ぎが起こる。安心させるためにも、調査に乗り出そう。", '《オカルト/趣味2》'],
904
+ ]
905
+ return textFromD66Table(title, table)
906
+
907
+ when /^AT([1-6]?)$/
908
+ value = Regexp.last_match(1).to_i
909
+ return getSkillList(value)
910
+
911
+ when 'LUR'
912
+ title = '地方アイドル無茶ぶり表'
913
+ table1 = [
914
+ "地元の商店街で",
915
+ "マスコットキャラクターと",
916
+ "地元のプールで",
917
+ "地元の小学校で",
918
+ "地元のショッピングモールで",
919
+ "田んぼの真ん中で",
920
+ ]
921
+ table2 = [
922
+ "愛について叫ぶ",
923
+ "民謡を歌う",
924
+ "ファッションショー",
925
+ "水着で宣伝",
926
+ "ネット配信",
927
+ "お祭り騒ぎ",
928
+ ]
929
+ return textFrom1D6Table(title, table1, table2)
930
+
931
+ when 'SUR'
932
+ title = '情熱の夏無茶ぶり表'
933
+ table1 = [
934
+ "海水浴場で",
935
+ "偉い人の前で",
936
+ "あの有名アイドルの前で",
937
+ "仲間の前で",
938
+ "カメラの前で",
939
+ "一般客の前で",
940
+ ]
941
+ table2 = [
942
+ "かき氷いっき食い",
943
+ "ナンパ",
944
+ "スイカ割り",
945
+ "カッコいいポーズ",
946
+ "満面の笑顔",
947
+ "喧嘩のふり",
948
+ ]
949
+ return textFrom1D6Table(title, table1, table2)
950
+
951
+ when 'WUR'
952
+ title = 'ぬくもりの冬無茶ぶり表'
953
+ table1 = [
954
+ "クリスマスツリーの前で",
955
+ "子供たちの前で",
956
+ "大雪の中で",
957
+ "雪が降り始めた街で",
958
+ "暖かい部屋の中で",
959
+ "暖房が効きすぎの部屋の中で",
960
+ ]
961
+ table2 = [
962
+ "雪かき",
963
+ "アイスを食べる",
964
+ "薄着で登場",
965
+ "歌ってください",
966
+ "サンタのコスプレ",
967
+ "おでんを急いで食べる",
968
+ ]
969
+ return textFrom1D6Table(title, table1, table2)
970
+
971
+ when 'NUR'
972
+ title = '大自然無茶ぶり表'
973
+ table1 = [
974
+ "斧を持って",
975
+ "クワを持って",
976
+ "釣竿を持って",
977
+ "虫取り網を持って",
978
+ "栄養ドリンクの宣伝をしながら",
979
+ "命綱をつけて",
980
+ ]
981
+ table2 = [
982
+ "木を倒す",
983
+ "畑を耕す",
984
+ "昆虫採集",
985
+ "大物を釣る",
986
+ "一晩過ごす",
987
+ "崖を登る",
988
+ ]
989
+ return textFrom1D6Table(title, table1, table2)
990
+
991
+ when 'GUR'
992
+ title = '聖デトワール女学園無茶ぶり表'
993
+ table1 = [
994
+ "裏山で",
995
+ "食堂で",
996
+ "先輩の前で",
997
+ "全国放送で",
998
+ "全校生徒の前で",
999
+ "学園の様子を伝えるネット中継で",
1000
+ ]
1001
+ table2 = [
1002
+ "歌を披露",
1003
+ "乗馬",
1004
+ "テニス",
1005
+ "「個性とは何か」を語る",
1006
+ "「アイドルとは何か」を語る",
1007
+ "「アイドルをやっていてよかった瞬間」を語る",
1008
+ ]
1009
+ return textFrom1D6Table(title, table1, table2)
1010
+
1011
+ when 'BUR'
1012
+ title = 'アカデミー無茶ぶり表'
1013
+ table1 = [
1014
+ "TVカメラの前で",
1015
+ "ライバルと一緒に",
1016
+ "試験で",
1017
+ "寮で",
1018
+ "幼年部で",
1019
+ "初等部で",
1020
+ ]
1021
+ table2 = [
1022
+ "反省会",
1023
+ "ゲリラライブ",
1024
+ "宿題をこなす",
1025
+ "食事を作る",
1026
+ "自作の歌を披露",
1027
+ "自作のポエムを披露",
1028
+ ]
1029
+ return textFrom1D6Table(title, table1, table2)
1030
+
1031
+ when /^BT(\d+)?$/
1032
+ counts = (Regexp.last_match(1) || 1).to_i
1033
+ return badStatus(counts)
1034
+
1035
+ when 'SGT'
1036
+ title = 'アイドルスキル修得表(チャレンジガールズ)'
1037
+ table = [
1038
+ "シーンプレイヤーが修得している才能分野の特技が指定特技のアイドルスキル",
1039
+ "シーンプレイヤーが修得しているキャラ分野の特技が指定特技のアイドルスキル",
1040
+ "シーンプレイヤーが修得している趣味分野の特技が指定特技のアイドルスキル",
1041
+ "ランダムに決定した特技が指定特技のアイドルスキル(身長分野、属性分野、出身分野が出たら振り直し)",
1042
+ "《メンタルアップ》《パフォーマンスアップ》《アイテムアップ》のうちいずれか1つ",
1043
+ "《メンタルアップ》《パフォーマンスアップ》《アイテムアップ》のうちいずれか1つ",
1044
+ ]
1045
+ return textFrom1D6Table(title, table)
1046
+
1047
+ when 'RS'
1048
+ title = 'アイドルスキル修得表(ロードトゥプリンス)'
1049
+ table = [
1050
+ "シーンプレイヤーが修得している属性分野の特技が指定特技のアイドルスキル",
1051
+ "シーンプレイヤーが修得しているキャラ分野の特技が指定特技のアイドルスキル",
1052
+ "シーンプレイヤーが修得している趣味分野の特技が指定特技のアイドルスキル",
1053
+ "ランダムに決定した特技が指定特技のアイドルスキル(身長分野、才能分野、出身分野が出たら振り直し)",
1054
+ "《メンタルディフェンス》《判定アップ》《個性アップ》のうちいずれか1つ",
1055
+ "《メンタルディフェンス》《判定アップ》《個性アップ》のうちいずれか1つ",
1056
+ ]
1057
+ return textFrom1D6Table(title, table)
1058
+
1059
+ when 'SH'
1060
+ title = 'ショッピングモール散策表'
1061
+ table = [
1062
+ [11, "思いがけず、ブランドもの衣装を買えてしまった。これを、うまく使えないだろうか?\nシーンプレイヤーとパートナープレイヤーは、好きなブランドの衣装チケットを一つ獲得する。"],
1063
+ [12, "雑貨コーナーを回って、自分たちらしいアクセサリーを探す。\nシーンプレイヤーとパートナープレイヤーは、アイテム「キャラアイテム」を一つ獲得する。"],
1064
+ [13, "お歳暮コーナーが盛況だった。今のトレンドはなんだろうか。\nシーンプレイヤーとパートナープレイヤーは、アイテム「差し入れ」を一つ獲得する。"],
1065
+ [14, "お菓子売り場で、気になっていたお菓子のシリーズを買い漁る。\nシーンプレイヤーとパートナープレイヤーは、アイテム「お菓子」を一つ獲得する。"],
1066
+ [15, "スポーツショップに立ち寄って、スポーツドリンクを買い貯める。いつか使うかもしれない。\nシーンプレイヤーとパートナープレイヤーは、アイテム「スナミナドリンク」を一つ獲得する。"],
1067
+ [16, "スポーツウェアの展示会をやっていたので、見て回る。びびっと来たアイテムも見つかった。\nシーンプレイヤーとパートナープレイヤーは、アイテム「トレーニングウェア」を一つ獲得する。"],
1068
+ [22, "特売品を買い漁る。さて、使えるものかな?\nシーンプレイヤーとパートナープレイヤーは、アイテムをランダムに二つ獲得する。"],
1069
+ [23, "シューズコーナーで、普段使いの靴を調達する。ダンスにちょうどいいのはどれかな?\nシーンプレイヤーとパートナープレイヤーは、アイテム「ドリーミングシューズ」を一つ獲得する。"],
1070
+ [24, "ふらりと買い物にやって来て、目についたものをとりあえず買ってみる。ちょっと疲れてたかも。\nシーンプレイヤーとパートナープレイヤーは、アイテムをランダムに一つ獲得する。"],
1071
+ [25, "色々な洋服を見て回って、自分やパートナーに合ったコーディネートを考えてみる。\nシーンプレイヤーとパートナープレイヤーは、【ビジュアル】が1点上昇する。"],
1072
+ [26, "ちょうど買いたかったものが、格安で売られていた。タイミングがよかったみたいだ。\nシーンプレイヤーとパートナープレイヤーは、好きなアイテムを一つ獲得する。"],
1073
+ [33, "ショッピングモールを歩いているうちに、アイテムを落としてしまう。\nシーンプレイヤーとパートナープレイヤーは、アイテムをすべて失う。"],
1074
+ [34, "ショッピングモールを歩いていると、声をかけられた。地元の人たちから、応援のメッセージをもらう。\nシーンプレイヤーとパートナープレイヤーは、【獲得ファン人数】が4点上昇する。"],
1075
+ [35, "ショッピングモールでは何も買わなかったが、交わした会話はお互いを知るきっかけになった。\nシーンプレイヤーとパートナープレイヤーは、お互いに対する【理解度】が3点上昇する。"],
1076
+ [36, "ベンチで一休みしながら、お互いの長所について話し合う。\nシーンプレイヤーとパートナープレイヤーは、アイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1077
+ [44, "混雑中のフードコートで食事をしようとしたところ、一時間近く待たされる。\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が2点減少する。"],
1078
+ [45, "フードコートで定番メニューを頼み、勝手知ったる味を楽しむ。やっぱり、知っている味がいい。\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が2点上昇する。"],
1079
+ [46, "フードコートで新しいメニューにチャレンジ!\nシーンプレイヤーとパートナープレイヤーは、1D6を振る。出目が奇数の場合、そのPCは【メンタル】が5点減少し、出目が偶数の場合、そのPCは【メンタル】が5点上昇する。"],
1080
+ [55, "CDコーナーを探しているうちに、迷ってしまった。さて、ここはどこだろう?\n変調がランダムに一つ発生する。"],
1081
+ [56, "カフェコーナーで一休み。\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が5点上昇する。"],
1082
+ [66, "家具や家電コーナーを回るうちに、自分たちの将来が不安になってきた。\n変調がランダムに二つ発生する。"],
1083
+ ]
1084
+ return textFromD66Table(title, table)
1085
+
1086
+ when 'MO'
1087
+ title = '山散策表'
1088
+ table = [
1089
+ [11, "山で迷っていたら、謎の仙人に助けられる。そのついでに、体をうまく動かす方法まで教わる。ありがとう! 謎の仙人!\nシーンプレイヤーとパートナープレイヤーの【合宿ポイント】が10点上昇する。"],
1090
+ [12, "山の幸を頂いて、幸福感に包まれる。うまい!\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1091
+ [13, "星空の下で、二人の【背景】を語り合う。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1092
+ [14, "森林浴をして、体調を整える。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が3点上昇し、変調がすべて回復する。"],
1093
+ [15, "山登りを繰り返して、足腰を鍛える。\nシーンプレイヤーとパートナープレイヤーの【フィジカル】が1点上昇する。"],
1094
+ [16, "二人で一緒に朝日を見て、訳も分からず感動する。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1095
+ [22, "山で迷った。\n変調がランダムに二つ発生する。"],
1096
+ [23, "山奥に住んでいるという、伝説のファッションデザイナーに着こなしの秘密を教えてもらう。\nシーンプレイヤーとパートナープレイヤーは、好きなブランドの衣装チケットを一つ獲得する。"],
1097
+ [24, "山奥に住んでいるという、伝説のレッスントレーナーに教えを乞いに足を延ばす。\nシーンプレイヤーとパートナープレイヤーは、アイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1098
+ [25, "ふらっと立ち寄った地元の飲食店で郷土料理を食べる。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1099
+ [26, "山奥にある神社まで登って、お祈りをする。無事にライブが成功しますように。\nシーンプレイヤーとパートナープレイヤーの【合宿ポイント】が5点上昇する。"],
1100
+ [33, "虫にたかられて、嫌な思いをする。\n変調がランダムに一つ発生する。"],
1101
+ [34, "仲間たちみんなとバーベキューをして楽しむ。\nシーンプレイヤーとパートナープレイヤーは、PC全員に対する【理解度】が3点上昇する。"],
1102
+ [35, "キノコ狩りをする。\nシーンプレイヤーとパートナープレイヤーは、1D6を振る。その値が偶数だった場合、アイテム「スタミナドリンク」を一つ獲得する。奇数だった場合、【メンタル】が6点減少する。"],
1103
+ [36, "避暑地の喫茶店で一杯飲みながら、お互いのアイドル論について語り合う。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1104
+ [44, "山を移動中に、落し物をしてしまう。\nシーンプレイヤーとパートナープレイヤーは、アイテムを一つ失う。"],
1105
+ [45, "山小屋で一晩を過ごす。お互いの生活習慣が見えてきた。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1106
+ [46, "ハイキングをしながら、お互いの嫌いなものについて理解を深める。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1107
+ [55, "野生の鹿に襲われそうになったので、プロデューサーが盾になった。\n変調「怪我」が発生する。"],
1108
+ [56, "高原の広々としたテニスコートでテニスを楽しむ。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1109
+ [66, "山道を歩き疲れて、足が棒になる。\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が3点減少する。"],
1110
+ ]
1111
+ return textFromD66Table(title, table)
1112
+
1113
+ when 'SEA'
1114
+ title = '海散策表'
1115
+ table = [
1116
+ [11, "浜辺で行われていたミスコンに強制的に参加させられる。\nシーンプレイヤーとパートナープレイヤーの【獲得ファン人数】が1D6点上昇する。"],
1117
+ [12, "浜辺を散歩しながら、お互いの好きなものについて語り合う。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1118
+ [13, "とれたての魚を使った寿司を食べて満足する。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1119
+ [14, "浜辺を歩いていると、アイドルだと気づいた地元の人たちから声援が飛んでくる。\nシーンプレイヤーとパートナープレイヤーの【獲得ファン人数】が5点上昇する。"],
1120
+ [15, "童心に返って、海に向かって走り出す。やったー海だー!\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1121
+ [16, "水泳で体を鍛える。荒れやすい海は特訓にもってこいだ!\nシーンプレイヤーとパートナープレイヤーの【フィジカル】が1点上昇する。"],
1122
+ [22, "せっかくだから釣りをしてみる。何が釣れるかな?\nシーンプレイヤーとパートナープレイヤーは、アイテムをランダムに一つ獲得する。"],
1123
+ [23, "二人で競い合いながら泳ぎまわる。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1124
+ [24, "ちょっとだけ日に焼けて、違う自分をセルフプロデュース。ちゃんと事務所の許可はとれてます!\nシーンプレイヤーとパートナープレイヤーの【ビジュアル】が1点上昇する。"],
1125
+ [25, "砂浜にいい感じのタイヤがあったので、それを引っ張りながら走り込みをする。\nシーンプレイヤーとパートナープレイヤーの【フィジカル】が1点上昇する。"],
1126
+ [26, "海に向かって叫んで、すっきりする。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇し、【ボイス】が1点上昇する。"],
1127
+ [33, "しつこいナンパに誘われて、ちょっと意気消沈してしまう。\n変調がランダムに二つ発生する。"],
1128
+ [34, "みんなで花火をして楽しむ。\nシーンプレイヤーとパートナープレイヤーは、PC全員に対する【理解度】が2点上昇する。"],
1129
+ [35, "水着で決めるファンションをコーディネートして、浜辺の視線を一人占め。\nシーンプレイヤーとパートナープレイヤーは、【ビジュアル】が1点上昇する。"],
1130
+ [36, "魚料理を満足いくまで食べたはいいものの、食べ過ぎじゃないかが心配。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が3点上昇する。"],
1131
+ [44, "穏やかな海を見ながら、これまでのことを思い返す。\n変調が一つ回復する。"],
1132
+ [45, "水族館に立ち寄ったら、お土産に色々持たされる。\nシーンプレイヤーとパートナープレイヤーは、アイテムをランダムに一つ獲得する。"],
1133
+ [46, "水族館のイルカショーから、新しい技のヒントをもらう。\nシーンプレイヤーとパートナープレイヤーは、アイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1134
+ [55, "海で遊んでいたら、溺れかける。\n変調がランダムに三つ発生する。"],
1135
+ [56, "サーファーたちから、人を惹きつける技術について聞き出す。\nシーンプレイヤーとパートナープレイヤーは、アイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1136
+ [66, "夜の海に出没するという幽霊らしきものを見かけてしまい、ぞっとする。\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が5点減少する。"],
1137
+ ]
1138
+ return textFromD66Table(title, table)
1139
+
1140
+ when 'SPA'
1141
+ title = '温泉街散策表'
1142
+ table = [
1143
+ [11, "地元のお祭りに遭遇! 一緒になって盛り上げる。\nシーンプレイヤーとパートナープレイヤーの【獲得ファン人数】が5点上昇する。"],
1144
+ [12, "卓球台を使って、お互いの力を出し切る。何かが掴めたような気がする。\nシーンプレイヤーとパートナープレイヤーの【合宿ポイント】が5点上昇する。"],
1145
+ [13, "お土産屋さんで、色々なものを買い込む。しかし、これは役に立つのだろうか。\nシーンプレイヤーとパートナープレイヤーは、アイテムをランダムに一つ獲得する。"],
1146
+ [14, "温泉からあがった後に、ゆっくりと涼む。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が3点上昇し、変調がすべて回復する。"],
1147
+ [15, "温泉街の名物料理を出してもらう。うまい!\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1148
+ [16, "浴衣で活気のある街並みを歩きながら、お互いの【背景】を語り合う。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が1D6点上昇する。"],
1149
+ [22, "湯に浸かり過ぎて目が回る。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が3点上昇し、変調がランダムに一つ発生する。"],
1150
+ [23, "たくさんの温泉に次々浸かる。楽しいけど疲れた。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1151
+ [24, "湯船に浸かってリフレッシュ。ひとまずは一息入れましょう。\n変調がすべて回復し、シーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1152
+ [25, "ジャグジー風呂で肩こりや足のむくみを癒す。温泉地でもこういう施設はあるんだな。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が5点上昇する。"],
1153
+ [26, "みんなやプロデューサーを連れて足湯に浸かる。いつもご苦労様。\n変調がすべて回復する。"],
1154
+ [33, "のぼせる。\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が3点減少する。"],
1155
+ [34, "貸切風呂で、ゆったりとしながらお互いを理解をするための話し合いをする。\nシーンプレイヤーとパートナープレイヤーのお互いに対する【理解度】が3点上昇する。"],
1156
+ [35, "マッサージ機を使って、日ごろの疲れをたたき出す。\n変調をすべて回復する。"],
1157
+ [36, "お風呂の後の牛乳もうまい!\nシーンプレイヤーとパートナープレイヤーは、アイテム「スナミナドリンク」を一つ獲得する。"],
1158
+ [44, "ついつい無駄遣いをしてしまう。てへへ。\n変調がランダムに一つ発生する。"],
1159
+ [45, "屋台での観光客向けの料理に舌鼓をうつ。こういう味もありなのか。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が3点上昇する。"],
1160
+ [46, "温泉街の女将さんたちに、人の心を豊かにする術を教えてもらう。\nシーンプレイヤーとパートナープレイヤーは、アイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1161
+ [55, "部屋の中でぼけっと過ごす。\nシーンプレイヤーとパートナープレイヤーの【メンタル】が1点上昇する。"],
1162
+ [56, "観光客の人々と会話をして、自分たちの知名度を確認する。\nアイドルランク係数が「10」以上の場合、【獲得ファン人数】が4D6点上昇する。"],
1163
+ [66, "複雑な地形と坂道で疲れ始める。目的の場所はまだ?\nシーンプレイヤーとパートナープレイヤーは、【メンタル】が3点減少する。"],
1164
+ ]
1165
+ return textFromD66Table(title, table)
1166
+
1167
+ when 'TN'
1168
+ title = '夜語りシチュエーション表'
1169
+ table = [
1170
+ ["みんなが寝静まった寝室。二人だけのお話。", '好きな特技'],
1171
+ ["夜の街を歩きながら、【背景】をぽつぽつと語り出す。", 'シーンプレイヤーの個性特技'],
1172
+ ["「好きなもの」を探しに出かけた帰り道。", 'シーンプレイヤーが修得している趣味分野の特技'],
1173
+ ["「嫌いなもの」から逃げてきて、二人きりになってしまった。", 'AT'],
1174
+ ["暗い道を往くとき、ふとしたきっかけで、「身体的特徴」に触れてしまう。", 'シーンプレイヤーが修得している身長分野の特技'],
1175
+ ["「ファッション特徴」の話に夢中になっていたら、いつの間にか二人になっていたことに気づく。", 'シーンプレイヤーが修得している属性分野の特技'],
1176
+ ]
1177
+ number = @randomizer.roll_once(6)
1178
+ return "#{title} > [#{number}] > " + table[number - 1][0] + getSkillText(table[number - 1][1])
1179
+
1180
+ when 'CG'
1181
+ title = 'コモン成長表'
1182
+ table = [
1183
+ "【メンタル】が2点上昇する。",
1184
+ "【メンタル】が4点上昇する。",
1185
+ "『チャレンジガールズ』か『ロードトゥプリンス』のアイドルスキル修得表を使ってアイドルスキルを一つ修得する。",
1186
+ "アイテムをランダムに一つ獲得する。",
1187
+ "アイテムをランダムに一つ獲得する。",
1188
+ "【獲得ファン人数】が3点上昇する。",
1189
+ ]
1190
+ text = textFrom1D6Table(title, table)
1191
+ if /アイテムをランダムに一つ獲得する。$/ =~ text
1192
+ text += "\n" + getItem
1193
+ end
1194
+ return text
1195
+
1196
+ when 'GG'
1197
+ title = 'ゴールド成長表'
1198
+ table = [
1199
+ [11, "好きなアイドルスキルを一つ選んで修得する。"],
1200
+ [12, "『チャレンジガールズ』か『ロードトゥプリンス』のアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1201
+ [13, "『チャレンジガールズ』か『ロードトゥプリンス』のアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1202
+ [14, "『チャレンジガールズ』か『ロードトゥプリンス』のアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1203
+ [15, "『チャレンジガールズ』か『ロードトゥプリンス』のアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1204
+ [16, "『チャレンジガールズ』か『ロードトゥプリンス』のアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1205
+ [22, "好きなアイドルスキルを一つ選んで修得する。"],
1206
+ [23, "レアアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1207
+ [24, "レアアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1208
+ [25, "レアアイドルスキル修得表を使ってアイドルスキルを一つ修得する。"],
1209
+ [26, "好きな能力値一つが1点上昇する。"],
1210
+ [33, "好きな能力値一つが2点上昇する。"],
1211
+ [34, "【ボイス】が1点上昇する。"],
1212
+ [35, "【フィジカル】が1点上昇する。"],
1213
+ [36, "【ビジュアル】が1点上昇する。"],
1214
+ [44, "個性特技を別の特技に変更することができる。"],
1215
+ [45, "好きな能力値二つが1点上昇する。"],
1216
+ [46, "すべての能力値が1点上昇する。"],
1217
+ [55, "【メンタル】が10点上昇する。"],
1218
+ [56, "アイテムをランダムに一つ獲得する。"],
1219
+ [66, "個性特技の目標値が1点減少する。"],
1220
+ ]
1221
+ skillTitle = 'レアアイドルスキル修得表'
1222
+ skillTable = [
1223
+ "【秘めたる素質】を修得する。",
1224
+ "【王者の風格】を修得する。",
1225
+ "【万能アイドル】を修得する。",
1226
+ "【最強の負けず嫌い】を修得する。",
1227
+ "【超絶無敵コーデ】を修得する。",
1228
+ "【強く正しく美しく】を修得する。",
1229
+ ]
1230
+ text = textFromD66Table(title, table)
1231
+
1232
+ if /レアアイドルスキル修得表を使ってアイドルスキルを一つ修得する。/ =~ text
1233
+ text += "\n" + textFrom1D6Table(skillTitle, skillTable)
1234
+ elsif /アイテムをランダムに一つ獲得する。$/ =~ text
1235
+ text += "\n" + getItem
1236
+ end
1237
+ return text
1238
+
1239
+ when 'FL'
1240
+ title = '駆け出しシーン表'
1241
+ table = [
1242
+ "トレーニングルームで、皆が真剣な顔をしている。真面目な雰囲気が場を支配しており、軽い冗談も言えなさそう。",
1243
+ "いつものたまり場。なのに、今日に限って、騒がしさがどこかに行ってしまったようだ。",
1244
+ "誰も歩いていない夜道。人気もなく、不安を抱くような暗闇に、足音だけが響いている。",
1245
+ "強い風と強い雨が吹きつける事務所の中。外に出れば、吹き飛ばされてしまいそう。",
1246
+ "曇り空の下。そこにいるだけで、暗い気持ちになるような、どんよりとした天気。",
1247
+ "雨が降り続けている。雨は、ずっと続いている。いつになったら晴れるのだろう。",
1248
+ ]
1249
+ return textFrom1D6Table(title, table)
1250
+
1251
+ when 'LN'
1252
+ title = '孤独表'
1253
+ table = [
1254
+ "誰のことも信じられない。私は一人でやってみせる。\nPC全員の【理解度】すべてにチェックを入れる。センターPCは、アイドルスキル修得表を使ってアイドルスキルを一つ修得する。",
1255
+ "事件がきっかけで、事務所の空気が悪くなった。嫌な雰囲気。\n変調がランダムに三つ発生する。",
1256
+ "口調が荒くなり、きつい一言を仲間に言ってしまう。\nPC全員の【メンタル】が5点減少し、【理解度】すべてにチェックを入れる。",
1257
+ "ちょっとした注意がきっかけで、仲間と喧嘩をしてしまう。\nPC全員の【メンタル】が10点減少する。",
1258
+ "誰も、話をしない。気まずさと静寂が場を包んだ。このままでは、会場の空気も悪くなる。\n【目標動員数】が二倍になる。",
1259
+ "突然の強い雨に打たれる。ずぶぬれのところに一人。そんなところを誰かに目撃されてしまう。\nセンターPCの【獲得ファン人数】が半分になる。",
1260
+ ]
1261
+ return textFrom1D6Table(title, table)
1262
+
1263
+ when 'MS'
1264
+ title = 'マイスキル名決定表'
1265
+ nameTable = [
1266
+ "形容表+情景表+マテリアル表",
1267
+ "形容表+情景表+アクション表",
1268
+ "形容表+マテリアル表+アクション表",
1269
+ "情景表+マテリアル表+アクション表",
1270
+ "形容表もしくは情景表+称号表+PCの名前",
1271
+ "マテリアル表もしくはアクション表+称号表+PCの名前",
1272
+ ]
1273
+ articleTitle = '称号表'
1274
+ articleTable = [
1275
+ "アイドル",
1276
+ "ガール/ボーイ",
1277
+ "パラダイス",
1278
+ "プリンセス/プリンス",
1279
+ "スタイル",
1280
+ "クイーン/キング",
1281
+ ]
1282
+ describeTitle = '形容表'
1283
+ describeTable = [
1284
+ [11, "ビギニング"],
1285
+ [12, "パワフル"],
1286
+ [13, "ビューティフル"],
1287
+ [14, "エターナル"],
1288
+ [15, "きらめき"],
1289
+ [16, "シャイニング"],
1290
+ [22, "パーフェクト"],
1291
+ [23, "1000%"],
1292
+ [24, "フレッシュ"],
1293
+ [25, "ドキドキ"],
1294
+ [26, "ワイルド"],
1295
+ [33, "ロイヤル"],
1296
+ [34, "ときめき"],
1297
+ [35, "ふわふわ"],
1298
+ [36, "スタイリッシュ"],
1299
+ [44, "小悪魔"],
1300
+ [45, "スーパー"],
1301
+ [46, "ウルトラ"],
1302
+ [55, "ハイパー"],
1303
+ [56, "ダイナマイト"],
1304
+ [66, "アルティメット"],
1305
+ ]
1306
+ sceneTitle = '情景表'
1307
+ sceneTable = [
1308
+ [11, "マーメイド"],
1309
+ [12, "ドリーム"],
1310
+ [13, "ピュア"],
1311
+ [14, "アニマル"],
1312
+ [15, "サンシャイン"],
1313
+ [16, "ムーンライト"],
1314
+ [22, "かわいい/かっこいい"],
1315
+ [23, "フューチャリング"],
1316
+ [24, "ライジング"],
1317
+ [25, "バーニング"],
1318
+ [26, "スターライト"],
1319
+ [33, "ボンバー"],
1320
+ [34, "レインボー"],
1321
+ [35, "フローズン"],
1322
+ [36, "ヒート"],
1323
+ [44, "ダーク"],
1324
+ [45, "ぴかぴか"],
1325
+ [46, "サンライズ"],
1326
+ [55, "スターダスト"],
1327
+ [56, "オーロラ"],
1328
+ [66, "ギャラクシー"],
1329
+ ]
1330
+ materialTitle = 'マテリアル表'
1331
+ materialTable = [
1332
+ [11, "バスケット"],
1333
+ [12, "エクスプレス"],
1334
+ [13, "エアプレーン"],
1335
+ [14, "ロケット"],
1336
+ [15, "ハリケーン"],
1337
+ [16, "バイク"],
1338
+ [22, "タイガー"],
1339
+ [23, "ドルフィン"],
1340
+ [24, "ドッグ"],
1341
+ [25, "キャット"],
1342
+ [26, "バニー"],
1343
+ [33, "ドラゴン"],
1344
+ [34, "ソード"],
1345
+ [35, "ランス"],
1346
+ [36, "パラソル"],
1347
+ [44, "ローズ"],
1348
+ [45, "ロータス"],
1349
+ [46, "コスモス"],
1350
+ [55, "キャンディ"],
1351
+ [56, "ハート"],
1352
+ [66, "フェニックス"],
1353
+ ]
1354
+ actionTitle = 'アクション表'
1355
+ actionTable = [
1356
+ [11, "スパイラル"],
1357
+ [12, "フライ"],
1358
+ [13, "シャワー"],
1359
+ [14, "ダイブ"],
1360
+ [15, "イリュージョン"],
1361
+ [16, "ラッシュ"],
1362
+ [22, "ターン"],
1363
+ [23, "ラブ"],
1364
+ [24, "ハグ"],
1365
+ [25, "ダッシュ"],
1366
+ [26, "シュート"],
1367
+ [33, "ダイビング"],
1368
+ [34, "クロス"],
1369
+ [35, "トリック"],
1370
+ [36, "ビーム"],
1371
+ [44, "スラッシュ"],
1372
+ [45, "ボイス"],
1373
+ [46, "ドライブ"],
1374
+ [55, "くるくる"],
1375
+ [56, "ジャンプ"],
1376
+ [66, "アクション"],
1377
+ ]
1378
+ name, nameNumber = get_table_by_1d6(nameTable)
1379
+
1380
+ nameParts = []
1381
+ articleIndex = name.index(articleTitle)
1382
+ unless articleIndex.nil?
1383
+ text, number = get_table_by_1d6(articleTable)
1384
+ nameParts.push([articleIndex, articleTitle, text, number])
1385
+ end
1386
+
1387
+ setArrayFromD66Table(nameParts, name, describeTitle, describeTable)
1388
+ setArrayFromD66Table(nameParts, name, sceneTitle, sceneTable)
1389
+ setArrayFromD66Table(nameParts, name, materialTitle, materialTable)
1390
+ setArrayFromD66Table(nameParts, name, actionTitle, actionTable)
1391
+ nameParts.sort!
1392
+
1393
+ numberString = ""
1394
+ nameParts.each do |_index, src, text1, number1|
1395
+ name = name.gsub(src, text1)
1396
+ numberString += "#{src}#{number1},"
1397
+ end
1398
+ numberString = numberString[0, numberString.length - 1]
1399
+ return "#{title} > [#{nameNumber},#{numberString}] > #{name}"
1400
+
1401
+ when 'MSE'
1402
+ title = 'マイスキル効果表'
1403
+ table = [
1404
+ "演目を行ったときに使用できる。自分の【メンタル】が15点になる。この効果は、1回のセッションに1度まで使用できる。",
1405
+ "ミラクル・ミラクルシンクロ・パーフェクトミラクルを発生させたときに使用できる。【パフォーマンス値】が10点上昇する。この効果は、1回のセッションに1度まで使用できる。",
1406
+ "ファンブルではない判定の後に使用する。判定の達成値を12にする。この効果は、1回のセッションに1度まで使用できる。",
1407
+ "演目を行ったときに使用できる。自分以外のPC全員の【メンタル】が2D6点上昇する。この効果は、1回のセッションに1度まで使用できる。",
1408
+ "ライブフェイズ開始時に使用する。このフェイズの間、すべての判定の達成値にプラス2の修正がつく。この効果は、1回のセッションに1度まで使用できる。",
1409
+ "パフォーマンスのサイコロを振った後に使用する。サイコロ1つの出目を6にすることができる。この効果は、1回のセッションに1度まで使用できる。",
1410
+ ]
1411
+ return textFrom1D6Table(title, table)
1412
+
1413
+ when 'ST'
1414
+ title = '演出表'
1415
+ table = [
1416
+ "見事なパフォーマンスに、人々が感動する。",
1417
+ "その声に観客が聞き惚れる。",
1418
+ "一糸乱れぬダンスが決まる。",
1419
+ "宙に飛ばしたマイクを見事にキャッチする。",
1420
+ "トランポリンなどを使って、会場の天井近くまでジャンプ。",
1421
+ "観客と一体になって決めポーズ。",
1422
+ ]
1423
+ return textFrom1D6Table(title, table)
1424
+
1425
+ when 'FST'
1426
+ title = 'ファンタジー演出表'
1427
+ table = [
1428
+ "会場を覆っていた暗雲を退散させる。",
1429
+ "会場に花が咲く。",
1430
+ "炎の旋風が観客を燃え上がらせる。",
1431
+ "ハートの風船が会場中を飛び交う。",
1432
+ "羽を生やして会場を飛び回る。",
1433
+ "打ち上がった花火と共に決めポーズ。",
1434
+ ]
1435
+ return textFrom1D6Table(title, table)
1436
+
1437
+ when 'CHO'
1438
+ title = 'サビ表'
1439
+ table = [
1440
+ [11, "冒険だ/アドベンチャー\nこの演目の間、スペシャル値が1点減少。"],
1441
+ [12, "世界中の愛/ラブ\nPC全員の【メンタル】が3点上昇。"],
1442
+ [13, "今届けたい/待ちきれない\nこの演目の【パフォーマンス値】が1点上昇。"],
1443
+ [14, "負けないぜ/勝ちたい\nこの演目のPPが5点減少(最低0)。"],
1444
+ [15, "感謝の言葉/ありがとうと\n変調がすべて回復する。"],
1445
+ [16, "キミとなら/あなたたちが\nこの演目の間、すべての【理解度】が2点高いものとして扱う。"],
1446
+ [22, "仲間となら/仲間の\nPC全員は、自分以外のキャラクターに対する【理解度】が1点上昇。"],
1447
+ [23, "マジで好き/MAX\nPC全員の【メンタル】が1D6点上昇。"],
1448
+ [24, "死にたいぐらいに/闇に落ちて\nこの演目の間、スペシャル値とファンブル値が1点減少。"],
1449
+ [25, "だけど/でも\nこの演目の間、一芸突破の目標値が5点になる。"],
1450
+ [26, "キスよりも/囁くよりも\nこの演目の間、【ビジュアル】が1点上昇する。"],
1451
+ [33, "一緒にいてほしい/ずっと\nアイドルクラスが「ほのぼの」のPC全員は【思い出】を1つ獲得。"],
1452
+ [34, "走る/走れ\nこの演目の間、【フィジカル】が1点上昇する。"],
1453
+ [35, "待ち焦がれる/いつまでも\nこの演目の間、シンフォニーを行ったとき、サイコロ1つの出目を1に変更できる。"],
1454
+ [36, "真夜中の/真昼の\nミラクル・ミラクルシンクロが発生したとき、【パフォーマンス値】にプラス5。"],
1455
+ [44, "笑おうぜ/笑顔で\nアイドルクラスが「コメディ」のPC全員は【獲得ファン人数】が[2D6に【ランク係数】をかけた数]点上昇。"],
1456
+ [45, "パーティだ/お金でも\nPC全員は、アイテムを1つランダムに獲得する。"],
1457
+ [46, "だから/それから\nこの演目の間、一芸突破以外の判定の達成値が1点上昇する。"],
1458
+ [55, "オレだけを見ろ/独占したい\n一芸突破を行っても、【メンタル】が減少しない。"],
1459
+ [56, "オレたちの歌/歌おう\nこの演目の間、【ボイス】が1点上昇する。"],
1460
+ [66, "愛しています/好きだ\nアイドルクラスが「マジメ」のPC全員の【メンタル】が5点上昇。"],
1461
+ ]
1462
+ return textFromD66Table(title, table)
1463
+
1464
+ when 'SCH'
1465
+ title = '情熱の夏サビ表'
1466
+ table = [
1467
+ "夏は\nこの演目の間、PC全員の【パフォーマンス値】が1点上昇。",
1468
+ "熱いぜ!\nこの演目の間、PC全員のスペシャル値が1点減少。",
1469
+ "水着が\nこの演目の間、衣装の効果によって上昇する値にプラス1。",
1470
+ "乾いた喉\nこの演目の間、PC全員のファンブル値が3点上昇。",
1471
+ "潤う\n【メンタル】が5点以下のPC全員の【メンタル】が10点上昇。",
1472
+ "弾けて\nこの演目の間、パーフェクトミラクルの【パフォーマンス値】が15点上昇。",
1473
+ ]
1474
+ return textFrom1D6Table(title, table)
1475
+
1476
+ when 'WCH'
1477
+ title = 'ぬくもりの冬サビ表'
1478
+ table = [
1479
+ "雪のような\nPC全員の【メンタル】が3点上昇。",
1480
+ "チョコレートに\nPC1人の【メンタル】が10点上昇。",
1481
+ "溶かしてあげる\nこの演目の間、PC全員の判定の達成値が1点上昇。",
1482
+ "特別な日\nこの演目の間、PC1人のスペシャル値が3点減少。",
1483
+ "吹雪が\nこの演目の間、ミラクルの【パフォーマンス値】が10点上昇。",
1484
+ "寒さも忘れて\nこの演目の間、PCはファンブルが発生しても、変調が発生しない。",
1485
+ ]
1486
+ return textFrom1D6Table(title, table)
1487
+
1488
+ when 'NCH'
1489
+ title = '大自然サビ表'
1490
+ table = [
1491
+ "野生の\nPC全員の【メンタル】が1D6点上昇。",
1492
+ "パワーで\nこの演目の間、PC1人の【パフォーマンス値】が1D6点上昇。",
1493
+ "鍛えた体\nPC全員の【メンタル】が3点上昇。",
1494
+ "掴みとる\nこの演目の間、PC全員の【パフォーマンス値】が1点上昇。",
1495
+ "抱き留める\nこの演目の間、PC1人の【パフォーマンス値】が3点上昇。",
1496
+ "毎日が戦い\nPC1人の【獲得ファン人数】が[2D6に【ランク係数】をかけた数]点上昇。",
1497
+ ]
1498
+ return textFrom1D6Table(title, table)
1499
+
1500
+ when 'GCH'
1501
+ title = '女性向けサビ表'
1502
+ table = [
1503
+ [11, "女の子だから/キュンキュンしてる\nPC全員の【メンタル】が1D6点上昇する。"],
1504
+ [12, "見つめていたい/心の声\nこの演目の間、【パフォーマンス値】が2点上昇する。"],
1505
+ [13, "私の気持ち/あなたへ届け\nこの演目の間、【協調値】が1点上昇する。"],
1506
+ [14, "繋がりたい/夜を過ごしたい\nPC全員の【メンタル】が1D6点上昇する。"],
1507
+ [15, "手と手を繋いで/みんなと一緒に\nこの演目の間、シンフォニーをするたびに、【メンタル】が5点上昇する。"],
1508
+ [16, "ファッションで/おしゃれして\n衣装の効果が1点上昇する。"],
1509
+ [22, "アイドルだけど/アイドルとして\nこの演目の間、意地判定の達成値が2点上昇する。"],
1510
+ [23, "愛してる/好きです\nこの演目の間、【協調値】が1点上昇する。"],
1511
+ [24, "恋したい/恋してる\nこの演目の間、【協調値】が1点上昇する。"],
1512
+ [25, "LOVE/「大好き」\nこの演目の間、【協調値】が1点上昇する。"],
1513
+ [26, "お母さんには秘密/ヴェールでかくして\nこの演目の間、【メンタル】が減少しない。"],
1514
+ [33, "愛に溺れて/沈んでいく\nこの演目の間、シンフォニーをするたびに、【パフォーマンス値】が2点上昇する。"],
1515
+ [34, "潰してほしい/壊して\nこの演目の間、判定に失敗したPCは【獲得ファン人数】が2D6点上昇する。"],
1516
+ [35, "どんなに遠くに/離れても\nこの演目の間、すべてのギャップは埋まっているものとして扱う。"],
1517
+ [36, "想いを届けて/胸に秘めた鼓動\nPC全員の【メンタル】が1D6点上昇する。"],
1518
+ [44, "私のことが好きなら/一緒に死にたい\nこの演目の間、【メンタル】が0になっても、行動不能にならない。"],
1519
+ [45, "(台詞)/(ピアノソロ)\nPC全員の【メンタル】が1D6点上昇する。"],
1520
+ [46, "せーのっ/いくよー!\nこの演目の間、PCはパフォーマンスのサイコロすべてを一度だけ振り直すことができる。"],
1521
+ [55, "あの日みたいに/あの子のこと忘れて\nこの演目の間、判定に失敗しても、判定のサイコロを一度だけ振り直すことができる。"],
1522
+ [56, "歌を届けよう/声に想いを\nこの演目の間、【パフォーマンス値】が2点上昇する。"],
1523
+ [66, "(ユニット名)/(PCの名前)\n好きな能力値が1点上昇する。"],
1524
+ ]
1525
+ return textFromD66Table(title, table)
1526
+
1527
+ when 'PCH'
1528
+ title = '力強いサビ表'
1529
+ table = [
1530
+ [11, "バトル/戦いに臨む\nこの演目の間、判定の達成値が2点上昇する。"],
1531
+ [12, "宇宙に/銀河が\nこの演目の間、パフォーマンスのサイコロは取り除かれない。"],
1532
+ [13, "空へ/天に向けて\nこの演目の判定に成功したPCは、【メンタル】が10点上昇する。"],
1533
+ [14, "ぶち壊すぜ/むしゃくしゃして\nこの演目の間、一芸突破を行ったときの目標値が4になる。"],
1534
+ [15, "バイクに乗って/ヘリで飛ばして\nPC全員は、アイテム「キャラアイテム」を1個獲得する。"],
1535
+ [16, "アタック/殴りかかる\nこの演目の間、一芸突破を行ったときの判定の達成値が3点上昇する。"],
1536
+ [22, "情熱/熱情\nこの演目の間、スペシャル値が1点減少。"],
1537
+ [23, "走り切るのさ/星の輝き\nこの演目の間、PCの【メンタル】が減少しない。"],
1538
+ [24, "心赴くまま/願いを込めて\nPC全員の【メンタル】が[自分からの【理解度】の合計]点上昇する。"],
1539
+ [25, "高みへ/打ち破る\nこの演目の間、スペシャル値が1点減少。"],
1540
+ [26, "イメージを/覚悟を\nこの演目の間、スペシャル値が1点減少。"],
1541
+ [33, "弱気な自分に/暗闇裂く\nPC全員は、アイテム「ドリーミングシューズ」を1個獲得する。"],
1542
+ [34, "衝動(リビドー)/強敵(ライバル)\nこの演目の間、スペシャル値が1点減少。"],
1543
+ [35, "覚悟を決めて/クライマックス\nこの演目が最終演目の場合、判定の達成値が4点上昇する。"],
1544
+ [36, "最高の力を/最弱脱ぎ捨て\nこの演目の間、スペシャル値が1点減少。"],
1545
+ [44, "自我(エゴ)/瞬間(とき)\nこの演目の間、判定に失敗しても、判定のサイコロを一度だけ振り直すことができる。"],
1546
+ [45, "(台詞)/(ギターソロ)\nこの演目の間、スペシャル値が1点減少。"],
1547
+ [46, "Let's/try\nこの演目の間、判定の達成値が1点上昇する。"],
1548
+ [55, "起死回生/負けたりしない\nPC全員の【メンタル】が1D6点上昇する。"],
1549
+ [56, "共鳴していく/想いを束ねて\nこの演目の間、シンフォニーするたびに、【パフォーマンス値】が2点上昇する。"],
1550
+ [66, "運命(デスティニー)/正義(ジャスティス)\nこの演目の間、スペシャル値が1点減少。"],
1551
+ ]
1552
+ return textFromD66Table(title, table)
1553
+
1554
+ when /^IT(\d+)?$/
1555
+ counts = (Regexp.last_match(1) || 1).to_i
1556
+ return getItem(counts)
1557
+
1558
+ when 'ACT'
1559
+ title = 'アクセサリー種別決定表'
1560
+ table = [
1561
+ "頭アクセサリー表を使用する。",
1562
+ "帽子アクセサリー表を使用する。",
1563
+ "胴アクセサリー表を使用する。",
1564
+ "腕アクセサリー表を使用する。",
1565
+ "足アクセサリー表を使用する。",
1566
+ "その他アクセサリー表を使用する。",
1567
+ ]
1568
+ text = textFrom1D6Table(title, table)
1569
+
1570
+ title = '頭アクセサリー表'
1571
+ if text.include?(title)
1572
+ table = [
1573
+ [11, "アイマスク"],
1574
+ [12, "うさみみ"],
1575
+ [13, "ねこみみ"],
1576
+ [14, "サングラス"],
1577
+ [15, "ピアス"],
1578
+ [16, "シュシュ"],
1579
+ [22, "仮面"],
1580
+ [23, "ティアラ"],
1581
+ [24, "エクステ"],
1582
+ [25, "バンダナ"],
1583
+ [26, "ヘアバンド"],
1584
+ [33, "インカム"],
1585
+ [34, "イヤリング"],
1586
+ [35, "ホワイトプリム"],
1587
+ [36, "ゴーグル"],
1588
+ [44, "つけひげ"],
1589
+ [45, "ヘッドホン"],
1590
+ [46, "耳あて"],
1591
+ [55, "トナカイの角"],
1592
+ [56, "花飾り"],
1593
+ [66, "かんざし"],
1594
+ ]
1595
+ return text + "\n" + textFromD66Table(title, table)
1596
+ end
1597
+
1598
+ title = '帽子アクセサリー表'
1599
+ if text.include?(title)
1600
+ table = [
1601
+ [11, "ヘルメット"],
1602
+ [12, "麦わら帽子"],
1603
+ [13, "サンタ帽子"],
1604
+ [14, "花冠"],
1605
+ [15, "学帽"],
1606
+ [16, "ハンチング帽"],
1607
+ [22, "シルクハット"],
1608
+ [23, "テンガロンハット"],
1609
+ [24, "ナイトキャップ"],
1610
+ [25, "ロシア帽"],
1611
+ [26, "ベレー帽"],
1612
+ [33, "コック帽"],
1613
+ [34, "パーティコーン"],
1614
+ [35, "とんがり帽子"],
1615
+ [36, "キャップ"],
1616
+ [44, "ナースキャップ"],
1617
+ [45, "カンカン帽"],
1618
+ [46, "ハット帽"],
1619
+ [55, "ターバン"],
1620
+ [56, "セーラーキャップ"],
1621
+ [66, "中共帽子"],
1622
+ ]
1623
+ return text + "\n" + textFromD66Table(title, table)
1624
+ end
1625
+
1626
+ title = '胴アクセサリー表'
1627
+ if text.include?(title)
1628
+ table = [
1629
+ [11, "首かけ指輪"],
1630
+ [12, "カウベル"],
1631
+ [13, "ネックレス"],
1632
+ [14, "蝶ネクタイ"],
1633
+ [15, "メガホン"],
1634
+ [16, "ペンダント"],
1635
+ [22, "ブローチ"],
1636
+ [23, "金の首輪"],
1637
+ [24, "チョーカー"],
1638
+ [25, "南京錠"],
1639
+ [26, "タスキ"],
1640
+ [33, "エプロン"],
1641
+ [34, "名札"],
1642
+ [35, "階級章"],
1643
+ [36, "胸当て"],
1644
+ [44, "ベルト"],
1645
+ [45, "ポシェット"],
1646
+ [46, "マフラー"],
1647
+ [55, "首かけカメラ"],
1648
+ [56, "リボン"],
1649
+ [66, "肩パット"],
1650
+ ]
1651
+ return text + "\n" + textFromD66Table(title, table)
1652
+ end
1653
+
1654
+ title = '腕アクセサリー表'
1655
+ if text.include?(title)
1656
+ table = [
1657
+ [11, "動物の手"],
1658
+ [12, "宝石の腕輪"],
1659
+ [13, "動物のマペット"],
1660
+ [14, "グローブ"],
1661
+ [15, "指ぬきグローブ"],
1662
+ [16, "リストバンド"],
1663
+ [22, "鍋掴み"],
1664
+ [23, "手袋"],
1665
+ [24, "長手袋"],
1666
+ [25, "腕章"],
1667
+ [26, "腕時計"],
1668
+ [33, "ドリル"],
1669
+ [34, "楽器"],
1670
+ [35, "マフ"],
1671
+ [36, "カフス"],
1672
+ [44, "ボクシンググローブ"],
1673
+ [45, "シルバーアクセサリー"],
1674
+ [46, "ゴールドアクセサリー"],
1675
+ [55, "ぬいぐるみ"],
1676
+ [56, "ミサンガ"],
1677
+ [66, "手甲"],
1678
+ ]
1679
+ return text + "\n" + textFromD66Table(title, table)
1680
+ end
1681
+
1682
+ title = '足アクセサリー表'
1683
+ if text.include?(title)
1684
+ table = [
1685
+ [11, "革靴"],
1686
+ [12, "ブーツ"],
1687
+ [13, "スポーツシューズ"],
1688
+ [14, "スキー靴"],
1689
+ [15, "アンクル"],
1690
+ [16, "バスケットシューズ"],
1691
+ [22, "スリッパ"],
1692
+ [23, "ミサンガ"],
1693
+ [24, "動物の足"],
1694
+ [25, "作業靴"],
1695
+ [26, "ルーズウォーマー"],
1696
+ [33, "ニーパッド"],
1697
+ [34, "ガーターリング"],
1698
+ [35, "ポーチ"],
1699
+ [36, "ローラースケート"],
1700
+ [44, "へんなタイツ"],
1701
+ [45, "白タイツ"],
1702
+ [46, "網タイツ"],
1703
+ [55, "ガラスの靴"],
1704
+ [56, "グリープ"],
1705
+ [66, "ベル"],
1706
+ ]
1707
+ return text + "\n" + textFromD66Table(title, table)
1708
+ end
1709
+
1710
+ title = 'その他アクセサリー表'
1711
+ if text.include?(title)
1712
+ table = [
1713
+ [11, "ボンボン"],
1714
+ [12, "マント"],
1715
+ [13, "蝶の羽"],
1716
+ [14, "天使の羽"],
1717
+ [15, "悪魔の羽"],
1718
+ [16, "猫のしっぽ"],
1719
+ [22, "トレンチコート"],
1720
+ [23, "ばんそうこう"],
1721
+ [24, "パラソル"],
1722
+ [25, "ステッキ"],
1723
+ [26, "タトゥーシール"],
1724
+ [33, "バーコード"],
1725
+ [34, "バレーボール"],
1726
+ [35, "大きなリボン"],
1727
+ [36, "鎖"],
1728
+ [44, "キャラクターグッズ"],
1729
+ [45, "イメージカラーのネイル"],
1730
+ [46, "メガネ"],
1731
+ [55, "旗"],
1732
+ [56, "ジャケット"],
1733
+ [66, "サスペンダー"],
1734
+ ]
1735
+ return text + "\n" + textFromD66Table(title, table)
1736
+ end
1737
+ return text
1738
+
1739
+ when 'ACB'
1740
+ title = 'アクセサリーブランド決定表'
1741
+ table = [
1742
+ "『チャレンジガールズ』の衣装ブランドからランダムに決定する。",
1743
+ "『チャレンジガールズ』の衣装ブランドからランダムに決定する。",
1744
+ "『ロードトゥプリンス』の衣装ブランドからランダムに決定する。",
1745
+ "『ロードトゥプリンス』の衣装ブランドからランダムに決定する。",
1746
+ "『フォーチュンスターズ』の衣装ブランドからランダムに決定する。",
1747
+ "『フォーチュンスターズ』の衣装ブランドからランダムに決定する。",
1748
+ ]
1749
+ text = textFrom1D6Table(title, table)
1750
+ /『(.+)』/ =~ text
1751
+ bookTitle = Regexp.last_match(1)
1752
+ return text + "\n" + costume('衣装(' + bookTitle + ')', true)
1753
+
1754
+ when 'ACE'
1755
+ title = 'アクセサリー効果表'
1756
+ table = [
1757
+ [11, "好きな能力値が1点高いものとして扱う。"],
1758
+ [12, "【ボイス】が1点高いものとして扱う。"],
1759
+ [13, "【フィジカル】が1点高いものとして扱う。"],
1760
+ [14, "【ビジュアル】が1点高いものとして扱う。"],
1761
+ [15, "このアクセサリーを装備したとき、【メンタル】が5点上昇する。この効果は、1回のセッションに1度まで使用できる。"],
1762
+ [16, "【パフォーマンス値】が2点上昇する。"],
1763
+ [22, "このアクセサリーを装備したとき、「アイドルスキル修得表」を使って、ランダムにアイドルスキルを1つ修得する。リザルトフェイズにそのアイドルスキルは失われる。この効果は、1回のセッションに1度まで使用できる。"],
1764
+ [23, "開幕演目と最終演目で行う判定の達成値が2点上昇する。"],
1765
+ [24, "【協調値】が1点上昇する。"],
1766
+ [25, "アイドルスキルの効果が1点上昇する。"],
1767
+ [26, "意地判定の達成値が3点上昇する。"],
1768
+ [33, "特殊な演目によって上昇する【獲得ファン人数】が3点上昇する。"],
1769
+ [34, "一芸突破を行ったとき、判定の達成値が2点上昇する。"],
1770
+ [35, "このアクセサリーを装備したとき、好きな特技を1つ選ぶ。選んだ特技は、ライブフェイズの間、修得しているものとして扱う。この効果は、1回のセッションに1度まで使用できる。"],
1771
+ [36, "幕間での判定の達成値が2点上昇する。"],
1772
+ [44, "思い出を使用したとき、【メンタル】が3点上昇する。"],
1773
+ [45, "ミラクルが発生したときの【パフォーマンス値】が15点になる。"],
1774
+ [46, "アイドルスキルを使用したときの判定の達成値が2点上昇する。"],
1775
+ [55, "特別な演目を行っても、【メンタル】が減少しない。"],
1776
+ [56, "最終演目での【メンタル】減少が半分(端数切り捨て)になる。"],
1777
+ [66, "スペシャルが発生したとき、【メンタル】が10点上昇する。"],
1778
+ ]
1779
+ return textFromD66Table(title, table)
1780
+
1781
+ when 'DT'
1782
+ return costume('衣装(チャレンジガールズ)')
1783
+
1784
+ when 'RC'
1785
+ return costume('衣装(ロードトゥプリンス)')
1786
+
1787
+ when 'FC'
1788
+ return costume('衣装(フォーチュンスターズ)')
1789
+
1790
+ when 'CBT'
1791
+ title = 'キャラ空白表(チャレンジガールズ)'
1792
+ table = [
1793
+ [11, '変わった言葉遣い'],
1794
+ [12, '口ぐせ'],
1795
+ [13, '動物っぽい'],
1796
+ [14, '和風'],
1797
+ [15, 'お調子者'],
1798
+ [16, '計算高い'],
1799
+ [22, '妹/姉キャラ'],
1800
+ [23, 'ポジティブ!'],
1801
+ [24, 'ネガティブ……'],
1802
+ [25, 'やんちゃ'],
1803
+ [26, '年齢'],
1804
+ [33, 'きぐるみ'],
1805
+ [34, '負けず嫌い'],
1806
+ [35, '努力家'],
1807
+ [36, '語りたがり'],
1808
+ [44, '天然'],
1809
+ [45, '物まね'],
1810
+ [46, '特徴なし'],
1811
+ [55, '直感'],
1812
+ [56, 'ピアノ'],
1813
+ [66, '大切な人'],
1814
+ ]
1815
+ return textFromD66Table(title, table)
1816
+
1817
+ when 'RCB'
1818
+ title = 'キャラ空白表(ロードトゥプリンス)'
1819
+ table = [
1820
+ [11, '悩み多し'],
1821
+ [12, '俺様'],
1822
+ [13, '弟系'],
1823
+ [14, 'がんばり屋'],
1824
+ [15, '物静か'],
1825
+ [16, '不器用'],
1826
+ [22, '二重人格'],
1827
+ [23, 'ラッキーボーイ'],
1828
+ [24, '愛され系'],
1829
+ [25, '小悪魔'],
1830
+ [26, 'のほほん'],
1831
+ [33, '静かな狂気'],
1832
+ [34, '肉体派'],
1833
+ [35, 'ポエマー'],
1834
+ [36, 'おせっかい'],
1835
+ [44, '恋愛好き'],
1836
+ [45, 'おかん'],
1837
+ [46, '批評家'],
1838
+ [55, '孤高'],
1839
+ [56, '兄貴分'],
1840
+ [66, '女嫌い'],
1841
+ ]
1842
+ return textFromD66Table(title, table)
1843
+
1844
+ when 'HBT'
1845
+ title = '趣味空白表(チャレンジガールズ)'
1846
+ table = [
1847
+ [11, '無趣味'],
1848
+ [12, 'ティータイム'],
1849
+ [13, '詩'],
1850
+ [14, '資格修得'],
1851
+ [15, 'イラスト'],
1852
+ [16, 'ぬいぐるみ'],
1853
+ [22, '睡眠'],
1854
+ [23, '長電話'],
1855
+ [24, 'メール'],
1856
+ [25, '昆虫採集'],
1857
+ [26, '編み物'],
1858
+ [33, '食事'],
1859
+ [34, '散歩'],
1860
+ [35, '天体観測'],
1861
+ [36, 'カフェ巡り'],
1862
+ [44, 'お風呂'],
1863
+ [45, '小物コレクション'],
1864
+ [46, 'ガーデニング'],
1865
+ [55, '登山'],
1866
+ [56, '歴史マニア'],
1867
+ [66, '家事'],
1868
+ ]
1869
+ return textFromD66Table(title, table)
1870
+
1871
+ when 'RHB'
1872
+ title = '趣味空白表(ロードトゥプリンス)'
1873
+ table = [
1874
+ [11, '鉄道'],
1875
+ [12, '華道'],
1876
+ [13, '旅行'],
1877
+ [14, '日曜大工'],
1878
+ [15, '習字'],
1879
+ [16, '俳句'],
1880
+ [22, '食べ歩き'],
1881
+ [23, '筋トレ'],
1882
+ [24, '工作'],
1883
+ [25, '資格修得'],
1884
+ [26, '釣り'],
1885
+ [33, '街歩き'],
1886
+ [34, 'ファッション'],
1887
+ [35, '飼育'],
1888
+ [36, 'いたずら'],
1889
+ [44, '街でナンパ'],
1890
+ [45, '読書'],
1891
+ [46, '家事全般'],
1892
+ [55, '昆虫採集'],
1893
+ [56, 'アート'],
1894
+ [66, '睡眠'],
1895
+ ]
1896
+ return textFromD66Table(title, table)
1897
+
1898
+ when 'RU'
1899
+ title = 'マスコット暴走表'
1900
+ table = [
1901
+ "激しいアクションで興味を持った人たちを呼び寄せる。\nPC全員の【獲得ファン人数】が5点上昇する。",
1902
+ "マスコットキャラクターから聞こえてはいけない音が聞こえてきて、次の瞬間には動かなくなってしまった。\nこのセッションの間、マスコットキャラクターが使用できなくなる。",
1903
+ "マスコットキャラクターが行方不明! プロデューサーが代わりに着ぐるみを着たけれども、負担が大きかった。\n変調「怪我」が発生する。",
1904
+ "マスコットキャラクターが不適切な発言をしてしまい、連帯責任で謝罪することになってしまう。\nPC全員の【獲得ファン人数】が、それぞれ5点減少する。",
1905
+ "マスコットキャラクターが転んで起き上がれなくなってしまった! みんなで力を合わせて助け起こそう。\nPC全員の【メンタル】が3点減少する。",
1906
+ "マスコットが突然PCに物申す。問題点を挙げて、鍛えてくれる。\nPC一人は、「アイドルスキル修得表」を使って、アイドルスキルを一つ修得する。",
1907
+ ]
1908
+ return textFrom1D6Table(title, table)
1909
+
1910
+ when /^(\d{2})C$/
1911
+ title = 'バーストタイム'
1912
+ degrees = Regexp.last_match(1).to_i
1913
+ counts = 6
1914
+ if (degrees < 45) || (degrees > 55)
1915
+ return nil
1916
+ elsif degrees <= 49
1917
+ counts = 3
1918
+ elsif degrees <= 52
1919
+ counts = 4
1920
+ elsif degrees <= 54
1921
+ counts = 5
1922
+ end
1923
+
1924
+ dice_list = @randomizer.roll_barabara(counts, 6).sort
1925
+ total = dice_list.sum()
1926
+ dice = dice_list.join(",")
1927
+ total += degrees
1928
+
1929
+ text = "#{title} > #{degrees}+[#{dice}] > #{total} > "
1930
+ if total >= 80
1931
+ text += "Burst!\n「バースト表」を使用する。"
1932
+ elsif total >= 65
1933
+ string = "成功\n【獲得ファン人数】が2D6点上昇する。"
1934
+ if total >= 75
1935
+ string = "大#{string}\nPC全員が挑戦者ではない場合、自分以外のPCを一人指名する。指名されたPCは、新たな挑戦者として、【メンタル】を減少させずに「バーストタイム」を行う。"
1936
+ end
1937
+ text += string
1938
+ else
1939
+ text += '失敗'
1940
+ end
1941
+ return text
1942
+
1943
+ when 'BU'
1944
+ title = 'バースト表'
1945
+ table = [
1946
+ "熱い! 熱い!\n【メンタル】が2点減少する。",
1947
+ "慌てて浴槽から出ようとしたが、足を滑らせて浴槽に落ちる。ウケたはいいが、とても熱い。\n【メンタル】が1D6点減少し、【獲得ファン人数】が3D6点上昇する。",
1948
+ "温かい目で見守っていた仲間の手を力いっぱい引っ張り、浴槽に引きずり込む。\n自分以外のPCを一人選ぶ。選ばれたPCは、【メンタル】を3点減少させ、「バーストタイム」を行う。",
1949
+ "あまりの熱さに浴槽へ入り損ねていたら、仲間の一人に叩き落とされる。\n【メンタル】を2点減少してから、PCを一人選ぶ。選んだPCに対する【理解度】が3点上昇し、チェックを外す。",
1950
+ "思い切って氷を頭から浴びる。クールダウン完了!\n【メンタル】を2点減少させることで、もう一度「バーストタイム」を行うことができる。",
1951
+ "熱湯風呂に入るための着替えに手間取ってしまい、急かされてしまう。結果、満足に着替えができなかった。\nこのライブフェイズの間、衣装の効果が無効化される。",
1952
+ ]
1953
+ return textFrom1D6Table(title, table)
1954
+
1955
+ when /^(\d+)(S?)A([1-6]*)([\+\-]\d+)?$/
1956
+ title = '攻撃'
1957
+ counts = Regexp.last_match(1).to_i
1958
+ return nil if counts <= 0
1959
+
1960
+ sure = !Regexp.last_match(2).empty?
1961
+ remove = Regexp.last_match(3).each_char.map(&:to_i)
1962
+ adjust = Regexp.last_match(4)&.to_i
1963
+ adjust_str = Format.modifier(adjust)
1964
+
1965
+ dice = @randomizer.roll_barabara(counts, 6).sort
1966
+ dice_str = dice.join(",")
1967
+
1968
+ dice -= remove
1969
+
1970
+ text = "#{title} > [#{dice_str}]#{adjust_str} > "
1971
+
1972
+ unless (dice.count == counts) || dice.empty?
1973
+ text += "[#{dice.join(',')}]#{adjust_str} > "
1974
+ end
1975
+
1976
+ if sure || (dice.count == dice.uniq.count)
1977
+ total = adjust.to_i
1978
+ total += dice.sum()
1979
+ total = 0 if total < 0
1980
+ text += "#{total}ダメージ"
1981
+ else
1982
+ text += '失敗'
1983
+ end
1984
+ return text
1985
+ when 'SIP'
1986
+ title = 'かんたんパーソン表'
1987
+ table = [
1988
+ 'テレビ番組に出て、ライブの宣伝をする。',
1989
+ 'ラジオに出演して、ライブの宣伝をする。',
1990
+ '動画を配信して、ライブの宣伝をする。',
1991
+ 'ライブの宣伝のために、街でビラ配りをする。',
1992
+ 'ライブに人を集めるために、派手なパフォーマンスを街中でする。',
1993
+ 'ライブの宣伝のために、あちこちを走り回る。',
1994
+ ]
1995
+ return textFrom1D6Table(title, table)
1996
+
1997
+ when 'BVT'
1998
+ title = '大手芸能プロダクション会場表'
1999
+ table = [
2000
+ '自社内テレビスタジオ',
2001
+ '自社内ライブステージ',
2002
+ '自社番組',
2003
+ 'イベント会場',
2004
+ 'ショッピングセンター',
2005
+ '自社主催フェス',
2006
+ ]
2007
+ return textFrom1D6Table(title, table)
2008
+
2009
+ when 'LVT'
2010
+ title = '弱小芸能プロダクション会場表'
2011
+ table = [
2012
+ '地方のお祭り',
2013
+ 'CDショップ前',
2014
+ '小劇場',
2015
+ '音楽番組',
2016
+ 'ローカルテレビ',
2017
+ '芸能関係社共同開催フェス',
2018
+ ]
2019
+ return textFrom1D6Table(title, table)
2020
+
2021
+ when 'TVT'
2022
+ title = 'ライブシアター会場表'
2023
+ table = [
2024
+ 'ライブシアター',
2025
+ 'ライブシアター',
2026
+ 'ライブシアター',
2027
+ 'ライブシアター',
2028
+ 'ライブシアター',
2029
+ 'ライブシアター',
2030
+ ]
2031
+ return textFrom1D6Table(title, table)
2032
+
2033
+ when 'CVT'
2034
+ title = 'アイドル部会場表'
2035
+ table = [
2036
+ '運動場',
2037
+ '体育館',
2038
+ '屋上',
2039
+ '街中',
2040
+ '地元のイベント',
2041
+ '学園アイドル大会',
2042
+ ]
2043
+ return textFrom1D6Table(title, table)
2044
+
2045
+ when 'BST'
2046
+ title = '大手芸能プロダクション場所表'
2047
+ table = [
2048
+ '社内プロジェクトルーム',
2049
+ '社内カフェ',
2050
+ '社内プール',
2051
+ '社内レッスンルーム',
2052
+ 'ショッピングセンター',
2053
+ '社内エステルーム',
2054
+ ]
2055
+ return textFrom1D6Table(title, table)
2056
+
2057
+ when 'LST'
2058
+ title = '弱小芸能プロダクション場所表'
2059
+ table = [
2060
+ '給湯室',
2061
+ '客間',
2062
+ '居間',
2063
+ '屋上',
2064
+ '社長室',
2065
+ '近所の公演',
2066
+ ]
2067
+ return textFrom1D6Table(title, table)
2068
+
2069
+ when 'TST'
2070
+ title = 'ライブシアター場所表'
2071
+ table = [
2072
+ '私たちの舞台',
2073
+ '控室',
2074
+ '売店',
2075
+ 'シアター前',
2076
+ 'レッスンルーム',
2077
+ '舞台袖',
2078
+ ]
2079
+ return textFrom1D6Table(title, table)
2080
+
2081
+ when 'CST'
2082
+ title = 'アイドル部場所表'
2083
+ table = [
2084
+ '部室',
2085
+ '音楽室',
2086
+ '教室',
2087
+ '屋上',
2088
+ '運動場',
2089
+ '体育館',
2090
+ ]
2091
+ return textFrom1D6Table(title, table)
2092
+
2093
+ when 'BPT'
2094
+ title = '大手芸能プロダクションプレッシャー種別決定表'
2095
+ table = [
2096
+ '先輩アイドルたちの期待',
2097
+ '後輩アイドルたちからの憧れ',
2098
+ '社長の視察',
2099
+ '同期アイドルたちとの競い合い',
2100
+ '大物ゲスト登場',
2101
+ 'TV番組のプロデューサー',
2102
+ ]
2103
+ return textFrom1D6Table(title, table)
2104
+
2105
+ when 'LPT'
2106
+ title = '弱小芸能プロダクションプレッシャー種別決定表'
2107
+ table = [
2108
+ '熱心にライブに来てくれるファン',
2109
+ 'とても悪い条件でのステージ',
2110
+ '大手プロダクションの視察',
2111
+ 'ドレスデザイナーの品定め',
2112
+ '新曲を提供したミュージシャン',
2113
+ '取材に来た芸能記者',
2114
+ ]
2115
+ return textFrom1D6Table(title, table)
2116
+
2117
+ when 'TPT'
2118
+ title = 'ライブシアタープレッシャー種別決定表'
2119
+ table = [
2120
+ 'ライブシアターに毎日来てくれるファン',
2121
+ 'ライブシアターで働くスタッフ',
2122
+ 'シアター経営者の視察',
2123
+ 'シアターに偶然立ち寄った大勢の観客',
2124
+ '並行して行われるイベントのファン',
2125
+ 'ライバルライブシアターのアイドルユニット',
2126
+ ]
2127
+ return textFrom1D6Table(title, table)
2128
+
2129
+ when 'CPT'
2130
+ title = 'アイドル部プレッシャー種別決定表'
2131
+ table = [
2132
+ 'ライバルチーム「海原校」の挑戦',
2133
+ "最強チーム「Tiara's」の偵察",
2134
+ 'PTAの視察',
2135
+ 'PCの親',
2136
+ '仲の良い同級生',
2137
+ 'ライバルチーム「聖国際女学園」の挑戦',
2138
+ ]
2139
+ return textFrom1D6Table(title, table)
2140
+
2141
+ when 'BIT'
2142
+ title = '大手芸能プロダクション道具表'
2143
+ table = [
2144
+ '栄養ドリンク',
2145
+ '自動販売機',
2146
+ '先輩アイドルのポスター',
2147
+ '先輩アイドルのCD',
2148
+ 'アイドル雑誌',
2149
+ '台本',
2150
+ ]
2151
+ return textFrom1D6Table(title, table)
2152
+
2153
+ when 'LIT'
2154
+ title = '弱小芸能プロダクション道具表'
2155
+ table = [
2156
+ 'セロハンテープ',
2157
+ '冷蔵庫',
2158
+ '百円玉',
2159
+ 'ボロボロのソファー',
2160
+ 'おにぎり',
2161
+ 'キッチン',
2162
+ ]
2163
+ return textFrom1D6Table(title, table)
2164
+
2165
+ when 'TIT'
2166
+ title = 'ライブシアター道具表'
2167
+ table = [
2168
+ '舞台の照明',
2169
+ '企画書',
2170
+ 'PCのグッズ',
2171
+ 'ホワイトボード',
2172
+ 'ライブポスター',
2173
+ 'うどん',
2174
+ ]
2175
+ return textFrom1D6Table(title, table)
2176
+
2177
+ when 'CIT'
2178
+ title = 'アイドル部道具表'
2179
+ table = [
2180
+ 'パソコン',
2181
+ '机',
2182
+ '鞄',
2183
+ 'ハンディカメラ',
2184
+ 'ジャージ',
2185
+ '投票箱',
2186
+ ]
2187
+ return textFrom1D6Table(title, table)
2188
+ end
2189
+
2190
+ return nil
2191
+ end
2192
+
2193
+ def rollPerformance(counts, residual, adjust)
2194
+ title = 'パフォーマンス'
2195
+
2196
+ string = ''
2197
+ string += '+' if adjust > 0
2198
+ string += adjust.to_s unless adjust == 0
2199
+
2200
+ dice_list = @randomizer.roll_barabara(counts, 6).sort
2201
+ dice_str = dice_list.join(",")
2202
+ diceAll = dice_list.join("") + residual
2203
+
2204
+ total = 0
2205
+ diceUse = []
2206
+ (1..7).each do |i|
2207
+ if diceAll.count(i.to_s) == 1
2208
+ total += i
2209
+ diceUse.push(i)
2210
+ end
2211
+ end
2212
+
2213
+ text = " > [#{dice_str}]"
2214
+
2215
+ if residual.empty?
2216
+ text = "#{title}#{text}"
2217
+ else
2218
+ text = "シンフォニー#{text}"
2219
+ end
2220
+
2221
+ unless residual.empty?
2222
+ text += ',[' + residual.split("").sort.join(",") + ']'
2223
+ end
2224
+
2225
+ text += "#{string} > "
2226
+
2227
+ if total == 0
2228
+ if residual.empty?
2229
+ total = 10 + adjust
2230
+ text += "【ミラクル】#{total}"
2231
+ else
2232
+ total = 15 + adjust
2233
+ text += "【ミラクルシンクロ】#{total}+シンフォニーを行った人数"
2234
+ end
2235
+ elsif (total == 21) && !diceUse.include?(7)
2236
+ unless residual.empty?
2237
+ text += '[' + diceUse.join(',') + "]#{string} > "
2238
+ end
2239
+ total = 30 + adjust
2240
+ text += "【パーフェクトミラクル】#{total}"
2241
+ else
2242
+ unless residual.empty? && (diceUse.count == diceAll.length)
2243
+ text += '[' + diceUse.join(',') + "]#{string} > "
2244
+ end
2245
+ total += adjust
2246
+ text += total.to_s
2247
+ end
2248
+
2249
+ return text
2250
+ end
2251
+
2252
+ def textFromD66Table(title, table, chance = '')
2253
+ dice = @randomizer.roll_d66(D66SortType::ASC)
2254
+ number, text, skill = table.assoc(dice)
2255
+
2256
+ text, skill = checkChance(text, skill, chance)
2257
+ return "#{title} > [#{number}] > " + replaceBadStatus(text) + getSkillText(skill)
2258
+ end
2259
+
2260
+ def checkChance(text, skill, chance)
2261
+ return text, skill if chance.empty?
2262
+ return text, skill unless text =~ /チャンスが(\d{1,2})以下ならオフ。/
2263
+
2264
+ target = Regexp.last_match(1).to_i
2265
+ matchedText = $&
2266
+
2267
+ if target >= chance.to_i
2268
+ text = "オフ"
2269
+ skill = ''
2270
+ else
2271
+ text = text.gsub(matchedText, '')
2272
+ text = text.chomp
2273
+ end
2274
+
2275
+ return text, skill
2276
+ end
2277
+
2278
+ def textFrom1D6Table(title, table1, table2 = nil)
2279
+ text1, number1 = get_table_by_1d6(table1)
2280
+
2281
+ text = "#{title} > "
2282
+ if table2.nil?
2283
+ text += "[#{number1}] > #{text1}"
2284
+ else
2285
+ text2, number2 = get_table_by_1d6(table2)
2286
+ text += "[#{number1},#{number2}] > #{text1}#{text2}"
2287
+ end
2288
+
2289
+ if /ランダムに決定した特技が指定特技のアイドルスキル\(身長分野、(属性|才能)分野、出身分野が出たら振り直し\)$/ =~ text
2290
+ category = Regexp.last_match(1)
2291
+ loop do
2292
+ skill = getSkillList()
2293
+ text += "\n#{skill}"
2294
+ break unless skill.include?("身長") || skill.include?(category) || skill.include?("出身")
2295
+
2296
+ text += " > 振り直し"
2297
+ end
2298
+ end
2299
+
2300
+ return replaceBadStatus(text)
2301
+ end
2302
+
2303
+ def getSkillList(field = 0)
2304
+ title = '特技リスト'
2305
+ table = [
2306
+ ['身長', ['~125', '131', '136', '141', '146', '156', '166', '171', '176', '180', '190~']],
2307
+ ['属性', ['エスニック', 'ダーク', 'セクシー', 'フェミニン', 'キュート', 'プレーン', 'パッション', 'ポップ', 'バーニング', 'クール', 'スター']],
2308
+ ['才能', ['異国文化', 'スタイル', '集中力', '胆力', '体力', '笑顔', '運動神経', '気配り', '学力', 'セレブ', '演技力']],
2309
+ ['キャラ', ['中二病', 'ミステリアス', 'マイペース', '軟派', '語尾', 'キャラ分野の空白', '元気', '硬派', '物腰丁寧', 'どじ', 'ばか']],
2310
+ ['趣味', ['オカルト', 'ペット', 'スポーツ', 'おしゃれ', '料理', '趣味分野の空白', 'ショッピング', 'ダンス', 'ゲーム', '音楽', 'アイドル']],
2311
+ ['出身', ['沖縄', '九州地方', '四国地方', '中国地方', '近畿地方', '中部地方', '関東地方', '北陸地方', '東北地方', '北海道', '海外']],
2312
+ ]
2313
+
2314
+ number1 = 0
2315
+ if field == 0
2316
+ table, number1 = get_table_by_1d6(table)
2317
+ else
2318
+ table = table[field - 1]
2319
+ end
2320
+
2321
+ fieldName, table = table
2322
+ skill, number2 = get_table_by_2d6(table)
2323
+
2324
+ text = title
2325
+ if field == 0
2326
+ text += " > [#{number1},#{number2}]"
2327
+ else
2328
+ text += "(#{fieldName}分野) > [#{number2}]"
2329
+ end
2330
+
2331
+ return "#{text} > 《#{skill}/#{fieldName}#{number2}》"
2332
+ end
2333
+
2334
+ def badStatus(counts = 1)
2335
+ title = '変調'
2336
+ table = [
2337
+ "「不穏な空気」 PCの【メンタル】が減少するとき、減少する数値が1点上昇する",
2338
+ "「微妙な距離感」 【理解度】が上昇しなくなる",
2339
+ "「ガラスの心」 PCのファンブル値が1点上昇する",
2340
+ "「怪我」 幕間のとき、プロデューサーは「回想」しか行えない",
2341
+ "「信じきれない」 PC全員の【理解度】を1点低いものとして扱う",
2342
+ "「すれ違い」 PCはアイテムの使用と、リザルトフェイズに「おねがい」をすることができなくなる",
2343
+ ]
2344
+
2345
+ return '' if counts <= 0
2346
+
2347
+ dice_list = @randomizer.roll_barabara(counts, 6).sort
2348
+ dice_str = dice_list.join(",")
2349
+ numbers = dice_list.uniq
2350
+
2351
+ text = "#{title} > [#{dice_str}] > "
2352
+ occurrences = numbers.count
2353
+
2354
+ if occurrences > 1
2355
+ text += "以下の#{occurrences}つが発生する。\n"
2356
+ end
2357
+
2358
+ occurrences.times do |i|
2359
+ text += table[numbers[i] - 1] + "\n"
2360
+ end
2361
+
2362
+ return text[0, text.length - 1]
2363
+ end
2364
+
2365
+ def getSkillText(skill)
2366
+ return '' if skill.nil? || skill.empty?
2367
+
2368
+ text = skill
2369
+ if /^AT([1-6]?)$/ =~ text
2370
+ text = getSkillList(Regexp.last_match(1).to_i)
2371
+ else
2372
+ text = "特技 : #{text}"
2373
+ end
2374
+
2375
+ return "\n#{text}"
2376
+ end
2377
+
2378
+ def setArrayFromD66Table(array, name, src, table)
2379
+ index = name.index(src)
2380
+ return if index.nil?
2381
+
2382
+ dice = @randomizer.roll_d66(D66SortType::ASC)
2383
+ number, text, = table.assoc(dice)
2384
+ array.push([index, src, text, number])
2385
+ end
2386
+
2387
+ def getItem(counts = 1)
2388
+ title = 'アイテム'
2389
+ table = [
2390
+ "スタミナドリンク",
2391
+ "トレーニングウェア",
2392
+ "ドリーミングシューズ",
2393
+ "キャラアイテム",
2394
+ "お菓子",
2395
+ "差し入れ",
2396
+ ]
2397
+
2398
+ return '' if counts <= 0
2399
+
2400
+ numbers = @randomizer.roll_barabara(counts, 6).sort
2401
+ unique = numbers.uniq
2402
+
2403
+ text = "#{title} > [#{numbers.join(',')}] > "
2404
+ acquisitions = numbers.count
2405
+ kinds = unique.count
2406
+
2407
+ kinds.times do |i|
2408
+ string = table[unique[i].to_i - 1]
2409
+ unless kinds == 1
2410
+ string = "「#{string}」"
2411
+ end
2412
+
2413
+ text += string
2414
+ unless acquisitions == kinds
2415
+ text += numbers.count(unique[i]).to_s + 'つ'
2416
+ end
2417
+ text += 'と'
2418
+ end
2419
+
2420
+ text = text.sub(/と$/, '')
2421
+
2422
+ return text
2423
+ end
2424
+
2425
+ def replaceBadStatus(text)
2426
+ return text unless /変調がランダムに(一|二|三)つ発生する。/ =~ text
2427
+
2428
+ counts = 1
2429
+ case Regexp.last_match(1)
2430
+ when '二'
2431
+ counts = 2
2432
+ when '三'
2433
+ counts = 3
2434
+ end
2435
+
2436
+ substitution = text.clone
2437
+ substitution = substitution.gsub($&, '')
2438
+ substitution += "\n" unless substitution.empty? || /\n$/ =~ substitution
2439
+
2440
+ return substitution + badStatus(counts)
2441
+ end
2442
+
2443
+ def costume(title, brandOnly = false)
2444
+ table = []
2445
+ if title.include?('チャレンジガールズ')
2446
+ table = [
2447
+ [11, "12&88\n自分の【パフォーマンス値】が決定したとき、その値を2点上昇する。"],
2448
+ [12, "Glow Up Princess\nパフォーマンスを行うとき、サイコロを追加で1つ振れる。"],
2449
+ [13, "しずく\nライブフェイズ開始時に、【メンタル】が5点上昇する。"],
2450
+ [14, "Pop☆Sweet\n自分の【メンタル】が上昇するとき、さらに1点上昇する。"],
2451
+ [15, "Ttype\n一芸突破をしても【メンタル】が減少しない。また、一芸突破をした時、達成値が1点上昇する。"],
2452
+ [16, "Vampire Story\nパフォーマンスの【パフォーマンス値】が10以上の場合、自分の【メンタル】が3点上昇する。"],
2453
+ [22, "Pure Mermaid\n【ビジュアル】の演目は、指定特技を《スタイル》に変更できる。指定特技が《スタイル》の演目では、【パフォーマンス値】が2点上昇する。"],
2454
+ [23, "I'm cute\nライブフェイズ開始時に【メンタル】が1点上昇する。幕間の開始時に能力値を1つ選ぶ。選ばれた能力値は、このライブフェイズの間、1点上昇する。"],
2455
+ [24, "No.1 Girl\n【パフォーマンス値】が決定するとき、【メンタル】を1点減少することで、【パフォーマンス値】が3点上昇する。"],
2456
+ [25, "Final Romance\n【ビジュアル】のパフォーマンスを行うとき、キャラクターを1人選ぶ。選んだキャラクターの自分に対する【理解度】と同じだけ、【パフォーマンス値】が上昇する。"],
2457
+ [26, "Prism Line\nパフォーマンス1回につき、1度だけパフォーマンスに使用したサイコロ1つを振り直すことができる。"],
2458
+ [33, "さーばんとさーびす\nシンフォニーを行うたびに、そのパフォーマンスの【パフォーマンス値】が3点上昇する。"],
2459
+ [34, "Travel Bag\n幕間に自分の【理解度】チェック1つを外すことができる。"],
2460
+ [35, "JewelC\n開幕演目と幕間にアイテムを1つ選んで獲得する。"],
2461
+ [36, "Sweet Girl\nパフォーマンスを行ったPCは、【メンタル】を2点上昇する。"],
2462
+ [44, "Satisfaction West\nミラクル、ミラクルシンクロ、パーフェクトミラクルが発生したとき【パフォーマンス値】を5点上昇する。"],
2463
+ [45, "Under Big Ben\n使用能力が【ボイス】のパフォーマンスの【パフォーマンス値】が10以上の場合、自分に対する【理解度】チェック1つを外すことができる。"],
2464
+ [46, "PIERO\n一芸突破の達成値が2点上昇する。"],
2465
+ [55, "甘々娘々\n使用能力が【ビジュアル】のパフォーマンスを行うとき、【パフォーマンス値】が3点上昇する。"],
2466
+ [56, "花鳥風月\nシンフォニーを行うとき、振るサイコロの数を1つ増やす、もしくは1つ減らすことができる。"],
2467
+ [66, "Jingle Bells\nリザルトフェイズに以下の効果が発生する。リザルトフェイズに、【獲得ファン人数】が1D6点上昇する。また、PC全員は、条件を満たしていなくても「お願い」をすることができる。"],
2468
+ ]
2469
+ elsif title.include?('ロードトゥプリンス')
2470
+ table = [
2471
+ [11, "Angel kiss\nパフォーマンスを行うとき、1の目が出たサイコロは取り除かれない。シンフォニーを行ったとき、1の目が出たサイコロをすべて取り除く。"],
2472
+ [12, "Pirate ship\n指定特技が属性分野の演目を行うとき、その指定特技を《セクシー/属性4》に変更することができる。"],
2473
+ [13, "ロードトゥプリンス\nミラクル、ミラクルシンクロ、パーフェクトミラクルが発生したとき、そのキャラクターは【メンタル】が10点上昇する。"],
2474
+ [14, "Princess Guardian\n自分以外のキャラクターの【メンタル】が0点になったときに、《気配り/才能9》で判定を行うことができる。この判定には、個性特技は使用できない。成功すると、そのキャラクターは、【獲得ファン人数】が半分にならない。"],
2475
+ [15, "Starlight TourS\nライブフェイズの間、演目を1つ選んで、指定特技を《スター/属性12》に変更できる。"],
2476
+ [16, "花鳥風月・裏\nライブフェイズ中、一度だけ場に残っているすべてのサイコロの目を反転(1なら6に、2なら5に、3なら4に)することができる。"],
2477
+ [22, "しくらま\n判定に使用したサイコロの目が7の場合、【メンタル】が7点上昇する。"],
2478
+ [23, "Chime\nミラクル、ミラクルシンクロ、パーフェクトミラクルが発生したとき、そのキャラクターはランダムにアイテムを1つ獲得する。"],
2479
+ [24, "砂上の光\nシンフォニーを行ったとき、シンフォニーを受けたキャラクターの【メンタル】が5点上昇する。"],
2480
+ [25, "Air by me\n幕間の開始時に、【メンタル】が5点上昇する。"],
2481
+ [26, "戦国ストリート\n演目の使用能力が【フィジカル】のとき、【パフォーマンス値】が2点上昇する。また、指定特技が《ダンス/趣味9》の場合、【パフォーマンス値】が2点上昇する。"],
2482
+ [33, "Wild man\n一芸突破の達成値が2点上昇する。ただし、スペシャルは発生しなくなる。"],
2483
+ [34, "Gray Stand\n【獲得ファン人数】が減少したとき、減少した値の半分(端数切り捨て)と同じ値だけ、【獲得ファン人数】が上昇する。"],
2484
+ [35, "トイ ARM\n演目の開始時に、2D6を振る。その結果が11以上の場合、この演目では【メンタル】が減少しない。"],
2485
+ [36, "white plan\nファンブルが発生しても変調を受けない。"],
2486
+ [44, "SINOBI\n開幕演目を行うとき、出ないことを選択することができる。"],
2487
+ [45, "V-X\nミラクルが発生したときの【パフォーマンス値】を15にできる。"],
2488
+ [46, "ドラゴンナックル\n幕間より後、PCが行うパフォーマンスの【パフォーマンス値】が4点上昇する。"],
2489
+ [55, "Halloween Magic\n後半PPによって【メンタル】が減少するとき、その値を4点減少する(最低0)。"],
2490
+ [56, "Satisfaction East\n【獲得ファン人数】が減少したとき、【メンタル】を20点にすることができる。"],
2491
+ [66, "Devil kiss\nパフォーマンスを行うとき、6の目が出たサイコロは取り除かれない。シンフォニーを行ったとき、6の目が出たサイコロをすべて取り除く。"],
2492
+ ]
2493
+ elsif title.include?('フォーチュンスターズ')
2494
+ table = [
2495
+ [11, "常峰製作所\n第一演目では、【メンタル】が減少しない。"],
2496
+ [12, "フォーチュンスター\n最終演目の【パフォーマンス値】が「【メンタル】÷2(端数切り捨て)」点上昇する。"],
2497
+ [13, "ファイタースケイル\n【メンタル】が5点以下の場合、【パフォーマンス値】が1D6点上昇する。"],
2498
+ [14, "Blood Scissors\n自分以外のキャラクター一人の【メンタル】を5点減少するか、プロデューサーに変調「怪我」を与えることで、自分の【メンタル】が5点上昇する。この効果は、プロデューサーが既に「怪我」の変調を受けていると、使用できない。"],
2499
+ [15, "蒸気式演技服\n判定を行うとき、【メンタル】を1点消費することで、判定の達成値が1点上昇する。"],
2500
+ [16, "ウェイトスター\n「スタミナドリンク」によって、他のキャラクターの【メンタル】を上昇する場合、さらに4点上昇する。"],
2501
+ [22, "Little Stage\n判定のサイコロやパフォーマンスで「1」の出目が1つ以上出た場合、【思い出】を1つ獲得する。"],
2502
+ [23, "Check It\n開幕演目前に、最終演目以外の好きな演目を指定する。指定された演目では、自分の【メンタル】が減少しない。"],
2503
+ [24, "12 Sword\nアイドル戦闘ルールを使用しているとき、与えるダメージが3点上昇し、上昇する【獲得ファン人数】が5点上昇する。"],
2504
+ [25, "Magi Magic\nパフォーマンスや自分が行うシンフォニーでサイコロを取り除くたびに、【メンタル】が2点上昇する。"],
2505
+ [26, "Jokers\n最終演目に行う一芸突破の目標値が3点減少する。"],
2506
+ [33, "Papillon Club\n自分以外のキャラクターがタイプが「補助」のアイドルスキルを使用するたびに、【メンタル】が3点上昇する。"],
2507
+ [34, "ネイキッドチャレンジ\n開幕演目開始時に、【メンタル】が5点減少する。このライブフェイズの間、好きな能力値が3点上昇する。"],
2508
+ [35, "Cold Vivit\n好きなギャップを1つ埋める。このギャップは、ライブフェイズ終了時に元に戻る。"],
2509
+ [36, "対魔絶伏\n特別な演目では、【メンタル】が減少しない。"],
2510
+ [44, "Rescue Power\n演目の判定でファンブルが発生した場合、好きな能力値でパフォーマンスを行うことができる。"],
2511
+ [45, "アニマルエンジン\n幕間の終了時に、好きな動物からの【理解度】が2点上昇する。"],
2512
+ [46, "ふわふわキッチン\n好きなときに、「お菓子」を一つ消費することで、好きなキャラクターの【メンタル】が1D6点上昇できる。また、幕間に「お菓子」を1つ獲得する。"],
2513
+ [55, "Night Talk\n幕間で「信用」を行ったとき、上昇する【メンタル】が10点になる。"],
2514
+ [56, "ティーチングタイム\n自分以外のキャラクターを1人指定する。このライブフェイズの間、指定されたPCの能力値が1点上昇する。"],
2515
+ [66, "See Diver\n演目名に「海」「水」「泡」「湖」「風呂」を含む演目を行った場合、【獲得ファン人数】が1D6点上昇する。"],
2516
+ ]
2517
+ else
2518
+ return nil
2519
+ end
2520
+
2521
+ text = textFromD66Table(title, table)
2522
+ text = text.split("\n").first if brandOnly
2523
+ return text
2524
+ end
2525
+ end
2526
+ end
2527
+ end