bcdice 3.1.3 → 3.5.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +186 -76
  3. data/README.md +3 -2
  4. data/i18n/BeginningIdol/ja_jp.yml +2806 -0
  5. data/i18n/BeginningIdol/ko_kr.yml +1400 -0
  6. data/i18n/Cthulhu/zh_hans.yml +11 -0
  7. data/i18n/KillDeathBusiness/ja_jp.yml +1 -1
  8. data/i18n/MagicaLogia/ja_jp.yml +1 -1
  9. data/i18n/MagicaLogia/zh_hans.yml +564 -0
  10. data/i18n/MonotoneMuseum/ko_kr.yml +526 -53
  11. data/i18n/StellarKnights/ja_jp.yml +498 -0
  12. data/i18n/StellarKnights/ko_kr.yml +498 -0
  13. data/i18n/zh_hans.yml +7 -0
  14. data/lib/bcdice/command/parsed.rb +11 -3
  15. data/lib/bcdice/command/parser.rb +179 -100
  16. data/lib/bcdice/common_command/add_dice.rb +1 -1
  17. data/lib/bcdice/common_command/barabara_dice/node.rb +2 -2
  18. data/lib/bcdice/common_command/barabara_dice/result.rb +6 -0
  19. data/lib/bcdice/common_command/calc.rb +1 -1
  20. data/lib/bcdice/common_command/choice.rb +82 -7
  21. data/lib/bcdice/common_command/tally_dice/node.rb +135 -0
  22. data/lib/bcdice/common_command/tally_dice/parser.rb +302 -0
  23. data/lib/bcdice/common_command/tally_dice.rb +19 -0
  24. data/lib/bcdice/common_command.rb +2 -0
  25. data/lib/bcdice/dice_table/d66_half_grid_table.rb +33 -0
  26. data/lib/bcdice/dice_table/d66_left_range_table.rb +29 -0
  27. data/lib/bcdice/dice_table/d66_one_third_table.rb +34 -0
  28. data/lib/bcdice/dice_table/d66_table.rb +5 -1
  29. data/lib/bcdice/dice_table.rb +3 -0
  30. data/lib/bcdice/game_system/AceKillerGene.rb +1 -1
  31. data/lib/bcdice/game_system/Ainecadette.rb +68 -0
  32. data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
  33. data/lib/bcdice/game_system/Alsetto.rb +1 -1
  34. data/lib/bcdice/game_system/AlterRaise.rb +2 -2
  35. data/lib/bcdice/game_system/Amadeus.rb +110 -93
  36. data/lib/bcdice/game_system/AngelGear.rb +10 -5
  37. data/lib/bcdice/game_system/AnimaAnimus.rb +16 -9
  38. data/lib/bcdice/game_system/Aoharubaan.rb +91 -0
  39. data/lib/bcdice/game_system/Arianrhod.rb +6 -8
  40. data/lib/bcdice/game_system/AssaultEngine.rb +91 -0
  41. data/lib/bcdice/game_system/Avandner.rb +1 -1
  42. data/lib/bcdice/game_system/BadLife.rb +264 -289
  43. data/lib/bcdice/game_system/Bakenokawa.rb +244 -0
  44. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  45. data/lib/bcdice/game_system/BattleTech.rb +109 -28
  46. data/lib/bcdice/game_system/BeastBindTrinity.rb +28 -12
  47. data/lib/bcdice/game_system/BeginningIdol.rb +118 -2392
  48. data/lib/bcdice/game_system/BeginningIdol_Korean.rb +10 -2312
  49. data/lib/bcdice/game_system/BladeOfArcana.rb +1 -1
  50. data/lib/bcdice/game_system/BlindMythos.rb +39 -38
  51. data/lib/bcdice/game_system/BloodCrusade.rb +6 -7
  52. data/lib/bcdice/game_system/BloodMoon.rb +9 -8
  53. data/lib/bcdice/game_system/CardRanker.rb +8 -7
  54. data/lib/bcdice/game_system/CastleInGray.rb +133 -0
  55. data/lib/bcdice/game_system/ChaosFlare.rb +21 -15
  56. data/lib/bcdice/game_system/Chill.rb +10 -10
  57. data/lib/bcdice/game_system/Chill3.rb +9 -9
  58. data/lib/bcdice/game_system/CodeLayerd.rb +39 -39
  59. data/lib/bcdice/game_system/ColossalHunter.rb +34 -47
  60. data/lib/bcdice/game_system/CrashWorld.rb +1 -1
  61. data/lib/bcdice/game_system/Cthulhu.rb +3 -3
  62. data/lib/bcdice/game_system/Cthulhu7th.rb +56 -18
  63. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
  64. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
  65. data/lib/bcdice/game_system/Cthulhu_SimplifiedChinese.rb +60 -0
  66. data/lib/bcdice/game_system/DarkBlaze.rb +0 -11
  67. data/lib/bcdice/game_system/DarkDaysDrive.rb +8 -7
  68. data/lib/bcdice/game_system/DeadlineHeroes.rb +11 -10
  69. data/lib/bcdice/game_system/DemonParasite.rb +5 -13
  70. data/lib/bcdice/game_system/DesperateRun.rb +1 -1
  71. data/lib/bcdice/game_system/DoubleCross.rb +8 -1
  72. data/lib/bcdice/game_system/Dracurouge.rb +3 -2
  73. data/lib/bcdice/game_system/EclipsePhase.rb +14 -14
  74. data/lib/bcdice/game_system/Elric.rb +18 -14
  75. data/lib/bcdice/game_system/Elysion.rb +1 -1
  76. data/lib/bcdice/game_system/EmbryoMachine.rb +9 -8
  77. data/lib/bcdice/game_system/Emoklore.rb +25 -20
  78. data/lib/bcdice/game_system/FateCoreSystem.rb +117 -0
  79. data/lib/bcdice/game_system/Fiasco.rb +1 -1
  80. data/lib/bcdice/game_system/FilledWith.rb +4 -0
  81. data/lib/bcdice/game_system/FutariSousa.rb +12 -10
  82. data/lib/bcdice/game_system/GURPS.rb +17 -28
  83. data/lib/bcdice/game_system/Garako.rb +1 -1
  84. data/lib/bcdice/game_system/GardenOrder.rb +12 -7
  85. data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
  86. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  87. data/lib/bcdice/game_system/Gorilla.rb +2 -8
  88. data/lib/bcdice/game_system/GranCrest.rb +189 -417
  89. data/lib/bcdice/game_system/Gundog.rb +9 -8
  90. data/lib/bcdice/game_system/GundogRevised.rb +10 -9
  91. data/lib/bcdice/game_system/GundogZero.rb +1 -1
  92. data/lib/bcdice/game_system/GurpsFW.rb +16 -16
  93. data/lib/bcdice/game_system/HarnMaster.rb +19 -26
  94. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
  95. data/lib/bcdice/game_system/Hieizan.rb +12 -21
  96. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  97. data/lib/bcdice/game_system/HuntersMoon.rb +5 -10
  98. data/lib/bcdice/game_system/InfiniteFantasia.rb +19 -17
  99. data/lib/bcdice/game_system/Insane.rb +13 -20
  100. data/lib/bcdice/game_system/Irisbane.rb +154 -0
  101. data/lib/bcdice/game_system/IthaWenUa.rb +8 -15
  102. data/lib/bcdice/game_system/JamesBond.rb +10 -10
  103. data/lib/bcdice/game_system/JekyllAndHyde.rb +1 -1
  104. data/lib/bcdice/game_system/Kamigakari.rb +1 -1
  105. data/lib/bcdice/game_system/KanColle.rb +4 -9
  106. data/lib/bcdice/game_system/Karukami.rb +84 -0
  107. data/lib/bcdice/game_system/KemonoNoMori.rb +26 -39
  108. data/lib/bcdice/game_system/KillDeathBusiness.rb +7 -15
  109. data/lib/bcdice/game_system/KurayamiCrying.rb +142 -3
  110. data/lib/bcdice/game_system/LiveraDoll.rb +254 -304
  111. data/lib/bcdice/game_system/LogHorizon.rb +10 -7
  112. data/lib/bcdice/game_system/MagicaLogia_SimplifiedChinese.rb +66 -0
  113. data/lib/bcdice/game_system/MeikyuDays.rb +10 -8
  114. data/lib/bcdice/game_system/MeikyuKingdom.rb +26 -26
  115. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -3
  116. data/lib/bcdice/game_system/MetalHead.rb +12 -22
  117. data/lib/bcdice/game_system/MetalHeadExtream.rb +5 -5
  118. data/lib/bcdice/game_system/MonotoneMuseum.rb +8 -6
  119. data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
  120. data/lib/bcdice/game_system/Nechronica.rb +63 -90
  121. data/lib/bcdice/game_system/NinjaSlayer.rb +6 -7
  122. data/lib/bcdice/game_system/NjslyrBattle.rb +8 -11
  123. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  124. data/lib/bcdice/game_system/Paradiso.rb +1 -1
  125. data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
  126. data/lib/bcdice/game_system/Peekaboo.rb +4 -9
  127. data/lib/bcdice/game_system/Pendragon.rb +7 -7
  128. data/lib/bcdice/game_system/PersonaO.rb +86 -0
  129. data/lib/bcdice/game_system/PhantasmAdventure.rb +8 -8
  130. data/lib/bcdice/game_system/Postman.rb +1 -1
  131. data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
  132. data/lib/bcdice/game_system/Raisondetre.rb +2 -2
  133. data/lib/bcdice/game_system/Revulture.rb +123 -0
  134. data/lib/bcdice/game_system/RuneQuest.rb +8 -8
  135. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  136. data/lib/bcdice/game_system/SRS.rb +17 -16
  137. data/lib/bcdice/game_system/SamsaraBallad.rb +38 -11
  138. data/lib/bcdice/game_system/Satasupe.rb +32 -32
  139. data/lib/bcdice/game_system/ScreamHighSchool.rb +5 -5
  140. data/lib/bcdice/game_system/SharedFantasia.rb +19 -23
  141. data/lib/bcdice/game_system/ShinobiGami.rb +14 -6
  142. data/lib/bcdice/game_system/Skynauts.rb +103 -142
  143. data/lib/bcdice/game_system/SkynautsBouken.rb +228 -0
  144. data/lib/bcdice/game_system/StarryDolls.rb +318 -0
  145. data/lib/bcdice/game_system/SteamPunkers.rb +25 -7
  146. data/lib/bcdice/game_system/StellarKnights.rb +85 -706
  147. data/lib/bcdice/game_system/StellarKnights_Korean.rb +79 -0
  148. data/lib/bcdice/game_system/{SterileLife.rb → StellarLife.rb} +162 -226
  149. data/lib/bcdice/game_system/StratoShout.rb +8 -16
  150. data/lib/bcdice/game_system/Strave.rb +1 -1
  151. data/lib/bcdice/game_system/SwordWorld.rb +22 -9
  152. data/lib/bcdice/game_system/SwordWorld2_0.rb +22 -7
  153. data/lib/bcdice/game_system/SwordWorld2_5.rb +8 -2
  154. data/lib/bcdice/game_system/TalesFromTheLoop.rb +83 -0
  155. data/lib/bcdice/game_system/TherapieSein.rb +1 -1
  156. data/lib/bcdice/game_system/TokumeiTenkousei.rb +4 -3
  157. data/lib/bcdice/game_system/TokyoGhostResearch.rb +1 -1
  158. data/lib/bcdice/game_system/TorgEternity.rb +2 -2
  159. data/lib/bcdice/game_system/ToshiakiHolyGrailWar.rb +92 -0
  160. data/lib/bcdice/game_system/TrinitySeven.rb +279 -280
  161. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  162. data/lib/bcdice/game_system/Utakaze.rb +53 -48
  163. data/lib/bcdice/game_system/Villaciel.rb +1 -1
  164. data/lib/bcdice/game_system/WARPS.rb +11 -9
  165. data/lib/bcdice/game_system/WaresBlade.rb +4 -9
  166. data/lib/bcdice/game_system/Warhammer.rb +15 -6
  167. data/lib/bcdice/game_system/Warhammer4.rb +15 -11
  168. data/lib/bcdice/game_system/WitchQuest.rb +1 -1
  169. data/lib/bcdice/game_system/YankeeYogSothoth.rb +4 -9
  170. data/lib/bcdice/game_system/YearZeroEngine.rb +40 -19
  171. data/lib/bcdice/game_system/Yggdrasill.rb +1 -1
  172. data/lib/bcdice/game_system/ZettaiReido.rb +20 -25
  173. data/lib/bcdice/game_system/beginning_idol/accessories_table.rb +31 -0
  174. data/lib/bcdice/game_system/beginning_idol/bad_status_table.rb +43 -0
  175. data/lib/bcdice/game_system/beginning_idol/chain_d66_table.rb +29 -0
  176. data/lib/bcdice/game_system/beginning_idol/chain_table.rb +37 -0
  177. data/lib/bcdice/game_system/beginning_idol/costume_table.rb +37 -0
  178. data/lib/bcdice/game_system/beginning_idol/d6_twice_table.rb +36 -0
  179. data/lib/bcdice/game_system/beginning_idol/item_table.rb +51 -0
  180. data/lib/bcdice/game_system/beginning_idol/my_skill_name_table.rb +44 -0
  181. data/lib/bcdice/game_system/beginning_idol/random_event_table.rb +31 -0
  182. data/lib/bcdice/game_system/beginning_idol/skill_table.rb +63 -0
  183. data/lib/bcdice/game_system/beginning_idol/table.rb +193 -0
  184. data/lib/bcdice/game_system/beginning_idol/with_abnormality.rb +74 -0
  185. data/lib/bcdice/game_system/beginning_idol/work_table.rb +57 -0
  186. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +1 -1
  187. data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +4 -4
  188. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +50 -7
  189. data/lib/bcdice/game_system/sword_world/rating_parser.rb +148 -107
  190. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +26 -8
  191. data/lib/bcdice/game_system.rb +18 -1
  192. data/lib/bcdice/repl.rb +1 -1
  193. data/lib/bcdice/result.rb +26 -0
  194. data/lib/bcdice/version.rb +1 -1
  195. metadata +48 -6
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bcdice/dice_table/table"
4
+ require "bcdice/format"
5
+
3
6
  module BCDice
4
7
  module GameSystem
5
8
  class TrinitySeven < Base
@@ -17,15 +20,15 @@ module BCDice
17
20
  クリティカルが変動した命中及び、7の出目がある場合のダメージ計算が行なえます。
18
21
  なお、通常の判定としても利用できます。
19
22
 
20
- ・発動/命中 [TR(±c*)<=(x)±(y*)又は TR<=(x)など]*は必須ではない項目です。
21
- "TR(クリティカルの修正値*)<=(発動/命中)±(発動/命中の修正値*)"
23
+ ・発動/命中 [TR(±c*)<=(x)±(y*) 又は TR<=(x) など]*は必須ではない項目です。
24
+ "TR(クリティカルの修正値*)<=(発動/命中)±(発動/命中の修正値*)"
22
25
  加算減算のみ修正値も付けられます。 [修正値]は必須ではありません。
23
- 例)TR<=50 TR<=6020 TR7<=40 TR-7<=80 TR10<=8020
26
+ 例)TR<=50 TR<=60+20 TR7<=40 TR-7<=80 TR+10<=80+20
24
27
 
25
- ・ダメージ計算 [(x)DM(c*)±(y*)又は(x)DM(c*)又は(x)DM±(y*)]*は必須ではない項目です。
26
- "(ダイス数)DM(7の出目の数*)(修正*)"
28
+ ・ダメージ計算 [(x)DM(c*)±(y*) 又は (x)DM(c*) 又は (x)DM±(y*)]*は必須ではない項目です。
29
+ "(ダイス数)DM(7の出目の数*)+(修正*)"
27
30
  加算減算のみ修正値も付けられます。 [7の出目の数]および[修正値]は必須ではありません。
28
- 例)6DM2+1 5DM2 4DM 3DM+3
31
+ 例)6DM2+1 5DM2 4DM 3DM+3
29
32
  後から7の出目に変更する場合はC(7*6+5)のように入力して計算してください。
30
33
 
31
34
  ・名前表 [TRNAME]
@@ -33,87 +36,77 @@ module BCDice
33
36
 
34
37
  MESSAGETEXT
35
38
 
36
- register_prefix('(\d+)DM\d+(\+|\-)?\d*', '(\d+)DM(\+|\-)?\d*', 'TR(\d+)<=(\d+)(\+|\-)?\d*', 'TR<=(\d+)(\+|\-)?\d*', 'TR(\+|\-)?(\d+)<=(\d+)(\+|\-)?\d*', 'TRNAME')
39
+ register_prefix('\d+DM', 'TR', 'TRNAME')
37
40
 
38
41
  def eval_game_system_specific_command(command) # スパゲッティなコードだけど許して!!! → 絶対に許さない。全力でリファクタリングした。
39
42
  debug("eval_game_system_specific_command command", command)
40
43
 
41
- if /TRNAME/ =~ command
42
- firstName, = get_NAME_table
43
- secondName, = get_NAMEtwo_table
44
- return "#{firstName} , #{secondName}"
45
- end
46
-
47
- if /^TR([+\-\d]*)<=(\d*)([+\-\d]*)/ =~ command
48
- critical = Regexp.last_match(1).to_i + 7
49
- target = Regexp.last_match(2).to_i
50
- modify = Regexp.last_match(3).to_i
51
- return rollHit(command, critical, target, modify)
52
- end
53
-
54
- if /^(\d*)DM(\d*)([+\-\d]*)$/ =~ command
55
- diceCount = Regexp.last_match(1).to_i
56
- critical = Regexp.last_match(2).to_i
57
- modify = Regexp.last_match(3).to_i
58
- return rollDamage(command, diceCount, critical, modify)
59
- end
60
-
61
- return ''
44
+ roll_hit(command) ||
45
+ roll_damage(command) ||
46
+ roll_name(command)
62
47
  end
63
48
 
64
- def rollHit(command, critical, target, modify)
65
- target += modify
49
+ def roll_hit(command)
50
+ parser = Command::Parser.new(/TR\d*/, round_type: round_type)
51
+ .restrict_cmp_op_to(:<=)
52
+ cmd = parser.parse(command)
53
+ return nil unless cmd
66
54
 
67
- total = @randomizer.roll_once(100)
68
- result = getHitRollResult(total, target, critical)
55
+ modify = cmd.command[2..-1].to_i + cmd.modify_number
56
+ critical = 7 + modify
57
+ target = cmd.target_number
69
58
 
70
- text = "(#{command}) > #{total}[#{total}] > #{result}"
71
- debug("eval_game_system_specific_command result text", text)
59
+ total = @randomizer.roll_once(100)
60
+ result = get_hit_roll_result(total, target, critical)
72
61
 
73
- return text
74
- end
62
+ cmd.command = "TR"
63
+ cmd.modify_number = modify
75
64
 
76
- def getHitRollResult(total, target, critical)
77
- return "ファンブル" if total >= 96
78
- return "クリティカル" if total <= critical
65
+ result.text = "(#{cmd}) > #{total} #{result.text}"
66
+ debug("eval_game_system_specific_command result text", result.text)
79
67
 
80
- return "成功" if total <= target
68
+ result
69
+ end
81
70
 
82
- return "失敗"
71
+ def get_hit_roll_result(total, target, critical)
72
+ if total >= 96
73
+ Result.fumble("ファンブル")
74
+ elsif total <= critical
75
+ Result.critical("クリティカル")
76
+ elsif total <= target
77
+ Result.success("成功")
78
+ else
79
+ Result.failure("失敗")
80
+ end
83
81
  end
84
82
 
85
- def rollDamage(command, diceCount, critical, modify)
86
- return "" if diceCount < critical
83
+ def roll_damage(command)
84
+ parser = Command::Parser.new(/\d+DM\d*/, round_type: round_type)
85
+ .restrict_cmp_op_to(nil)
86
+ cmd = parser.parse(command)
87
+ return nil unless cmd
87
88
 
88
- dice_list = @randomizer.roll_barabara(diceCount, 6)
89
- total = dice_list.sum()
90
- diceText = dice_list.join(",")
89
+ dice_count, critical = cmd.command.split("DM", 2).map(&:to_i)
90
+ modify = cmd.modify_number
91
91
 
92
- additionalListText = ""
93
- total, additionalList = getRollDamageCritialText(diceCount, critical, total, diceText, modify)
92
+ dice_list = @randomizer.roll_barabara(dice_count, 6).sort
93
+ dice_text = dice_list.join(",")
94
94
 
95
- additionalListText = "→[#{additionalList.join(',')}]" unless additionalList.empty?
95
+ total, additionalList = get_roll_damage_result(dice_count, critical, dice_list, modify)
96
96
 
97
- modifyText = ""
98
- modifyText = "+#{modify}" if modify > 0
99
- modifyText = modify.to_s if modify < 0
97
+ additionalListText = additionalList.nil? ? "" : "→[#{additionalList.join(',')}]"
100
98
 
101
- text = "(#{command}) [#{diceText}]#{additionalListText}#{modifyText} > #{total}"
99
+ text = "(#{cmd}) [#{dice_text}]#{additionalListText}#{Format.modifier(modify)} > #{total}"
102
100
 
103
101
  return text
104
102
  end
105
103
 
106
- def getRollDamageCritialText(diceCount, critical, total, diceText, modify)
107
- diceList = []
108
-
109
- if critical == 0
110
- total += modify
111
- return total, diceList
104
+ def get_roll_damage_result(diceCount, critical, diceList, modify)
105
+ if critical <= 0
106
+ total = diceList.sum() + modify
107
+ return total, nil
112
108
  end
113
109
 
114
- diceList = diceText.split(/,/).map(&:to_i)
115
-
116
- diceList.sort!
117
110
  restDice = diceList.clone
118
111
 
119
112
  critical = diceCount if critical > diceCount
@@ -127,238 +120,244 @@ module BCDice
127
120
  max = restDice.pop
128
121
  max = 1 if max.nil?
129
122
 
130
- total = max * (7**critical) + modify
131
- restDice.each { |i| total += i }
123
+ total = max * (7**critical) + restDice.sum() + modify
132
124
 
133
125
  return total, diceList
134
126
  end
135
127
 
136
- def check_1D100(_total, dice_total, _cmp_op, _target)
128
+ def result_1d100(_total, dice_total, _cmp_op, _target)
137
129
  if dice_total >= 96
138
- "ファンブル"
130
+ Result.fumble("ファンブル")
139
131
  elsif dice_total <= 7
140
- "クリティカル"
132
+ Result.critical("クリティカル")
141
133
  end
142
134
  end
143
135
 
144
- # 名前表
145
- def get_NAME_table
146
- table = [
147
- [1, '春日'],
148
- [2, '浅見'],
149
- [3, '風間'],
150
- [4, '神無月'],
151
- [5, '倉田'],
152
- [6, '不動'],
153
- [7, '山奈'],
154
- [8, 'シャルロック'],
155
- [9, '霧隠'],
156
- [10, '果心'],
157
- [11, '今井'],
158
- [12, '長瀬'],
159
- [13, '明智'],
160
- [14, '風祭'],
161
- [15, '志貫'],
162
- [16, '一文字'],
163
- [17, '月夜野'],
164
- [18, '桜田門'],
165
- [19, '果瀬'],
166
- [20, '九十九'],
167
- [21, '速水'],
168
- [22, '片桐'],
169
- [23, '葉月'],
170
- [24, 'ウィンザー'],
171
- [25, '時雨里'],
172
- [26, '神城'],
173
- [27, '水際'],
174
- [28, '一ノ江'],
175
- [29, '仁藤'],
176
- [30, '北千住'],
177
- [31, '西村'],
178
- [32, '諏訪'],
179
- [33, '藤宮'],
180
- [34, '御代'],
181
- [35, '橘'],
182
- [36, '霧生'],
183
- [37, '白石'],
184
- [38, '椎名'],
185
- [39, '綾小路'],
186
- [40, '二条'],
187
- [41, '光明寺'],
188
- [42, '春秋'],
189
- [43, '雪見'],
190
- [44, '刀条院'],
191
- [45, 'ランカスター'],
192
- [46, 'ハクア'],
193
- [47, 'エルタニア'],
194
- [48, 'ハーネス'],
195
- [49, 'アウグストゥス'],
196
- [50, '椎名町'],
197
- [51, '鍵守'],
198
- [52, '茜ヶ崎'],
199
- [53, '鎮宮'],
200
- [54, '美柳'],
201
- [55, '鎖々塚'],
202
- [56, '櫻ノ杜'],
203
- [57, '鏡ヶ守'],
204
- [58, '輝井'],
205
- [59, '南陽'],
206
- [60, '雪乃城'],
207
- [61, '六角屋'],
208
- [62, '鈴々'],
209
- [63, '東三条'],
210
- [64, '朱雀院'],
211
- [65, '青龍院'],
212
- [66, '白虎院'],
213
- [67, '玄武院'],
214
- [68, '麒麟院'],
215
- [69, 'リーシュタット'],
216
- [70, 'サンクチュアリ'],
217
- [71, '六実'],
218
- [72, '須藤'],
219
- [73, 'ミレニアム'],
220
- [74, '七里'],
221
- [75, '三枝'],
222
- [76, '八殿'],
223
- [77, '藤里'],
224
- [78, '久宝'],
225
- [79, '東'],
226
- [80, '赤西'],
227
- [81, '神ヶ崎'],
228
- [82, 'グランシア'],
229
- [83, 'ダークブーレード'],
230
- [84, '天光寺'],
231
- [85, '月見里'],
232
- [86, '璃宮'],
233
- [87, '藤見澤'],
234
- [88, '赤聖'],
235
- [89, '姫宮'],
236
- [90, '華ノ宮'],
237
- [91, '天才'],
238
- [92, '達人'],
239
- [93, '賢者'],
240
- [94, '疾風'],
241
- [95, '海の'],
242
- [96, '最強'],
243
- [97, '凶器'],
244
- [98, '灼熱'],
245
- [99, '人間兵器'],
246
- [100, '魔王'],
247
- ]
136
+ def roll_name(command)
137
+ unless command == "TRNAME"
138
+ return nil
139
+ end
248
140
 
249
- dice_now = @randomizer.roll_once(100)
141
+ first_name = NAME1.roll(@randomizer).last_body
142
+ second_name = NAME2.roll(@randomizer).last_body
250
143
 
251
- return get_table_by_number(dice_now, table)
144
+ text = "#{first_name} , #{second_name}"
145
+ return text
252
146
  end
253
147
 
254
- def get_NAMEtwo_table
255
- table = [
256
- [1, 'アラタ/聖'],
257
- [2, 'アビィス/リリス'],
258
- [3, 'ルーグ/レヴィ'],
259
- [4, 'ラスト/アリン'],
260
- [5, 'ソラ/ユイ'],
261
- [6, 'イーリアス/アキオ'],
262
- [7, 'アカーシャ/ミラ'],
263
- [8, 'アリエス/リーゼロッテ'],
264
- [9, 'ムラサメ/シャルム'],
265
- [10, '龍貴/竜姫'],
266
- [11, '英樹/春菜'],
267
- [12, '準一/湊'],
268
- [13, '急司郎/光理'],
269
- [14, '夕也/愛奈'],
270
- [15, '晴彦/アキ'],
271
- [16, '疾風/ヤシロ'],
272
- [17, 'カガリ/灯花'],
273
- [18, '次郎/優都'],
274
- [19, '春太郎/静理'],
275
- [20, 'ジン/時雨'],
276
- [21, 'イオリ/伊織'],
277
- [22, 'ユウヒ/優姫'],
278
- [23, 'サツキ/翠名'],
279
- [24, 'シュライ/サクラ'],
280
- [25, 'ミナヅキ/姫乃'],
281
- [26, 'カエデ/優樹菜'],
282
- [27, 'ハル/フユ'],
283
- [28, 'オdール/瑞江'],
284
- [29, 'ニトゥレスト/キリカ'],
285
- [30, 'スカー/綾瀬'],
286
- [31, '真夏/小夏'],
287
- [32, '光一/ののか'],
288
- [33, '彩/翠'],
289
- [34, 'トウカ/柊花'],
290
- [35, '命/ミコト'],
291
- [36, '司/つかさ'],
292
- [37, 'ゆとり/なごみ'],
293
- [38, '冬彦/観月'],
294
- [39, 'カレン/華恋'],
295
- [40, '清次郎/亜矢'],
296
- [41, 'サード/夢子'],
297
- [42, 'ボックス/詩子'],
298
- [43, 'ヘリオス/カエデ'],
299
- [44, 'ゲート/京香'],
300
- [45, 'オンリー/パトリシア'],
301
- [46, 'ザッハーク/アーリ'],
302
- [47, 'ラスタバン/ラスティ'],
303
- [48, '桜花/燁澄'],
304
- [49, '計都/リヴィア'],
305
- [50, 'カルヴァリオ/香夜'],
306
- [51, '悠人/夜々子'],
307
- [52, '太子/羽菜'],
308
- [53, '夕立/夕凪'],
309
- [54, 'アルフ/愛美'],
310
- [55, 'ファロス/灯利'],
311
- [56, 'スプートニク/詩姫'],
312
- [57, 'アーネスト/累'],
313
- [58, 'ナイン/カグヤ'],
314
- [59, 'クリア/ヒマワリ'],
315
- [60, 'ウォーカー/オリビア'],
316
- [61, 'ダーク/クオン'],
317
- [62, 'ウェイヴ/凛'],
318
- [63, 'ルーン/マリエ'],
319
- [64, 'エンギ/セイギ'],
320
- [65, 'シラヌイ/ミライ'],
321
- [66, 'ブライン/キズナ'],
322
- [67, 'クロウ/カナタ'],
323
- [68, 'スレイヤー/ヒカル'],
324
- [69, 'レス/ミリアリア'],
325
- [70, 'ミフユ/サリエル'],
326
- [71, '鳴央/音央'],
327
- [72, 'モンジ/理亜'],
328
- [73, 'パルデモントゥム/スナオ'],
329
- [74, 'ミシェル/詩穂'],
330
- [75, 'フレンズ/サン'],
331
- [76, 'サトリ/識'],
332
- [77, 'ロード/唯花'],
333
- [78, 'クロノス/久宝'],
334
- [79, 'フィラデルフィア/冬海'],
335
- [80, 'ティンダロス/美星'],
336
- [81, '勇弥/ユーリス'],
337
- [82, 'エイト/アンジェラ'],
338
- [83, 'サタン/ルシエル'],
339
- [84, 'エース/小波'],
340
- [85, 'セージ/胡蝶'],
341
- [86, '忍/千之'],
342
- [87, '重吾/キリコ'],
343
- [88, 'マイケル/ミホシ'],
344
- [89, 'カズマ/鶴香'],
345
- [90, 'ヤマト/エリシエル'],
346
- [91, '歴史上の人物の名前(信長、ジャンヌなど)'],
347
- [92, 'スポーツ選手の名前(ベッカム、沙保里など)'],
348
- [93, '学者の名前(ソクラテス、エレナなど)'],
349
- [94, 'アイドルの名前(タクヤ、聖子など)'],
350
- [95, '土地、国、町の名前(イングランド、ワシントンなど)'],
351
- [96, 'モンスターの名前(ドラゴン、ラミアなど)'],
352
- [97, '武器防具の名前(ソード、メイルなど)'],
353
- [98, '自然現象の名前(カザンハリケーンなど)'],
354
- [99, '機械の名前(洗濯機、テレビなど)'],
355
- [100, '目についた物の名前(シャーペン、メガネなど)'],
148
+ NAME1 = DiceTable::Table.new(
149
+ "名字表",
150
+ "1D100",
151
+ [
152
+ '春日', # 1
153
+ '浅見',
154
+ '風間',
155
+ '神無月',
156
+ '倉田',
157
+ '不動',
158
+ '山奈',
159
+ 'シャルロック',
160
+ '霧隠',
161
+ '果心', # 10
162
+ '今井',
163
+ '長瀬',
164
+ '明智',
165
+ '風祭',
166
+ '志貫',
167
+ '一文字',
168
+ '月夜野',
169
+ '桜田門',
170
+ '果瀬',
171
+ '九十九', # 20
172
+ '速水',
173
+ '片桐',
174
+ '葉月',
175
+ 'ウィンザー',
176
+ '時雨里',
177
+ '神城',
178
+ '水際',
179
+ '一ノ江',
180
+ '仁藤',
181
+ '北千住', # 30
182
+ '西村',
183
+ '諏訪',
184
+ '藤宮',
185
+ '御代',
186
+ '',
187
+ '霧生',
188
+ '白石',
189
+ '椎名',
190
+ '綾小路',
191
+ '二条', # 40
192
+ '光明寺',
193
+ '春秋',
194
+ '雪見',
195
+ '刀条院',
196
+ 'ランカスター',
197
+ 'ハクア',
198
+ 'エルタニア',
199
+ 'ハーネス',
200
+ 'アウグストゥス',
201
+ '椎名町', # 50
202
+ '鍵守',
203
+ '茜ヶ崎',
204
+ '鎮宮',
205
+ '美柳',
206
+ '鎖々塚',
207
+ '櫻ノ杜',
208
+ '鏡ヶ守',
209
+ '輝井',
210
+ '南陽',
211
+ '雪乃城', # 60
212
+ '六角屋',
213
+ '鈴々',
214
+ '東三条',
215
+ '朱雀院',
216
+ '青龍院',
217
+ '白虎院',
218
+ '玄武院',
219
+ '麒麟院',
220
+ 'リーシュタット',
221
+ 'サンクチュアリ', # 70
222
+ '六実',
223
+ '須藤',
224
+ 'ミレニアム',
225
+ '七里',
226
+ '三枝',
227
+ '八殿',
228
+ '藤里',
229
+ '久宝',
230
+ '',
231
+ '赤西', # 80
232
+ '神ヶ崎',
233
+ 'グランシア',
234
+ 'ダークブーレード',
235
+ '天光寺',
236
+ '月見里',
237
+ '璃宮',
238
+ '藤見澤',
239
+ '赤聖',
240
+ '姫宮',
241
+ '華ノ宮', # 90
242
+ '"天才"',
243
+ '"達人"',
244
+ '"賢者"',
245
+ '"疾風"',
246
+ '"海の"',
247
+ '"最強"',
248
+ '"凶器"',
249
+ '"灼熱"',
250
+ '"人間兵器"',
251
+ '"魔王"', # 100
356
252
  ]
357
-
358
- dice_now = @randomizer.roll_once(100)
359
-
360
- return get_table_by_number(dice_now, table)
361
- end
253
+ )
254
+
255
+ NAME2 = DiceTable::Table.new(
256
+ "名字表",
257
+ "1D100",
258
+ [
259
+ 'アラタ/聖', # 1
260
+ 'アビィス/リリス',
261
+ 'ルーグ/レヴィ',
262
+ 'ラスト/アリン',
263
+ 'ソラ/ユイ',
264
+ 'イーリアス/アキオ',
265
+ 'アカーシャ/ミラ',
266
+ 'アリエス/リーゼロッテ',
267
+ 'ムラサメ/シャルム',
268
+ '龍貴/竜姫', # 10
269
+ '英樹/春菜',
270
+ '準一/湊',
271
+ '急司郎/光理',
272
+ '夕也/愛奈',
273
+ '晴彦/アキ',
274
+ '疾風/ヤシロ',
275
+ 'カガリ/灯花',
276
+ '次郎/優都',
277
+ '春太郎/静理',
278
+ 'ジン/時雨', # 20
279
+ 'イオリ/伊織',
280
+ 'ユウヒ/優姫',
281
+ 'サツキ/翠名',
282
+ 'シュライ/サクラ',
283
+ 'ミナヅキ/姫乃',
284
+ 'カエデ/優樹菜',
285
+ 'ハル/フユ',
286
+ 'ドール/瑞江',
287
+ 'ニトゥレスト/キリカ',
288
+ 'スカー/綾瀬', # 30
289
+ '真夏/小夏',
290
+ '光一/ののか',
291
+ '彩/翠',
292
+ 'トウカ/柊花',
293
+ '命/ミコト',
294
+ '司/つかさ',
295
+ 'ゆとり/なごみ',
296
+ '冬彦/観月',
297
+ 'カレン/華恋',
298
+ '清次郎/亜矢', # 40
299
+ 'サード/夢子',
300
+ 'ボックス/詩子',
301
+ 'ヘリオス/カエデ',
302
+ 'ゲート/京香',
303
+ 'オンリー/パトリシア',
304
+ 'ザッハーク/アーリ',
305
+ 'ラスタバン/ラスティ',
306
+ '桜花/燁澄',
307
+ '計都/リヴィア',
308
+ 'カルヴァリオ/香夜', # 50
309
+ '悠人/夜々子',
310
+ '太子/羽菜',
311
+ '夕立/夕凪',
312
+ 'アルフ/愛美',
313
+ 'ファロス/灯利',
314
+ 'スプートニク/詩姫',
315
+ 'アーネスト/累',
316
+ 'ナイン/カグヤ',
317
+ 'クリア/ヒマワリ',
318
+ 'ウォーカー/オリビア', # 60
319
+ 'ダーク/クオン',
320
+ 'ウェイヴ/凛',
321
+ 'ルーン/マリエ',
322
+ 'エンギ/セイギ',
323
+ 'シラヌイ/ミライ',
324
+ 'ブライン/キズナ',
325
+ 'クロウ/カナタ',
326
+ 'スレイヤー/ヒカル',
327
+ 'レス/ミリアリア',
328
+ 'ミフユ/サリエル', # 70
329
+ '鳴央/音央',
330
+ 'モンジ/理亜',
331
+ 'パルデモントゥム/スナオ',
332
+ 'ミシェル/詩穂',
333
+ 'フレンズ/サン',
334
+ 'サトリ/識',
335
+ 'ロード/唯花',
336
+ 'クロノス/久宝',
337
+ 'フィラデルフィア/冬海',
338
+ 'ティンダロス/美星', # 80
339
+ '勇弥/ユーリス',
340
+ 'エイト/アンジェラ',
341
+ 'サタン/ルシエル',
342
+ 'エース/小波',
343
+ 'セージ/胡蝶',
344
+ '忍/千之',
345
+ '重吾/キリコ',
346
+ 'マイケル/ミホシ',
347
+ 'カズマ/鶴香',
348
+ 'ヤマト/エリシエル', # 90
349
+ '歴史上の人物の名前(信長、ジャンヌなど)',
350
+ 'スポーツ選手の名前(ベッカム、沙保里など)',
351
+ '学者の名前(ソクラテス、エレナなど)',
352
+ 'アイドルの名前(タクヤ、聖子など)',
353
+ '土地、国、町の名前(イングランド、ワシントンなど)',
354
+ 'モンスターの名前(ドラゴン、ラミアなど)',
355
+ '武器防具の名前(ソード、メイルなど)',
356
+ '自然現象の名前(カザンハリケーンなど)',
357
+ '機械の名前(洗濯機、テレビなど)',
358
+ '目についた物の名前(シャーペン、メガネなど)', # 100
359
+ ]
360
+ )
362
361
  end
363
362
  end
364
363
  end
@@ -30,7 +30,7 @@ module BCDice
30
30
   下から2番目の出目をずらした分だけ合計にマイナス修正を追加して表示します。
31
31
  INFO_MESSAGE_TEXT
32
32
 
33
- register_prefix('\d+H?BS', '\d+R6', '\d+D\d+.+', '\dD6')
33
+ register_prefix('\d+H?BS', '\d+R6', '\d+D\d+')
34
34
 
35
35
  def initialize(command)
36
36
  super(command)