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,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class GeishaGirlwithKatana < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'GeishaGirlwithKatana'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'ゲイシャ・ガール・ウィズ・カタナ'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'けいしやかあるういすかたな'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~MESSAGETEXT
17
+ ・判定 (GK#n)
18
+ 役やチョムバを含めて1回分のダイスロールを判定します。
19
+  役は (通常判定)/(戦闘時) の順で両方出力されます。
20
+ GK のみの場合5%の確率でチョムバます。
21
+ GK#3 の様に #n をつけることによってチョムバの確率をn%にすることができます。
22
+  例)GK GK#10
23
+ ・隠しコマンド (GL)
24
+ 必ずチョムバします。GMが空気を読んでチョムバさせたいときや、
25
+ GKコマンドを打ち間違えてチョムバするを想定してます。
26
+  例)GL
27
+ MESSAGETEXT
28
+
29
+ register_prefix(['GK(#\d+)?', 'GL'])
30
+
31
+ def eval_game_system_specific_command(command)
32
+ output = nil
33
+
34
+ if /^GL$/i =~ command
35
+ return getChombaResultText()
36
+ end
37
+
38
+ unless /^GK(#(\d+))?$/i =~ command
39
+ return output
40
+ end
41
+
42
+ chomba_counter = Regexp.last_match(2)
43
+
44
+ if isChomba(chomba_counter)
45
+ return getChombaResultText()
46
+ end
47
+
48
+ diceList = @randomizer.roll_barabara(3, 6).sort
49
+
50
+ yakuResult = getYaku(diceList)
51
+ unless yakuResult.nil?
52
+ return getResultTextByDice(diceList, "【役】#{yakuResult}")
53
+ end
54
+
55
+ deme, zorome = getDemeZorome(diceList)
56
+ if deme == 0
57
+ return getResultTextByDice(diceList, "失敗")
58
+ end
59
+
60
+ yp = (zorome == 1 ? " YPが1増加" : "")
61
+ output = getResultTextByDice(diceList, "達成値#{deme}#{yp}")
62
+ debug("getGGwKResult(command) result", output)
63
+
64
+ return output
65
+ end
66
+
67
+ def isChomba(chomba_counter)
68
+ chomba_counter ||= 5
69
+ chomba_counter = chomba_counter.to_i
70
+
71
+ chomba = @randomizer.roll_once(100)
72
+
73
+ return (chomba <= chomba_counter)
74
+ end
75
+
76
+ def getChombaResultText()
77
+ getResultText("チョムバ!!")
78
+ end
79
+
80
+ def getYaku(diceList)
81
+ rule = {
82
+ [1, 2, 3] => "自動失敗/自分の装甲効果無しでダメージを受けてしまう",
83
+ [4, 5, 6] => "自動成功/敵の装甲を無視してダメージを与える",
84
+ [1, 1, 1] => "10倍成功 YPが10増加/10倍ダメージ YPが10増加",
85
+ [2, 2, 2] => "2倍成功/2倍ダメージ",
86
+ [3, 3, 3] => "3倍成功/3倍ダメージ",
87
+ [4, 4, 4] => "4倍成功/4倍ダメージ",
88
+ [5, 5, 5] => "5倍成功/5倍ダメージ",
89
+ [6, 6, 6] => "6倍成功/6倍ダメージ",
90
+ }
91
+
92
+ yaku = rule[diceList]
93
+ return yaku
94
+ end
95
+
96
+ def getDemeZorome(diceList)
97
+ deme = 0
98
+ zorome = 0
99
+
100
+ if diceList[0] == diceList[1]
101
+ deme = diceList[2]
102
+ zorome = diceList[0]
103
+ elsif diceList[1] == diceList[2]
104
+ deme = diceList[0]
105
+ zorome = diceList[1]
106
+ end
107
+
108
+ return deme, zorome
109
+ end
110
+
111
+ def getResultTextByDice(diceList, result)
112
+ getResultText("#{diceList.join(',')} > #{result}")
113
+ end
114
+
115
+ def getResultText(result)
116
+ "(3B6) > #{result}"
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,168 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class GoblinSlayer < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'GoblinSlayer'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'ゴブリンスレイヤーTRPG'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'こふりんすれいやあTRPG'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~MESSAGETEXT
17
+ ・判定 GS(x)>=y
18
+  2d6の判定を行い、達成値を出力します。
19
+  xは基準値、yは目標値です。いずれも省略可能です。
20
+  yが設定されている場合、大成功/成功/失敗/大失敗を自動判定します。
21
+  例)GS>=12 GS>10 GS(10)>14 GS+10>=15 GS10>=15 GS(10) GS+10 GS10 GS
22
+
23
+ ・祈念 MCPI(n)$m
24
+  祈念を行います。
25
+  nは【幸運】などによるボーナスです。この値は省略可能です。
26
+  mは因果点の現在値です。
27
+  因果点の現在値を使用して祈念を行い、成功/失敗を自動判定します。
28
+  例)MCPI$3 MCPI(1)$4 MCPI+2$5 MCPI2$6
29
+
30
+ ・命中判定の効力値によるボーナス DB(n)
31
+  ダメージ効力表による威力へのボーナスを自動で求めます。
32
+  nは命中判定の効力値です。
33
+  例)DB(15) DB12
34
+
35
+ ※上記コマンドの計算内で割り算を行った場合、小数点以下は切り上げされます。
36
+  ただしダイス出目を割り算した場合、小数点以下は切り捨てされます。
37
+  例)入力:GS(8+3/2) 実行結果:(GS10) > 10 + 3[1,2] > 13
38
+    入力:2d6/2  実行結果:(2D6/2) > 3[1,2]/2 > 1
39
+
40
+ ※MCPIでは、シークレットダイスを使用できません。
41
+ MESSAGETEXT
42
+
43
+ # 因果点は共有リソースなのでMCPIはシークレットダイスを無効化
44
+ register_prefix(['GS\(\d+\)', 'GS.*', '^MCPI.*\$\d+$', 'DB\d+'])
45
+
46
+ def initialize(command)
47
+ super(command)
48
+ @round_type = RoundType::CEIL
49
+ end
50
+
51
+ def eval_game_system_specific_command(command)
52
+ case command
53
+ when /^GS/i
54
+ return getCheckResult(command)
55
+ when /^MCPI/i
56
+ return murmurChantPrayInvoke(command)
57
+ when /^DB/i
58
+ return damageBonus(command)
59
+ else
60
+ return nil
61
+ end
62
+ end
63
+
64
+ def getCheckResult(command)
65
+ m = /^GS([-+]?\d+)?((>=?)(\d+))?$/i.match(command)
66
+ unless m
67
+ return nil
68
+ end
69
+
70
+ basis = m[1].to_i # 基準値
71
+ target = m[4].to_i
72
+ without_compare = m[2].nil? || target <= 0
73
+ cmp_op = m[3]
74
+
75
+ dice_list = @randomizer.roll_barabara(2, 6)
76
+ total = dice_list.sum()
77
+ diceText = dice_list.join(",")
78
+
79
+ achievement = basis + total # 達成値
80
+
81
+ fumble = diceText == "1,1"
82
+ critical = diceText == "6,6"
83
+
84
+ result = " > #{resultStr(achievement, target, cmp_op, fumble, critical)}"
85
+ if without_compare && !fumble && !critical
86
+ result = ""
87
+ end
88
+ basis_str = basis == 0 ? "" : "#{basis} + "
89
+
90
+ return "(#{command}) > #{basis_str}#{total}[#{diceText}] > #{achievement}#{result}"
91
+ end
92
+
93
+ def murmurChantPrayInvoke(command)
94
+ m = /^MCPI(\+?\d+)?\$(\d+)$/i.match(command)
95
+ unless m
96
+ return nil
97
+ end
98
+
99
+ luck = m[1].to_i # 幸運
100
+ volition = m[2].to_i # 因果点
101
+ if volition >= 12
102
+ return "因果点が12点以上の場合、因果点は使用できません。"
103
+ end
104
+
105
+ dice_list = @randomizer.roll_barabara(2, 6)
106
+ total = dice_list.sum()
107
+ diceText = dice_list.join(",")
108
+
109
+ achievement = total + luck
110
+
111
+ result = " > #{resultStr(achievement, volition, '>=', false, false)}"
112
+ luck_str = luck == 0 ? "" : "+#{luck}"
113
+
114
+ return "祈念(2d6#{luck_str}) > #{total}[#{diceText}]#{luck_str} > #{achievement}#{result}, 因果点:#{volition}点 → #{volition + 1}点"
115
+ end
116
+
117
+ def damageBonus(command)
118
+ m = /^DB(\d+)$/i.match(command)
119
+ unless m
120
+ return nil
121
+ end
122
+
123
+ num = m[1].to_i
124
+ fmt = "命中判定の効力値によるボーナス > "
125
+
126
+ if num < 15
127
+ return fmt + "なし"
128
+ end
129
+
130
+ times =
131
+ if num >= 40
132
+ 5
133
+ elsif num >= 30
134
+ 4
135
+ elsif num >= 25
136
+ 3
137
+ elsif num >= 20
138
+ 2
139
+ else
140
+ 1
141
+ end
142
+
143
+ dice_list = @randomizer.roll_barabara(times, 6)
144
+ total = dice_list.sum()
145
+ diceText = dice_list.join(",")
146
+
147
+ return fmt + "#{total}[#{diceText}] > #{total}"
148
+ end
149
+
150
+ # 判定結果の文字列を返す
151
+ # @param [Integer] achievement 達成値
152
+ # @param [Integer] target 目標値
153
+ # @param [String] cmp_op 達成値と目標値を比較する比較演算子
154
+ # @param [Boolean] fumble ファンブルかどうか
155
+ # @param [Boolean] critical クリティカルかどうか
156
+ # @return [String]
157
+ def resultStr(achievement, target, cmp_op, fumble, critical)
158
+ return '大失敗' if fumble
159
+ return '大成功' if critical
160
+ if cmp_op == ">="
161
+ return achievement >= target ? "成功" : "失敗"
162
+ else
163
+ return achievement > target ? "成功" : "失敗"
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class GoldenSkyStories < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'GoldenSkyStories'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'ゆうやけこやけ'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'ゆうやけこやけ'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~MESSAGETEXT
17
+ ※「ゆうやけこやけ」はダイスロールを使用しないシステムです。
18
+ ※このダイスボットは部屋のシステム名表示用となります。
19
+
20
+ ・下駄占い (GETA)
21
+ あーしたてんきになーれ
22
+ MESSAGETEXT
23
+
24
+ register_prefix(['geta'])
25
+
26
+ def initialize(command)
27
+ super(command)
28
+ @enabled_upcase_input = false
29
+ end
30
+
31
+ def eval_game_system_specific_command(command)
32
+ debug('eval_game_system_specific_command command', command)
33
+
34
+ result = ''
35
+
36
+ case command
37
+ when /geta/i
38
+ result = getaRoll()
39
+ end
40
+
41
+ return nil if result.empty?
42
+
43
+ return "#{command} > #{result}"
44
+ end
45
+
46
+ def getaRoll()
47
+ result = ""
48
+ dice = @randomizer.roll_once(7)
49
+
50
+ # result << " あーしたてんきになーれっ > [#{diceList.join(',')}] > "
51
+ result += "下駄占い > "
52
+
53
+ getaString = ''
54
+ case dice
55
+ when 1
56
+ getaString = '裏:あめ'
57
+ when 2
58
+ getaString = '表:はれ'
59
+ when 3
60
+ getaString = '裏:あめ'
61
+ when 4
62
+ getaString = '表:はれ'
63
+ when 5
64
+ getaString = '裏:あめ'
65
+ when 6
66
+ getaString = '表:はれ'
67
+ when 7
68
+ getaString = '横:くもり'
69
+ end
70
+
71
+ result += getaString
72
+
73
+ return result
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class Gorilla < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'Gorilla'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'ゴリラTRPG'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'こりらTRPG'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~MESSAGETEXT
17
+ 2D6ロール時のゴリティカル自動判定を行います。
18
+
19
+ G = 2D6のショートカット
20
+
21
+ 例) G>=7 : 2D6して7以上なら成功
22
+ MESSAGETEXT
23
+
24
+ register_prefix(['G.*'])
25
+
26
+ def change_text(string)
27
+ string = string.gsub(/^(S)?G/i) { "#{Regexp.last_match(1)}2D6" }
28
+ return string
29
+ end
30
+
31
+ def check_2D6(total, _dice_total, dice_list, cmp_op, target)
32
+ return '' if target == '?'
33
+
34
+ if dice_list == [5, 5]
35
+ " > ゴリティカル(自動的成功)"
36
+ elsif total.send(cmp_op, target)
37
+ " > 成功"
38
+ else
39
+ " > 失敗"
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,518 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class GranCrest < Base
6
+ # ゲームシステムの識別子
7
+ ID = 'GranCrest'
8
+
9
+ # ゲームシステム名
10
+ NAME = 'グランクレストRPG'
11
+
12
+ # ゲームシステム名の読みがな
13
+ SORT_KEY = 'くらんくれすとRPG'
14
+
15
+ # ダイスボットの使い方
16
+ HELP_MESSAGE = <<~MESSAGETEXT
17
+ ・2D6の目標値判定でクリティカル処理
18
+  例)3d6>=19 3d6+5>=24
19
+ ・邂逅表(MT)
20
+ ・感情表(-FT)
21
+  ポジティブ感情表(PFT)、ネガティブ感情表(NFT)
22
+ ・国特徴表(-CT)
23
+  カテゴリー表(CT)、地形表(TCT)、産業表(ICT)、人物表(PCT)
24
+  組織表(OCT)、拠点表(BCT)、文化表(CCT)
25
+ MESSAGETEXT
26
+
27
+ register_prefix([
28
+ 'MT',
29
+ 'PFT',
30
+ 'NFT',
31
+ 'CT',
32
+ 'TCT',
33
+ 'ICT',
34
+ 'PCT',
35
+ 'OCT',
36
+ 'BCT',
37
+ 'CCT'
38
+ ])
39
+
40
+ def initialize(command)
41
+ super(command)
42
+
43
+ @sort_add_dice = true
44
+ @enabled_d66 = true
45
+ @d66_sort_type = D66SortType::NO_SORT
46
+ @round_type = RoundType::FLOOR
47
+ end
48
+
49
+ # ゲーム別成功度判定(nD6)
50
+ def check_nD6(total, _dice_total, dice_list, cmp_op, target)
51
+ result = ''
52
+
53
+ if dice_list.count(6) >= 2
54
+ total += 10
55
+ result = "(クリティカル) > #{total}"
56
+ end
57
+
58
+ if cmp_op != :>= || target == '?'
59
+ return result
60
+ end
61
+
62
+ if total >= target
63
+ result += " > 成功"
64
+ else
65
+ result += " > 失敗"
66
+ end
67
+
68
+ return result
69
+ end
70
+
71
+ alias check_2D6 check_nD6
72
+
73
+ def eval_game_system_specific_command(command)
74
+ debug("eval_game_system_specific_command command", command)
75
+
76
+ tableName = ""
77
+ result = ""
78
+
79
+ case command
80
+
81
+ when "MT"
82
+ # 邂逅表
83
+ tableName, result, number = getMeetingTableResult()
84
+ when /^.+FT$/i
85
+ # 感情表
86
+ tableName, result, number = getFeelingTableResult(command)
87
+
88
+ when /^.*CT$/i
89
+ # 国特徴表
90
+ tableName, result, number = getCountryTableResult(command)
91
+
92
+ else
93
+ debug("eval_game_system_specific_command commandNOT matched -> command:", command)
94
+ return ""
95
+ end
96
+
97
+ text = "#{tableName}(#{number}) > #{result}"
98
+ return text
99
+ end
100
+
101
+ def getMeetingTableResult
102
+ tableName = "邂逅表"
103
+ table = [
104
+ "師匠\nあなたは彼(彼女)から多くのものを学んだ。あなたにとって、彼(彼女)は師であった。",
105
+ "保護者\nあなたは彼(彼女)を兄や姉、あるいは父親のように慕っている。もちろん本当に血縁関係があってもよい。",
106
+ "恩人\nあなたは彼(彼女)に恩義があり、その恩を返したいと思っている。",
107
+ "忠誠\nあなたは彼(彼女)に忠誠を誓っている。それはあなたが望んでそうしているのか、別の事情があるのかは好きに設定すること。",
108
+ "借り\nあなたは彼(彼女)に何らかの借りがある。その借りは必ず返さねばならないものだ。",
109
+ "興味\nあなたは彼(彼女)に興味がある。善悪の問題ではない。どこかで、彼(彼女)を面白いと感じるのだ。",
110
+ "師匠\nあなたは彼(彼女)から多くのものを学んだ。あなたにとって、彼(彼女)は師であった。",
111
+ "保護者\nあなたは彼(彼女)を兄や姉、あるいは父親のように慕っている。もちろん本当に血縁関係があってもよい。",
112
+ "恩人\nあなたは彼(彼女)に恩義があり、その恩を返したいと思っている。",
113
+ "忠誠\nあなたは彼(彼女)に忠誠を誓っている。それはあなたが望んでそうしているのか、別の事情があるのかは好きに設定すること。",
114
+ "借り\nあなたは彼(彼女)に何らかの借りがある。その借りは必ず返さねばならないものだ。",
115
+ "興味\nあなたは彼(彼女)に興味がある。善悪の問題ではない。どこかで、彼(彼女)を面白いと感じるのだ。",
116
+ "家族\nあなたは彼(彼女)は家族同然の関係だ。もちろん本当に血縁関係があってもよい。",
117
+ "友人\nあなたと彼(彼女)は友人だ。共に時間を過ごし、その友情を育んできた。",
118
+ "仲間\nあなたと彼(彼女)は仲間同士だ。同じ目的、同じ志を持ち、共に協力してこれまで事に当たってきた。",
119
+ "仕事\nあなたと彼(彼女)は仕事上でのつきあいだ。仕事相手として信頼できる相手ではあるが、それ以上でもそれ以下でもない。",
120
+ "腐れ縁\nあなたと彼(彼女)は、何かにつけてよく顔を合わせる腐れ縁だ。長いつきあいと言えるだろう。",
121
+ "忘却\nあなたと彼(彼女)は、どこかで出会ったことがある。だが、それがいつ、どこだったかを思い出すことはできない。",
122
+ "家族\nあなたは彼(彼女)は家族同然の関係だ。もちろん本当に血縁関係があってもよい。",
123
+ "友人\nあなたと彼(彼女)は友人だ。共に時間を過ごし、その友情を育んできた。",
124
+ "仲間\nあなたと彼(彼女)は仲間同士だ。同じ目的、同じ志を持ち、共に協力してこれまで事に当たってきた。",
125
+ "仕事\nあなたと彼(彼女)は仕事上でのつきあいだ。仕事相手として信頼できる相手ではあるが、それ以上でもそれ以下でもない。",
126
+ "腐れ縁\nあなたと彼(彼女)は、何かにつけてよく顔を合わせる腐れ縁だ。長いつきあいと言えるだろう。",
127
+ "忘却\nあなたと彼(彼女)は、どこかで出会ったことがある。だが、それがいつ、どこだったかを思い出すことはできない。",
128
+ "慕情\nあなたは彼(彼女)を慕っている。心の底から、純粋に、それは恋愛感情と呼べるものかもしれない。",
129
+ "貸し\nあなたは彼(彼女)に貸しがある。いつか、この貸しは必ず返してもらわねばならない。",
130
+ "弟妹\nあなたは彼(彼女)を弟や妹のように思っている。もちろん本当に血縁関係があってもよい。",
131
+ "秘密\nあなたと彼(彼女)は秘密を共有している仲だ。一方的に秘密を握られているのかもしれない。",
132
+ "好敵手\nあなたと彼(彼女)は好敵手――ライバルという関係がふさわしい。いつかヤツに勝つため、あなたは研鑽を積む。",
133
+ "仇敵\n彼(彼女)はあなたの仇敵だ。いつかヤツを殺し、雪辱を果たさなければ気が済まない。",
134
+ "慕情\nあなたは彼(彼女)を慕っている。心の底から、純粋に、それは恋愛感情と呼べるものかもしれない。",
135
+ "貸し\nあなたは彼(彼女)に貸しがある。いつか、この貸しは必ず返してもらわねばならない。",
136
+ "弟妹\nあなたは彼(彼女)を弟や妹のように思っている。もちろん本当に血縁関係があってもよい。",
137
+ "秘密\nあなたと彼(彼女)は秘密を共有している仲だ。一方的に秘密を握られているのかもしれない。",
138
+ "好敵手\nあなたと彼(彼女)は好敵手――ライバルという関係がふさわしい。いつかヤツに勝つため、あなたは研鑽を積む。",
139
+ "仇敵\n彼(彼女)はあなたの仇敵だ。いつかヤツを殺し、雪辱を果たさなければ気が済まない。",
140
+ ]
141
+
142
+ result, number = get_table_by_d66(table)
143
+
144
+ return tableName, result, number
145
+ end
146
+
147
+ def getFeelingTableResult(command)
148
+ debug("getFeelingTableResult command", command)
149
+
150
+ tableName = ''
151
+ table = []
152
+
153
+ case command
154
+ when /^PFT$/i, /^PositiveFT$/i
155
+ tableName = "ポジティブ感情表"
156
+ table = [
157
+ "好奇心\nあなたは彼(彼女)に好奇心を感じた。彼(彼女)はとても面白い。もっと知ってみたいと感じた。",
158
+ "憧憬\nあなたは彼(彼女)にあこがれを感じた。彼(彼女)のようになりたいと思った。その思いは今でも続いている。",
159
+ "尊敬\nあなたは彼(彼女)を尊敬している。彼(彼女)を敬い、決して下には見ないだろう。",
160
+ "同志\nあなたは彼(彼女)と同じ志を持つものだと感じている。共に道を行く仲間、もしかしたら好敵手なのかもしれない。",
161
+ "友情\nあなたは彼(彼女)に友情を感じている。彼(彼女)は得がたい友人だ。あなたを助け、そしてあなたも向こうを助けることだろう。",
162
+ "慕情\nあなたは彼(彼女)にほのかな愛情を感じている。それは恋と呼ばれるものかもしれないし、違うかもしれない。",
163
+ "好奇心\nあなたは彼(彼女)に好奇心を感じた。彼(彼女)はとても面白い。もっと知ってみたいと感じた。",
164
+ "憧憬\nあなたは彼(彼女)にあこがれを感じた。彼(彼女)のようになりたいと思った。その思いは今でも続いている。",
165
+ "尊敬\nあなたは彼(彼女)を尊敬している。彼(彼女)を敬い、決して下には見ないだろう。",
166
+ "同志\nあなたは彼(彼女)と同じ志を持つものだと感じている。共に道を行く仲間、もしかしたら好敵手なのかもしれない。",
167
+ "友情\nあなたは彼(彼女)に友情を感じている。彼(彼女)は得がたい友人だ。あなたを助け、そしてあなたも向こうを助けることだろう。",
168
+ "慕情\nあなたは彼(彼女)にほのかな愛情を感じている。それは恋と呼ばれるものかもしれないし、違うかもしれない。",
169
+ "庇護\nあなたは彼(彼女)を守ってやらねばならぬ、と感じている。あなたが彼(彼女)を苦難から救うのだ。",
170
+ "幸福感\nあなたは彼(彼女)を見ると、幸福感に包まれる。彼(彼女)がそばにいる、それがあなたにとっては幸せなのだ。",
171
+ "信頼\nあなたは彼(彼女)を信用している。その能力を、もしくは性格を、信じ、頼っている。",
172
+ "尽力\nあなたは彼(彼女)に力を尽くしたいと考えている。彼(彼女)の役に立つ、それがあなたのしたいことだ。",
173
+ "可能性\nあなたは彼(彼女)に、何らかの可能性を感じている。今はまだ未熟でも、彼(彼女)はいつか花開くだろう。",
174
+ "慈愛\nあなたは彼(彼女)に愛情を感じている。見返りなどなくとも、あなたは彼(彼女)の力となるだろう。",
175
+ "庇護\nあなたは彼(彼女)を守ってやらねばならぬ、と感じている。あなたが彼(彼女)を苦難から救うのだ。",
176
+ "幸福感\nあなたは彼(彼女)を見ると、幸福感に包まれる。彼(彼女)がそばにいる、それがあなたにとっては幸せなのだ。",
177
+ "信頼\nあなたは彼(彼女)を信用している。その能力を、もしくは性格を、信じ、頼っている。",
178
+ "尽力\nあなたは彼(彼女)に力を尽くしたいと考えている。彼(彼女)の役に立つ、それがあなたのしたいことだ。",
179
+ "可能性\nあなたは彼(彼女)に、何らかの可能性を感じている。今はまだ未熟でも、彼(彼女)はいつか花開くだろう。",
180
+ "慈愛\nあなたは彼(彼女)に愛情を感じている。見返りなどなくとも、あなたは彼(彼女)の力となるだろう。",
181
+ "かわいい\nあなたは彼(彼女)をかわいいと思っている。いつまでも愛でることができたら、それはどんなに幸せだろうか。",
182
+ "同情\nあなたは彼(彼女)に同情している。その過去か、それとも別のものか、あなたは彼(彼女)をかわいそうだと思っている。",
183
+ "連帯感\nあなたは彼(彼女)に連帯感を持っている。彼(彼女)はどこかで自分と似ていると思っている。",
184
+ "親近感\nあなたは彼(彼女)に親近感を抱いている。彼(彼女)は家族のようなものだ。そう接してもよいだろう。",
185
+ "感服\nあなたは彼(彼女)に感服している。その能力か、それとも別の事柄か、彼(彼女)をすごいと感じ、認めている。",
186
+ "誠意\nあなたは彼(彼女)に誠意を感じている。他がどうであろうとも、彼(彼女)はあなたにとってみれば誠実だ。",
187
+ "かわいい\nあなたは彼(彼女)をかわいいと思っている。いつまでも愛でることができたら、それはどんなに幸せだろうか。",
188
+ "同情\nあなたは彼(彼女)に同情している。その過去か、それとも別のものか、あなたは彼(彼女)をかわいそうだと思っている。",
189
+ "連帯感\nあなたは彼(彼女)に連帯感を持っている。彼(彼女)はどこかで自分と似ていると思っている。",
190
+ "親近感\nあなたは彼(彼女)に親近感を抱いている。彼(彼女)は家族のようなものだ。そう接してもよいだろう。",
191
+ "感服\nあなたは彼(彼女)に感服している。その能力か、それとも別の事柄か、彼(彼女)をすごいと感じ、認めている。",
192
+ "誠意\nあなたは彼(彼女)に誠意を感じている。他がどうであろうとも、彼(彼女)はあなたにとってみれば誠実だ。",
193
+ ]
194
+ when /^NFT$/i, /^NegativeFT$/i
195
+ tableName = "ネガティブ感情表"
196
+ table = [
197
+ "憤憑\nあなたは彼(彼女)に憤憑を覚えている。性格か、その癖か、何かにあなたは怒りを覚えているのだ。",
198
+ "悲哀\nあなたは彼(彼女)に悲哀を感じている。その過去か、それとも別のものか、あなたは彼(彼女)をかわいそうだと感じている。",
199
+ "寂しさ\nあなたは彼(彼女)を見ると寂しさを覚える。もっと距離を近づけたいのか、別の理由なのか、ともあれ、どこか寂しいのだ。",
200
+ "食傷\nあなたは彼(彼女)に食傷を覚えている。口癖や考え方、あるいは別のものにうんざりしているのだ。",
201
+ "敵愾心\nあなたは彼(彼女)に敵愾心を覚えている。ここだけは彼(彼女)に負けたくないと思っているのだ。",
202
+ "不快感\nあなたは彼(彼女)に不快感を覚えている。他のところはともかく、どうしてもここだけはイヤだ、という部分があるのだ。",
203
+ "憤憑\nあなたは彼(彼女)に憤憑を覚えている。性格か、その癖か、何かにあなたは怒りを覚えているのだ。",
204
+ "悲哀\nあなたは彼(彼女)に悲哀を感じている。その過去か、それとも別のものか、あなたは彼(彼女)をかわいそうだと感じている。",
205
+ "寂しさ\nあなたは彼(彼女)を見ると寂しさを覚える。もっと距離を近づけたいのか、別の理由なのか、ともあれ、どこか寂しいのだ。",
206
+ "食傷\nあなたは彼(彼女)に食傷を覚えている。口癖や考え方、あるいは別のものにうんざりしているのだ。",
207
+ "敵愾心\nあなたは彼(彼女)に敵愾心を覚えている。ここだけは彼(彼女)に負けたくないと思っているのだ。",
208
+ "不快感\nあなたは彼(彼女)に不快感を覚えている。他のところはともかく、どうしてもここだけはイヤだ、という部分があるのだ。",
209
+ "猜疑心\nあなたは彼(彼女)に猜疑心を覚えている。なぜか、彼(彼女)のことを信じられない。どこかで疑ってしまうのだ。",
210
+ "嫌悪\nあなたは彼(彼女)のことを嫌っている。考え方なのか、癖なのか、どうしても拒否感を覚えずにはいられない。",
211
+ "隔意\nあなたは彼(彼女)とは隔たりがあると感じている。何かの分野について、向こうと自分には距離があると思っている。",
212
+ "憎悪\nあなたは彼(彼女)を憎んでいる。ここだけは許せない、という部分について、憎しみを燃やさずにはいられない。",
213
+ "偏愛\nあなたは彼(彼女)を愛している。だが、その愛はどこか偏りがある、一方通行気味のものだ。",
214
+ "疎外感\nあなたは彼(彼女)に疎外感を覚えている。なぜか仲間はずれにされているような、そんな感覚がまとわりつく。",
215
+ "猜疑心\nあなたは彼(彼女)に猜疑心を覚えている。なぜか、彼(彼女)のことを信じられない。どこかで疑ってしまうのだ。",
216
+ "嫌悪\nあなたは彼(彼女)のことを嫌っている。考え方なのか、癖なのか、どうしても拒否感を覚えずにはいられない。",
217
+ "隔意\nあなたは彼(彼女)とは隔たりがあると感じている。何かの分野について、向こうと自分には距離があると思っている。",
218
+ "憎悪\nあなたは彼(彼女)を憎んでいる。ここだけは許せない、という部分について、憎しみを燃やさずにはいられない。",
219
+ "偏愛\nあなたは彼(彼女)を愛している。だが、その愛はどこか偏りがある、一方通行気味のものだ。",
220
+ "疎外感\nあなたは彼(彼女)に疎外感を覚えている。なぜか仲間はずれにされているような、そんな感覚がまとわりつく。",
221
+ "劣等感\nあなたは彼(彼女)に劣等感を覚えている。彼(彼女)には敵わない、なぜか上に行かれる、そんなコンプレックスを持っている。",
222
+ "不安\nあなたは彼(彼女)を見ると、どこか不安を覚える。理由は無いのかもしれない、なぜかイヤな予感を覚えるのだ。",
223
+ "恐怖\nあなたは彼(彼女)を怖がっている。その能力や考え方、あるいは彼(彼女)自身ではなく、失うことを恐れているのかもしれない。",
224
+ "嫉妬\nあなたは彼(彼女)に嫉妬している。その過去や能力、あるいは環境を羨ましいと思わずにはいられない。",
225
+ "驚異\nあなたは彼(彼女)に脅威を感じている。自分にとって致命的な存在になるかもしれないと考えている。",
226
+ "侮蔑\nあなたは彼(彼女)を侮り、蔑んでいる。彼(彼女)は自分より下の存在であると思っている。",
227
+ "劣等感\nあなたは彼(彼女)に劣等感を覚えている。彼(彼女)には敵わない、なぜか上に行かれる、そんなコンプレックスを持っている。",
228
+ "不安\nあなたは彼(彼女)を見ると、どこか不安を覚える。理由は無いのかもしれない、なぜかイヤな予感を覚えるのだ。",
229
+ "恐怖\nあなたは彼(彼女)を怖がっている。その能力や考え方、あるいは彼(彼女)自身ではなく、失うことを恐れているのかもしれない。",
230
+ "嫉妬\nあなたは彼(彼女)に嫉妬している。その過去や能力、あるいは環境を羨ましいと思わずにはいられない。",
231
+ "驚異\nあなたは彼(彼女)に脅威を感じている。自分にとって致命的な存在になるかもしれないと考えている。",
232
+ "侮蔑\nあなたは彼(彼女)を侮り、蔑んでいる。彼(彼女)は自分より下の存在であると思っている。",
233
+ ]
234
+ end
235
+
236
+ result, number = get_table_by_d66(table)
237
+ debug("getFeelingTableResult result", result)
238
+
239
+ return tableName, result, number
240
+ end
241
+
242
+ def getCountryTableResult(command)
243
+ debug("getCountryTableResult command", command)
244
+
245
+ tableName = ''
246
+ table = []
247
+
248
+ if /^CT$/i =~ command || /^CategoryCT$/i =~ command
249
+ tableName = "国特徴・カテゴリー表"
250
+ table = [
251
+ "地形(TCT)\n森林、山岳、河川など、その国に存在する地勢を表す。",
252
+ "産業(ICT)\n農耕が盛ん、鍛冶技術に優れるなど、その国の産業を表す。",
253
+ "人物(PCT)\n腕のよい鍛冶屋がいる、知識豊富な薬師がいるなど、その国にいる人物を表す。",
254
+ "組織(OCT)\n狩人の組合がある、キャラバンがいるなど、その国にある組織を表す。",
255
+ "拠点(BCT)\n砦や関所などの軍用拠点の他、市場や街道など、その国にある拠点を表す。",
256
+ "文化(CCT)\n食のバリエーションが多い、森に造詣が深いなどのその国の文化や風習を表す。",
257
+ ]
258
+
259
+ result, number = get_table_by_1d6(table)
260
+ else
261
+ case command
262
+ when /^TCT$/i
263
+ tableName = "国特徴・地形表"
264
+ table = [
265
+ "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
266
+ "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
267
+ "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
268
+ "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
269
+ "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
270
+ "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
271
+ "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
272
+ "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
273
+ "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
274
+ "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
275
+ "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
276
+ "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
277
+ "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
278
+ "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
279
+ "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
280
+ "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
281
+ "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
282
+ "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
283
+ "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
284
+ "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
285
+ "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
286
+ "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
287
+ "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
288
+ "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
289
+ "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
290
+ "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
291
+ "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
292
+ "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
293
+ "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
294
+ "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
295
+ "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
296
+ "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
297
+ "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
298
+ "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
299
+ "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
300
+ "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
301
+ ]
302
+
303
+ when /^ICT$/i
304
+ tableName = "国特徴・産業表"
305
+ table = [
306
+ "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
307
+ "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
308
+ "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
309
+ "牧畜\nあなたの国は広大な領地を生かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
310
+ "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
311
+ "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
312
+ "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
313
+ "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
314
+ "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
315
+ "牧畜\nあなたの国は広大な領地を活かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
316
+ "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
317
+ "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
318
+ "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
319
+ "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
320
+ "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
321
+ "牧畜\nあなたの国は広大な領地を活かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
322
+ "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
323
+ "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
324
+ "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
325
+ "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、鉱物+2、森林-1",
326
+ "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
327
+ "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
328
+ "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
329
+ "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
330
+ "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
331
+ "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、資金+2、森林-1",
332
+ "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
333
+ "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
334
+ "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
335
+ "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
336
+ "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
337
+ "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、資金+2、森林-1",
338
+ "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
339
+ "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
340
+ "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
341
+ "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
342
+ ]
343
+
344
+ when /^PCT$/i
345
+ tableName = "国特徴・人物表"
346
+ table = [
347
+ "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
348
+ "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
349
+ "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
350
+ "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
351
+ "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
352
+ "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
353
+ "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
354
+ "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
355
+ "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
356
+ "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
357
+ "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
358
+ "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
359
+ "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
360
+ "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
361
+ "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
362
+ "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
363
+ "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
364
+ "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
365
+ "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
366
+ "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
367
+ "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
368
+ "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
369
+ "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
370
+ "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
371
+ "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
372
+ "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
373
+ "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
374
+ "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
375
+ "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
376
+ "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
377
+ "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
378
+ "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
379
+ "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
380
+ "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
381
+ "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
382
+ "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
383
+ ]
384
+
385
+ when /^OCT$/i
386
+ tableName = "国特徴・組織表"
387
+ table = [
388
+ "運搬業者\nあなたの国には水運や運搬など、輸送に携わる人々が多い。\n食料+3",
389
+ "職人学校\nあなたの国は技術を伝授し発展させる学校を有している。\n技術+3",
390
+ "森番\nあなたの国は森を守るための独自の警察を有している。\n森林+3",
391
+ "金掘り衆\nあなたの国はいわゆる山師を組織化しており、鉱山開発に熱心だ。\n鉱物+3",
392
+ "民会\nあなたの国は豪商や大農場主からなる議会を持ち、意見を取り入れている。\n資金+3",
393
+ "飛脚\nあなたの国は飛脚や早馬といった高速通信網が発達している。\n馬+3",
394
+ "運搬業者\nあなたの国には水運や運搬など、輸送に携わる人々が多い。\n食料+3",
395
+ "職人学校\nあなたの国は技術を伝授し発展させる学校を有している。\n技術+3",
396
+ "森番\nあなたの国は森を守るための独自の警察を有している。\n森林+3",
397
+ "金掘り衆\nあなたの国はいわゆる山師を組織化しており、鉱山開発に熱心だ。\n鉱物+3",
398
+ "民会\nあなたの国は豪商や大農場主からなる議会を持ち、意見を取り入れている。\n資金+3",
399
+ "飛脚\nあなたの国は飛脚や早馬といった高速通信網が発達している。\n馬+3",
400
+ "運搬業者\nあなたの国には水運や運搬など、輸送に携わる人々が多い。\n食料+3",
401
+ "職人学校\nあなたの国は技術を伝授し発展させる学校を有している。\n技術+3",
402
+ "森番\nあなたの国は森を守るための独自の警察を有している。\n森林+3",
403
+ "金掘り衆\nあなたの国はいわゆる山師を組織化しており、鉱山開発に熱心だ。\n鉱物+3",
404
+ "民会\nあなたの国は豪商や大農場主からなる議会を持ち、意見を取り入れている。\n資金+3",
405
+ "飛脚\nあなたの国は飛脚や早馬といった高速通信網が発達している。\n馬+3",
406
+ "放浪民\nあなたの国には、騎馬民族や放浪民といった人々が訪れることが多い。\n馬+2、資金+1",
407
+ "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
408
+ "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
409
+ "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
410
+ "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
411
+ "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
412
+ "放浪民\nあなたの国には、騎馬民族や放浪民といった人々が訪れることが多い。\n馬+2、資金+1",
413
+ "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
414
+ "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
415
+ "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
416
+ "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
417
+ "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
418
+ "放浪民\nあなたの国には、騎馬民族や放浪民といった人々が訪れることが多い。\n馬+2、資金+1",
419
+ "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
420
+ "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
421
+ "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
422
+ "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
423
+ "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
424
+ ]
425
+
426
+ when /^BCT$/i
427
+ tableName = "国特徴・拠点表"
428
+ table = [
429
+ "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
430
+ "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
431
+ "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
432
+ "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
433
+ "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
434
+ "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
435
+ "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
436
+ "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
437
+ "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
438
+ "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
439
+ "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
440
+ "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
441
+ "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
442
+ "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
443
+ "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
444
+ "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
445
+ "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
446
+ "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
447
+ "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
448
+ "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
449
+ "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
450
+ "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
451
+ "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
452
+ "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
453
+ "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
454
+ "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
455
+ "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
456
+ "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
457
+ "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
458
+ "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
459
+ "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
460
+ "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
461
+ "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
462
+ "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
463
+ "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
464
+ "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
465
+ ]
466
+
467
+ when /^CCT$/i
468
+ tableName = "国特徴・文化表"
469
+ table = [
470
+ "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
471
+ "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
472
+ "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
473
+ "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
474
+ "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
475
+ "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
476
+ "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
477
+ "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
478
+ "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
479
+ "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
480
+ "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
481
+ "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
482
+ "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
483
+ "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
484
+ "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
485
+ "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
486
+ "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
487
+ "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
488
+ "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
489
+ "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
490
+ "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
491
+ "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
492
+ "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
493
+ "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
494
+ "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
495
+ "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
496
+ "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
497
+ "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
498
+ "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
499
+ "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
500
+ "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
501
+ "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
502
+ "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
503
+ "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
504
+ "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
505
+ "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
506
+ ]
507
+ end
508
+
509
+ result, number = get_table_by_d66(table)
510
+ end
511
+
512
+ debug("getCountryTableResult result", result)
513
+
514
+ return tableName, result, number
515
+ end
516
+ end
517
+ end
518
+ end