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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -1
  3. data/.rubocop.yml +12 -0
  4. data/.rubocop_todo.yml +1 -0
  5. data/CHANGELOG.md +34 -0
  6. data/Gemfile +6 -3
  7. data/Rakefile +52 -18
  8. data/bcdice.gemspec +2 -0
  9. data/i18n/Amadeus/ja_jp.yml +386 -0
  10. data/i18n/Amadeus/ko_kr.yml +148 -0
  11. data/i18n/Cthulhu/ja_jp.yml +11 -0
  12. data/i18n/Cthulhu/ko_kr.yml +11 -0
  13. data/i18n/Cthulhu/zh_hant.yml +11 -0
  14. data/i18n/DetatokoSaga/ja_jp.yml +74 -0
  15. data/i18n/DetatokoSaga/ko_kr.yml +74 -0
  16. data/i18n/DoubleCross/ja_jp.yml +53 -0
  17. data/i18n/DoubleCross/ko_kr.yml +53 -0
  18. data/i18n/Dracurouge/ja_jp.yml +1374 -0
  19. data/i18n/Dracurouge/ko_kr.yml +295 -0
  20. data/i18n/Fiasco/ja_jp.yml +10 -0
  21. data/i18n/Fiasco/ko_kr.yml +10 -0
  22. data/i18n/FutariSousa/ja_jp.yml +720 -0
  23. data/i18n/FutariSousa/ko_kr.yml +746 -0
  24. data/i18n/Insane/ja_jp.yml +454 -0
  25. data/i18n/Insane/ko_kr.yml +502 -0
  26. data/i18n/Kamigakari/ja_jp.yml +276 -0
  27. data/i18n/Kamigakari/ko_kr.yml +204 -0
  28. data/i18n/KillDeathBusiness/ja_jp.yml +1092 -0
  29. data/i18n/KillDeathBusiness/ko_kr.yml +1062 -0
  30. data/i18n/LogHorizon/ja_jp.yml +3082 -0
  31. data/i18n/LogHorizon/ko_kr.yml +923 -0
  32. data/i18n/MagicaLogia/ja_jp.yml +564 -0
  33. data/i18n/MonotoneMuseum/ja_jp.yml +525 -0
  34. data/i18n/MonotoneMuseum/ko_kr.yml +89 -0
  35. data/i18n/Nechronica/ja_jp.yml +57 -0
  36. data/i18n/Nechronica/ko_kr.yml +14 -0
  37. data/i18n/StratoShout/ja_jp.yml +160 -0
  38. data/i18n/StratoShout/ko_kr.yml +160 -0
  39. data/i18n/ja_jp.yml +5 -0
  40. data/i18n/ko_kr.yml +7 -0
  41. data/i18n/zh_hant.yml +3 -0
  42. data/lib/bcdice/arithmetic/node.rb +154 -0
  43. data/lib/bcdice/base.rb +87 -101
  44. data/lib/bcdice/common_command.rb +2 -0
  45. data/lib/bcdice/common_command/add_dice.rb +5 -41
  46. data/lib/bcdice/common_command/add_dice/node.rb +92 -16
  47. data/lib/bcdice/common_command/add_dice/parser.rb +374 -274
  48. data/lib/bcdice/common_command/add_dice/parser.y +153 -0
  49. data/lib/bcdice/common_command/add_dice/randomizer.rb +25 -33
  50. data/lib/bcdice/common_command/barabara_dice.rb +6 -47
  51. data/lib/bcdice/common_command/barabara_dice/node.rb +84 -0
  52. data/lib/bcdice/common_command/barabara_dice/parser.rb +336 -0
  53. data/lib/bcdice/common_command/barabara_dice/parser.y +107 -0
  54. data/lib/bcdice/common_command/calc.rb +7 -30
  55. data/lib/bcdice/common_command/calc/node.rb +30 -0
  56. data/lib/bcdice/common_command/calc/parser.rb +271 -0
  57. data/lib/bcdice/common_command/calc/parser.y +79 -0
  58. data/lib/bcdice/common_command/choice.rb +137 -19
  59. data/lib/bcdice/common_command/d66_dice.rb +48 -34
  60. data/lib/bcdice/common_command/lexer.rb +46 -0
  61. data/lib/bcdice/common_command/repeat.rb +102 -0
  62. data/lib/bcdice/common_command/reroll_dice.rb +8 -158
  63. data/lib/bcdice/common_command/reroll_dice/node.rb +198 -0
  64. data/lib/bcdice/common_command/reroll_dice/parser.rb +421 -0
  65. data/lib/bcdice/common_command/reroll_dice/parser.y +158 -0
  66. data/lib/bcdice/common_command/upper_dice.rb +10 -129
  67. data/lib/bcdice/common_command/upper_dice/node.rb +181 -0
  68. data/lib/bcdice/common_command/upper_dice/parser.rb +412 -0
  69. data/lib/bcdice/common_command/upper_dice/parser.y +143 -0
  70. data/lib/bcdice/common_command/version.rb +9 -17
  71. data/lib/bcdice/deprecated/checker.rb +78 -0
  72. data/lib/bcdice/dice_table/d66_grid_table.rb +8 -0
  73. data/lib/bcdice/dice_table/d66_table.rb +10 -0
  74. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +75 -17
  75. data/lib/bcdice/dice_table/sai_fic_skill_table/category.rb +25 -0
  76. data/lib/bcdice/dice_table/sai_fic_skill_table/skill.rb +23 -0
  77. data/lib/bcdice/dice_table/table.rb +8 -0
  78. data/lib/bcdice/game_system.rb +7 -1
  79. data/lib/bcdice/game_system/AFF2e.rb +1 -1
  80. data/lib/bcdice/game_system/AceKillerGene.rb +2 -2
  81. data/lib/bcdice/game_system/Airgetlamh.rb +3 -3
  82. data/lib/bcdice/game_system/Alsetto.rb +1 -1
  83. data/lib/bcdice/game_system/Alshard.rb +1 -1
  84. data/lib/bcdice/game_system/AlterRaise.rb +2 -2
  85. data/lib/bcdice/game_system/Amadeus.rb +46 -507
  86. data/lib/bcdice/game_system/Amadeus_Korean.rb +12 -456
  87. data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
  88. data/lib/bcdice/game_system/Arianrhod.rb +0 -1
  89. data/lib/bcdice/game_system/ArsMagica.rb +1 -1
  90. data/lib/bcdice/game_system/Avandner.rb +1 -1
  91. data/lib/bcdice/game_system/BBN.rb +1 -1
  92. data/lib/bcdice/game_system/BadLife.rb +1 -1
  93. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  94. data/lib/bcdice/game_system/BeastBindTrinity.rb +1 -2
  95. data/lib/bcdice/game_system/BeginningIdol.rb +2 -3
  96. data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2 -3
  97. data/lib/bcdice/game_system/BladeOfArcana.rb +2 -2
  98. data/lib/bcdice/game_system/BlindMythos.rb +1 -1
  99. data/lib/bcdice/game_system/BloodCrusade.rb +0 -1
  100. data/lib/bcdice/game_system/BloodMoon.rb +0 -1
  101. data/lib/bcdice/game_system/CardRanker.rb +1 -2
  102. data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
  103. data/lib/bcdice/game_system/Chill.rb +1 -1
  104. data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
  105. data/lib/bcdice/game_system/ColossalHunter.rb +1 -2
  106. data/lib/bcdice/game_system/Comes.rb +50 -0
  107. data/lib/bcdice/game_system/CrashWorld.rb +1 -1
  108. data/lib/bcdice/game_system/Cthulhu.rb +94 -97
  109. data/lib/bcdice/game_system/Cthulhu7th.rb +108 -67
  110. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
  111. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
  112. data/lib/bcdice/game_system/CthulhuTech.rb +8 -14
  113. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +7 -190
  114. data/lib/bcdice/game_system/Cthulhu_Korean.rb +5 -186
  115. data/lib/bcdice/game_system/DarkBlaze.rb +9 -5
  116. data/lib/bcdice/game_system/DarkDaysDrive.rb +17 -15
  117. data/lib/bcdice/game_system/DarkSouls.rb +1 -1
  118. data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
  119. data/lib/bcdice/game_system/DemonParasite.rb +1 -2
  120. data/lib/bcdice/game_system/DetatokoSaga.rb +48 -149
  121. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +6 -274
  122. data/lib/bcdice/game_system/DiceOfTheDead.rb +9 -6
  123. data/lib/bcdice/game_system/DoubleCross.rb +102 -81
  124. data/lib/bcdice/game_system/DoubleCross_Korean.rb +13 -330
  125. data/lib/bcdice/game_system/Dracurouge.rb +376 -1678
  126. data/lib/bcdice/game_system/Dracurouge_Korean.rb +16 -271
  127. data/lib/bcdice/game_system/EarthDawn.rb +1 -1
  128. data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
  129. data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
  130. data/lib/bcdice/game_system/Elysion.rb +3 -4
  131. data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
  132. data/lib/bcdice/game_system/Emoklore.rb +131 -0
  133. data/lib/bcdice/game_system/EndBreaker.rb +1 -2
  134. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
  135. data/lib/bcdice/game_system/Fiasco.rb +87 -70
  136. data/lib/bcdice/game_system/Fiasco_Korean.rb +7 -95
  137. data/lib/bcdice/game_system/FilledWith.rb +462 -566
  138. data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
  139. data/lib/bcdice/game_system/FutariSousa.rb +103 -938
  140. data/lib/bcdice/game_system/FutariSousa_Korean.rb +7 -948
  141. data/lib/bcdice/game_system/{Gurps.rb → GURPS.rb} +184 -217
  142. data/lib/bcdice/game_system/Garako.rb +131 -39
  143. data/lib/bcdice/game_system/GardenOrder.rb +2 -2
  144. data/lib/bcdice/game_system/GehennaAn.rb +1 -1
  145. data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
  146. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  147. data/lib/bcdice/game_system/GoldenSkyStories.rb +1 -1
  148. data/lib/bcdice/game_system/Gorilla.rb +1 -1
  149. data/lib/bcdice/game_system/GranCrest.rb +2 -3
  150. data/lib/bcdice/game_system/GundogRevised.rb +1 -1
  151. data/lib/bcdice/game_system/GundogZero.rb +1 -1
  152. data/lib/bcdice/game_system/GurpsFW.rb +2 -3
  153. data/lib/bcdice/game_system/HarnMaster.rb +2 -2
  154. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -2
  155. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  156. data/lib/bcdice/game_system/HuntersMoon.rb +1 -2
  157. data/lib/bcdice/game_system/Illusio.rb +2 -2
  158. data/lib/bcdice/game_system/Insane.rb +90 -717
  159. data/lib/bcdice/game_system/Insane_Korean.rb +7 -719
  160. data/lib/bcdice/game_system/Kamigakari.rb +47 -242
  161. data/lib/bcdice/game_system/Kamigakari_Korean.rb +6 -394
  162. data/lib/bcdice/game_system/KanColle.rb +3 -3
  163. data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
  164. data/lib/bcdice/game_system/KillDeathBusiness.rb +162 -1144
  165. data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +6 -1459
  166. data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
  167. data/lib/bcdice/game_system/LiveraDoll.rb +2 -2
  168. data/lib/bcdice/game_system/LogHorizon.rb +350 -3379
  169. data/lib/bcdice/game_system/LogHorizon_Korean.rb +55 -1357
  170. data/lib/bcdice/game_system/LostRecord.rb +0 -1
  171. data/lib/bcdice/game_system/LostRoyal.rb +1 -2
  172. data/lib/bcdice/game_system/MagicaLogia.rb +158 -1044
  173. data/lib/bcdice/game_system/MeikyuDays.rb +1 -2
  174. data/lib/bcdice/game_system/MeikyuKingdom.rb +4 -4
  175. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -5
  176. data/lib/bcdice/game_system/MetalHead.rb +1 -1
  177. data/lib/bcdice/game_system/MetalHeadExtream.rb +2 -2
  178. data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
  179. data/lib/bcdice/game_system/MonotoneMuseum.rb +38 -239
  180. data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +10 -270
  181. data/lib/bcdice/game_system/NSSQ.rb +159 -0
  182. data/lib/bcdice/game_system/Nechronica.rb +34 -73
  183. data/lib/bcdice/game_system/Nechronica_Korean.rb +11 -128
  184. data/lib/bcdice/game_system/NeverCloud.rb +1 -1
  185. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  186. data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
  187. data/lib/bcdice/game_system/NinjaSlayer.rb +12 -11
  188. data/lib/bcdice/game_system/NjslyrBattle.rb +1 -1
  189. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -2
  190. data/lib/bcdice/game_system/OracleEngine.rb +1 -1
  191. data/lib/bcdice/game_system/OrgaRain.rb +2 -2
  192. data/lib/bcdice/game_system/Paradiso.rb +1 -1
  193. data/lib/bcdice/game_system/Paranoia.rb +1 -1
  194. data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
  195. data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
  196. data/lib/bcdice/game_system/Peekaboo.rb +22 -122
  197. data/lib/bcdice/game_system/Postman.rb +2 -2
  198. data/lib/bcdice/game_system/PulpCthulhu.rb +3 -3
  199. data/lib/bcdice/game_system/Raisondetre.rb +2 -2
  200. data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
  201. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  202. data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
  203. data/lib/bcdice/game_system/RuinBreakers.rb +296 -0
  204. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  205. data/lib/bcdice/game_system/SRS.rb +1 -2
  206. data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
  207. data/lib/bcdice/game_system/Satasupe.rb +1 -2
  208. data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
  209. data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
  210. data/lib/bcdice/game_system/ShadowRun5.rb +2 -2
  211. data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
  212. data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +1 -1
  213. data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
  214. data/lib/bcdice/game_system/ShinobiGami.rb +1 -2
  215. data/lib/bcdice/game_system/ShoujoTenrankai.rb +2 -2
  216. data/lib/bcdice/game_system/Skynauts.rb +1 -1
  217. data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
  218. data/lib/bcdice/game_system/StellarKnights.rb +1 -2
  219. data/lib/bcdice/game_system/SterileLife.rb +1 -1
  220. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +1 -2
  221. data/lib/bcdice/game_system/StratoShout.rb +44 -247
  222. data/lib/bcdice/game_system/StratoShout_Korean.rb +6 -282
  223. data/lib/bcdice/game_system/Strave.rb +2 -2
  224. data/lib/bcdice/game_system/SwordWorld.rb +8 -9
  225. data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -3
  226. data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -3
  227. data/lib/bcdice/game_system/TherapieSein.rb +1 -1
  228. data/lib/bcdice/game_system/TokumeiTenkousei.rb +1 -1
  229. data/lib/bcdice/game_system/TokyoGhostResearch.rb +2 -2
  230. data/lib/bcdice/game_system/Torg.rb +2 -2
  231. data/lib/bcdice/game_system/Torg1_5.rb +1 -1
  232. data/lib/bcdice/game_system/TorgEternity.rb +1 -1
  233. data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
  234. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  235. data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -2
  236. data/lib/bcdice/game_system/UnsungDuet.rb +139 -0
  237. data/lib/bcdice/game_system/Utakaze.rb +1 -1
  238. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
  239. data/lib/bcdice/game_system/Villaciel.rb +1 -2
  240. data/lib/bcdice/game_system/Warhammer.rb +1 -1
  241. data/lib/bcdice/game_system/Warhammer4.rb +329 -0
  242. data/lib/bcdice/game_system/WitchQuest.rb +1 -1
  243. data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
  244. data/lib/bcdice/game_system/YankeeYogSothoth.rb +15 -15
  245. data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
  246. data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
  247. data/lib/bcdice/game_system/filled_with/cook_tables.rb +119 -0
  248. data/lib/bcdice/game_system/filled_with/lot_tables.rb +155 -0
  249. data/lib/bcdice/loader.rb +6 -8
  250. data/lib/bcdice/preprocessor.rb +15 -40
  251. data/lib/bcdice/repl.rb +1 -1
  252. data/lib/bcdice/result.rb +83 -0
  253. data/lib/bcdice/translate.rb +11 -0
  254. data/lib/bcdice/version.rb +1 -1
  255. metadata +80 -4
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bcdice/game_system/LogHorizon"
4
+
3
5
  module BCDice
4
6
  module GameSystem
5
- class LogHorizon_Korean < Base
7
+ class LogHorizon_Korean < LogHorizon
6
8
  # ゲームシステムの識別子
7
9
  ID = 'LogHorizon:Korean'
8
10
 
@@ -14,40 +16,72 @@ module BCDice
14
16
 
15
17
  # ダイスボットの使い方
16
18
  HELP_MESSAGE = <<~MESSAGETEXT
17
- ・판정(xLH±y>=z)
19
+ ■ 판정(xLH±y>=z)
18
20
   xD6의 판정.크리티컬, 펌블의 자동 판정을 실시합니다.
19
21
   x:x로 굴릴 주사위의 수를 입력합니다.
20
22
   ±y:y로 수정치를 입력합니다. ±의 계산에 대응하며 생략이 가능합니다.
21
23
  >=z:z로 목표값을 입력합니다. ±의 계산에 대응하며 생략이 가능합니다.
22
24
   예시) 3LH 2LH>=8 3LH+1>=10
23
- ・소모표(tCTx±y$z)
25
+
26
+ ■ 소모표(tCTx±y$z)
24
27
   PCT 체력/ECT 기력/GCT 물품/CCT 금전
25
28
   x:CR을 지정합니다.
26
29
   ±y:수정치, +와 -의 계산에 대응하며 생략이 가능합니다.
27
30
   $z:$를 붙이면 주사위 눈을 z고정합니다. 표의 특정 값 참조용으로 사용하며.생략 가능.
28
31
   例) PCT1 ECT2+1 GCT3-1 CCT3$5
29
- ・재물표(tTRSx±y$)
32
+
33
+ ■ 消耗表ロール (CTx±y)
34
+  消耗表ロールを行い、出目を決定する。
35
+  x:CRを指定。指定できますが、無視されます。省略可能
36
+  ±y:修正値。+と-の計算に対応。省略可能。
37
+
38
+ ■ 재물표(tTRSx±y$)
30
39
   CTRS 금전/MTRS 마법소재/ITRS 환전 아이템/※HTRS 히로인/GTRS 고블린 재보표
31
40
   x:CR을 지정합니다. 생략시에는 다이치 0고정으로 수정치의 표를 참조.《골드 핑거》사용 시 등.
32
41
   ±y:수정치, +와 -의 계산에 대응하며 생략이 가능합니다.
33
42
   $:$을 붙이면 재물표의 다이스를 7로 고정합니다.(1차 분량의 프라이즈 용도)생략이 가능합니다.
34
43
   예시) CTRS1 MTRS2+1 ITRS3-1 ITRS+27 CTRS3$
35
- ・퍼스널리티 태그 표(PTAG)
36
- ・교우표(KOYU)
37
- ・이스탈 탐색표(ESTLx) x는 CR을 지정합니다.
38
- ・프리픽스드 매직아이템 효과 표(MGRx) x는 MG를 지정합니다.
39
- †악기 종류 표(MIIx) x는 악기의 종류를 지정합니다.(1~6를 지정) 생략이 가능합니다.
44
+
45
+ ■ 財宝表(拡張ルールブック) (tTRSEx±y$)
46
+  LHZB2記載の財宝表
47
+  CTRSE 金銭/MTRSE 魔法素材/ITRSE 換金アイテム/OTRSE そのほか
48
+  記法は財宝表と同様
49
+
50
+ ■ 財宝表ロール (TRSx±y)
51
+  財宝表ロールを行い、出目を決定する。
52
+  x:CRを指定。省略時はCR 0として扱う
53
+  ±y:修正値。+と-の計算に対応。省略可能。
54
+
55
+ ■ 이스탈 탐색표 (ESTLx±y$z)
56
+  x:CRを指定。省略時はダイス値 0 固定で修正値の表参照。
57
+  ±y:修正値。+と-の計算に対応。省略可能。
58
+  $z:$を付けるとダイス目を z 固定。特定CRの表参照用に。省略可能。
59
+  例) ESTL1 ESTL+15 ESTL2+1$5 ESTL2-1$5
60
+
61
+ ■ 프리픽스드 매직아이템 효과 표(MGRx)
62
+  x는 MG를 지정합니다.
63
+
64
+ ■ 악기 종류 표† (MIIx)
65
+  x는 악기의 종류를 지정합니다.(1~6를 지정) 생략이 가능합니다.
40
66
   1 타악기1/2 건반악기/3 현악기1/4 현악기2/5 관악기1/6 관악기2
41
- ☆특수 소모표(tSCTx±y$z) 소모표와 마찬가지로 지정합니다. 다만 CR은 생략이 가능합니다.
67
+
68
+ ■ 특수 소모표☆ (tSCTx±y$z)
69
+  소모표와 마찬가지로 지정합니다. 다만 CR은 생략이 가능합니다.
42
70
   ESCT 로데릭 연구소는 폭발했다!/CSCT 알브의 저주다!
43
- ※공격 명중 장소 랜덤 결정표(HLOC)
44
- ※PC명 랜덤 결정표(PCNM)
45
- ※로데릭 연구소의 새로운 발명 랜덤 결정표(IATt)
46
- IATA 특징A(장점)/IATB 특징B(단점)/IATL 외형/IATT 종류
47
- t를 생략할 경우 모두 표시합니다. t에 A/B/L/T를 임의의 순서로 연결 할 수 있습니다.
48
- 例)IAT IATALT IATABBLT IATABL
49
- ※아키바 거리에서 발생하는 문제 랜덤결정 (TIAS)
50
- ※버려진 아이 랜덤 결정 표(ABDC)
71
+
72
+ 로데릭 연구소의 새로운 발명 랜덤 결정표※ (IATt)
73
+  IATA 특징A(장점)/IATB 특징B(단점)/IATL 외형/IATT 종류
74
+  t를 생략할 경우 모두 표시합니다. t에 A/B/L/T를 임의의 순서로 연결 할 수 있습니다.
75
+  例)IAT IATALT IATABBLT IATABL
76
+
77
+
78
+  ・퍼스널리티 태그 (PTAG)
79
+  ・교우표 (KOYU)
80
+  ・공격 명중 장소 랜덤 결정표※ (HLOC)
81
+  ・PC명 랜덤 결정표※ (PCNM)
82
+  ・아키바 거리에서 발생하는 문제 랜덤결정 표※ (TIAS)
83
+  ・버려진 아이 랜덤 결정 표※ (ABDC)
84
+
51
85
  †표시와 ☆표시는「인투・더・셀덴시아 새로운 빌드의 날개짓(1)」에서、
52
86
  ☆표시는 셀덴시아・가제트「D 되기는 할까? 66」Vol.1에서、
53
87
  ※표시는「실록・칠면체공방 좌담회(여름의 장)」에서 참조했습니다. 이용법은 항목을 참조해주세요.
@@ -57,1351 +91,15 @@ module BCDice
57
91
  ・이니티움님, 광황님, CoC방 여러분 감사합니다. by호흡도의식하면귀찮아
58
92
  MESSAGETEXT
59
93
 
60
- register_prefix(['\d+LH.*', 'PC.*', 'EC.*', 'GC.*', 'CC.*', 'CTR.*', 'MTR.*', 'ITR.*', 'HTR.*', 'GTR.*', 'PTAG', 'KOYU', 'MGR.', 'HLOC', 'PCNM', 'IAT.*', 'TIAS', 'ABDC', 'MII.*', 'ESCT.*', 'CSCT.*', 'ESTL.*'])
94
+ register_prefix_from_super_class()
61
95
 
62
96
  def initialize(command)
63
97
  super(command)
64
- @enabled_d66 = true
65
- @d66_sort_type = D66SortType::NO_SORT
66
- end
67
-
68
- def eval_game_system_specific_command(command)
69
- getCheckRollDiceCommandResult(command) ||
70
- getConsumptionDiceCommandResult(command) ||
71
- getTresureDiceCommandResult(command) ||
72
- getPersonalityTagDiceCommandResult(command) ||
73
- getFriendlyChartDiceCommandResult(command) ||
74
- getPrefixedMagickItemDiceCommandResult(command) ||
75
- getHitLocationDiceCommandResult(command) ||
76
- getPCNameDiceCommandResult(command) ||
77
- getInventionAttributeTextDiceCommandResult(command) ||
78
- getTroubleInAkibaStreetDiceCommandResult(command) ||
79
- getAbandonedChildDiceCommandResult(command) ||
80
- getMusicalInstrumentTypeDiceCommandResult(command) ||
81
- getEastalDiceCommandResult(command)
82
- end
83
-
84
- def getCheckRollDiceCommandResult(command)
85
- return nil unless command =~ /(\d+)LH([\+\-\d]*)(>=([\+\-\d]*))?/i
86
-
87
- diceCount = Regexp.last_match(1).to_i
88
- modifyText = (Regexp.last_match(2) || '')
89
- difficultyText = Regexp.last_match(4)
90
-
91
- # 修正値の計算
92
- modify = getValue(modifyText, 0)
93
-
94
- # 目標値の計算
95
- difficulty = getValue(difficultyText, nil)
96
-
97
- # ダイスロール
98
- diceList = @randomizer.roll_barabara(diceCount, 6)
99
- dice = diceList.sum()
100
- dice_str = diceList.join(",")
101
-
102
- total = dice + modify
103
-
104
- # 出力用ダイスコマンドを生成
105
- command = "#{diceCount}LH#{modifyText}"
106
- command += ">=#{difficulty}" unless difficulty.nil?
107
-
108
- # 출력문 생성
109
- result = "(#{command}) > #{dice}[#{dice_str}]#{modifyText} > #{total}"
110
-
111
- # クリティカル・ファンブルチェック
112
- if isCritical(diceList)
113
- result += " > 크리티컬!"
114
- elsif isFamble(diceList, diceCount)
115
- result += " > 펌블!"
116
- else
117
- result += getJudgeResultString(difficulty, total)
118
- end
119
-
120
- return result
121
- end
122
-
123
- # 成否判定
124
- def getJudgeResultString(difficulty, total)
125
- return '' if difficulty.nil?
126
-
127
- if total >= difficulty
128
- return " > 성공"
129
- else
130
- return " > 실패"
131
- end
132
- end
133
-
134
- def getValue(text, defaultValue)
135
- return defaultValue if text.nil? || text.empty?
136
-
137
- ArithmeticEvaluator.eval(text)
138
- end
139
-
140
- def isCritical(diceList)
141
- (diceList.select { |i| i == 6 }.size >= 2)
142
- end
143
-
144
- def isFamble(diceList, diceCount)
145
- (diceList.select { |i| i == 1 }.size >= diceCount)
146
- end
147
-
148
- # 消耗表
149
- def getConsumptionDiceCommandResult(command)
150
- return nil unless command =~ /(P|E|G|C|ES|CS)CT(\d+)?([\+\-\d]*)(\$(\d+))?/
151
-
152
- type = Regexp.last_match(1)
153
- is_special = (Regexp.last_match(1) && Regexp.last_match(1).length > 1)
154
- rank = Regexp.last_match(2) && Regexp.last_match(2) != '' ? Regexp.last_match(2).to_i : nil
155
- return nil if !rank && !is_special
156
-
157
- rank ||= 0
158
- is_choice = !Regexp.last_match(4).nil?
159
- dice_value = Regexp.last_match(5)
160
- modifyText = Regexp.last_match(3)
161
- modify = getValue(modifyText, 0)
162
-
163
- tableName = ""
164
- tables = nil
165
-
166
- case type
167
- when "P"
168
- tableName, tables = getPhysicalConsumptionResultTables
169
- when "E"
170
- tableName, tables = getEnergyConsumptionResultTables
171
- when "G"
172
- tableName, tables = getGoodsConsumptionResultTables
173
- when "C"
174
- tableName, tables = getCashConsumptionResultTables
175
- when "ES"
176
- tableName, tables = getExplosionSpecialConsumptionResultTables
177
- when "CS"
178
- tableName, tables = getCurseSpecialConsumptionResultTables
179
- else
180
- return nil
181
- end
182
-
183
- table = getTableByRank(rank, tables)
184
-
185
- number = is_choice ? dice_value.to_i : @randomizer.roll_once(6)
186
- dice_str = number.to_s
187
- number += modify
188
-
189
- adjustedNumber = getAdjustNumber(number, table)
190
-
191
- result = get_table_by_number(adjustedNumber, table)
192
-
193
- text = "#{tableName}(#{number}[#{dice_str}]):#{result}"
194
-
195
- return text
196
- end
197
-
198
- def getPhysicalConsumptionResultTables()
199
- tableName = "체력 소모표"
200
- tables = [[
201
- [0, '소모없음'],
202
- [1, '[피로:5]를 받는다'],
203
- [2, '[피로:8]을 받는다'],
204
- [3, '[피로:10]을 받는다'],
205
- [4, '[피로:13]을 받는다'],
206
- [5, '[피로:15]를 받는다'],
207
- [6, '[피로:18]을 받는다'],
208
- [7, '[피로:20]을 받는다'],
209
- ],
210
- [
211
- [0, '소모없음'],
212
- [1, '[피로:10]을 받는다'],
213
- [2, '[피로:15]를 받는다'],
214
- [3, '[피로:20]을 받는다'],
215
- [4, '[피로:25]를 받는다'],
216
- [5, '[피로:30]을 받는다'],
217
- [6, '[피로:35]를 받는다'],
218
- [7, '[피로:40]을 받는다'],
219
- ],]
220
-
221
- return tableName, tables
222
- end
223
-
224
- def getEnergyConsumptionResultTables()
225
- tableName = "기력 소모표"
226
- tables = [[
227
- [0, '소모없음'],
228
- [1, '【인과력】을 1점 잃는다'],
229
- [2, '【인과력】을 1점 잃는다'],
230
- [3, '【인과력】을 1점 잃는다'],
231
- [4, '【인과력】을 1점 잃는다'],
232
- [5, '【인과력】을 2점 잃는다'],
233
- [6, '【인과력】을 2점 잃는다'],
234
- [7, '【인과력】을 2점 잃는다'],
235
- ],
236
- [
237
- [0, '소모없음'],
238
- [1, '【인과력】을 1점 잃는다'],
239
- [2, '【인과력】을 1점 잃는다'],
240
- [3, '【인과력】을 1점 잃는다'],
241
- [4, '【인과력】을 2점 잃는다'],
242
- [5, '【인과력】을 2점 잃는다'],
243
- [6, '【인과력】을 2점 잃는다'],
244
- [7, '【인과력】을 3점 잃는다'],
245
- ],]
246
-
247
- return tableName, tables
248
- end
249
-
250
- def getGoodsConsumptionResultTables()
251
- tableName = "물품 소모표"
252
- tables = [[
253
- [0, '소모없음'],
254
- [1, '[소모품] 아이템을 1개 잃는다.'],
255
- [2, '[소모품] 아이템을 1개 잃는다.'],
256
- [3, '[소모품] 아이템을 1개 잃는다.'],
257
- [4, '[소모품] 아이템을 2개 잃는다.'],
258
- [5, '[소모품] 아이템을 2개 잃는다.'],
259
- [6, '[소모품] 아이템을 2개 잃는다.'],
260
- [7, '[소모품] 아이템을 2개 잃는다.'],
261
- ],
262
- [
263
- [0, '소모없음'],
264
- [1, '[소모품] 아이템을 1개 잃는다.'],
265
- [2, '[소모품] 아이템을 1개 잃는다.'],
266
- [3, '[소모품] 아이템을 2개 잃는다.'],
267
- [4, '[소모품] 아이템을 2개 잃는다.'],
268
- [5, '[소모품] 아이템을 3개 잃는다.'],
269
- [6, '[소모품] 아이템을 3개 잃는다.'],
270
- [7, '[소모품] 아이템을 4개 잃는다.'],
271
- ],]
272
-
273
- return tableName, tables
274
- end
275
-
276
- def getCashConsumptionResultTables()
277
- tableName = "금전 소모표"
278
- tables = [[
279
- [0, '소모없음'],
280
- [1, '소지금 10G 잃는다.'],
281
- [2, '소지금 15G 잃는다.'],
282
- [3, '소지금 20G 잃는다.'],
283
- [4, '소지금 25G 잃는다.'],
284
- [5, '소지금 30G 잃는다.'],
285
- [6, '소지금 35G 잃는다.'],
286
- [7, '소지금 40G 잃는다.'],
287
- ],
288
- [
289
- [0, '소모없음'],
290
- [1, '소지금 25G 잃는다.'],
291
- [2, '소지금 35G 잃는다.'],
292
- [3, '소지금 50G 잃는다.'],
293
- [4, '소지금 60G 잃는다.'],
294
- [5, '소지금 75G 잃는다.'],
295
- [6, '소지금 90G 잃는다.'],
296
- [7, '소지금 100G 잃는다.'],
297
- ],]
298
-
299
- return tableName, tables
300
- end
301
-
302
- def getExplosionSpecialConsumptionResultTables
303
- tableName = "특수 소모표 : 로데릭 연구소는 폭발했다!"
304
- tables = [[
305
- [0, '……하지만 아무 일도 일어나지 않았다!: 효과 없음'],
306
- [1, '당신의 머리카락이 폭발했다! 멋진 아프로 헤어다: 시나리오가 끝날 때까지 [머리] 태그를 가진 장비는 장비 불가'],
307
- [2, '예술은 폭발이다: 소지하고 있는 아이템 중 랜덤으로 정한 하나가 예술품이 되어 [환전] 아이템이 된다.'],
308
- [3, '반응 기폭 장갑: 방어구 슬롯에 장비하고 있는 아이템이 쵸밤 아머가 된다. 다음에 당신이 【HP】 대미지를 받았을 때, 그 대미지를 무효로 하고 이 아이템을 잃는다.'],
309
- [4, '산양 슬라임이 폭발적으로 증식한다: [소지품] 슬롯을 모두 산양 슬라임([거래 불가], 가격50)으로 채운다.'],
310
- [5, '당신의 리얼이 폭발한다: 커넥션 하나를 시나리오가 끝날 때까지 잃는다.'],
311
- [6, '공장이 폭발한다: [소모품] 태그를 가진 아이템을 구입할 수 없게 된다.'],
312
- [7, '보스 에너미가 폭발한다: 시나리오는 클라이맥스를 맞이하지 않고 종료된다. 수고하셨습니다.'],
313
- ]]
314
- return tableName, tables
315
- end
316
-
317
- def getCurseSpecialConsumptionResultTables
318
- tableName = "특수 소모표: 알브의 저주다!"
319
- tables = [[
320
- [0, '「축복해주지!」 축복을 받는다: 당신의 【인과력】+1'],
321
- [1, '공복의 저주: 즉시 식량 아이템 하나를 먹는다. 배가 고프니 엄청 맛있어!'],
322
- [2, '무직의 저주: 서브 직업이 강제로〈니트〉로 변경된다.'],
323
- [3, '종족 변경의 저주: 랜덤으로 다이스를 굴려 다른 종족으로 변한다. 종족특기를 사용할 수 없게 된다.'],
324
- [4, '배리어 프리의 저주: [경감], [장벽]상태가 될 수 없게 된다.'],
325
- [5, '집중력을 흐트리는 속삭임의 저주:자세가 무너져 [태세] 태그를 가진 특기를 사용할 수 없게 된다.'],
326
- [6, '맹목의 저주: 당신이 소지한 커넥션 중 랜덤으로 선택한 관계 하나가 「열애」로 변한다.'],
327
- [7, '의욕이 사라지는 저주: 아~ 진짜 의욕이 안 나네. 아무 것도 하기 싫어.【인과력】 사용 불가.'],
328
- ]]
329
- return tableName, tables
330
- end
331
-
332
- def getTableByRank(rank, tables)
333
- index = (rank - 1) / 5
334
-
335
- index = [0, index].max
336
- index = [index, (tables.size - 1)].min
337
-
338
- return tables[index]
339
- end
340
-
341
- def getAdjustNumber(number, table)
342
- number = getAdjustNumberMin(number, table)
343
- number = getAdjustNumberMax(number, table)
344
- return number
345
- end
346
-
347
- # 최소치의 조정(값이 너무 작은경우 표의 최소)
348
- def getAdjustNumberMin(number, table)
349
- value = getTableMinimum(table)
350
- return [number, value].max
351
- end
352
-
353
- def getTableMinimum(table)
354
- table.first.first
355
- end
356
-
357
- # 최대치의 조정(값이 너무 큰 경우 표의 최대)
358
- def getAdjustNumberMax(number, table)
359
- value = table.last.first
360
- return [number, value].min
361
- end
362
-
363
- # 재보표
364
- def getTresureDiceCommandResult(command)
365
- return nil unless (m = /(C|M|I|H|G)TRS(\d*)([\+\-\d]*)(\$)?/.match(command))
366
-
367
- type = m[1]
368
- rank = m[2].to_i
369
- is_choice = (m[2].empty? || !m[4].nil?)
370
- modifyText = m[3]
371
- modify = getValue(modifyText, 0)
372
- is_prize = (m[4] == "$")
373
- dice_value = nil
374
- dice_value = '7' if is_prize
375
- is_rank_enable = (!is_choice || is_prize)
376
-
377
- tableName, table =
378
- case type
379
- when "C"
380
- getCashTresureResultTable
381
- when "M"
382
- getMagicTresureResultTable
383
- when "I"
384
- getItemTresureResultTable
385
- when "H"
386
- getHeroineTresureResultTable
387
- when "G"
388
- getGoblinTresureResultTable
389
- end
390
-
391
- return nil if table.nil?
392
-
393
- number, dice_str, =
394
- if is_choice
395
- [dice_value.to_i, dice_value]
396
- else
397
- dice_list = @randomizer.roll_barabara(2, 6)
398
- [dice_list.sum, dice_list.join(",")]
399
- end
400
-
401
- number += (rank * (is_rank_enable ? 5 : 0)) + modify
402
-
403
- return command if is_choice && (number < getTableMinimum(table))
404
-
405
- number = [getAdjustNumberMin(number, table), 87].min
406
-
407
- result =
408
- if type == "H"
409
- getHiroineTresureResultString(table, number)
410
- else
411
- getOtherTresureResultString(table, number)
412
- end
413
-
414
- return "#{tableName}(#{number}#{dice_str ? '[' + dice_str + ']' : ''}):#{result}"
415
- end
416
-
417
- def getHiroineTresureResultString(table, number)
418
- table_max_number = table.map(&:first).max
419
-
420
- result =
421
- if number <= table_max_number
422
- get_table_by_number(number, table)
423
- else
424
- "※ #{table_max_number + 1}이후는 미정입니다 ※"
425
- end
426
-
427
- return result
428
- end
429
-
430
- def getOtherTresureResultString(table, number)
431
- result =
432
- case number
433
- when 63..72
434
- get_table_by_number(number - 10, table) + '&80G'
435
- when 73..82
436
- get_table_by_number(number - 20, table) + '&160G'
437
- when 83..87
438
- get_table_by_number(number - 30, table) + '&260G'
439
- else
440
- get_table_by_number(number, table)
441
- end
442
-
443
- return result
444
- end
445
-
446
- def getCashTresureResultTable
447
- tableName = "금전 재보표"
448
- table = [
449
- [7, '39G'],
450
- [8, '40G'],
451
- [9, '42G'],
452
- [10, '43G'],
453
- [11, '45G'],
454
- [12, '46G'],
455
- [13, '48G'],
456
- [14, '50G'],
457
- [15, '52G'],
458
- [16, '54G'],
459
- [17, '57G'],
460
- [18, '59G'],
461
- [19, '61G'],
462
- [20, '64G'],
463
- [21, '67G'],
464
- [22, '70G'],
465
- [23, '72G'],
466
- [24, '75G'],
467
- [25, '79G'],
468
- [26, '82G'],
469
- [27, '85G'],
470
- [28, '89G'],
471
- [29, '92G'],
472
- [30, '96G'],
473
- [31, '100G'],
474
- [32, '104G'],
475
- [33, '108G'],
476
- [34, '112G'],
477
- [35, '117G'],
478
- [36, '121G'],
479
- [37, '126G'],
480
- [38, '130G'],
481
- [39, '135G'],
482
- [40, '140G'],
483
- [41, '145G'],
484
- [42, '150G'],
485
- [43, '155G'],
486
- [44, '161G'],
487
- [45, '166G'],
488
- [46, '172G'],
489
- [47, '178G'],
490
- [48, '183G'],
491
- [49, '189G'],
492
- [50, '195G'],
493
- [51, '201G'],
494
- [52, '208G'],
495
- [53, '214G'],
496
- [54, '221G'],
497
- [55, '227G'],
498
- [56, '234G'],
499
- [57, '241G'],
500
- [58, '248G'],
501
- [59, '255G'],
502
- [60, '262G'],
503
- [61, '269G'],
504
- [62, '277G'],
505
- ]
506
-
507
- return tableName, table
508
- end
509
-
510
- def getMagicTresureResultTable
511
- tableName = "마법소재 재물표"
512
- table = [
513
- [7, '마촉매2[마촉매2](20G)x2'],
514
- [8, '마촉매2[마촉매2](20G)x2'],
515
- [9, '마촉매1[마촉매1](15G)x3'],
516
- [10, '마촉매1[마촉매1](15G)x3'],
517
- [11, '마촉매1[마촉매1](15G)x3'],
518
- [12, '코발트조각[코어소재](30G)&광석 샘플[환전](15G)'],
519
- [13, '신록의 떡잎[코어소재](30G)&조그만 꽃씨[환전](20G)'],
520
- [14, '생명의 잎[코어소재](40G)&강인한 넝쿨[환전](10G)'],
521
- [15, '날카로운 송곳니[코어소재](40G)&잘 길든 나이프[환전](10G)'],
522
- [16, '마촉매3[마촉매3](25G)x2'],
523
- [17, '오래된 해골[코어소재](40G)&검은 시집[환전](15G)'],
524
- [18, '흑수련꽃잎[코어소재](40G)&물곰방대[환전](20G)'],
525
- [19, '순백색깃털[코어소재](40G)&조그만 고글[환전](20G)'],
526
- [20, '진홍색 발톱[코어소재](50G)&조그만 거울[환전](15G)'],
527
- [21, '적열의 작은 발톱[코어소재](50G)&세공 화로[환전](20G)'],
528
- [22, '자성의 작은덩쿨[코어소재](50G)&그을린 용가죽[환전](20G)'],
529
- [23, '유성 조각[코어소재](50G)&소박한 반지[환전](10G)x2'],
530
- [24, '성스러운 섬유[코어소재](50G)&흠짓 난 메달[환전](25G)'],
531
- [25, '부러진 축[코어소재](60G)&잡동산이 무더기[환전](5G)x4'],
532
- [26, '거인의 머리카락[코어소재](50G)&조그만 빗[환전](20G)'],
533
- [27, '정밀한 톱니바퀴[코어소재](60G)&공구강 파편[환전](25G)'],
534
- [28, '뾰족한 발톱[코어소재](60G)&자수 장식띠[환전](30G)'],
535
- [29, '촉매 플라스크[코어소재](60G)&작은 초상화[환전](30G)'],
536
- [30, '액화마정[코어소재](60G)&정밀한 인형[환전](35G)'],
537
- [31, '마촉매5[코어소재](40G)&마촉매4[마촉매4](30G)x2'],
538
- [32, '부드러운 돌[코어소재](80G)&소형증류기[환전](20G)'],
539
- [33, '수수께끼의 모피[코어소재](80G)&기묘한 두개골[환전](30G)'],
540
- [34, '별똥별 은사[코어소재](80G)&주석 도금 별자리판[환전](30G)'],
541
- [35, '마촉매5[마촉매5](40G)x3'],
542
- [36, '소형연성진[코어소재](100G)&기괴한 오브제[환전](20G)'],
543
- [37, '마촉매6[마촉매6](50G)&마촉매5[마촉매5](40G)x2'],
544
- [38, '주문의 씨앗[코어소재](100G)&부서진 보석[환전](30G)'],
545
- [39, '은제원반[코어소재](100G)&순백색 코사주[환전](30G)'],
546
- [40, '잠자는 씨앗[코어소재](100G)&정원사의 장식끈[환전](40G)'],
547
- [41, '물엿색 점액[코어소재](1210G)&극채색 입자[환전](5G)x5'],
548
- [42, '마촉매6[마촉매6](50G)x3'],
549
- [43, '납색갑각[코어소재](120G)&향긋한 꽃봉오리[환전](10G)x4'],
550
- [44, '마촉매7[마촉매7](60G)&마촉매6[마촉매6](50G)x2'],
551
- [45, '커다란 마력결정[코어소재](120G)&요정의 낙서[환전](40G)'],
552
- [46, '권사의 백(魄)조각[코어소재](140G)&백지 두루마리[환전](40G)'],
553
- [47, '마촉매7[마촉매7](60G)x3'],
554
- [48, '푸른광석[코어소재](140G)&천연 유리덩어리[환전](25G)x2'],
555
- [49, '거대한 날개깃[코어소재](140G)&두꺼운 알껍질[환전](50G)'],
556
- [50, '마촉매8[마촉매8](70G)x2&마촉매7[마촉매7](60G)'],
557
- [51, '끊임 없는 불씨[코어소재](180G)&漆黒のスス[환전](20G)'],
558
- [52, '마촉매8[마촉매8](70G)x3'],
559
- [53, '마도 정제[코어소재](180G)&つくりかけの錠前[환전](10G)x3'],
560
- [54, '일곱색깔 투명나사[코어소재](180G)&열리지 않는 세공상자[환전](40G)'],
561
- [55, '편속성 마법결정[코어소재](220G)&보고서 다발[환전](10G)'],
562
- [56, '마촉매9[마촉매9](90G)&마촉매8[마촉매8](70G)x2'],
563
- [57, '마촉매9[마촉매9](90G)&마촉매8[마촉매8](70G)x2'],
564
- [58, '화려한 깃털장식[코어소재](220G)&공상동물 도감[환전](30G)'],
565
- [59, '모래장미[코어소재](220G)&바늘 같은 수정[환전](10G)x5'],
566
- [60, '마촉매9[마촉매9](90G)x3'],
567
- [61, '튼튼한 위장[코어소재](220G)&기묘한 표본[환전](50G)'],
568
- [62, '마촉매10[마촉매10](110G)&마촉매9[마촉매9](90G)x2'],
569
- ]
570
-
571
- return tableName, table
572
- end
573
-
574
- def getItemTresureResultTable
575
- tableName = "환전아이템 재물표"
576
- table = [
577
- [7, '그림이 들어간 머그컵[환전](40G)'],
578
- [8, '목재 기사상[환전](40G)'],
579
- [9, '조그만 풍경화[환전](50G)'],
580
- [10, '기묘한 초상화[환전](50G)'],
581
- [11, '무도회 가면[환전](50G)'],
582
- [12, '주석 식기 세트[환전](50G)'],
583
- [13, '낡은 시집[환전](50G)'],
584
- [14, '화려한 자수 손수건[환전](50G)'],
585
- [15, '큰 도자기 접시[환전](60G)'],
586
- [16, '그림 두루마리[환전](60G)'],
587
- [17, '도자기 수반[환전](60G)'],
588
- [18, '세공 귀걸이[환전](60G)'],
589
- [19, '숙녀의 초상화[환전](70G)'],
590
- [20, '조그만 보석상자[환전](70G)'],
591
- [21, '놋쇠 촛대[환전](70G)'],
592
- [22, '귀족의 오래된 일기[환전](70G)'],
593
- [23, '기사의 초상화[환전](80G)'],
594
- [24, '옷칠 나막신[환전](80G)'],
595
- [25, '정밀한 게임 보드[환전](80G)'],
596
- [26, '정밀한 정물화[환전](90G)'],
597
- [27, '떡갈나무 의자[환전](90G)'],
598
- [28, '오래된 비스크 돌(러시아인형)[환전](90G)'],
599
- [29, '현란한 가면[환전](100G)'],
600
- [30, '토끼 봉제인형[환전](100G)'],
601
- [31, '놋쇠 몬스터상[환전](100G)'],
602
- [32, '지방 역사서[환전](110G)'],
603
- [33, '무도회 장갑[환전](110G)'],
604
- [34, '하이힐[환전](120G)'],
605
- [35, '동화책[환전](120G)'],
606
- [36, '소녀의 초상화[환전](130G)'],
607
- [37, '작은 목각인형[환전](130G)'],
608
- [38, '등나무 의자[환전](130G)'],
609
- [39, '개와 고양이 꼭두각시 인형[환전](140G)'],
610
- [40, '족자[환전](G140)'],
611
- [41, '곰 봉제인형[환전](150G)'],
612
- [42, '고양이 변장탈[환전](150G)'],
613
- [43, '학술서[환전](160G)'],
614
- [44, '매 박제[환전](170G)'],
615
- [45, '대리석 현자상[환전](170G)'],
616
- [46, '자수가 들어간 쿠션[환전](180G)'],
617
- [47, '개 변장 탈[환전](180G)'],
618
- [48, '대형 떡갈나무 테이블[환전](190G)'],
619
- [49, '조각 반지[환전](190G)'],
620
- [50, '화조화 족자[환전](200G)'],
621
- [51, '최상급 모피[환전](210G)'],
622
- [52, '질 좋은 백분[환전](210G)'],
623
- [53, '자기 찻잔[환전](220G)'],
624
- [54, '간소한 티아라[환전](230G)'],
625
- [55, '조각 귀걸이[환전](230G)'],
626
- [56, '화려한 목걸이[환전](240G)'],
627
- [57, '질 좋은 향수[환전](250G)'],
628
- [58, '산수화 족자[환전](250G)'],
629
- [59, '섬세한 드레스/예복[환전](260G)'],
630
- [60, '도자기 그림접시[환전](270G)'],
631
- [61, '여우 봉제인형[환전](270G)'],
632
- [62, '오래된 역사서[환전](280G)'],
633
- ]
634
98
 
635
- return tableName, table
99
+ @locale = :ko_kr
636
100
  end
637
101
 
638
- def getHeroineTresureResultTable
639
- tableName = "히로인 재보표"
640
- table = [
641
- [7, '쓰러져 있는 초라한 말라깽이의 유녀'], # 라스트오더
642
- [8, '돈을 밝히는 경단머리인 차이나 아가씨'],
643
- [9, '응석부리고고 캐미솔을 어깨에 한 스웨터의 요술사'],
644
- [10, '작은 등으로 모두를 지키는 장면의 청바지를 입은 무투가'],
645
- [11, '오징어 모자를 쓴 도짓코 침략자'], # 이카무스메
646
- [12, '지나치게 긍정적인 자칭 명탐정씨'],
647
- [13, '중요한 곳에서 실수하는 부스스한 포니테일의 클레릭'],
648
- [14, '계란밥 좋아하는 빈유의 칸나기'],
649
- [15, '보석을 너무 좋아하는 억척스런 큰 리본의 이도류 세검사'],
650
- [16, '오크에게서 간신히 도망쳐온 검의 처녀'], # 큿 코로
651
- [17, '당신을 맹목적으로 찬미하는 자칭 여동생'],
652
- [18, '어필을 하지만 인식되지 않는 칸나기'], # 금서목록 히메가미아이사
653
- [19, '밝고 긍정적인 분홍색 리본의 소녀'], # 카나메 마도카(?)
654
- [20, '마법을 사용할수 없는 가슴이 작은게 컴플렉스인 마녀'], # 루이즈
655
- [21, '식욕에 일체 주저함이 없는 포동포동한 가슴의 아이돌'], # 미무라 카나코
656
- [22, '눈물점이 매혹의 저주인 누님계의 스워시버클러 '], # FATE 시리즈 랜서(4차)TS?!?!
657
- [23, '집착심이 강한 젊게 차려입은 노처녀 신화생무'], # 알퀘이드
658
- [24, '시가를 사랑하는 헤이안 히키코모리 공주'], # NEET히메
659
- [25, '병약하지만 프라이드있는 몰락귀족 아가씨'],
660
- [26, '활기가득! 왜소한 낭아족 야생 소녀'], # 원령공주 산
661
- [27, '빚더미에 올라 골판지 상자에서 사는 리코핀(로그호라 엑스트라 캐릭터)'], # 로그호라이즌 리코핀
662
- [28, '귀국자녀인 무녀복 스타일의 마포소녀에YO!'], # 콩고
663
- [29, '붙어 왔다갔다 하기만 할 수 있는 좀비 아가씨'], # 유클리우드 헬사이즈
664
- [30, '꿈에 한결같은 녹색머리 초시공 아이돌 후보생'], # 란카 리
665
- [31, '바로 발이 올라가는 뾰족한 이빨의 불량소녀'],
666
- [32, '지치지 않는 방패'],
667
- [33, '외환거래에 가진 돈을 전부 잃어 공허한 선배'], # 아이마이미의 포노카선배
668
- [34, '팔뚝이 말랑말랑하지만 가계부를 쓰는 마왕'], # 마오유우 마왕
669
- [35, '그 가슴 실로 풍만하였다는 기억상실의 여자 닌자'], # 닌자 슬레이어 유카노
670
- [36, '잘 옷자락을 붙잡는 양갈래 땋은 머리의 빵집 소녀'],
671
- [37, '「더럽다는건 칭찬이다!」라는 주관의 여자 암살자'], # 파이널 판타지 11
672
- [38, '단추가 터질것 같고 울상인 길드 창구의 간판아가씨'],
673
- [39, '뭐든지 오컬트에 아수라장이 되는 소녀'],
674
- [40, '전투 때마다 많이 먹어지게 되는게 고민인 궁술소녀'],
675
- [41, '사소한 것에 바로 얽메이게 되는 금발소녀'],
676
- [42, '함께 돌아가는 것을 부끄럽게 생각하는 핑크머리 소꿉친구'],
677
- [43, '배가 안좋아서 화장실에 상주하게 되는 엘프소녀'],
678
- [44, '응시하면 얼굴이 빨개지는 앞머리 법의족 소녀'],
679
- [45, '바로 파밧하고 겁먹는 소동물계 소녀'],
680
- [46, '키가 크고 신사적인 여성 극단의 왕자님역의 기사녀'],
681
- [47, '올곧은 성격의 근육이 있는 드워프 여자'],
682
- [48, '항상 꿈에서 당신을 보는 포니테일의 소녀'],
683
- [49, '선진선구, 심야에서 새벽까지 달리는 잠꾸러기 언니인 사무라이'],
684
- [50, '뭐든지 깊이 파고들려 하는 방랑자 로리BBA'],
685
- [51, '항상 밝은 남국의 갈색피부 소녀'],
686
- [52, '당신의 첫사랑과 닮은 그녀'],
687
- ]
688
-
689
- return tableName, table
690
- end
691
-
692
- def getGoblinTresureResultTable
693
- tableName = "고블린 재물표"
694
- table = [
695
- [7, '라이트메이스'],
696
- [8, '백과사전'],
697
- [9, '42G'],
698
- [10, '오래된 해골[코어소재](40G)'],
699
- [11, '가속의 두루마리(초급)'],
700
- [12, '46G'],
701
- [13, '48G'],
702
- [14, '50G'],
703
- [15, '유리구슬[환전](60G)'],
704
- [16, '피로 얼룩진 칼[코어소재](50G)'],
705
- [17, '찌그러진 금접시[환전](60G)'],
706
- [18, '59G'],
707
- [19, '모피로 된 깔개[환전](60G)'],
708
- [20, '뾰족한 발톱[코어소재](60G)'],
709
- [21, '67G'],
710
- [22, '흠집투성이의 상아상[환전](70G)'],
711
- [23, '72G'],
712
- [24, '라이트 랜스[파손]'],
713
- [25, '골제 목걸이[환전](80G)'],
714
- [26, '사금이 섞인 돌[환전](80G)'],
715
- [27, '85G'],
716
- [28, '향나무 파편[환전](90G)'],
717
- [29, '기묘한 가면[환전](90G)'],
718
- [30, '96G'],
719
- [31, '시미터'],
720
- [32, '우든 라운드'],
721
- [33, '바람 소리의 방울[코어소재](80G)&철제 전립[코어소재](30G)'],
722
- [34, '112G'],
723
- [35, '산양슬라임(라지사이즈)[환전](120G)'],
724
- [36, '121G'],
725
- [37, '고급 노송나무[환전](125G)'],
726
- [38, '130G'],
727
- [39, '크리스탈제 체스말[환전](135G)'],
728
- [40, '140G'],
729
- [41, '텐트(캠핑용)'],
730
- [42, '이상한 환약[코어소재](30G)×2&100G'],
731
- [43, '수수께끼의 모피[코어소재](80G)&원한의 고리[코어소재](80G)'],
732
- [44, '의식용 뼈 검[환전](160G)'],
733
- [45, '낡은 동전[환전](165G)'],
734
- [46, '낭아봉'],
735
- [47, '법리회로[코어소재](60G)&120G'],
736
- [48, '커다란 마력회로[코어소재](120G)&60G'],
737
- [49, '189G'],
738
- [50, '고급 통술[환전](200G)'],
739
- [51, '201G'],
740
- [52, '백색 반지'],
741
- [53, '비취 목걸이[환전](210G)'],
742
- [54, '황금 고블린상[환전](220G)'],
743
- [55, '샤벨'],
744
- [56, '진철 검신[코어소재](120G)&120G'],
745
- [57, '지저분한청자[환전](240G)'],
746
- [58, '톤스톤의 모듬 꼬치구이×2'],
747
- [59, '고블린 왕의 훈장[환전](255G)'],
748
- [60, '실눈뜨기의 두루마리(중급)×2'],
749
- [61, '269G'],
750
- [62, '백랑의 모피[환전](280G)'],
751
- ]
752
-
753
- return tableName, table
754
- end
755
-
756
- # パーソナリティタグ表
757
- def getPersonalityTagDiceCommandResult(command)
758
- return nil unless command == "PTAG"
759
-
760
- tableName = "퍼스널리티 태그"
761
- table = [
762
- '[조숙]',
763
- '[호기심왕성]',
764
- '[외로움쟁이]',
765
- '[지극성실]',
766
- '[먹보]',
767
- '[개구쟁이]또는[말괄량이]',
768
-
769
- '[사람좋음]',
770
- '[정열]',
771
- '[남챙겨주기]',
772
- '[이지적]',
773
- '[벽창호]',
774
- '[형님 기질]또는[누님 기질]',
775
-
776
- '[의리투철]',
777
- '[변덕쟁이]',
778
- '[장인기질]',
779
- '[열혈한]',
780
- '[노력가]',
781
- '[남자밝힘]또는[여자밝힘]',
782
-
783
- '[가정적]',
784
- '[호승심]',
785
- '[순진]',
786
- '[무뚝뚝이]',
787
- '[자비로움]',
788
- '[마이페이스]',
789
-
790
- '[낙천가]',
791
- '[동료애]',
792
- '[자긍심]',
793
- '[사교적]',
794
- '[냉정침착]',
795
- '[로맨티스트]',
796
-
797
- '[학구적]',
798
- '[내향적]',
799
- '[사서고생]',
800
- '[허영심]',
801
- '[용맹과감]',
802
- '[미스테리어스]',
803
- ]
804
-
805
- result, number = get_table_by_d66(table)
806
-
807
- text = "#{tableName}(#{number}):#{result}"
808
- return text
809
- end
810
-
811
- # 交友表
812
- def getFriendlyChartDiceCommandResult(command)
813
- return nil unless command == "KOYU"
814
-
815
- tableName = "교우표"
816
- table = [
817
- "교우대상에 대한 보호\n당신은 교우대상을 보호하고 싶다. 당신에게는 지켜줄수 있는 강함이 있다.",
818
- "교우대상에 대한 친애\n당신은 교우대상에게 호감을 가지고 있다. 그 마음을 상대에게 전했을지 아닐지는 임의. ",
819
- "교우대상에 대한 의형제\n당신은 교우대상과 형제나 다름없는 사이다. 물론 피는 이어지지 않았지만 그런것은 사소한 일이다.",
820
- "교우대상의 영웅\n당신은 교우대상에게서 영웅시되고 있다. 설령 당신이 부정하더라도 상관 없다.",
821
- "교우대상에 대한 존경\n당신은 교우대상을 존경한다. 그의 기술, 강인한 마음. 그것이 무엇이든 그에대한 경의는 변함이 없다.",
822
- "교우대상의 파트너\n당신은 교우대상을 파트너라고 생각한다. 그라면 자신과 함께 가 줄 것이다.",
823
-
824
- "교우대상에 대한 보호\n당신은 교우대상을 보호하고 싶다. 당신에게는 지켜줄수 있는 강함이 있다.",
825
- "교우대상에 대한 친애\n당신은 교우대상에게 호감을 가지고 있다. 그 마음을 상대에게 전했을지 아닐지는 임의. ",
826
- "교우대상에 대한 의형제\n당신은 교우대상과 형제나 다름없는 사이다. 물론 피는 이어지지 않았지만 그런것은 사소한 일이다.",
827
- "교우대상의 영웅\n당신은 교우대상에게서 영웅시되고 있다. 설령 당신이 부정하더라도 상관 없다.",
828
- "교우대상에 대한 존경\n당신은 교우대상을 존경한다. 그의 기술, 강인한 마음. 그것이 무엇이든 그에대한 경의는 변함이 없다.",
829
- "교우대상의 파트너\n당신은 교우대상을 파트너라고 생각한다. 그라면 자신과 함께 가 줄 것이다.",
830
-
831
- "교우대상의 은혜\n당신은 교우대상에게 큰 은혜를 입었다.",
832
- "교우대상의 라이벌\n당신은 교우대상을 라이벌이라고 생각한다. 이는 일반적인 감정일 수도 있고, 서로 절차탁마 하는 관계일 수도 있다.",
833
- "교우대상에 대한 흥미\n당신은 교우대상에게 흥미를 품고 있다. 그를 보는것이 재미있어서 그의 행동을 지켜보고 싶다.",
834
- "교우대상에 대한 우정\n당신은 교우대상을 벗이라고 생각한다. 언제 어디서나 그 마음은 변하지 않을 것이다.",
835
- "교우대상의 동지\n당신은 교우대상과 뜻을 함께 한다. 언제나 어디서나 그 마음은 변하지 않을 것이다.",
836
- "교우대상에 대한 이해\n당신은 교우대상을 이해하고 싶다. 그는 당신과는 다른 새로운 관점을 보여준다.",
837
-
838
- "교우대상의 은혜\n당신은 교우대상에게 큰 은혜를 입었다.",
839
- "교우대상의 라이벌\n당신은 교우대상을 라이벌이라고 생각한다. 이는 일반적인 감정일 수도 있고, 서로 절차탁마 하는 관계일 수도 있다.",
840
- "교우대상에 대한 흥미\n당신은 교우대상에게 흥미를 품고 있다. 그를 보는것이 재미있어서 그의 행동을 지켜보고 싶다.",
841
- "교우대상에 대한 우정\n당신은 교우대상을 벗이라고 생각한다. 언제 어디서나 그 마음은 변하지 않을 것이다.",
842
- "교우대상의 동지\n당신은 교우대상과 뜻을 함께 한다. 언제나 어디서나 그 마음은 변하지 않을 것이다.",
843
- "교우대상에 대한 이해\n당신은 교우대상을 이해하고 싶다. 그는 당신과는 다른 새로운 관점을 보여준다.",
844
-
845
- "교우대상에 대한 진력\n당신은 교우대상을 힘껏 돕고 싶다. 그것은 그의 인품 때문일 수도, 당신의 집착 때문일 수도 있다.",
846
- "교우대상과의 사제관계\n당신은 교우대상과 사제관계를 맺었다. 어느쪽이라도 상관은 없지만 많은 것을 가르치거나 배울 수 있을 것이다.",
847
- "교우대상과의 고용관계\n당신은 교우대상과 고용관계에 있다. 당신과 그는 ",
848
- "교우대상의 이웃\n당신은 교우대상의 이웃이다. 매일 아침 인사를 나누는 정도일 수도 있고, 함께 저녁을 먹는 사이일 수도 있다.",
849
- "교우대상과의 거래\n당신은 교우대상과 장사를 한다. 서로에게 이익이 있는 좋은 거래를 할 수 있는 상대다.",
850
- "교우대상의 가족\n당신은 교우대상과 함께 살고 있다. 같은집에 누군가 있으면 쓸쓸하지 않을 것이다.",
851
-
852
- "교우대상에 대한 진력\n당신은 교우대상을 힘껏 돕고 싶다. 그것은 그의 인품 때문일 수도, 당신의 집착 때문일 수도 있다.",
853
- "교우대상과의 사제관계\n당신은 교우대상과 사제관계를 맺었다. 어느쪽이라도 상관은 없지만 많은 것을 가르치거나 배울 수 있을 것이다.",
854
- "교우대상과의 고용관계\n당신은 교우대상과 고용관계에 있다. 당신과 그는 ",
855
- "교우대상의 이웃\n당신은 교우대상의 이웃이다. 매일 아침 인사를 나누는 정도일 수도 있고, 함께 저녁을 먹는 사이일 수도 있다.",
856
- "교우대상과의 거래\n당신은 교우대상과 장사를 한다. 서로에게 이익이 있는 좋은 거래를 할 수 있는 상대다.",
857
- "교우대상의 가족\n당신은 교우대상과 함께 살고 있다. 같은집에 누군가 있으면 쓸쓸하지 않을 것이다.",
858
- ]
859
-
860
- result, number = get_table_by_d66(table)
861
-
862
- text = "#{tableName}([#{number}]) > #{result}"
863
- return text
864
- end
865
-
866
- # プレフィックスドマジックアイテム表
867
- def getPrefixedMagickItemDiceCommandResult(command)
868
- return nil unless command =~ /MGR([1-3])/
869
-
870
- rank = Regexp.last_match(1).to_i
871
-
872
- table_1 = [
873
- "접두어:기합의 해당태그:모든 무기\n아이템 효과:이 무기의【공격력】에 +1한다.",
874
- "접두어:비술의 해당태그:[지팡이][마석]\n아이 템효과:이 아이템의【마력】에 +1한다.",
875
- "접두어:일격의 해당태그:[백병공격]가능한 무기\n아이템 효과:〔기동:대미지굴림〕이 무기에 의한 [백병공격]의 대미지 굴림에 +7. 시나리오 당 1회 사용 가능.",
876
- "접두어:저격의 해당태그:[활][투척]\n아이템 효과:〔기동:행동〕이 무기에 의한 [사격공격]과 동시에 사용한다. 공격의 사정거리에 +2Sq. 시나리오당 1회사용가능",
877
- "접두어:필살의 해당태그:모든 무기\n아이템 효과:〔기동:판정 직후〕이 무기에 의한[무기공격]의 [명중판정] 다이스에 6이 하나 이상 있다면 판정을 크리티컬로 간주한다. 시나리오당 1회 사용 가능.",
878
- "접두어:화염의 해당태그:모든 무기, [악기]\n아이템 효과:아이템에 [화염]태그를 추가한다.(이 효과를 선택할 때 태그를[냉기][전격][광휘][사독][정신] 중 하나로 바뀌어도 좋다. 그 경우「냉기의」「전격의」와 같이 변경할 것)",
879
-
880
- "접두어:기합의 해당태그:모든 무기\n아이템 효과:이 무기의【공격력】에 +1한다.",
881
- "접두어:비술의 해당태그:[지팡이][마석]\n아이 템효과:이 아이템의【마력】에 +1한다.",
882
- "접두어:일격의 해당태그:[백병공격]가능한 무기\n아이템 효과:〔기동:대미지굴림〕이 무기에 의한 [백병공격]의 대미지 굴림에 +7. 시나리오 당 1회 사용 가능.",
883
- "접두어:저격의 해당태그:[활][투척]\n아이템 효과:〔기동:행동〕이 무기에 의한 [사격공격]과 동시에 사용한다. 공격의 사정거리에 +2Sq. 시나리오당 1회사용가능",
884
- "접두어:필살의 해당태그:모든 무기\n아이템 효과:〔기동:판정 직후〕이 무기에 의한[무기공격]의 [명중판정] 다이스에 6이 하나 이상 있다면 판정을 크리티컬로 간주한다. 시나리오당 1회 사용 가능.",
885
- "접두어:화염의 해당태그:모든 무기, [악기]\n아이템 효과:아이템에 [화염]태그를 추가한다.(이 효과를 선택할 때 태그를[냉기][전격][광휘][사독][정신] 중 하나로 바뀌어도 좋다. 그 경우「냉기의」「전격의」와 같이 변경할 것)",
886
-
887
- "접두어:화염술사의 해당태그:[지팡이][마석][다리]\n아이템 효과:〔기동:대미지 굴림〕당신이 행할 [화염]태그를 가진 대미지굴림에 +7, 시나리오당 1회 사용가능 (이 효과를 선택할 때에는 태그를 [냉기], [전격], [광휘], [사독], [정신] 중 하나로 바꾸어도 좋다. 그 경우 접두어도 [빙술사의], [뇌술사의]와 같이 플레이 할것)",
888
- "접두어:철신의 해당태그:[방패][중갑][경갑]\n아이템 효과:당신은 장면이 시작될 때[경감(지근거리부터의 공격) :3]을 얻는다.",
889
- "접두어:화살막이의 해당태그:[盾][中鎧][軽鎧]\n아이템 효과:당신은 장면이 시작될 때[경감(지근거리 이외로부터의 공격) :3]을 얻는다.",
890
- "접두어:화염막이의 해당태그:[중갑][경갑][연갑]\n아이템 효과:당신은 장면 개시시에 [경감(화염):10]을 받는다.(이 효과를 선택할 때 경감할 태그를 [냉기], [전격], [사독], [광휘] [정신] 중 하나로 바꾸어도 좋다. 그 경우 접두어도「얼음막이의」,「벼락막이의」와 같이 변경할 것)",
891
- "접두어:근성의 해당태그:[중갑][머리]\n아이템 효과:〔기동:본문〕당신이 BS를 입은 직후에 사용한다. 직전에 입은 BS에서 하나를 선택해 해제한다. 시나리오당 1회 사용 가능",
892
- "접두어:치유의 해당태그:[팔]\n아이템 효과:당신의【회복력】에 +2한다.",
893
-
894
- "접두어:화염술사의 해당태그:[지팡이][마석][다리]\n아이템 효과:〔기동:대미지 굴림〕당신이 행할 [화염]태그를 가진 대미지굴림에 +7, 시나리오당 1회 사용가능 (이 효과를 선택할 때에는 태그를 [냉기], [전격], [광휘], [사독], [정신] 중 하나로 바꾸어도 좋다. 그 경우 접두어도 [빙술사의], [뇌술사의]와 같이 플레이 할것)",
895
- "접두어:철신의 해당태그:[방패][중갑][경갑]\n아이템 효과:당신은 장면이 시작될 때[경감(지근거리부터의 공격) :3]을 얻는다.",
896
- "접두어:화살막이의 해당태그:[盾][中鎧][軽鎧]\n아이템 효과:당신은 장면이 시작될 때[경감(지근거리 이외로부터의 공격) :3]을 얻는다.",
897
- "접두어:화염막이의 해당태그:[중갑][경갑][연갑]\n아이템 효과:당신은 장면 개시시에 [경감(화염):10]을 받는다.(이 효과를 선택할 때 경감할 태그를 [냉기], [전격], [사독], [광휘] [정신] 중 하나로 바꾸어도 좋다. 그 경우 접두어도「얼음막이의」,「벼락막이의」와 같이 변경할 것)",
898
- "접두어:근성의 해당태그:[중갑][머리]\n아이템 효과:〔기동:본문〕당신이 BS를 입은 직후에 사용한다. 직전에 입은 BS에서 하나를 선택해 해제한다. 시나리오당 1회 사용 가능",
899
- "접두어:치유의 해당태그:[팔]\n아이템 효과:당신의【회복력】에 +2한다.",
900
-
901
- "접두어:모래쥐의 해당태그:[다리][외투]\n아이템 효과:〔기동:클린업〕당신의【헤이트】에 ー2한다. 시나리오당1회 사용가능.",
902
- "접두어:올뺴미의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:인스턴트〕당신은 [암시]태그를 얻는다. 이 효과는 CS로 간주한다. 시나리오당 1회 사용가능.",
903
- "접두어:곤들매기의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:인스턴트〕당신은 [수생]태그를 얻는다. 이 효과는 CS로 간주한다. 시나리오당 1회 사용가능.",
904
- "접두어:눈썰미의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 드롭 아이템 굴림을 한 직후에 사용해 해당 굴림을 다시 굴린다. 시나리오당 1회 사용가능.",
905
- "접두어:보물 찾기의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 재물표 굴림을 한 직후에 사용해 해당 굴림을 다시 굴린다.. 시나리오당 1회 사용가능.",
906
- "접두어:돌변의 해당태그:[가방]\n아이템 효과:〔기동:인스턴트〕당신은 곧바로《장비 변경》을 한다. 시나리오당 1회 사용가능.",
907
-
908
- "접두어:모래쥐의 해당태그:[다리][외투]\n아이템 효과:〔기동:클린업〕당신의【헤이트】에 ー2한다. 시나리오당1회 사용가능.",
909
- "접두어:올뺴미의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:인스턴트〕당신은 [암시]태그를 얻는다. 이 효과는 CS로 간주한다. 시나리오당 1회 사용가능.",
910
- "접두어:곤들매기의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:인스턴트〕당신은 [수생]태그를 얻는다. 이 효과는 CS로 간주한다. 시나리오당 1회 사용가능.",
911
- "접두어:눈썰미의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 드롭 아이템 굴림을 한 직후에 사용해 해당 굴림을 다시 굴린다. 시나리오당 1회 사용가능.",
912
- "접두어:보물 찾기의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 재물표 굴림을 한 직후에 사용해 해당 굴림을 다시 굴린다.. 시나리오당 1회 사용가능.",
913
- "접두어:돌변의 해당태그:[가방]\n아이템 효과:〔기동:인스턴트〕당신은 곧바로《장비 변경》을 한다. 시나리오당 1회 사용가능.",
914
- ]
915
-
916
- table_2 = [
917
- "접두어:분노의 해당태그:[양손]무기\n아이템 효과:〔기동:대미지굴림〕이 무기에 의한 [무기공격]의 대미지 굴림에+[당신의【헤이트】]. 장면에 1회 사용가능.",
918
- "접두어:연격의 해당태그:[한손]무기\n아이템 효과:〔기동:판정 직후〕이 무기에 의한 [무기공격]의 [명중판정]을 다시 굴린다. 장면에 1회 사용가능.",
919
- "접두어:예리한 해당태그:[검][카타나][창]\n아이템 효과:이 무기에 의한 [무기공격]의 대미지 굴림에 +1D",
920
- "접두어:치명타의 해당태그:[둔기/도끼][격투][채찍][지팡이]\n아이템 효과:이 무기에 의한 [무기공격]의 대미지 굴림에 +1D",
921
- "접두어:마탄의 해당태그:[활][투척]\n아이템 효과:이 무기에 의한 [무기공격]의 대미지 굴림에 +1D",
922
- "접두어:지력의 해당태그:모든무기, [마석][악기]\n아이템 효과:당신의 [마법공격], [특수공격]의 대미지 굴림에 +1D. 이 효과는 중첩되지 않는다.",
923
-
924
- "접두어:분노의 해당태그:[양손]무기\n아이템 효과:〔기동:대미지굴림〕이 무기에 의한 [무기공격]의 대미지 굴림에+[당신의【헤이트】]. 장면에 1회 사용가능.",
925
- "접두어:연격의 해당태그:[한손]무기\n아이템 효과:〔기동:판정 직후〕이 무기에 의한 [무기공격]의 [명중판정]을 다시 굴린다. 장면에 1회 사용가능.",
926
- "접두어:예리한 해당태그:[검][카타나][창]\n아이템 효과:이 무기에 의한 [무기공격]의 대미지 굴림에 +1D",
927
- "접두어:치명타의 해당태그:[둔기/도끼][격투][채찍][지팡이]\n아이템 효과:이 무기에 의한 [무기공격]의 대미지 굴림에 +1D",
928
- "접두어:마탄의 해당태그:[활][투척]\n아이템 효과:이 무기에 의한 [무기공격]의 대미지 굴림에 +1D",
929
- "접두어:지력의 해당태그:모든무기, [마석][악기]\n아이템 효과:당신의 [마법공격], [특수공격]의 대미지 굴림에 +1D. 이 효과는 중첩되지 않는다.",
930
-
931
- "접두어:악귀퇴치의 해당태그:모든 무기\n아이템 효과:이 무기에 의한 [인간형]에 대한 [무기공격]의 대미지에 +10 (이효과를 선택할 때 태그를 [자연],[정령],[환수],[불사],[인조],[인간]중 하나로 바꾸어도 좋다. 그 경우 접두어도「정령퇴치의」 「환수퇴치의」와 같이 변경할 것)",
932
- "접두어:견고한 해당태그:[중갑][경갑][연갑]\n아이템 효과:이 방어구의 【물리방어력】에 +4",
933
- "접두어:항마의 해당태그:[중갑][경갑][연갑]\n아이템 효과:이 방어구의 【마법방어력】에 +4",
934
- "접두어:방벽의 해당태그:[방패][머리]\n아이템 효과:당신은 장면이 시작될 때 [장벽:10]을 얻는다.",
935
- "접두어:인내의 해당태그:[방패][머리]\n아이템 효과:〔기동:본문〕당신이 강제적인 이동을 받았을 때에 사용해 해당 거리를ー1Sq한다.",
936
- "접두어:호법의 해당태그:[팔]\n아이템 효과:당신이 부여할 [장벽]의 강도에 +5.",
937
-
938
- "접두어:악귀퇴치의 해당태그:모든 무기\n아이템 효과:이 무기에 의한 [인간형]에 대한 [무기공격]의 대미지에 +10 (이효과를 선택할 때 태그를 [자연],[정령],[환수],[불사],[인조],[인간]중 하나로 바꾸어도 좋다. 그 경우 접두어도「정령퇴치의」 「환수퇴치의」와 같이 변경할 것)",
939
- "접두어:견고한 해당태그:[중갑][경갑][연갑]\n아이템 효과:이 방어구의 【물리방어력】에 +4",
940
- "접두어:항마의 해당태그:[중갑][경갑][연갑]\n아이템 효과:이 방어구의 【마법방어력】에 +4",
941
- "접두어:방벽의 해당태그:[방패][머리]\n아이템 효과:당신은 장면이 시작될 때 [장벽:10]을 얻는다.",
942
- "접두어:인내의 해당태그:[방패][머리]\n아이템 효과:〔기동:본문〕당신이 강제적인 이동을 받았을 때에 사용해 해당 거리를ー1Sq한다.",
943
- "접두어:호법의 해당태그:[팔]\n아이템 효과:당신이 부여할 [장벽]의 강도에 +5.",
944
-
945
- "접두어:맥동하는 해당태그:[팔]\n아이템 효과:당신이 부여하는 [재생]의 강도에+3.",
946
- "접두어:질주하는 해당태그:[다리][외투]\n아이템 효과:〔기동:행동〕당신이 《런》, 《대시》를 사용했을 때에 사용해 이동거리를 +1Sq 한다. ",
947
- "접두어:신속의 해당태그:[다리][외투]\n아이템 효과:이 아이템의 [행동수정]에 +3.",
948
- "접두어:역경의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 [전투불능]이 된 직후 사용할 수 있다.당신은 【인과력】1점 얻는다. 장면에 1회사용 가능",
949
- "접두어:숲지름 해당태그:[보조장비][악기][가방]\n아이템 효과:당신이 장면을 시작 될 때 [경감([천연]프롭, 기믹에서 오는 데미지): 15]를 얻는다.(이 효과를 선택할 때 태그를[마법], [기계] 중 하나로 바꾸어도 좋다. 그 경우 접두어도 [지옥지름], [함정지름]과 같이 변경할 것)",
950
- "접두어:여행자의 해당태그:[가방]\n아이템 효과:이 아이템에 [소지품 슬롯] 4개를 추가한다.",
951
-
952
- "접두어:맥동하는 해당태그:[팔]\n아이템 효과:당신이 부여하는 [재생]의 강도에+3.",
953
- "접두어:질주하는 해당태그:[다리][외투]\n아이템 효과:〔기동:행동〕당신이 《런》, 《대시》를 사용했을 때에 사용해 이동거리를 +1Sq 한다. ",
954
- "접두어:신속의 해당태그:[다리][외투]\n아이템 효과:이 아이템의 [행동수정]에 +3.",
955
- "접두어:역경의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 [전투불능]이 된 직후 사용할 수 있다.당신은 【인과력】1점 얻는다. 장면에 1회사용 가능",
956
- "접두어:숲지름 해당태그:[보조장비][악기][가방]\n아이템 효과:당신이 장면을 시작 될 때 [경감([천연]프롭, 기믹에서 오는 데미지): 15]를 얻는다.(이 효과를 선택할 때 태그를[마법], [기계] 중 하나로 바꾸어도 좋다. 그 경우 접두어도 [지옥지름], [함정지름]과 같이 변경할 것)",
957
- "접두어:여행자의 해당태그:[가방]\n아이템 효과:이 아이템에 [소지품 슬롯] 4개를 추가한다.",
958
- ]
959
-
960
- table_3 = [
961
- "접두어:기백의 해당태그:모든 무기\n아이템 효과:이 무기의【공격력】에 +3한다.",
962
- "접두어:신비의 해당태그:[지팡이][마석]\n아이템 효과:이 무기의【마력】에 +3한다.",
963
- "접두어:원격의 해당태그:[활][트착]\n아이템 효과:이 무기의 사정거리에 +1Sq한다.",
964
- "접두어:흡혈의 해당태그:[백병공격]가능한 무기\n아이템 효과:이 무기에의한[백병공격]으로 데미지를 입혔을 때【HP】는5점 회복된다.",
965
- "접두어:충격의 해당태그:[한손]무기\n아이템 효과:이 무기에 의한《기본무기공격》으로 데미지를 입혔을 때 공격 대상에게 [멍함]을 입힌다.",
966
- "접두어:노호의 해당태그:[양손]무기\n아이템 효과:이 무기에 의한《기본무기공격》으로 데미지를 입혔을 때 공격 대상에게 [위축]을 입힌다.",
967
-
968
- "접두어:기백의 해당태그:모든 무기\n아이템 효과:이 무기의【공격력】에 +3한다.",
969
- "접두어:신비의 해당태그:[지팡이][마석]\n아이템 효과:이 무기의【마력】에 +3한다.",
970
- "접두어:원격의 해당태그:[활][트착]\n아이템 효과:이 무기의 사정거리에 +1Sq한다.",
971
- "접두어:흡혈의 해당태그:[백병공격]가능한 무기\n아이템 효과:이 무기에의한[백병공격]으로 데미지를 입혔을 때【HP】는5점 회복된다.",
972
- "접두어:충격의 해당태그:[한손]무기\n아이템 효과:이 무기에 의한《기본무기공격》으로 데미지를 입혔을 때 공격 대상에게 [멍함]을 입힌다.",
973
- "접두어:노호의 해당태그:[양손]무기\n아이템 효과:이 무기에 의한《기본무기공격》으로 데미지를 입혔을 때 공격 대상에게 [위축]을 입힌다.",
974
-
975
- "접두어:갑주비늘 해당태그:[방패][중갑][경갑]\n아이템 효과:당신은 장면이 시작 될 때 [경감(지근거리로부터의 공격):10]을 얻는다.",
976
- "접두어:화살반사 해당태그:[방패][경갑][연갑]\n아이템 효과:당신은 장면이 시작 될 때 [경감(지근거리 이외로부터의 공격) :10]을 얻는다.",
977
- "접두어:내화의  해당태그:[중갑][경갑][연갑]\n아이템 효과:당신은 장면이 시작 될 때 [경감(화염) :25]를 얻는다. (이 효과를 선택할 때 경감할 태그를 [냉기], [전격], [사독], [광휘], [정신]중 하나로 바꾸어도 좋다. 이경우 접두어도「내빙의」「내전의」와 같이 변경했어)",
978
- "접두어:성채의  해당태그:[방패][머리]\n아이템 효과:당신은 장면이 시작 될 때 【장벽:20】을 얻는다.",
979
- "접두어:정찰의  해당태그:[머리]\n아이템 효과:당신이 행할[정찰]태그를 가진 행동 및《이상탐지》판정에+1D.",
980
- "접두어:쾌유의  해당태그:[머리]\n아이템 효과:당신의【회복력】에+5.",
981
-
982
- "접두어:갑주비늘 해당태그:[방패][중갑][경갑]\n아이템 효과:당신은 장면이 시작 될 때 [경감(지근거리로부터의 공격:10]을 얻는다.",
983
- "접두어:화살반사 해당태그:[방패][경갑][연갑]\n아이템 효과:당신은 장면이 시작 될 때 [경감(지근거리 이외로부터의 공격) :10]을 얻는다.",
984
- "접두어:내화의  해당태그:[중갑][경갑][연갑]\n아이템 효과:당신은 장면이 시작 될 때 [경감(화염) :25]를 얻는다. (이 효과를 선택할 때 경감할 태그를 [냉기], [전격], [사독], [광휘], [정신]중 하나로 바꾸어도 좋다. 이경우 접두어도「내빙의」「내전의」와 같이 변경했어)",
985
- "접두어:성채의  해당태그:[방패][머리]\n아이템 효과:당신은 장면이 시작 될 때 【장벽:20】을 얻는다.",
986
- "접두어:정찰의  해당태그:[머리]\n아이템 효과:당신이 행할[정찰]태그를 가진 행동 및《이상탐지》판정에+1D.",
987
- "접두어:쾌유의  해당태그:[머리]\n아이템 효과:당신의【회복력】에+5.",
988
-
989
- "접두어:함정해제의 해당태그:[팔]\n아이템 효과:〔기동:판정 직전〕당신이 《프롭 해제》를 행할 때 사용하며그 판정은 크리티컬이 된다. 장면에1회 사용 가능",
990
- "접두어:부동의  해당태그:[다리][외투]\n아이템 효과:당신은 [멍함],[경직]상태가 되어도 [저지능력]을 잃지 않는다.",
991
- "접두어:그림자질주 해당태그:[다리][외투]\n아이템 효과:당신이 [은밀상태]일 때《런》을 해도 [은밀상태]는 해제되지 않는다.",
992
- "접두어:심해의  해당태그:[보조장비][악기][가방]\n아이템 효과: 당신은 [암시],[수생]태그를 얻는다.",
993
- "접두어:금전운의  해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 재물표 굴림 또는 드롭 아이템 굴림을 한 직후에 사용하며 해당 굴림을 다시 굴린다. 장면에1회 사용할 수 있다.",
994
- "접두어:함정회피의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:데미지 적용 직전〕당신에게 적용될 예정인 프롭 및[기믹]에 의한 데미지를 무효로 할 수 있다. 시나리오당1회 사용할 수 있다.",
995
-
996
- "접두어:함정해제의 해당태그:[팔]\n아이템 효과:〔기동:판정 직전〕당신이 《프롭 해제》를 행할 때 사용하며그 판정은 크리티컬이 된다. 장면에1회 사용 가능",
997
- "접두어:부동의  해당태그:[다리][외투]\n아이템 효과:당신은 [멍함],[경직]상태가 되어도 [저지능력]을 잃지 않는다.",
998
- "접두어:그림자질주 해당태그:[다리][외투]\n아이템 효과:당신이 [은밀상태]일 때《런》을 해도 [은밀상태]는 해제되지 않는다.",
999
- "접두어:심해의  해당태그:[보조장비][악기][가방]\n아이템 효과: 당신은 [암시],[수생]태그를 얻는다.",
1000
- "접두어:금전운의  해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:본문〕당신이 재물표 굴림 또는 드롭 아이템 굴림을 한 직후에 사용하며 해당 굴림을 다시 굴린다. 장면에1회 사용할 수 있다.",
1001
- "접두어:함정회피의 해당태그:[보조장비][악기][가방]\n아이템 효과:〔기동:데미지 적용 직전〕당신에게 적용될 예정인 프롭 및[기믹]에 의한 데미지를 무효로 할 수 있다. 시나리오당1회 사용할 수 있다.",
1002
- ]
1003
-
1004
- tableName = "프리픽스드 아이템 효과표"
1005
- table = nil
1006
-
1007
- case rank
1008
- when 1
1009
- tableName += "(매직 그레이드1)"
1010
- table = table_1
1011
- when 2
1012
- tableName += "(매직 그레이드2)"
1013
- table = table_2
1014
- when 3
1015
- tableName += "(매직그레이드3)"
1016
- table = table_3
1017
- end
1018
-
1019
- result, number = get_table_by_d66(table)
1020
-
1021
- text = "#{tableName}([#{number}]) > #{result}"
1022
- return text
1023
- end
1024
-
1025
- # 공격 명중 장소 랜덤결정표
1026
- def getHitLocationDiceCommandResult(command)
1027
- return nil unless command == "HLOC"
1028
-
1029
- tableName = "공격명중장소"
1030
- table = [
1031
- '이마',
1032
- '뺨',
1033
- '코',
1034
- '턱',
1035
- '뒷통수',
1036
- '목',
1037
-
1038
- '귀',
1039
- '눈',
1040
- '관자놀이',
1041
- '팔',
1042
- '팔꿈치',
1043
- '손',
1044
-
1045
- '손가락',
1046
- '심장',
1047
- '위',
1048
- '폐',
1049
- '갈비',
1050
- '어깨',
1051
-
1052
- '등',
1053
- '옆구리',
1054
- '허리',
1055
- '아랫배',
1056
- '허벅지',
1057
- '목',
1058
-
1059
- '장딴지',
1060
- '아킬레스건',
1061
- '발 뒤꿈치',
1062
- '정강이',
1063
- '새끼 발가락',
1064
- '무릅',
1065
-
1066
- '사회적 신용',
1067
- '인간관계',
1068
- '첫사랑의 추억',
1069
- '완벽한 예측',
1070
- '마음',
1071
- '안경',
1072
- ]
1073
- result, number = get_table_by_d66(table)
1074
- "#{tableName}(#{number}):#{result}"
1075
- end
1076
-
1077
- # PC명 랜덤 결정표
1078
- def getPCNameDiceCommandResult(command)
1079
- return nil unless command == "PCNM"
1080
-
1081
- tableName = "PC名"
1082
- table = [
1083
- 'Kuraudo',
1084
- 'Sefirosu',
1085
- 'Kirito',
1086
- 'Asuna',
1087
- 'Leeroy Jenkins',
1088
- 'Buront',
1089
-
1090
- '의사양반',
1091
- '거대도너츠',
1092
- '이등병가민',
1093
- '버섯대위',
1094
- '∃@ㅏ이돌전도사E',
1095
- '작업장',
1096
-
1097
- '크로울리',
1098
- '다이테스',
1099
- '타츠야',
1100
- '미유키',
1101
- '슬레인',
1102
- '타카본씨',
1103
-
1104
- '흑의 연금술사',
1105
- '†사랑의천사네코히메†',
1106
- '데스★건',
1107
- '卍칠흑의타천사卍',
1108
- '광속의이명을가지고중력을자유자재로조종하는고귀한기사',
1109
- '신세계†영걸살해자',
1110
-
1111
- '로그호라',
1112
- 'ㄱㄱㄱㄱ',
1113
- '창고',
1114
- '은행',
1115
- '보관',
1116
- '위탁',
1117
-
1118
- '사스케',
1119
- '라파엘로',
1120
- '도나텔로',
1121
- '미켈란젤로',
1122
- '센다이',
1123
- '후지키도',
1124
- ]
1125
-
1126
- result, number = get_table_by_d66(table)
1127
-
1128
- return "#{tableName}(#{number}):#{result}"
1129
- end
1130
-
1131
- # ロデ研の新発明ランダム決定表
1132
- def getInventionAttributeTextDiceCommandResult(command)
1133
- return nil unless command =~ /IAT([ABMDLT]*)/
1134
-
1135
- tableName = "로데릭 연구소의 새로운 발명"
1136
-
1137
- table_indicate_string = Regexp.last_match(1) && Regexp.last_match(1) != '' ? Regexp.last_match(1) : 'MDLT'
1138
- is_single = (table_indicate_string.length == 1)
1139
-
1140
- result = []
1141
- number = []
1142
-
1143
- table_indicate_string.split(//).each do |char|
1144
- dice_result = @randomizer.roll_once(6)
1145
- number << dice_result.to_s
1146
- result << case char
1147
- when 'A', 'M'
1148
- [
1149
- '빛나고 돌며 소리가 울리는',
1150
- '무언가를 자각한',
1151
- '단단하고 강한',
1152
- '굉장히 빠르거나 거친',
1153
- '대량 생산이 가능한',
1154
- '좋은 감촉의',
1155
- ].map { |e| (is_single ? '특징A(장점):' : '') + e }
1156
- when 'B', 'D'
1157
- [
1158
- '중독성 있는',
1159
- '굉장히 무거운',
1160
- '굉장히 냄새나는',
1161
- '망가지기 쉬운',
1162
- '설명할 것이 많은',
1163
- '버려도 버려도 되돌아오는 ',
1164
- ].map { |e| (is_single ? '특징B(단점):' : '') + e }
1165
- when 'L'
1166
- [
1167
- '아름다운',
1168
- '소박한',
1169
- '풍류있는',
1170
- '참신한',
1171
- '형언할 수 없는',
1172
- '목숨을 깍는 형태를 한',
1173
- ].map { |e| (is_single ? '형용:' : '') + e }
1174
- when 'T'
1175
- [
1176
- '무기',
1177
- '방어구',
1178
- '악세사리',
1179
- '식량',
1180
- '약품',
1181
- '장난감',
1182
- ].map { |e| (is_single ? '발명품의 종류:' : '') + e }
1183
- end[dice_result - 1]
1184
- end
1185
-
1186
- return "#{tableName}([#{number.join(',')}]):#{result.join(' ')}"
1187
- end
1188
-
1189
- # 아키바 거리에서 발생하는 문제 랜덤결정 표
1190
- def getTroubleInAkibaStreetDiceCommandResult(command)
1191
- return nil unless command == "TIAS"
1192
-
1193
- tableName = "아키바 거리에서 발생하는 문제"
1194
-
1195
- number = []
1196
- result = []
1197
-
1198
- [
1199
- [
1200
- '〈로그 호라이즌〉이',
1201
- '〈초승달 동맹〉이',
1202
- '〈D.D.D〉가',
1203
- '〈흑검기사단〉이',
1204
- '〈서풍여단〉이',
1205
- '〈로데릭 상회〉가'
1206
- ],
1207
- [
1208
- '길드 회관에서',
1209
- '무위도식 골목에서',
1210
- '거리 한가운데에서',
1211
- '수풍관에서',
1212
- '공중목욕탕에서',
1213
- '하수구에서'
1214
- ],
1215
- [
1216
- '불합리한',
1217
- '겸손',
1218
- '달콤한',
1219
- '부자연스러운',
1220
- '위험한',
1221
- '머리 나쁜'
1222
- ],
1223
- [
1224
- '싸움',
1225
- '연애소식',
1226
- '장난',
1227
- '음모',
1228
- '사고',
1229
- '분실물'
1230
- ]
1231
- ].each do |table|
1232
- dice_result = @randomizer.roll_once(6)
1233
- number << dice_result.to_s
1234
- result << table[dice_result - 1]
1235
- end
1236
-
1237
- return "#{tableName}([#{number.join(',')}]):#{result.join(' ')}"
1238
- end
1239
-
1240
- # 버림받은 아이 랜덤결정표
1241
- def getAbandonedChildDiceCommandResult(command)
1242
- return nil unless command == "ABDC"
1243
-
1244
- tableName = "버림받은 아이"
1245
-
1246
- number = []
1247
- result = []
1248
-
1249
- [
1250
- [
1251
- '꽃의 이름',
1252
- '별의 이름',
1253
- '색깔 종류',
1254
- '돌의 이름',
1255
- '동물 이름',
1256
- '번호'
1257
- ].map { |e| '이름:' + e },
1258
- [
1259
- '폐 건물',
1260
- '길가',
1261
- '식객',
1262
- '나무 위',
1263
- '공원',
1264
- '하수도'
1265
- ].map { |e| '주거:' + e },
1266
- [
1267
- '무언가를 찾기',
1268
- '요리',
1269
- '노래',
1270
- '장사',
1271
- '손재주있는',
1272
- '약삭빠른 행동'
1273
- ].map { |e| '특기:' + e },
1274
- [
1275
- '깡마른',
1276
- '키작은',
1277
- '발육이 좋은',
1278
- '키가 큰',
1279
- '부드럽고 탄력있는',
1280
- '근육질의'
1281
- ].map { |e| '체형:' + e },
1282
- [
1283
- '과일',
1284
- '고기',
1285
- '신선한 야채',
1286
- '생선',
1287
- '과자',
1288
- '벌레'
1289
- ].map { |e| '좋아하는 음식:' + e },
1290
- [
1291
- '말이 서툰',
1292
- '사투리',
1293
- '일반적인 말투',
1294
- '사극체',
1295
- '3인칭',
1296
- '귀국자녀'
1297
- ].map { |e| '말투:' + e }
1298
- ].each do |table|
1299
- dice_result = @randomizer.roll_once(6)
1300
- number << dice_result.to_s
1301
- result << table[dice_result - 1]
1302
- end
1303
-
1304
- return "#{tableName}([#{number.join(',')}]):#{result.join(' ')}"
1305
- end
1306
-
1307
- # 楽器種別表
1308
- def getMusicalInstrumentTypeDiceCommandResult(command)
1309
- return nil unless command =~ /MII(\d?)/
1310
-
1311
- is_roll = !(Regexp.last_match(1) && Regexp.last_match(1) != '')
1312
- type = is_roll ? @randomizer.roll_once(6) : Regexp.last_match(1).to_i
1313
-
1314
- return nil if type < 1 || 6 < type
1315
-
1316
- tableName = "악기 종류 표"
1317
- type_name = ['타악기1', '건반악기', '현악기1', '현악기2', '관악기1', '관악기2'][type - 1]
1318
-
1319
- dice = @randomizer.roll_once(6)
1320
- result = [
1321
- ['캐스터네츠', '마라카스', '심벌즈', '트라이앵글', '북', '드럼'],
1322
- ['목제 실로폰', '철제 실로폰', '하모늄', '하프시 코드', '피아노', '클라비코드'],
1323
- ['하프', '류트', '기타', '바이올린', '첼로', '리라'],
1324
- ['비파', '6현금', '호금', '샤미센', '시타르', '덜시머'],
1325
- ['트럼펫', '호른', '트럼본', '튜바', '피리', '클라리넷'],
1326
- ['리코더', '오카리나', '오보에', '하모니카', '아코디언', '퉁소']
1327
- ][type - 1][dice - 1]
1328
-
1329
- return tableName.to_s + (is_roll ? "(#{type})" : '') + ":#{type_name}(#{dice}):#{result}"
1330
- end
1331
-
1332
- def getEastalDiceCommandResult(command)
1333
- return nil unless command =~ /ESTL(\d+)/
1334
-
1335
- cr = Regexp.last_match(1).to_i
1336
- return nil unless cr >= 1 && cr <= 10
1337
-
1338
- tableName = "이스탈 탐색표"
1339
-
1340
- table = ["숲 베리 따기: 여러분은 베리가 열린 수풀을 발견한다. 탐색을 하는 PC는 난이도 8의 [지각판정]을 한다(한 명당 1회만). 성공한 사람은 「숲 베리 (맘대로 샌드위치에 상당)」를 하나 입수한다.",
1341
- "나뭇잎 사이로 햇빛이 비치는 산책길: 나뭇잎 사이로 햇빛이 비치는 밝은 잡목림이 이어진다. 적당히 사람의 손이 닿아서 산책하는 기분으로 걸을 수 있다.",
1342
- "군생지에는 주의: 여러분은 트리피드의 군생지에 들어오고 말았다! 힘겨운 싸움 끝에 다행히도 승리를 거머쥐었지만, 여러분 전원은 [피로: 10]을 입는다.",
1343
- "페어 트레이드: 여러분은 〈대지인〉 농부를 만났다. 20G를 내면 「계절야채 포토푀」를 구입할 수 있다(다 합쳐서 PC와 같은 수까지).",
1344
- "강에서의 삶: 제방을 따라 강 근처를 걷는다. 작은 선착장에서 위세 좋은 목소리가 들린다. 물고기를 잡고 있는 모양이다.",
1345
- "건너려 해도 건널 수 없는: 강물이 붇는 바람에 여러분은 강을 건널 곳을 찾느라 고생한다. [수생] 태그를 소지하고 있거나 얻을 수 있는 수단이 있는 PC가 한 명이라도 있다면 아무 문제 없다. 없다면 멀리 우회하여 전원 [피로: 10]을 입는다.",
1346
- "코볼트 조우전: 여러분은 코볼트 무리를 물리쳤다! 전원 10G를 손에 넣는다. 쫓아가서 섬멸한다면 전원 [피로: 10]을 입는 대신 추가로 「코볼트의 이빨 [환전](10G)」를 한 사람당 1개 손에 넣는다.",
1347
- "풍요로운 전원 풍경: 큰 논이 몇 자리나 펼쳐져 있다. 가을이라면 황금색 벼 이삭이 바람에 흔들릴 것이다.",
1348
- "불운한 예감: 검은 고양이가 눈앞을 가로지르고, 까마귀가 머리 위에서 울고, 신발 끈이 뚝 끊어졌다. 왠지 모를 한기까지. 여러분 전원은 【인과력】을 1점 잃는다.",
1349
- "친구의 친구는 친구: PC 전원은 2D를 굴린다. 가장 큰 눈이 나온 「당신」은 가장 적은 눈이 나온 「대상」과 공통의 지인에 대한 화제로 이야기꽃을 피운다. 당신과 대상은 「인과력 티켓」 한 장으로 각자 서로에 대한 커넥션을 취할 수 있다. 관계는「우정, 이해」 중 하나가 된다.",
1350
- "시간은 흐른다: 길을 따라 외벽만 남은 철근 빌딩이 서 있다. 지금은 새의 둥지가 된 듯하다.",
1351
- "갑작스러운 폭우!: 여러분은 갑작스러운 폭우를 만나, 고생 끝에 폐가에 도착했다. 여러분 전원은 [식량] 아이템을 하나 소비해야 한다. 단, [피로] 회복량은 절반이다. [식량] 아이템을 소비할 수 없는 경우는【인과력】 1점을 잃는다.",
1352
- "들꽃이 만발하다: 여러분은 넓은 꽃밭에 도착한다. 탐색을 하는 PC는 목표치 9의 [지식판정을 한다(한 명당 1회만). 성공한 사람은 「귀중한 약초 [환전] (20G)」를 하나 입수한다.",
1353
- "녹색 터널: 멋진 할엽수가 나란히 늘어서서 녹색의 천장을 이루고 있다. 발치에는 부엽토가 두껍게 깔렸고, 곳곳에서 나무뿌리가 모습을 드러내고 있다.",
1354
- "고블린 강습 부대: 여러분은 고블린 강습부대와의 조우전에 휘말렸다. 여러분 전원은 [피로: 20]을 입거나, 또는 [시나리오n회]형 특기의 사용횟수를 소비한다(여러분이 선택).",
1355
- "정보교환: 여러분은 모험자 집단과 만났다. 대표자는 목표 10의 [교섭판정]을 한다(적절한 서브 직업이 있다면 +2의 보너스를 얻을 수도 있다). 성공하면 부근의 정보를 들을 수 있다. 여러분 중 하나는 다음에 하는 [정찰] 행동에 +2를 얻는다.",
1356
- "못의 어부: 물이 가득한 못에 나왔다. 어부가 투망을 던지는 모습이 보인다.",
1357
- "토막난 샛길: 산사태로 길이 무너져 내리고 말았다. 이 길은 사용할 수 없을 것 같다. [비행] 상태이거나 [비행] 상태를 얻을 수 있는 수단을 가진 PC가 한 명이라도 있다면 주변을 탐색할 수 있으므로 문제는 없다. 그렇지 않다면 여러분은 아주 멀리 돌아가야 한다. 여러분 전원은 [피로:25]를 입는다.",
1358
- "코볼트를 물리쳐라!: 여러분은 코볼트 순찰대를 물리쳤다. 전원 [피로: (1D6+5)]를 입는 대신, 전리품으로 1인당 20G를 입수한다.",
1359
- "대지의 은총: 이랑을 따라 채소의 파릇파릇한 잎이 무성하다. 맛있는 요리를 만들 수 있을 것 같다.",
1360
- "미끄러져 굴러서: 가도를 걷고 있는데 갑자기 거대한 와일드 보어가 튀어나온다. 피하던 찰나에 넘어져서 여러분 전원은 [소모품] 아이템을 하나 잃는다. [소모품]아이템을 가지고 있지 않다면 【인과력】 1점을 잃는다.",
1361
- "빙글빙글 꽈당: PC 전원은 2D를 굴린다. 가장 작은 눈의 「당신」은 젖은 풀에 발이 미끄러져 굴러떨어지고 만다. 구해준 동료는 「인과력 티켓」 한 장으로 「당신」에 대해 커넥션을 얻을 수 있다. 관계는 「비호, 친애」 중 하나가 된다.",
1362
- "무인들이 꾼 꿈의 흔적: 반쯤 무너진 돌담이 이어진다. 아인과의 격렬한 싸움의 흔적도 지금은 희미하게 남아있을 뿐이다.",
1363
- "오리무중: 짙은 안개가 낀다. 팔을 뻗으면 손끝이 안 보일 정도다. 여러분 전원은 [피로: 25]를 입거나 【인과력】 1점을 잃는다(여러분이 선택).",
1364
- "치유의 샘물: 여러분은 세차게 솟구치는 맑은 물을 발견한다. 목표치 13의 [지각판정]을 한다. 누구든 한 명이라도 성공하면 이것이 매우 맑으며 마력이 있는 물이라는 것을 알게 된다. 길어 담아갈 수는 없지만, 마시면 즉석에서 【인과력】 1점을 얻는다.",
1365
- "침엽수 숲: 침엽수가 울퉁불퉁한 나무껍질을 드러내고 있다. 그늘에 잡초가 적어 조금 쌀쌀한 인상을 받는다.",
1366
- "어인의 습격: 여러분은 사하긴 순찰소대와 격렬한 싸움을 벌였다! 여러분 전원은 [피로: 25]를 입거나 [소모품] 아이템 2개를 잃는다(여러분이 선택).",
1367
- "상부상조: 여러분은 꼼짝도 못 하고 서 있는 마차에 탄 여행자를 만났다. 그들을 돕는 경우, 도우려는 멤버 전원이 [조작판정]을 한다. 달성치 합계가 (PC 수ⅹ10)이상이라면 마차를 길에 되돌린다. 그 경우 1인당 20G의 사례금을 받는다.",
1368
- "시냇물과 산들바람: 잔잔하게 흐르는 작은 시냇가로 나왔다. 수면을 스쳐 지나가는 산들바람에 기분이 상쾌하다.",
1369
- "파이팅 일발!: 여러분은 절벽을 따라 난 좁은 통로를 나아가느라 체력만이 아니라 기력까지 소모한다. 여러분 전원은 [피로:15]를 입는다. 거기에 더하여 [피로: 15]를 입거나 【인과력】 1점을 잃는다(여러분이 선택).",
1370
- "거인과 만나다: 숲 위로 불쑥 머리를 내민 것은 대머리 거인이었다. 전투에 승리한 여러분은 전원 25G를 입수한다. 거인의 보금자리를 찾으려면 대표자가 목표치 12의 [해석판정]에 성공해야 한다. 성공한 경우 거인의 보금자리에서 [마촉매6]을 1D6+1개 입수한다.",
1371
- "휴식 장소: 쉬기 딱 좋은 도로 가의 공터를 발견한다. 예전에 누군가 같은 생각을 한 사람이 있었는지 모닥불을 피운 흔적도 있다.",
1372
- "그럴 리가: 길을 잃고 말았다. 여러분 전원은 【인과력】을 2점 잃는다. 【인과력】을 잃을 수 없는 경우, 부족한 【인과력】 1점당 [피로: 15]를 입는다. 여러분의 동료중에 [지도 제작자]나 [척후]가 있다면 [피로: 15]는 [피로: 10]으로 그친다.",
1373
- "좋아하는 애 있어?: 무슨 영문인지 여러분은 휴식 중에 좋아하는 이성에 대한 화제에 돌입하고 말았다. [애정] 또는 [사랑], [설렘]에 준하는 커넥션을 가지고 있는 PC는 그 사실을 고백할 수 있다. 그 경우, GM은 그 PC의 용기에 깊이 감동하며【인과력】 1점을 주자. 만약 고백 상대가 지금 파티에 있는 동료라면, 롤플레이에 따라서는 그 상대에게도 준다.",
1374
- "저 다리를 건너서: 붉게 녹슨 철교가 강 위로 그림자를 드리우고 있다. 예전에는 전차가 이 다리 위를 건넜는지 이끼 사이로 레일이 엿보인다.",
1375
- "얼음덩어리: 큼직한 우박이 내려 사정없이 여러분을 두들긴다. 주위는 탁 트인 토지라서 피할 수도 없다. 여러분 전원은 [피로: 30]을 입는다.",
1376
- "두근두근 동굴: 여러분은 기분 나쁜 동굴을 발견한다. 탐색을 하는 PC는 목표치 12의 [지각판정]을 한다. 실패한 사람은 [피로: 10]을 입는다. 한 사람이라도 성공한 경우, 동굴 안에서 금화 100G가 들어있는 자루를 발견한다. 공평하게 나누자!",
1377
- "수풀을 헤치고: 낮은 관목이 곳곳에 수풀을 이루고 있어 똑바로 전진하기 힘들다.하지만 누군가가 지나간 길이 있어서 헤매지 않고 끝날 것 같다.",
1378
- "이곳에서 저지하라!: 여러분은 〈대지인〉의 마을 주변에서 와이번과의 전투에 돌입했다! 여러분 전원은 [피로: 30]을 입거나 【인과력】 2점을 잃는다(여러분이 선택).",
1379
- "언젠가 지나온 길: 여러분은 아직 신출내기인 〈모험자〉들과 만났다. 뭔가 도움을 주고 싶다면 [소모품]을 몇 개쯤 건네줄 수도 있고, 뭐든 조언을 해줄 수도 있다. 그들은 거듭 감사하며 길을 떠난다. GM은 PC들의 롤플레이에 따라 【인과력】 1점을 줄 수 있다.",
1380
- "계곡에 울리는 물소리: 가파른 골짜기 밑에서 기세 좋게 물이 흐른다. 그리 멀지않은 곳에서 폭포 소리가 들려온다.",
1381
- "독 늪: 여러분은 썩은 내가 풍기는 늪지를 가로질렀다. 여러분 전원은 목표치 14의 [운동판정]을 해야 한다. 실패한 PC는 [소모품] 아이템을 2개 잃는다.",
1382
- "고르곤 슬레이어: 여러분은 쇠로 된 피부 를 지닌 소를 물리쳤다! 전원 【인과력】 1점을 잃는다. 전리품으로 【철우의 비늘 [환전] (35G)】를 인원수만큼 손에 넣는다.",
1383
- "개척자들: 몇 명의 대지인이 숲을 개간하고 있다. 씨를 뿌리려면 조금 더 걸릴 것 같다.",
1384
- "예상 밖의 조우: 10m가 넘는 녹색 드래곤과 우연히 마주친다. 왜 이런 곳에! 여러분은 전력을 다해 도망쳤다. 여러분 전원은 【인과력】을 2점 잃거나, [보조장비] 하나에 [파손] 태그를 입는다. 둘 다 할 수 없다면 [피로: 35]를 입는다.",
1385
- "끝말잇기는 귀문: 여러분은 여행의 흥을 돋우기 위해 다 함께 끝말잇기를 하면서 걷고 있다. PC 전원은 「누」(GM은 다른걸로 바꿔도 좋다)로 시작하는 단어를 하나 발표한다. 가장 창피한 단어를 발표한 PC를 다 함께 결정한다. 그 PC에 대한 커넥션을 가지고 있는 다른 PC는 커넥션의 관계를 [동정], [실망], [재미있음]으로 변경할 수 있다.",
1386
- "오래된 신역: 커다란 석제 토리이가 오랜세월의 풍파를 견디며 우뚝 솟아있다. 주위에 엄숙한 분위기가 가득했다.",
1387
- "난기류: 돌풍은 회오리가 되었다! 여러분은 간신히 통과할 수 있었지만 멀쩡하지는 않았다. 여러분은 [피로: 35]를 입거나 [소모품] 2개를 잃는다(여러분이 선택).",
1388
- "노리려면 월척을: 여러분은 멋진 낚시터를 발견한다. 탐색을 하는 PC는 [식량] 아이템을 하나 소비해서 목표치 13의 [조작판정]을 한다(어부나 그에 준하는 서브 직업에겐 +2를 줘도 좋다). 성공한 사람은「기름이 오른 송어 (정석 카레에 상당)」를 [1D/2]마리(최저 1마리) 입수한다.",
1389
- "고목 미궁: 울퉁불퉁한 고목이 서로 얽혀 압박감을 느끼게 한다. 숲이 보내온 세월의 무게가 어깨를 짓누르는 듯하다.",
1390
- "중과부적: 여러분은 무수한 구렁이에게 둘러싸였다! 여러분 전원은 [피로: 40]을 입거나 보조장비 하나에 [파손] 태그를 붙인다(여러분이 선택).",
1391
- "축복의 고리: 여러분은 대지인의 마을에서 결혼을 축하하는 조촐한 연회를 접한다. 축복을 해주고 싶다면 대표 PC가 난이도 14의 [교섭] 판정을 한다. 선물로 [식량] 태그를 가진 아이템을 하나 내놓을 때마다 +2의 보너스를 얻는다. 성공한 경우, 어딘가에서 상쾌한 바람이 불어 여러분 전원은 【인과력】 1점을 얻는다. 그렇지 않은 경우라도 연회에는 초대받으며, 소박한 만찬을 먹고 전원의 [피로]가 -20 줄어든다.",
1392
- "큰 강을 이루는 한 방울: 깨끗한 물이 세차게 솟아난다. 이 물은 분명 저 큰 강으로 이어질 것이다.",
1393
- "냉랭한 산길: 여러분은 바람이 세차게 부는, 얼어붙을 듯한 산길을 걸어간다. [경감(냉기)를 가지고 있거나, 혹은 얻을 수 있는 PC는 이 영향을 받지 않는다. 그렇지 않은 PC는 【인과력】 2점을 잃거나 보조장비 하나에 [파손] 태그를 입는다(여러분이 선택). 양쪽 모두 선택할 수 없는 경우, [피로: 50]을 입는다.",
1394
- "고블린의 야영지: 여러분은 야영 중인 고블린들을 물리쳤다! 전원 50G를 손에 넣는다. 목표치 14의 [지각판정]을 한다(한사람당 1회). 성공한 사람은 「고브 영웅상[환전] (60G)」을 하나 입수한다.",
1395
- "줄곧 이어지는 생활: 산비탈의 한 면 전체에 밭들이 계단처럼 펼쳐져 있다. 이 정도의 논밭을 일구는 데 도대체 얼마나 많은 시간이 들었을까? 근처에는 틀림없이 〈대지인〉의 마을이 있을 것이다."]
1396
-
1397
- d1 = @randomizer.roll_once(6)
1398
- d2 = @randomizer.roll_once(6)
1399
- value = (d1.to_i + d2.to_i - 2 + (cr - 1) * 5)
1400
-
1401
- result = table[value]
1402
-
1403
- return "#{tableName}CR#{cr}(#{value + 7}[#{d1},#{d2}])\n#{result}"
1404
- end
102
+ TABLES = translate_tables(:ko_kr)
1405
103
  end
1406
104
  end
1407
105
  end