bcdice 3.1.2 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +154 -75
  3. data/README.md +3 -2
  4. data/i18n/Cthulhu/zh_hans.yml +11 -0
  5. data/i18n/MagicaLogia/zh_hans.yml +564 -0
  6. data/i18n/StellarKnights/ja_jp.yml +498 -0
  7. data/i18n/StellarKnights/ko_kr.yml +498 -0
  8. data/i18n/zh_hans.yml +7 -0
  9. data/lib/bcdice/command/parsed.rb +11 -3
  10. data/lib/bcdice/command/parser.rb +179 -100
  11. data/lib/bcdice/common_command/add_dice.rb +1 -1
  12. data/lib/bcdice/common_command/barabara_dice/node.rb +2 -2
  13. data/lib/bcdice/common_command/barabara_dice/result.rb +6 -0
  14. data/lib/bcdice/common_command/calc.rb +1 -1
  15. data/lib/bcdice/common_command/choice.rb +78 -7
  16. data/lib/bcdice/dice_table.rb +3 -0
  17. data/lib/bcdice/dice_table/d66_half_grid_table.rb +33 -0
  18. data/lib/bcdice/dice_table/d66_left_range_table.rb +29 -0
  19. data/lib/bcdice/dice_table/d66_one_third_table.rb +34 -0
  20. data/lib/bcdice/game_system.rb +10 -0
  21. data/lib/bcdice/game_system/AceKillerGene.rb +1 -1
  22. data/lib/bcdice/game_system/Ainecadette.rb +68 -0
  23. data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
  24. data/lib/bcdice/game_system/Alsetto.rb +1 -1
  25. data/lib/bcdice/game_system/AlterRaise.rb +2 -2
  26. data/lib/bcdice/game_system/Amadeus.rb +110 -93
  27. data/lib/bcdice/game_system/AngelGear.rb +10 -5
  28. data/lib/bcdice/game_system/AnimaAnimus.rb +16 -9
  29. data/lib/bcdice/game_system/Arianrhod.rb +6 -8
  30. data/lib/bcdice/game_system/Avandner.rb +1 -1
  31. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  32. data/lib/bcdice/game_system/BattleTech.rb +109 -28
  33. data/lib/bcdice/game_system/BeastBindTrinity.rb +28 -12
  34. data/lib/bcdice/game_system/BeginningIdol.rb +5 -5
  35. data/lib/bcdice/game_system/BeginningIdol_Korean.rb +5 -5
  36. data/lib/bcdice/game_system/BladeOfArcana.rb +1 -1
  37. data/lib/bcdice/game_system/BlindMythos.rb +39 -38
  38. data/lib/bcdice/game_system/BloodCrusade.rb +6 -7
  39. data/lib/bcdice/game_system/BloodMoon.rb +9 -8
  40. data/lib/bcdice/game_system/CardRanker.rb +8 -7
  41. data/lib/bcdice/game_system/ChaosFlare.rb +21 -15
  42. data/lib/bcdice/game_system/Chill.rb +10 -10
  43. data/lib/bcdice/game_system/Chill3.rb +9 -9
  44. data/lib/bcdice/game_system/CodeLayerd.rb +39 -39
  45. data/lib/bcdice/game_system/ColossalHunter.rb +34 -47
  46. data/lib/bcdice/game_system/CrashWorld.rb +1 -1
  47. data/lib/bcdice/game_system/Cthulhu.rb +1 -1
  48. data/lib/bcdice/game_system/Cthulhu7th.rb +50 -12
  49. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
  50. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
  51. data/lib/bcdice/game_system/Cthulhu_SimplifiedChinese.rb +60 -0
  52. data/lib/bcdice/game_system/DarkBlaze.rb +0 -11
  53. data/lib/bcdice/game_system/DarkDaysDrive.rb +8 -7
  54. data/lib/bcdice/game_system/DeadlineHeroes.rb +11 -10
  55. data/lib/bcdice/game_system/DemonParasite.rb +5 -13
  56. data/lib/bcdice/game_system/DesperateRun.rb +1 -1
  57. data/lib/bcdice/game_system/DoubleCross.rb +3 -1
  58. data/lib/bcdice/game_system/Dracurouge.rb +3 -2
  59. data/lib/bcdice/game_system/EclipsePhase.rb +14 -14
  60. data/lib/bcdice/game_system/Elric.rb +18 -14
  61. data/lib/bcdice/game_system/Elysion.rb +1 -1
  62. data/lib/bcdice/game_system/EmbryoMachine.rb +9 -8
  63. data/lib/bcdice/game_system/Emoklore.rb +25 -20
  64. data/lib/bcdice/game_system/Fiasco.rb +1 -1
  65. data/lib/bcdice/game_system/FilledWith.rb +4 -0
  66. data/lib/bcdice/game_system/FutariSousa.rb +12 -10
  67. data/lib/bcdice/game_system/GURPS.rb +17 -28
  68. data/lib/bcdice/game_system/Garako.rb +1 -1
  69. data/lib/bcdice/game_system/GardenOrder.rb +12 -7
  70. data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
  71. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  72. data/lib/bcdice/game_system/Gorilla.rb +2 -8
  73. data/lib/bcdice/game_system/GranCrest.rb +189 -417
  74. data/lib/bcdice/game_system/Gundog.rb +9 -8
  75. data/lib/bcdice/game_system/GundogRevised.rb +10 -9
  76. data/lib/bcdice/game_system/GundogZero.rb +1 -1
  77. data/lib/bcdice/game_system/GurpsFW.rb +16 -16
  78. data/lib/bcdice/game_system/HarnMaster.rb +19 -26
  79. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
  80. data/lib/bcdice/game_system/Hieizan.rb +12 -21
  81. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  82. data/lib/bcdice/game_system/HuntersMoon.rb +5 -10
  83. data/lib/bcdice/game_system/InfiniteFantasia.rb +19 -17
  84. data/lib/bcdice/game_system/Insane.rb +13 -20
  85. data/lib/bcdice/game_system/Irisbane.rb +154 -0
  86. data/lib/bcdice/game_system/IthaWenUa.rb +8 -15
  87. data/lib/bcdice/game_system/JamesBond.rb +10 -10
  88. data/lib/bcdice/game_system/JekyllAndHyde.rb +1 -1
  89. data/lib/bcdice/game_system/Kamigakari.rb +1 -1
  90. data/lib/bcdice/game_system/KanColle.rb +4 -9
  91. data/lib/bcdice/game_system/KemonoNoMori.rb +26 -39
  92. data/lib/bcdice/game_system/KillDeathBusiness.rb +7 -15
  93. data/lib/bcdice/game_system/KurayamiCrying.rb +141 -2
  94. data/lib/bcdice/game_system/LiveraDoll.rb +254 -304
  95. data/lib/bcdice/game_system/LogHorizon.rb +13 -10
  96. data/lib/bcdice/game_system/MagicaLogia_SimplifiedChinese.rb +66 -0
  97. data/lib/bcdice/game_system/MeikyuDays.rb +10 -8
  98. data/lib/bcdice/game_system/MeikyuKingdom.rb +26 -26
  99. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -3
  100. data/lib/bcdice/game_system/MetalHead.rb +12 -22
  101. data/lib/bcdice/game_system/MetalHeadExtream.rb +5 -5
  102. data/lib/bcdice/game_system/MonotoneMuseum.rb +8 -6
  103. data/lib/bcdice/game_system/Nechronica.rb +63 -90
  104. data/lib/bcdice/game_system/NinjaSlayer.rb +6 -7
  105. data/lib/bcdice/game_system/NjslyrBattle.rb +8 -11
  106. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  107. data/lib/bcdice/game_system/Paradiso.rb +3 -3
  108. data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
  109. data/lib/bcdice/game_system/Peekaboo.rb +4 -9
  110. data/lib/bcdice/game_system/Pendragon.rb +7 -7
  111. data/lib/bcdice/game_system/PersonaO.rb +86 -0
  112. data/lib/bcdice/game_system/PhantasmAdventure.rb +8 -8
  113. data/lib/bcdice/game_system/Postman.rb +1 -1
  114. data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
  115. data/lib/bcdice/game_system/Raisondetre.rb +2 -2
  116. data/lib/bcdice/game_system/Revulture.rb +123 -0
  117. data/lib/bcdice/game_system/RuneQuest.rb +8 -8
  118. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  119. data/lib/bcdice/game_system/SRS.rb +17 -16
  120. data/lib/bcdice/game_system/SamsaraBallad.rb +38 -11
  121. data/lib/bcdice/game_system/Satasupe.rb +32 -32
  122. data/lib/bcdice/game_system/ScreamHighSchool.rb +5 -5
  123. data/lib/bcdice/game_system/SharedFantasia.rb +19 -23
  124. data/lib/bcdice/game_system/ShinobiGami.rb +14 -6
  125. data/lib/bcdice/game_system/Skynauts.rb +103 -142
  126. data/lib/bcdice/game_system/SkynautsBouken.rb +228 -0
  127. data/lib/bcdice/game_system/StarryDolls.rb +318 -0
  128. data/lib/bcdice/game_system/SteamPunkers.rb +25 -7
  129. data/lib/bcdice/game_system/StellarKnights.rb +85 -706
  130. data/lib/bcdice/game_system/StellarKnights_Korean.rb +79 -0
  131. data/lib/bcdice/game_system/SterileLife.rb +2 -3
  132. data/lib/bcdice/game_system/StratoShout.rb +8 -16
  133. data/lib/bcdice/game_system/Strave.rb +1 -1
  134. data/lib/bcdice/game_system/SwordWorld.rb +16 -7
  135. data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -2
  136. data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -2
  137. data/lib/bcdice/game_system/TherapieSein.rb +1 -1
  138. data/lib/bcdice/game_system/TokumeiTenkousei.rb +4 -3
  139. data/lib/bcdice/game_system/TokyoGhostResearch.rb +1 -1
  140. data/lib/bcdice/game_system/TorgEternity.rb +2 -2
  141. data/lib/bcdice/game_system/ToshiakiHolyGrailWar.rb +92 -0
  142. data/lib/bcdice/game_system/TrinitySeven.rb +279 -280
  143. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  144. data/lib/bcdice/game_system/Utakaze.rb +53 -48
  145. data/lib/bcdice/game_system/Villaciel.rb +1 -1
  146. data/lib/bcdice/game_system/WARPS.rb +11 -9
  147. data/lib/bcdice/game_system/WaresBlade.rb +4 -9
  148. data/lib/bcdice/game_system/Warhammer.rb +15 -6
  149. data/lib/bcdice/game_system/Warhammer4.rb +15 -11
  150. data/lib/bcdice/game_system/WitchQuest.rb +1 -1
  151. data/lib/bcdice/game_system/YankeeYogSothoth.rb +4 -9
  152. data/lib/bcdice/game_system/Yggdrasill.rb +1 -1
  153. data/lib/bcdice/game_system/ZettaiReido.rb +20 -25
  154. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +1 -1
  155. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +4 -4
  156. data/lib/bcdice/game_system/sword_world/rating_parser.rb +1 -1
  157. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +26 -8
  158. data/lib/bcdice/repl.rb +1 -1
  159. data/lib/bcdice/result.rb +26 -0
  160. data/lib/bcdice/version.rb +1 -1
  161. metadata +22 -5
@@ -20,7 +20,7 @@ module BCDice
20
20
  ※ WとBは片方指定(Bx, Wx)、入替指定(WxBx,BxWx)可能
21
21
  INFO_MESSAGE_TEXT
22
22
 
23
- register_prefix('FS\d+', '[WB]\d+')
23
+ register_prefix('FS', 'W', 'B')
24
24
 
25
25
  def eval_game_system_specific_command(command)
26
26
  roll_fs(command) || roll_white_black(command) || roll_white_black_single(command)
@@ -121,6 +121,10 @@ module BCDice
121
121
  class FW
122
122
  attr_accessor :dice_count, :target, :critical, :fumble
123
123
 
124
+ def initialize
125
+ @target = nil
126
+ end
127
+
124
128
  def self.roll(command, randomizer)
125
129
  fw = parse(command)
126
130
 
@@ -72,16 +72,17 @@ module BCDice
72
72
 
73
73
  result =
74
74
  if max <= 1
75
- translate("FutariSousa.DT.fumble")
75
+ Result.fumble(translate("FutariSousa.DT.fumble"))
76
76
  elsif dice_list.include?(SPECIAL_DICE)
77
- translate("FutariSousa.DT.special")
77
+ Result.critical(translate("FutariSousa.DT.special"))
78
78
  elsif max >= SUCCESS_THRESHOLD
79
- translate("success")
79
+ Result.success(translate("success"))
80
80
  else
81
- translate("failure")
81
+ Result.failure(translate("failure"))
82
82
  end
83
83
 
84
- return "#{command}(#{dice_list.join(',')}) > #{result}"
84
+ result.text = "#{command}(#{dice_list.join(',')}) > #{result.text}"
85
+ result
85
86
  end
86
87
 
87
88
  # 助手用判定コマンド AS
@@ -91,16 +92,17 @@ module BCDice
91
92
 
92
93
  result =
93
94
  if max <= 1
94
- translate("FutariSousa.AS.fumble")
95
+ Result.fumble(translate("FutariSousa.AS.fumble"))
95
96
  elsif dice_list.include?(SPECIAL_DICE)
96
- translate("FutariSousa.AS.special")
97
+ Result.critical(translate("FutariSousa.AS.special"))
97
98
  elsif max >= SUCCESS_THRESHOLD
98
- translate("FutariSousa.AS.success")
99
+ Result.success(translate("FutariSousa.AS.success"))
99
100
  else
100
- translate("failure")
101
+ Result.failure(translate("failure"))
101
102
  end
102
103
 
103
- return "#{command}(#{dice_list.join(',')}) > #{result}"
104
+ result.text = "#{command}(#{dice_list.join(',')}) > #{result.text}"
105
+ result
104
106
  end
105
107
 
106
108
  class << self
@@ -32,7 +32,7 @@ module BCDice
32
32
  ・D66ダイスあり
33
33
  INFO_MESSAGE_TEXT
34
34
 
35
- register_prefix('FEAR(\+?\d+)?', 'REACT((\+|\-)?\d*)', '[\d\+\-]+\-3D6?[\d\+\-]*')
35
+ register_prefix('FEAR', 'REACT', '[\d\+\-]+\-3D6?[\d\+\-]*')
36
36
 
37
37
  def initialize(command)
38
38
  super(command)
@@ -41,26 +41,23 @@ module BCDice
41
41
  end
42
42
 
43
43
  # ゲーム別成功度判定(nD6)
44
- def check_nD6(total, dice_total, dice_list, cmp_op, target)
45
- return '' if target == '?'
46
- return '' unless dice_list.size == 3 && cmp_op == :<=
44
+ def result_nd6(total, dice_total, dice_list, cmp_op, target)
45
+ return nil if target == "?"
46
+ return nil unless dice_list.size == 3 && cmp_op == :<=
47
47
 
48
48
  success = target - total # 成功度
49
49
 
50
- result =
51
- if critical?(dice_total, target)
52
- "クリティカル(成功度:#{success})"
53
- elsif fumble?(dice_total, target)
54
- "ファンブル(失敗度:#{success})"
55
- elsif dice_total >= 17
56
- "自動失敗(失敗度:#{success})"
57
- elsif total <= target
58
- "成功(成功度:#{success})"
59
- else
60
- "失敗(失敗度:#{success})"
61
- end
62
-
63
- " > #{result}"
50
+ if critical?(dice_total, target)
51
+ Result.critical("クリティカル(成功度:#{success})")
52
+ elsif fumble?(dice_total, target)
53
+ Result.fumble("ファンブル(失敗度:#{success})")
54
+ elsif dice_total >= 17
55
+ Result.failure("自動失敗(失敗度:#{success})")
56
+ elsif total <= target
57
+ Result.success("成功(成功度:#{success})")
58
+ else
59
+ Result.failure("失敗(失敗度:#{success})")
60
+ end
64
61
  end
65
62
 
66
63
  def eval_game_system_specific_command(command)
@@ -85,16 +82,8 @@ module BCDice
85
82
  modifier = ArithmeticEvaluator.eval(m[2])
86
83
  formated_modifier = Format.modifier(modifier)
87
84
 
88
- dice_list = @randomizer.roll_barabara(3, 6)
89
- dice_total = dice_list.sum()
90
- dice_str = dice_list.join(",")
91
-
92
- total = dice_total + modifier
93
-
94
- "(3D6#{formated_modifier}<=#{target_number}) > "\
95
- "#{dice_total}[#{dice_str}]#{formated_modifier} > "\
96
- "#{total}"\
97
- "#{check_nD6(total, dice_total, dice_list, :<=, target_number)}"
85
+ cmd = "3D6#{formated_modifier}<=#{target_number}"
86
+ return CommonCommand::AddDice.eval(cmd, self, @randomizer)
98
87
  end
99
88
 
100
89
  def roll_fear(command)
@@ -654,7 +654,7 @@ module BCDice
654
654
  )
655
655
  }.freeze
656
656
 
657
- register_prefix('GR', '[CEFAL]D[CT][-+\d]+', 'GHA[-+\d]+', TABLES.keys)
657
+ register_prefix('GR', '[CEFAL]D[CT]', 'GHA', TABLES.keys)
658
658
  end
659
659
  end
660
660
  end
@@ -26,7 +26,7 @@ module BCDice
26
26
  INFO_MESSAGE_TEXT
27
27
 
28
28
  register_prefix(
29
- 'GO(\-?\d+)(\/\d+)?(@\d+)?',
29
+ 'GO',
30
30
  'DC(SL|BL|IM|BR|RF|EL).+'
31
31
  )
32
32
 
@@ -58,6 +58,10 @@ module BCDice
58
58
 
59
59
  def check_roll_repeat_attack(success_rate, repeat_count, critical_border)
60
60
  success_rate_per_one = success_rate / repeat_count
61
+ # 連続攻撃は最終的な成功率が50%以上であることが必要 cf. p217
62
+ if repeat_count > 1 && success_rate_per_one < 50
63
+ return "D100<=#{success_rate_per_one}@#{critical_border} > 連続攻撃は成功率が50%以上必要です"
64
+ end
61
65
 
62
66
  check_roll(success_rate_per_one, critical_border)
63
67
  end
@@ -69,16 +73,17 @@ module BCDice
69
73
  dice_value = @randomizer.roll_once(100)
70
74
  result = get_check_result(dice_value, success_rate, critical_border, fumble_border)
71
75
 
72
- text = "D100<=#{success_rate}@#{critical_border} > #{dice_value} > #{result}"
73
- return text
76
+ result.text = "D100<=#{success_rate}@#{critical_border} > #{dice_value} > #{result.text}"
77
+ return result
74
78
  end
75
79
 
76
80
  def get_check_result(dice_value, success_rate, critical_border, fumble_border)
77
- return "クリティカル" if dice_value <= critical_border
78
- return "ファンブル" if dice_value >= fumble_border
79
- return "成功" if dice_value <= success_rate
81
+ # クリティカルとファンブルが重なった場合は、ファンブルとなる。 cf. p175
82
+ return Result.fumble("ファンブル") if dice_value >= fumble_border
83
+ return Result.critical("クリティカル") if dice_value <= critical_border
84
+ return Result.success("成功") if dice_value <= success_rate
80
85
 
81
- return "失敗"
86
+ return Result.failure("失敗")
82
87
  end
83
88
 
84
89
  def look_up_damage_chart(type, damage_value)
@@ -26,7 +26,7 @@ module BCDice
26
26
   例)GL
27
27
  MESSAGETEXT
28
28
 
29
- register_prefix('GK(#\d+)?', 'GL')
29
+ register_prefix('GK', 'GL')
30
30
 
31
31
  def eval_game_system_specific_command(command)
32
32
  output = nil
@@ -41,7 +41,7 @@ module BCDice
41
41
  MESSAGETEXT
42
42
 
43
43
  # 因果点は共有リソースなのでMCPIはシークレットダイスを無効化
44
- register_prefix('GS\(\d+\)', 'GS', '^MCPI.*\$\d+$', 'DB\d+')
44
+ register_prefix('GS', '^MCPI.*$', 'DB')
45
45
 
46
46
  def initialize(command)
47
47
  super(command)
@@ -28,15 +28,9 @@ module BCDice
28
28
  return string
29
29
  end
30
30
 
31
- def check_2D6(total, _dice_total, dice_list, cmp_op, target)
32
- return '' if target == '?'
33
-
31
+ def result_2d6(_total, _dice_total, dice_list, _cmp_op, _target)
34
32
  if dice_list == [5, 5]
35
- "ゴリティカル(自動的成功)"
36
- elsif total.send(cmp_op, target)
37
- " > 成功"
38
- else
39
- " > 失敗"
33
+ Result.critical("ゴリティカル(自動的成功)")
40
34
  end
41
35
  end
42
36
  end
@@ -24,19 +24,6 @@ module BCDice
24
24
   組織表(OCT)、拠点表(BCT)、文化表(CCT)
25
25
  MESSAGETEXT
26
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
27
  def initialize(command)
41
28
  super(command)
42
29
 
@@ -46,143 +33,87 @@ module BCDice
46
33
  end
47
34
 
48
35
  # ゲーム別成功度判定(nD6)
49
- def check_nD6(total, _dice_total, dice_list, cmp_op, target)
50
- result = ''
36
+ def result_nd6(total, _dice_total, dice_list, cmp_op, target)
37
+ return nil unless cmp_op == :>=
38
+
39
+ result = Result.new
40
+ sequence = []
51
41
 
52
42
  if dice_list.count(6) >= 2
53
43
  total += 10
54
- result = "(クリティカル) > #{total}"
44
+ result.critical = true
45
+ sequence.push("(クリティカル)", total.to_s)
55
46
  end
56
47
 
57
- if cmp_op != :>= || target == '?'
58
- return result
48
+ if target != '?'
49
+ if total >= target
50
+ sequence.push("成功")
51
+ result.success = true
52
+ else
53
+ sequence.push("失敗")
54
+ result.failure = true
55
+ end
59
56
  end
60
57
 
61
- if total >= target
62
- result += " > 成功"
63
- else
64
- result += " > 失敗"
58
+ if sequence.empty?
59
+ return nil
65
60
  end
66
61
 
62
+ result.text = sequence.join(" > ")
67
63
  return result
68
64
  end
69
65
 
70
- alias check_2D6 check_nD6
71
-
72
66
  def eval_game_system_specific_command(command)
73
- debug("eval_game_system_specific_command command", command)
74
-
75
- tableName = ""
76
- result = ""
77
-
78
- case command
79
-
80
- when "MT"
81
- # 邂逅表
82
- tableName, result, number = getMeetingTableResult()
83
- when /^.+FT$/i
84
- # 感情表
85
- tableName, result, number = getFeelingTableResult(command)
86
-
87
- when /^.*CT$/i
88
- # 国特徴表
89
- tableName, result, number = getCountryTableResult(command)
90
-
91
- else
92
- debug("eval_game_system_specific_command commandNOT matched -> command:", command)
93
- return ""
94
- end
95
-
96
- text = "#{tableName}(#{number}) > #{result}"
97
- return text
98
- end
99
-
100
- def getMeetingTableResult
101
- tableName = "邂逅表"
102
- table = [
103
- "師匠\nあなたは彼(彼女)から多くのものを学んだ。あなたにとって、彼(彼女)は師であった。",
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
- ]
140
-
141
- result, number = get_table_by_d66(table)
142
-
143
- return tableName, result, number
67
+ roll_tables(ALIASES[command] || command, TABLES)
144
68
  end
145
69
 
146
- def getFeelingTableResult(command)
147
- debug("getFeelingTableResult command", command)
148
-
149
- tableName = ''
150
- table = []
151
-
152
- case command
153
- when /^PFT$/i, /^PositiveFT$/i
154
- tableName = "ポジティブ感情表"
155
- table = [
156
- "好奇心\nあなたは彼(彼女)に好奇心を感じた。彼(彼女)はとても面白い。もっと知ってみたいと感じた。",
157
- "憧憬\nあなたは彼(彼女)にあこがれを感じた。彼(彼女)のようになりたいと思った。その思いは今でも続いている。",
158
- "尊敬\nあなたは彼(彼女)を尊敬している。彼(彼女)を敬い、決して下には見ないだろう。",
159
- "同志\nあなたは彼(彼女)と同じ志を持つものだと感じている。共に道を行く仲間、もしかしたら好敵手なのかもしれない。",
160
- "友情\nあなたは彼(彼女)に友情を感じている。彼(彼女)は得がたい友人だ。あなたを助け、そしてあなたも向こうを助けることだろう。",
161
- "慕情\nあなたは彼(彼女)にほのかな愛情を感じている。それは恋と呼ばれるものかもしれないし、違うかもしれない。",
70
+ TABLES = {
71
+ "MT" => DiceTable::D66OneThirdTable.new(
72
+ "邂逅表",
73
+ [
74
+ "師匠\nあなたは彼(彼女)から多くのものを学んだ。あなたにとって、彼(彼女)は師であった。",
75
+ "保護者\nあなたは彼(彼女)を兄や姉、あるいは父親のように慕っている。もちろん本当に血縁関係があってもよい。",
76
+ "恩人\nあなたは彼(彼女)に恩義があり、その恩を返したいと思っている。",
77
+ "忠誠\nあなたは彼(彼女)に忠誠を誓っている。それはあなたが望んでそうしているのか、別の事情があるのかは好きに設定すること。",
78
+ "借り\nあなたは彼(彼女)に何らかの借りがある。その借りは必ず返さねばならないものだ。",
79
+ "興味\nあなたは彼(彼女)に興味がある。善悪の問題ではない。どこかで、彼(彼女)を面白いと感じるのだ。",
80
+ ],
81
+ [
82
+ "家族\nあなたは彼(彼女)は家族同然の関係だ。もちろん本当に血縁関係があってもよい。",
83
+ "友人\nあなたと彼(彼女)は友人だ。共に時間を過ごし、その友情を育んできた。",
84
+ "仲間\nあなたと彼(彼女)は仲間同士だ。同じ目的、同じ志を持ち、共に協力してこれまで事に当たってきた。",
85
+ "仕事\nあなたと彼(彼女)は仕事上でのつきあいだ。仕事相手として信頼できる相手ではあるが、それ以上でもそれ以下でもない。",
86
+ "腐れ縁\nあなたと彼(彼女)は、何かにつけてよく顔を合わせる腐れ縁だ。長いつきあいと言えるだろう。",
87
+ "忘却\nあなたと彼(彼女)は、どこかで出会ったことがある。だが、それがいつ、どこだったかを思い出すことはできない。",
88
+ ],
89
+ [
90
+ "慕情\nあなたは彼(彼女)を慕っている。心の底から、純粋に、それは恋愛感情と呼べるものかもしれない。",
91
+ "貸し\nあなたは彼(彼女)に貸しがある。いつか、この貸しは必ず返してもらわねばならない。",
92
+ "弟妹\nあなたは彼(彼女)を弟や妹のように思っている。もちろん本当に血縁関係があってもよい。",
93
+ "秘密\nあなたと彼(彼女)は秘密を共有している仲だ。一方的に秘密を握られているのかもしれない。",
94
+ "好敵手\nあなたと彼(彼女)は好敵手――ライバルという関係がふさわしい。いつかヤツに勝つため、あなたは研鑽を積む。",
95
+ "仇敵\n彼(彼女)はあなたの仇敵だ。いつかヤツを殺し、雪辱を果たさなければ気が済まない。",
96
+ ]
97
+ ),
98
+ "PFT" => DiceTable::D66OneThirdTable.new(
99
+ "ポジティブ感情表",
100
+ [
162
101
  "好奇心\nあなたは彼(彼女)に好奇心を感じた。彼(彼女)はとても面白い。もっと知ってみたいと感じた。",
163
102
  "憧憬\nあなたは彼(彼女)にあこがれを感じた。彼(彼女)のようになりたいと思った。その思いは今でも続いている。",
164
103
  "尊敬\nあなたは彼(彼女)を尊敬している。彼(彼女)を敬い、決して下には見ないだろう。",
165
104
  "同志\nあなたは彼(彼女)と同じ志を持つものだと感じている。共に道を行く仲間、もしかしたら好敵手なのかもしれない。",
166
105
  "友情\nあなたは彼(彼女)に友情を感じている。彼(彼女)は得がたい友人だ。あなたを助け、そしてあなたも向こうを助けることだろう。",
167
106
  "慕情\nあなたは彼(彼女)にほのかな愛情を感じている。それは恋と呼ばれるものかもしれないし、違うかもしれない。",
107
+ ],
108
+ [
168
109
  "庇護\nあなたは彼(彼女)を守ってやらねばならぬ、と感じている。あなたが彼(彼女)を苦難から救うのだ。",
169
110
  "幸福感\nあなたは彼(彼女)を見ると、幸福感に包まれる。彼(彼女)がそばにいる、それがあなたにとっては幸せなのだ。",
170
111
  "信頼\nあなたは彼(彼女)を信用している。その能力を、もしくは性格を、信じ、頼っている。",
171
112
  "尽力\nあなたは彼(彼女)に力を尽くしたいと考えている。彼(彼女)の役に立つ、それがあなたのしたいことだ。",
172
113
  "可能性\nあなたは彼(彼女)に、何らかの可能性を感じている。今はまだ未熟でも、彼(彼女)はいつか花開くだろう。",
173
114
  "慈愛\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あなたは彼(彼女)に誠意を感じている。他がどうであろうとも、彼(彼女)はあなたにとってみれば誠実だ。",
115
+ ],
116
+ [
186
117
  "かわいい\nあなたは彼(彼女)をかわいいと思っている。いつまでも愛でることができたら、それはどんなに幸せだろうか。",
187
118
  "同情\nあなたは彼(彼女)に同情している。その過去か、それとも別のものか、あなたは彼(彼女)をかわいそうだと思っている。",
188
119
  "連帯感\nあなたは彼(彼女)に連帯感を持っている。彼(彼女)はどこかで自分と似ていると思っている。",
@@ -190,39 +121,26 @@ module BCDice
190
121
  "感服\nあなたは彼(彼女)に感服している。その能力か、それとも別の事柄か、彼(彼女)をすごいと感じ、認めている。",
191
122
  "誠意\nあなたは彼(彼女)に誠意を感じている。他がどうであろうとも、彼(彼女)はあなたにとってみれば誠実だ。",
192
123
  ]
193
- when /^NFT$/i, /^NegativeFT$/i
194
- tableName = "ネガティブ感情表"
195
- table = [
124
+ ),
125
+ "NFT" => DiceTable::D66OneThirdTable.new(
126
+ "ネガティブ感情表",
127
+ [
196
128
  "憤憑\nあなたは彼(彼女)に憤憑を覚えている。性格か、その癖か、何かにあなたは怒りを覚えているのだ。",
197
129
  "悲哀\nあなたは彼(彼女)に悲哀を感じている。その過去か、それとも別のものか、あなたは彼(彼女)をかわいそうだと感じている。",
198
130
  "寂しさ\nあなたは彼(彼女)を見ると寂しさを覚える。もっと距離を近づけたいのか、別の理由なのか、ともあれ、どこか寂しいのだ。",
199
131
  "食傷\nあなたは彼(彼女)に食傷を覚えている。口癖や考え方、あるいは別のものにうんざりしているのだ。",
200
132
  "敵愾心\nあなたは彼(彼女)に敵愾心を覚えている。ここだけは彼(彼女)に負けたくないと思っているのだ。",
201
133
  "不快感\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あなたは彼(彼女)に疎外感を覚えている。なぜか仲間はずれにされているような、そんな感覚がまとわりつく。",
134
+ ],
135
+ [
214
136
  "猜疑心\nあなたは彼(彼女)に猜疑心を覚えている。なぜか、彼(彼女)のことを信じられない。どこかで疑ってしまうのだ。",
215
137
  "嫌悪\nあなたは彼(彼女)のことを嫌っている。考え方なのか、癖なのか、どうしても拒否感を覚えずにはいられない。",
216
138
  "隔意\nあなたは彼(彼女)とは隔たりがあると感じている。何かの分野について、向こうと自分には距離があると思っている。",
217
139
  "憎悪\nあなたは彼(彼女)を憎んでいる。ここだけは許せない、という部分について、憎しみを燃やさずにはいられない。",
218
140
  "偏愛\nあなたは彼(彼女)を愛している。だが、その愛はどこか偏りがある、一方通行気味のものだ。",
219
141
  "疎外感\nあなたは彼(彼女)に疎外感を覚えている。なぜか仲間はずれにされているような、そんな感覚がまとわりつく。",
220
- "劣等感\nあなたは彼(彼女)に劣等感を覚えている。彼(彼女)には敵わない、なぜか上に行かれる、そんなコンプレックスを持っている。",
221
- "不安\nあなたは彼(彼女)を見ると、どこか不安を覚える。理由は無いのかもしれない、なぜかイヤな予感を覚えるのだ。",
222
- "恐怖\nあなたは彼(彼女)を怖がっている。その能力や考え方、あるいは彼(彼女)自身ではなく、失うことを恐れているのかもしれない。",
223
- "嫉妬\nあなたは彼(彼女)に嫉妬している。その過去や能力、あるいは環境を羨ましいと思わずにはいられない。",
224
- "驚異\nあなたは彼(彼女)に脅威を感じている。自分にとって致命的な存在になるかもしれないと考えている。",
225
- "侮蔑\nあなたは彼(彼女)を侮り、蔑んでいる。彼(彼女)は自分より下の存在であると思っている。",
142
+ ],
143
+ [
226
144
  "劣等感\nあなたは彼(彼女)に劣等感を覚えている。彼(彼女)には敵わない、なぜか上に行かれる、そんなコンプレックスを持っている。",
227
145
  "不安\nあなたは彼(彼女)を見ると、どこか不安を覚える。理由は無いのかもしれない、なぜかイヤな予感を覚えるのだ。",
228
146
  "恐怖\nあなたは彼(彼女)を怖がっている。その能力や考え方、あるいは彼(彼女)自身ではなく、失うことを恐れているのかもしれない。",
@@ -230,23 +148,11 @@ module BCDice
230
148
  "驚異\nあなたは彼(彼女)に脅威を感じている。自分にとって致命的な存在になるかもしれないと考えている。",
231
149
  "侮蔑\nあなたは彼(彼女)を侮り、蔑んでいる。彼(彼女)は自分より下の存在であると思っている。",
232
150
  ]
233
- end
234
-
235
- result, number = get_table_by_d66(table)
236
- debug("getFeelingTableResult result", result)
237
-
238
- return tableName, result, number
239
- end
240
-
241
- def getCountryTableResult(command)
242
- debug("getCountryTableResult command", command)
243
-
244
- tableName = ''
245
- table = []
246
-
247
- if /^CT$/i =~ command || /^CategoryCT$/i =~ command
248
- tableName = "国特徴・カテゴリー表"
249
- table = [
151
+ ),
152
+ "CT" => DiceTable::Table.new(
153
+ "国特徴・カテゴリー表",
154
+ "1D6",
155
+ [
250
156
  "地形(TCT)\n森林、山岳、河川など、その国に存在する地勢を表す。",
251
157
  "産業(ICT)\n農耕が盛ん、鍛冶技術に優れるなど、その国の産業を表す。",
252
158
  "人物(PCT)\n腕のよい鍛冶屋がいる、知識豊富な薬師がいるなど、その国にいる人物を表す。",
@@ -254,264 +160,130 @@ module BCDice
254
160
  "拠点(BCT)\n砦や関所などの軍用拠点の他、市場や街道など、その国にある拠点を表す。",
255
161
  "文化(CCT)\n食のバリエーションが多い、森に造詣が深いなどのその国の文化や風習を表す。",
256
162
  ]
163
+ ),
164
+ "TCT" => DiceTable::D66HalfGridTable.new(
165
+ "国特徴・地形表",
166
+ [
167
+ "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
168
+ "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
169
+ "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
170
+ "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
171
+ "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
172
+ "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
173
+ ],
174
+ [
175
+ "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
176
+ "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
177
+ "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
178
+ "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
179
+ "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
180
+ "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
181
+ ]
182
+ ),
183
+ "ICT" => DiceTable::D66HalfGridTable.new(
184
+ "国特徴・産業表",
185
+ [
186
+ "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
187
+ "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
188
+ "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
189
+ "牧畜\nあなたの国は広大な領地を生かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
190
+ "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
191
+ "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
192
+ ],
193
+ [
194
+ "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
195
+ "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、鉱物+2、森林-1",
196
+ "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
197
+ "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
198
+ "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
199
+ "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
200
+ ]
201
+ ),
202
+ "PCT" => DiceTable::D66HalfGridTable.new(
203
+ "国特徴・人物表",
204
+ [
205
+ "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
206
+ "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
207
+ "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
208
+ "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
209
+ "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
210
+ "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
211
+ ],
212
+ [
213
+ "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
214
+ "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
215
+ "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
216
+ "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
217
+ "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
218
+ "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
219
+ ]
220
+ ),
221
+ "OCT" => DiceTable::D66HalfGridTable.new(
222
+ "国特徴・組織表",
223
+ [
224
+ "運搬業者\nあなたの国には水運や運搬など、輸送に携わる人々が多い。\n食料+3",
225
+ "職人学校\nあなたの国は技術を伝授し発展させる学校を有している。\n技術+3",
226
+ "森番\nあなたの国は森を守るための独自の警察を有している。\n森林+3",
227
+ "金掘り衆\nあなたの国はいわゆる山師を組織化しており、鉱山開発に熱心だ。\n鉱物+3",
228
+ "民会\nあなたの国は豪商や大農場主からなる議会を持ち、意見を取り入れている。\n資金+3",
229
+ "飛脚\nあなたの国は飛脚や早馬といった高速通信網が発達している。\n馬+3",
230
+ ],
231
+ [
232
+ "放浪民\nあなたの国には、騎馬民族や放浪民といった人々が訪れることが多い。\n馬+2、資金+1",
233
+ "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
234
+ "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
235
+ "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
236
+ "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
237
+ "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
238
+ ]
239
+ ),
240
+ "BCT" => DiceTable::D66HalfGridTable.new(
241
+ "国特徴・拠点表",
242
+ [
243
+ "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
244
+ "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
245
+ "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
246
+ "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
247
+ "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
248
+ "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
249
+ ],
250
+ [
251
+ "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
252
+ "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
253
+ "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
254
+ "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
255
+ "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
256
+ "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
257
+ ]
258
+ ),
259
+ "CCT" => DiceTable::D66HalfGridTable.new(
260
+ "国特徴・文化表",
261
+ [
262
+ "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
263
+ "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
264
+ "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
265
+ "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
266
+ "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
267
+ "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
268
+ ],
269
+ [
270
+ "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
271
+ "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
272
+ "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
273
+ "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
274
+ "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
275
+ "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
276
+ ]
277
+ ),
278
+ }.freeze
257
279
 
258
- result, number = get_table_by_1d6(table)
259
- else
260
- case command
261
- when /^TCT$/i
262
- tableName = "国特徴・地形表"
263
- table = [
264
- "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
265
- "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
266
- "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
267
- "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
268
- "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
269
- "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
270
- "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
271
- "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
272
- "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
273
- "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
274
- "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
275
- "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
276
- "水辺\nあなたの国は大河や海洋に面しており、水運の便に優れている。\n技術+2、資金+1",
277
- "森林\nあなたの国には大きな森がいくつもある。ただ風光明媚なだけでなく、木材資源にも恵まれている。\n森林+3",
278
- "山岳\nあなたの国は大きな山に囲まれている。山は国にさまざまな実りをもたらしてくれる。\n鉱物+2、森林+1",
279
- "草原\nあなたの国は見渡す限りの大草原から構成されている。馬を育てたり交易を行なうには、絶好の土地と言えるだろう。\n食料+1、馬+2",
280
- "沼地\nあなたの国は小さな川と、それが流れ込む池や沼地から構成されている。\n食料+2、森林+1",
281
- "荒野\nあなたの国のほとんどは荒野からなっている。野生のごつごつした荒々しさが国土の特徴だ。\n鉱物+2、馬+2、資金-1",
282
- "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
283
- "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
284
- "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
285
- "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
286
- "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
287
- "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
288
- "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
289
- "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
290
- "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
291
- "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
292
- "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
293
- "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
294
- "砂漠\nあなたの国は砂漠に取り巻かれている。灼熱の昼と極寒の夜があなたたちの日常だ。\n技術+2、資金+2、森林-1",
295
- "寒冷地\nあなたの国は雪と氷を友としている。夏は短く、冬は長い。鉛色の雲の下であなたたちは育った。\n鉱物+2、資金+1",
296
- "熱帯雨林\nあなたの国は焦熱の地である。雨期になれば大量の雨が降り注ぎ、巨大な密林を構成する。\n食料+1、森林+2",
297
- "火山\nあなたの国は火山地帯にある。山は火を噴き大地を揺らすが、それ故の豊かさもある。\n鉱物+3",
298
- "諸島群\nあなたの国はいくつもの小さな島によって構成されている。交易にこれほど適した土地もないだろう。\n資金+3",
299
- "秘境\nあなたの国は、混沌の影響によってこの世ならぬ光景を持っている。空を飛ぶ島や形を取った虹などだ。商才はGMと相談せよ。\n国資源ひとつを+3",
300
- ]
301
-
302
- when /^ICT$/i
303
- tableName = "国特徴・産業表"
304
- table = [
305
- "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
306
- "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
307
- "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
308
- "牧畜\nあなたの国は広大な領地を生かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
309
- "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
310
- "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
311
- "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
312
- "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
313
- "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
314
- "牧畜\nあなたの国は広大な領地を活かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
315
- "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
316
- "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
317
- "農業\nあなたの国は農業生産力に優れている。大地の恵みが国の基だ。\n食料+3",
318
- "手工業\nあなたの国は織物や細工物といった人間の手作業から生み出される道具作りに秀でている。\n技術+3",
319
- "鉱業\nあなたの国は大地そのものに眠る鉱物資源が豊富なことで知られている。\n鉱物+4、森林-1",
320
- "牧畜\nあなたの国は広大な領地を活かして、牛や馬のような牧畜産業が豊かである。\n食料+1、馬+2",
321
- "漁業\nあなたの国は海または河川を生かした大規模な漁業で名を轟かせている。\n技術+1、食料+2",
322
- "貿易\nあなたの国は国と国とを結びつけ、その仲立ちをして利益を得ている。\n資金+3",
323
- "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
324
- "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、鉱物+2、森林-1",
325
- "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
326
- "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
327
- "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
328
- "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
329
- "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
330
- "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、資金+2、森林-1",
331
- "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
332
- "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
333
- "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
334
- "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
335
- "金融\nあなたの国は他社の金を預かり、その金を貸し付けることで富を得ている。\n資金+3",
336
- "金属加工\nあなたの国は刀剣鍛冶や金細工といった、金属を加工して別の何かに変える産業を有している。\n技術+2、資金+2、森林-1",
337
- "ガラス\nあなたの国はガラス工芸技術を保持している。列国でも稀な技術だ。\n技術+2、資金+2、森林-1",
338
- "香辛料\nあなたの国は胡椒や唐辛子のようなスパイスの産地である。\n食料+1、資金+2",
339
- "酒造\nあなたの国は葡萄酒や蜂蜜酒のようなアルコールの産地として知られている。\n食料+2、資金+1",
340
- "サービス業\nあなたの国は演劇や酒場、レストランといった文化的な産業で名を馳せている。\n技術+1、資金+2",
341
- ]
342
-
343
- when /^PCT$/i
344
- tableName = "国特徴・人物表"
345
- table = [
346
- "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
347
- "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
348
- "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
349
- "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
350
- "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
351
- "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
352
- "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
353
- "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
354
- "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
355
- "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
356
- "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
357
- "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
358
- "哲学者\nあなたの国には高名な哲学者がいる。あなたの国には知的な国家だと考えられている。\n技術+1、資金+2",
359
- "科学者\nあなたの国には混沌に立ち向かう科学者(メイジではない)がおり、技術に優れている。\n技術+3",
360
- "高名な騎士\nあなたの国には高名な騎士がおり、その武勇を慕ってさまざまな武芸者が集まってくる。\n技術+1、",
361
- "芸能者\nあなたの国には偉大な芸術家や歌姫がおり、その人気は他国にも響いている。\n技術+1、資金+2",
362
- "大商人\nあなたの国に居を構えている大商人の富は、一国にも匹敵する。その税収はばかにならない。\n資金+3",
363
- "聖人\nあなたの国には聖人と呼ばれる偉大な宗教的指導者がいる。その名声は素晴らしい。\n食料+2、資金+1",
364
- "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
365
- "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
366
- "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
367
- "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
368
- "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
369
- "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
370
- "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
371
- "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
372
- "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
373
- "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
374
- "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
375
- "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
376
- "森林官\nあなたの国には森林資源を管理する森林官がおり、その技術を弟子たちに分け与えている。\n森林+3",
377
- "名工\nあなたの国には非常に優秀な鍛冶職人がおり、その技術を弟子たちに分け与えている。\n技術+2、資金+1",
378
- "売国奴\nあなたの国には極めて油断ならない臣下がいる。大変有能だが、裏切りを考えていることは明白なのだ。\n資金+4、技術-1",
379
- "農民指導者\nあなたの国には農民たちを指導する偉大な英雄がいる。彼は常に農民の味方だ。\n食料+3",
380
- "亡命者\nあなたの国には他国から亡命してきた優秀な技術者がいる。その事がいずれ災厄を呼び込むかもしれない\n国資源ふたつに+2",
381
- "かつての英雄\nあなたの国土の一部は、かつての英雄たるアーティストと融合している。彼は時折あなたに力を貸してくれる。\n食料に+1、森林+2",
382
- ]
383
-
384
- when /^OCT$/i
385
- tableName = "国特徴・組織表"
386
- table = [
387
- "運搬業者\nあなたの国には水運や運搬など、輸送に携わる人々が多い。\n食料+3",
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馬+2、資金+1",
406
- "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
407
- "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
408
- "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
409
- "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
410
- "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
411
- "放浪民\nあなたの国には、騎馬民族や放浪民といった人々が訪れることが多い。\n馬+2、資金+1",
412
- "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
413
- "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
414
- "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
415
- "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
416
- "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
417
- "放浪民\nあなたの国には、騎馬民族や放浪民といった人々が訪れることが多い。\n馬+2、資金+1",
418
- "宗教結社\nあなたの国には巨大な宗教結社が存在する。悩んだらクレスト教団とせよ。\n技術+2、資金+1",
419
- "学術団体\nあなたの国にはアカデミーの分校、あるいは何らかの研究施設が存在する。\n食料+1、技術+2",
420
- "異民族\nあなたの国には主流民族とは別の異民族が発生しており、目下のところ共存している。\n技術+1、資金+2",
421
- "難民\nあなたの国には他国の戦乱を逃れてきた難民たちが避難してきている。しかし、安価な労働力の供給源であることも確かだ。\n食料-2、技術+2、資金+3",
422
- "犯罪結社\nあなたの国は豊かで、それゆえに犯罪結社が跳梁している。\n資金+3",
423
- ]
424
-
425
- when /^BCT$/i
426
- tableName = "国特徴・拠点表"
427
- table = [
428
- "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
429
- "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
430
- "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
431
- "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
432
- "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
433
- "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
434
- "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
435
- "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
436
- "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
437
- "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
438
- "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
439
- "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
440
- "城塞\nあなたの首都はその難攻不落の防壁で知られている。\n技術+3",
441
- "長城\nあなたの国境線は堅牢な長城で守られている。それが国境線の全域に及ぶかどうかはGMと相談せよ。\n技術+2、資金+1",
442
- "良港\nあなたの国には誰もがうらやむ非常に安定した広い港がある。\n資金+3",
443
- "運河\nあなたの国には巨大な運河があり、人々に流通と治水とをもたらしている。\n食料+2、技術+1",
444
- "図書館\nあなたの国には図書館があり、膨大な知識を過去から蓄積している。\n技術+3",
445
- "訓練所\nあなたの国には訓練所があり、兵士たちを常に鍛えることができる。\n技術+2、馬+1",
446
- "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
447
- "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
448
- "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
449
- "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
450
- "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
451
- "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
452
- "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
453
- "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
454
- "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
455
- "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
456
- "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
457
- "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
458
- "下町\nあなたの国には貧しい人々が住まう下町(悪い言い方をすれば貧民街)がある。豊かではないが、そこには活気がある。\n食料+2、資金+1",
459
- "高級住宅街\nあなたの国には豊かな人々が多く、そこに住みたいと考える人も多い。\n資金+3",
460
- "保養地\nあなたの国には風光明媚で過ごしやすい土地がある。外国人であっても、そこで休暇を取ることを好むのだ。\n森林+1、資金+2",
461
- "宗教的聖地\nあなたの国には、それに実際的な効果があるかどうかはともかく宗教的な聖地があり、人々を集めている。\n食料+2、森林+1",
462
- "鉱山街\nあなたの国には鉱山があり、その鉱山で働く人たちのための酒場や学校や病院が完備されている。\n鉱物+3",
463
- "歓楽街\nあなたの国は楽しく過ごせる酒場や劇場といったもので評判だ。人々の笑顔がさらなる富をもたらすのだ。\n食料+1、資金+2",
464
- ]
465
-
466
- when /^CCT$/i
467
- tableName = "国特徴・文化表"
468
- table = [
469
- "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
470
- "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
471
- "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
472
- "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
473
- "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
474
- "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
475
- "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
476
- "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
477
- "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
478
- "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
479
- "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
480
- "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
481
- "芸術指向\nあなたの国の人々は芸術に高い価値を与えている。\n資金+3",
482
- "享楽的\nあなたの国民は、今日を楽しく過ごすことが大切だと考えている。\n食料+1、資金+2",
483
- "禁欲的\nあなたの国民は、道徳を重んじ、常に自分の欲望を制限することが理想的だと考えている。\n食料+4、資金-1",
484
- "好戦的\nあなたの国民は好戦的だ。物事は剣と暴力によって解決するべきだと考えている。\n技術+1、馬+2",
485
- "平和主義\nあなたの国民は平和を愛している。まず話し合うことが大事だと思っているのだ。\n食料+1、森林+2",
486
- "理知的\nあなたの国民は論理性を重んじる。道理が通っているかが問題だ。\n技術+3",
487
- "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
488
- "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
489
- "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
490
- "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
491
- "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
492
- "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
493
- "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
494
- "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
495
- "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
496
- "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
497
- "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
498
- "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
499
- "情念深い\nあなたの国民は感情を重視する。恩は忘れず、恨みもまた決して忘れない。\n鉱物+1、森林+2",
500
- "礼儀重視\nあなたの国民は建前としての礼儀を重んじる。礼儀こそ平和と繁栄への道だ。\n技術+2、馬+1",
501
- "拝金主義\nあなたの国民にとって、もっとも重要なのは金である。金がなくてどうして生きて行けよう。\n森林-1、資金+4",
502
- "農本主義\nあなたの国では農民が国の基である。大地を耕すことが理想的なのだ。\n食料+3",
503
- "富国強兵\nあなたの国は技術を発展させ軍隊を近代化させるべく一丸となっている。\n技術+2、馬+1",
504
- "呑気\nあなたの国は豊かだ。人々は思い煩うことなく、日々をのんびりと楽しく生きている。\n技術-1、食料+4",
505
- ]
506
- end
507
-
508
- result, number = get_table_by_d66(table)
509
- end
510
-
511
- debug("getCountryTableResult result", result)
280
+ ALIASES = {
281
+ "PositiveFT" => "PFT",
282
+ "NegativeFT" => "NFT",
283
+ "CategoryCT" => "CT",
284
+ }.transform_keys(&:upcase).freeze
512
285
 
513
- return tableName, result, number
514
- end
286
+ register_prefix(TABLES.keys, ALIASES.keys)
515
287
  end
516
288
  end
517
289
  end