bcdice 3.0.0.pre.rc.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -1
  3. data/README.md +33 -7
  4. data/i18n/DetatokoSaga/ja_jp.yml +3 -2
  5. data/i18n/DetatokoSaga/ko_kr.yml +1 -0
  6. data/i18n/MonotoneMuseum/ja_jp.yml +3 -3
  7. data/lib/bcdice.rb +2 -0
  8. data/lib/bcdice/arithmetic_evaluator.rb +2 -0
  9. data/lib/bcdice/common_command.rb +2 -0
  10. data/lib/bcdice/common_command/add_dice.rb +3 -1
  11. data/lib/bcdice/common_command/add_dice/randomizer.rb +2 -0
  12. data/lib/bcdice/common_command/barabara_dice.rb +2 -0
  13. data/lib/bcdice/common_command/barabara_dice/node.rb +2 -0
  14. data/lib/bcdice/common_command/calc.rb +2 -0
  15. data/lib/bcdice/common_command/d66_dice.rb +2 -0
  16. data/lib/bcdice/common_command/upper_dice.rb +2 -0
  17. data/lib/bcdice/common_command/version.rb +2 -0
  18. data/lib/bcdice/dice_table.rb +2 -0
  19. data/lib/bcdice/dice_table/chain_table.rb +2 -0
  20. data/lib/bcdice/dice_table/d66_grid_table.rb +2 -0
  21. data/lib/bcdice/dice_table/d66_parity_table.rb +2 -0
  22. data/lib/bcdice/dice_table/d66_range_table.rb +2 -0
  23. data/lib/bcdice/dice_table/d66_table.rb +2 -0
  24. data/lib/bcdice/dice_table/roll_result.rb +2 -0
  25. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +1 -1
  26. data/lib/bcdice/dice_table/table.rb +2 -0
  27. data/lib/bcdice/enum.rb +2 -0
  28. data/lib/bcdice/format.rb +2 -0
  29. data/lib/bcdice/game_system.rb +7 -0
  30. data/lib/bcdice/game_system/AlchemiaStruggle.rb +59 -25
  31. data/lib/bcdice/game_system/Alshard.rb +1 -1
  32. data/lib/bcdice/game_system/AngelGear.rb +123 -0
  33. data/lib/bcdice/game_system/ArsMagica.rb +1 -1
  34. data/lib/bcdice/game_system/BBN.rb +7 -5
  35. data/lib/bcdice/game_system/BadLife.rb +1 -1
  36. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  37. data/lib/bcdice/game_system/BeastBindTrinity.rb +2 -2
  38. data/lib/bcdice/game_system/BlindMythos.rb +1 -2
  39. data/lib/bcdice/game_system/BloodCrusade.rb +42 -42
  40. data/lib/bcdice/game_system/BloodMoon.rb +41 -0
  41. data/lib/bcdice/game_system/CardRanker.rb +2 -2
  42. data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
  43. data/lib/bcdice/game_system/Chill.rb +1 -1
  44. data/lib/bcdice/game_system/CodeLayerd.rb +36 -66
  45. data/lib/bcdice/game_system/Cthulhu.rb +8 -4
  46. data/lib/bcdice/game_system/Cthulhu7th.rb +40 -334
  47. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +2 -2
  48. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +2 -2
  49. data/lib/bcdice/game_system/CthulhuTech.rb +1 -1
  50. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +1 -1
  51. data/lib/bcdice/game_system/Cthulhu_Korean.rb +1 -1
  52. data/lib/bcdice/game_system/DarkBlaze.rb +1 -1
  53. data/lib/bcdice/game_system/DesperateRun.rb +163 -0
  54. data/lib/bcdice/game_system/DetatokoSaga.rb +25 -7
  55. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +3 -3
  56. data/lib/bcdice/game_system/DiceBot.rb +22 -4
  57. data/lib/bcdice/game_system/DiceOfTheDead.rb +1 -1
  58. data/lib/bcdice/game_system/DoubleCross.rb +1 -1
  59. data/lib/bcdice/game_system/EarthDawn.rb +1 -1
  60. data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
  61. data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
  62. data/lib/bcdice/game_system/Elysion.rb +2 -2
  63. data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
  64. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
  65. data/lib/bcdice/game_system/FilledWith.rb +203 -1274
  66. data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
  67. data/lib/bcdice/game_system/Garako.rb +12 -4
  68. data/lib/bcdice/game_system/GehennaAn.rb +1 -1
  69. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  70. data/lib/bcdice/game_system/Gorilla.rb +1 -1
  71. data/lib/bcdice/game_system/HarnMaster.rb +1 -1
  72. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
  73. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  74. data/lib/bcdice/game_system/Illusio.rb +25 -34
  75. data/lib/bcdice/game_system/InfiniteBabeL.rb +518 -0
  76. data/lib/bcdice/game_system/JekyllAndHyde.rb +42 -0
  77. data/lib/bcdice/game_system/LostRoyal.rb +1 -1
  78. data/lib/bcdice/game_system/MeikyuDays.rb +1 -1
  79. data/lib/bcdice/game_system/MeikyuKingdom.rb +2 -2
  80. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +3 -3
  81. data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
  82. data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
  83. data/lib/bcdice/game_system/MonotoneMuseum.rb +1 -1
  84. data/lib/bcdice/game_system/NeverCloud.rb +540 -5
  85. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  86. data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
  87. data/lib/bcdice/game_system/NinjaSlayer.rb +4 -13
  88. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  89. data/lib/bcdice/game_system/OracleEngine.rb +1 -1
  90. data/lib/bcdice/game_system/OrgaRain.rb +17 -25
  91. data/lib/bcdice/game_system/Paradiso.rb +1 -1
  92. data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
  93. data/lib/bcdice/game_system/Peekaboo.rb +1 -1
  94. data/lib/bcdice/game_system/Postman.rb +1 -1
  95. data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
  96. data/lib/bcdice/game_system/RecordOfLodossWar.rb +7 -5
  97. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  98. data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
  99. data/lib/bcdice/game_system/RyuTuber.rb +6 -4
  100. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  101. data/lib/bcdice/game_system/SRS.rb +1 -1
  102. data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
  103. data/lib/bcdice/game_system/Satasupe.rb +79 -862
  104. data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
  105. data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
  106. data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
  107. data/lib/bcdice/game_system/ShinobiGami.rb +3 -3
  108. data/lib/bcdice/game_system/ShoujoTenrankai.rb +1 -1
  109. data/lib/bcdice/game_system/Skynauts.rb +2 -2
  110. data/lib/bcdice/game_system/SteamPunkers.rb +7 -5
  111. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +2 -2
  112. data/lib/bcdice/game_system/SwordWorld.rb +46 -182
  113. data/lib/bcdice/game_system/SwordWorld2_0.rb +21 -149
  114. data/lib/bcdice/game_system/SwordWorld2_5.rb +126 -40
  115. data/lib/bcdice/game_system/Torg.rb +1 -1
  116. data/lib/bcdice/game_system/TorgEternity.rb +2 -2
  117. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  118. data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -1
  119. data/lib/bcdice/game_system/UnsungDuet.rb +1 -1
  120. data/lib/bcdice/game_system/Utakaze.rb +1 -1
  121. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
  122. data/lib/bcdice/game_system/Warhammer.rb +1 -1
  123. data/lib/bcdice/game_system/Warhammer4.rb +1 -1
  124. data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
  125. data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
  126. data/lib/bcdice/game_system/Yggdrasill.rb +605 -0
  127. data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
  128. data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +294 -0
  129. data/lib/bcdice/game_system/cthulhu7th/rollable.rb +41 -0
  130. data/lib/bcdice/game_system/filled_with/enemy_data_tables.rb +322 -0
  131. data/lib/bcdice/game_system/filled_with/event_tables.rb +392 -0
  132. data/lib/bcdice/game_system/filled_with/tresure_tables.rb +179 -0
  133. data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +2 -0
  134. data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +2 -0
  135. data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +2 -0
  136. data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +2 -0
  137. data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +2 -0
  138. data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +2 -0
  139. data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +2 -0
  140. data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +2 -0
  141. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +2 -0
  142. data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +2 -0
  143. data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +2 -0
  144. data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +2 -0
  145. data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +2 -0
  146. data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +2 -0
  147. data/lib/bcdice/game_system/one_way_heroics/tables.rb +2 -0
  148. data/lib/bcdice/game_system/satasupe/tables.rb +723 -0
  149. data/lib/bcdice/game_system/sword_world/rating_lexer.rb +47 -0
  150. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +99 -0
  151. data/lib/bcdice/game_system/sword_world/rating_parser.rb +457 -0
  152. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +104 -0
  153. data/lib/bcdice/loader.rb +11 -4
  154. data/lib/bcdice/normalize.rb +2 -0
  155. data/lib/bcdice/randomizer.rb +2 -0
  156. data/lib/bcdice/repl.rb +2 -0
  157. data/lib/bcdice/result.rb +2 -0
  158. data/lib/bcdice/translate.rb +2 -0
  159. data/lib/bcdice/user_defined_dice_table.rb +2 -0
  160. data/lib/bcdice/version.rb +3 -1
  161. metadata +19 -4
@@ -20,7 +20,7 @@ module BCDice
20
20
  DPの取得の有無も表示されます。
21
21
  INFO_MESSAGE_TEXT
22
22
 
23
- register_prefix('\d+\-2DR.*')
23
+ register_prefix('\d+\-2DR')
24
24
 
25
25
  def eval_game_system_specific_command(command)
26
26
  return nil unless command =~ /^(\d+)-2DR([+\-\d]*)(>=(\d+))?$/i
@@ -0,0 +1,294 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class Cthulhu7th < Base
6
+ class FullAuto
7
+ BONUS_DICE_RANGE = (-2..2).freeze
8
+
9
+ # 連射処理を止める条件(難易度の閾値)
10
+ # @return [Hash<String, Integer>]
11
+ #
12
+ # 成功の種類の小文字表記 => 難易度の閾値
13
+ ROLL_FULL_AUTO_DIFFICULTY_THRESHOLD = {
14
+ # レギュラー
15
+ "r" => 0,
16
+ # ハード
17
+ "h" => 1,
18
+ # イクストリーム
19
+ "e" => 2
20
+ }.freeze
21
+
22
+ def self.eval(command, randomizer)
23
+ new.eval(command, randomizer)
24
+ end
25
+
26
+ def eval(command, randomizer)
27
+ @randomizer = randomizer
28
+ getFullAutoResult(command)
29
+ end
30
+
31
+ private
32
+
33
+ include Rollable
34
+
35
+ def getFullAutoResult(command)
36
+ m = /^FAR\((-?\d+),(-?\d+),(-?\d+)(?:,(-?\d+)?)?(?:,(-?\w+)?)?(?:,(-?\d+)?)?\)$/i.match(command)
37
+ unless m
38
+ return nil
39
+ end
40
+
41
+ bullet_count = m[1].to_i
42
+ diff = m[2].to_i
43
+ broken_number = m[3].to_i
44
+ bonus_dice_count = m[4]&.to_i || 0
45
+ stop_count = m[5]&.downcase || ""
46
+ bullet_set_count_cap = m[6]&.to_i || diff / 10
47
+
48
+ output = ""
49
+
50
+ # 最大で(8回*(PC技能値最大値/10))=72発しか撃てないはずなので上限
51
+ bullet_count_limit = 100
52
+ if bullet_count > bullet_count_limit
53
+ output += "弾薬が多すぎます。装填された弾薬を#{bullet_count_limit}発に変更します。\n"
54
+ bullet_count = bullet_count_limit
55
+ end
56
+
57
+ # ボレーの上限の設定がおかしい場合の注意表示
58
+ if (bullet_set_count_cap > diff / 10) && (diff > 39) && !m[6].nil?
59
+ bullet_set_count_cap = diff / 10
60
+ output += "ボレーの弾丸の数の上限は\[技能値÷10(切り捨て)\]発なので、それより高い数を指定できません。ボレーの弾丸の数を#{bullet_set_count_cap}発に変更します。\n"
61
+ elsif (diff <= 39) && (bullet_set_count_cap > 3) && !m[6].nil?
62
+ bullet_set_count_cap = 3
63
+ output += "技能値が39以下ではボレーの弾丸の数の上限および下限は3発です。ボレーの弾丸の数を#{bullet_set_count_cap}発に変更します。\n"
64
+ end
65
+
66
+ # ボレーの下限の設定がおかしい場合の注意表示およびエラー表示
67
+ return "ボレーの弾丸の数は正の数です。" if (bullet_set_count_cap <= 0) && !m[6].nil?
68
+
69
+ if (bullet_set_count_cap < 3) && !m[6].nil?
70
+ bullet_set_count_cap = 3
71
+ output += "ボレーの弾丸の数の下限は3発です。ボレーの弾丸の数を3発に変更します。\n"
72
+ end
73
+
74
+ return "弾薬は正の数です。" if bullet_count <= 0
75
+ return "目標値は正の数です。" if diff <= 0
76
+
77
+ if broken_number < 0
78
+ output += "故障ナンバーは正の数です。マイナス記号を外します。\n"
79
+ broken_number = broken_number.abs
80
+ end
81
+
82
+ unless BONUS_DICE_RANGE.include?(bonus_dice_count)
83
+ return "エラー。ボーナス・ペナルティダイスの値は#{BONUS_DICE_RANGE.min}~#{BONUS_DICE_RANGE.max}です。"
84
+ end
85
+
86
+ output += "ボーナス・ペナルティダイス[#{bonus_dice_count}]"
87
+ output += rollFullAuto(bullet_count, diff, broken_number, bonus_dice_count, stop_count, bullet_set_count_cap)
88
+
89
+ return output
90
+ end
91
+
92
+ def rollFullAuto(bullet_count, diff, broken_number, dice_num, stop_count, bullet_set_count_cap)
93
+ output = ""
94
+ loopCount = 0
95
+
96
+ counts = {
97
+ hit_bullet: 0,
98
+ impale_bullet: 0,
99
+ bullet: bullet_count,
100
+ }
101
+
102
+ # 難易度変更用ループ
103
+ (0..3).each do |more_difficulty|
104
+ output += getNextDifficultyMessage(more_difficulty)
105
+
106
+ # ペナルティダイスを減らしながらロール用ループ
107
+ while dice_num >= BONUS_DICE_RANGE.min
108
+
109
+ loopCount += 1
110
+ hit_result, total, total_list = getHitResultInfos(dice_num, diff, more_difficulty)
111
+ output += "\n#{loopCount}回目: > #{total_list.join(', ')} > #{hit_result}"
112
+
113
+ if total >= broken_number
114
+ output += " ジャム"
115
+ return getHitResultText(output, counts)
116
+ end
117
+
118
+ hit_type = getHitType(more_difficulty, hit_result)
119
+ hit_bullet, impale_bullet, lost_bullet = getBulletResults(counts[:bullet], hit_type, diff, bullet_set_count_cap)
120
+
121
+ output += " (#{hit_bullet}発が命中、#{impale_bullet}発が貫通)"
122
+
123
+ counts[:hit_bullet] += hit_bullet
124
+ counts[:impale_bullet] += impale_bullet
125
+ counts[:bullet] -= lost_bullet
126
+
127
+ return getHitResultText(output, counts) if counts[:bullet] <= 0
128
+
129
+ dice_num -= 1
130
+ end
131
+
132
+ # 指定された難易度となった場合、連射処理を途中で止める
133
+ if shouldStopRollFullAuto?(stop_count, more_difficulty)
134
+ output += "\n【指定の難易度となったので、処理を終了します。】"
135
+ break
136
+ end
137
+
138
+ dice_num += 1
139
+ end
140
+
141
+ return getHitResultText(output, counts)
142
+ end
143
+
144
+ # 連射処理を止めるべきかどうかを返す
145
+ # @param [String] stop_count 成功の種類
146
+ # @param [Integer] difficulty 難易度
147
+ # @return [Boolean]
148
+ def shouldStopRollFullAuto?(stop_count, difficulty)
149
+ difficulty_threshold = ROLL_FULL_AUTO_DIFFICULTY_THRESHOLD[stop_count]
150
+ return difficulty_threshold && difficulty >= difficulty_threshold
151
+ end
152
+
153
+ def getHitResultInfos(dice_num, diff, more_difficulty)
154
+ total, total_list = roll_with_bonus(dice_num)
155
+
156
+ fumbleable = getFumbleable(more_difficulty)
157
+ hit_result = ResultLevel.from_values(total, diff, fumbleable).to_s
158
+
159
+ return hit_result, total, total_list
160
+ end
161
+
162
+ def getHitResultText(output, counts)
163
+ return "#{output}\n> #{counts[:hit_bullet]}発が通常命中、#{counts[:impale_bullet]}発が貫通、残弾#{counts[:bullet]}発"
164
+ end
165
+
166
+ def getHitType(more_difficulty, hit_result)
167
+ successList, impaleBulletList = getSuccessListImpaleBulletList(more_difficulty)
168
+
169
+ return :hit if successList.include?(hit_result)
170
+ return :impale if impaleBulletList.include?(hit_result)
171
+
172
+ return ""
173
+ end
174
+
175
+ def getBulletResults(bullet_count, hit_type, diff, bullet_set_count_cap)
176
+ bullet_set_count = getSetOfBullet(diff, bullet_set_count_cap)
177
+ hit_bullet_count_base = getHitBulletCountBase(diff, bullet_set_count)
178
+ impale_bullet_count_base = (bullet_set_count / 2.to_f)
179
+
180
+ lost_bullet_count = 0
181
+ hit_bullet_count = 0
182
+ impale_bullet_count = 0
183
+
184
+ if !isLastBulletTurn(bullet_count, bullet_set_count)
185
+
186
+ case hit_type
187
+ when :hit
188
+ hit_bullet_count = hit_bullet_count_base # 通常命中した弾数の計算
189
+
190
+ when :impale
191
+ impale_bullet_count = impale_bullet_count_base.floor # 貫通した弾数の計算
192
+ hit_bullet_count = impale_bullet_count_base.ceil
193
+ end
194
+
195
+ lost_bullet_count = bullet_set_count
196
+
197
+ else
198
+
199
+ case hit_type
200
+ when :hit
201
+ hit_bullet_count = getLastHitBulletCount(bullet_count)
202
+
203
+ when :impale
204
+ impale_bullet_count = getLastHitBulletCount(bullet_count)
205
+ hit_bullet_count = bullet_count - impale_bullet_count
206
+ end
207
+
208
+ lost_bullet_count = bullet_count
209
+ end
210
+
211
+ return hit_bullet_count, impale_bullet_count, lost_bullet_count
212
+ end
213
+
214
+ def getSuccessListImpaleBulletList(more_difficulty)
215
+ successList = []
216
+ impaleBulletList = []
217
+
218
+ case more_difficulty
219
+ when 0
220
+ successList = ["ハード成功", "レギュラー成功"]
221
+ impaleBulletList = ["クリティカル", "イクストリーム成功"]
222
+ when 1
223
+ successList = ["ハード成功"]
224
+ impaleBulletList = ["クリティカル", "イクストリーム成功"]
225
+ when 2
226
+ successList = []
227
+ impaleBulletList = ["クリティカル", "イクストリーム成功"]
228
+ when 3
229
+ successList = ["クリティカル"]
230
+ impaleBulletList = []
231
+ end
232
+
233
+ return successList, impaleBulletList
234
+ end
235
+
236
+ def getNextDifficultyMessage(more_difficulty)
237
+ case more_difficulty
238
+ when 1
239
+ return "\n【難易度がハードに変更】"
240
+ when 2
241
+ return "\n【難易度がイクストリームに変更】"
242
+ when 3
243
+ return "\n【難易度がクリティカルに変更】"
244
+ end
245
+
246
+ return ""
247
+ end
248
+
249
+ def getSetOfBullet(diff, bullet_set_count_cap)
250
+ bullet_set_count = diff / 10
251
+
252
+ if bullet_set_count_cap < bullet_set_count
253
+ bullet_set_count = bullet_set_count_cap
254
+ end
255
+
256
+ if (diff >= 1) && (diff < 30)
257
+ bullet_set_count = 3 # 技能値が29以下での最低値保障処理
258
+ end
259
+
260
+ return bullet_set_count
261
+ end
262
+
263
+ def getHitBulletCountBase(diff, bullet_set_count)
264
+ hit_bullet_count_base = (bullet_set_count / 2)
265
+
266
+ if (diff >= 1) && (diff < 30)
267
+ hit_bullet_count_base = 1 # 技能値29以下での最低値保障
268
+ end
269
+
270
+ return hit_bullet_count_base
271
+ end
272
+
273
+ def isLastBulletTurn(bullet_count, bullet_set_count)
274
+ ((bullet_count - bullet_set_count) < 0)
275
+ end
276
+
277
+ def getLastHitBulletCount(bullet_count)
278
+ # 残弾1での最低値保障処理
279
+ if bullet_count == 1
280
+ return 1
281
+ end
282
+
283
+ count = (bullet_count / 2.to_f).floor
284
+ return count
285
+ end
286
+
287
+ def getFumbleable(more_difficulty)
288
+ # 成功が49以下の出目のみとなるため、ファンブル値は上昇
289
+ return (more_difficulty >= 1)
290
+ end
291
+ end
292
+ end
293
+ end
294
+ end
@@ -0,0 +1,41 @@
1
+ module BCDice
2
+ module GameSystem
3
+ class Cthulhu7th < Base
4
+ module Rollable
5
+ private
6
+
7
+ # 1D100の一の位用のダイスロール
8
+ # 0から9までの値を返す
9
+ #
10
+ # @return [Integer]
11
+ def roll_ones_d10
12
+ dice = @randomizer.roll_once(10)
13
+ return 0 if dice == 10
14
+
15
+ return dice
16
+ end
17
+
18
+ # @param bonus [Integer] ボーナス・ペナルティダイスの数。負の数ならペナルティダイス。
19
+ # @return [Array<(Integer, Array<Integer>)>]
20
+ def roll_with_bonus(bonus)
21
+ tens_list = Array.new(bonus.abs + 1) { @randomizer.roll_tens_d10 }
22
+ ones = roll_ones_d10()
23
+
24
+ dice_list = tens_list.map do |tens|
25
+ dice = tens + ones
26
+ dice == 0 ? 100 : dice
27
+ end
28
+
29
+ dice =
30
+ if bonus >= 0
31
+ dice_list.min
32
+ else
33
+ dice_list.max
34
+ end
35
+
36
+ return dice, dice_list
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,322 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BCDice
4
+ module GameSystem
5
+ class FilledWith < Base
6
+ # 夢幻の迷宮エネミーデータ表
7
+ def fetch_enemy_data(command)
8
+ m = /^RED([ENHLX])(256|265|465|665|666|[1-6]4[1-6])$/.match(command)
9
+ unless m
10
+ return nil
11
+ end
12
+
13
+ difficulty = Difficulty.new(m[1])
14
+ key = m[2]
15
+ area_name = AREA_LIST[key[0].to_i - 1]
16
+
17
+ chosen = ENEMY_DATA[key][difficulty.index]
18
+
19
+ return "エネミーデータ表(#{key}):#{area_name}<#{difficulty.name}>:#{chosen}"
20
+ end
21
+
22
+ AREA_LIST = [
23
+ "洞窟",
24
+ "遺跡",
25
+ "山岳",
26
+ "水辺",
27
+ "森林",
28
+ "墓場",
29
+ ].freeze
30
+
31
+ ENEMY_DATA = {
32
+ "141" => [
33
+ "キャンディークラウン(CL40)1匹",
34
+ "キャンディクラウン(CL40)「1D-3」匹(最低1匹)",
35
+ "キャンディークラウン「1D-2」匹(最低1匹)出目が6だった場合ゴールデンクラウン(CL177)1匹",
36
+ "ゴールデンクラウン(CL177)とエンカウント",
37
+ "キャンディークラウン(CL40/オリジン)1匹"
38
+ ],
39
+ "142" => [
40
+ "ベルセルク(CL7)3匹",
41
+ "ベルセルク(CL7)3匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
42
+ "ベルセルク(CL7)3匹(〔命中〕+8、〔HP〕+60、〔FP〕+20、あらゆる致傷力+40)",
43
+ "ベルセルク(CL7)3匹(〔命中〕+16、〔HP〕+120、〔FP〕+40、あらゆる致傷力+80)",
44
+ "ベルセルク(CL7/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
45
+ ],
46
+ "143" => [
47
+ "ガーゴイル(CL10)2匹",
48
+ "ガーゴイル(CL10)2匹(〔命中〕+4、〔HP〕+20、〔FP〕+10、あらゆる致傷力と防護点+20)",
49
+ "ガーゴイル(CL10)2匹(〔命中〕+8、〔HP〕+40、〔FP〕+20、あらゆる致傷力と防護点+40)",
50
+ "ザッハーク(CL39)3匹",
51
+ "ガーゴイル(CL10/オリジン)2匹(〔HP〕+500、あらゆる致傷力と防護点+100)"
52
+ ],
53
+ "144" => [
54
+ "デビルホイール(CL18)1匹",
55
+ "デビルホイール(CL18)1匹、あらゆる致傷力+20",
56
+ "デビルホイール(CL18)1匹、あらゆる致傷力+40",
57
+ "ムスペルヘイムの獣(CL65)、あらゆる防護点+20",
58
+ "デビルホイール(CL18/オリジン)1匹(〔HP〕+1000、あらゆる致傷力+100)"
59
+ ],
60
+ "145" => [
61
+ "ヘルハウンド(CL12)1匹、インプ(CL3)2匹",
62
+ "フェニックス(CL25)2匹",
63
+ "火龍ヘルブレイザー(CL50)1匹、ケルベロス(CL33)1匹",
64
+ "煉獄龍バーガトリ(CL100)1匹",
65
+ "ヘルハウンド(CL12/オリジン)1匹、インプ(CL3/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
66
+ ],
67
+ "146" => [
68
+ "アイスメイデン(CL10)1匹、アイスリザード(CL7)2匹",
69
+ "クリスタルビースト(CL25)2匹",
70
+ "氷河龍グレイシャル(CL65)1匹",
71
+ "冥界龍コキュートス(CL110)1匹",
72
+ "アイスメイデン(CL10/オリジン)1匹、アイスリザード(CL7/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
73
+ ],
74
+ "241" => [
75
+ "スケルトン(CL3)、アルテミス(CL8)、スターゲイザー(CL10)、ヤシャ(CL10)、ヘルハウンド(CL12)、ゴーレム(CL13)",
76
+ "ナイトスケルトン(CL12)、カラクリフラウ弐式(CL16)、コスモロジスト(CL20)、クリスタルビースト(CL25)、ミスリルゴーレム(CL27)",
77
+ "コガラシ(CL27)、アダマンゴーレム(CL45)、アシュラ(CL48)、火龍ヘルブレイザー(CL50)、氷龍グレイシャル(CL65)",
78
+ "ロックダンサー(CL39)、デスサジタリー(CL45)、コンゴウ(CL60)、カラクリヒメショーグン(CL75)、フェンリル(CL85)、ゴールデンクラウン(CL177)\nゴールデンクラウンが最後に残り【逃走】した場合ドロップ品は入手できない",
79
+ "スケルトン(CL3/オリジン)、アルテミス(CL8/オリジン)、スターゲイザー(CL10/オリジン)、ヤシャ(CL10/オリジン)、ヘルハウンド(CL12/オリジン)、ゴーレム(CL13/オリジン)(〔HP〕+500、あらゆる致傷力+100)"
80
+ ],
81
+ "242" => [
82
+ "アルテミス(CL8)3匹",
83
+ "アルテミス(CL8)3匹(〔命中〕+4、〔HP〕+30、〔FP〕+20、あらゆる致傷力+20)",
84
+ "アルテミス(CL8)3匹(〔命中〕+8、〔HP〕+60、〔FP〕+30、あらゆる致傷力+40)",
85
+ "アルテミス(CL8)3匹(〔命中〕+16、〔HP〕+120、〔FP〕+40、あらゆる致傷力+80)",
86
+ "アルテミス(CL8/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
87
+ ],
88
+ "243" => [
89
+ "スターゲイザー(CL10)2匹",
90
+ "コスモロジスト(CL20)2匹",
91
+ "コスモロジスト(CL20)4匹",
92
+ "デスサジタリー(CL45)2匹",
93
+ "スターゲイザー(CL10/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
94
+ ],
95
+ "244" => [
96
+ "ヤシャ(CL10)1匹、スケルトン(CL3)3匹",
97
+ "ヤシャ(CL10)3匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+15)",
98
+ "アシュラ(CL48)2匹",
99
+ "コンゴウ(CL60)2匹",
100
+ "ヤシャ(CL10/オリジン)1匹、スケルトン(CL3/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
101
+ ],
102
+ "245" => [
103
+ "ヘルハウンド(CL12)2匹",
104
+ "クリスタルビースト(CL25)2匹",
105
+ "火龍ヘルブレイザー(CL50)1匹、氷河龍グレイシャル(CL65)",
106
+ "『単眼の巨神』アイングロース(CL100/ネームド)",
107
+ "ヘルハウンド(CL12/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
108
+ ],
109
+ "246" => [
110
+ "ゴーレム(CL13)1匹",
111
+ "ミスリルゴーレム(CL27)1匹",
112
+ "アダマンゴーレム(CL45)1匹",
113
+ "カラクリヒメショーグン(CL75)1匹",
114
+ "ゴーレム(CL13/オリジン)1匹(〔HP〕+1000、あらゆる致傷力+100)"
115
+ ],
116
+ "341" => [
117
+ "アイアンプリチン(CL5)5匹",
118
+ "アイアンプリチン(CL5)5匹(〔命中〕+4、〔HP〕+30、〔FP〕+10)",
119
+ "アイアンプリチン(CL5)5匹(〔命中〕+8、〔HP〕+60、〔FP〕+20)",
120
+ "アイアンプリチン(CL5)5匹(〔命中〕+16、〔HP〕+120、〔FP〕+40)",
121
+ "アイアンプリチン(CL5/オリジン)5匹(〔HP〕+300、あらゆる致傷力+100)"
122
+ ],
123
+ "342" => [
124
+ "ウイングスレイブ(CL4)5匹",
125
+ "ウイングスレイブ(CL4)5匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
126
+ "ガルーダ(CL40)2匹",
127
+ "栄光の天使(CL60)2匹",
128
+ "ウイングスレイブ(CL4/オリジン)5匹(〔HP〕+300、あらゆる致傷力+100)"
129
+ ],
130
+ "343" => [
131
+ "ブラックナイト(CL10)1匹、ソルジャー(CL4)3匹",
132
+ "デュラハン(CL22)1匹、ブラックナイト(CL10)2匹",
133
+ "サーバントマスター(CL35)1匹、デュラハン(CL22)2匹",
134
+ "ジェネラル(CL55)1匹、サーバントマスター(CL35)2匹",
135
+ "ブラックナイト(CL10/オリジン)1匹、ソルジャー(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
136
+ ],
137
+ "344" => [
138
+ "ソルジャーアント(CL8)2匹",
139
+ "ソルジャーアント(CL8)2匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
140
+ "インペリアルアント(CL30)2匹",
141
+ "『女王キノコ』アカシックツリー(CL50/ネームド)1匹、インペリアルアント(CL30)2匹",
142
+ "ソルジャーアント(CL8/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
143
+ ],
144
+ "345" => [
145
+ "カボチャの魔女(CL8)2匹",
146
+ "カボチャの魔女(CL8)2匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
147
+ "カボチャの大魔女(CL35)2匹",
148
+ "堕落の黒天使(CL60)2匹",
149
+ "カボチャの魔女(CL8/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
150
+ ],
151
+ "346" => [
152
+ "フェニックス(CL25)2匹",
153
+ "フェニックス(CL25)2匹(〔命中〕+4、〔HP〕+40、〔FP〕+10、あらゆる致傷力+30)",
154
+ "フェニックス(CL25)2匹(〔命中〕+8、〔HP〕+80、〔FP〕+20、あらゆる致傷力+60)",
155
+ "煉獄フェニックス(CL85)2匹",
156
+ "フェニックス(CL25/オリジン)2匹(〔HP〕+1000、あらゆる致傷力+200)"
157
+ ],
158
+ "441" => [
159
+ "フロストクラブ(CL6)2匹",
160
+ "フロストクラブ(CL6)3匹",
161
+ "『氷海の主』ギガントキャンサー(CL20/ネームド)",
162
+ "『氷海の主』ギガントキャンサー(CL20/ネームド)、フロストクラブ(CL6)3匹",
163
+ "フロストクラブ(CL6/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
164
+ ],
165
+ "442" => [
166
+ "アシガル(CL4)3匹",
167
+ "ハタモト(CL10)3匹",
168
+ "ヒトキリ(CL33)2匹",
169
+ "スカーレス(CL38)3匹",
170
+ "アシガル(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
171
+ ],
172
+ "443" => [
173
+ "アンブッシュマン(CL5)3匹",
174
+ "アンブッシュマン(CL5)3匹(〔命中〕+4、〔HP〕+20、〔FP〕+10、あらゆる致傷力+10)",
175
+ "シャドウストーカー(CL35)2匹",
176
+ "シャドウストーカー(CL35)3匹",
177
+ "アンブッシュマン(CL5/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
178
+ ],
179
+ "444" => [
180
+ "アップルドール(CL12)2匹",
181
+ "アップルドール(CL12)2匹、ポイズンリリー(CL7)2匹",
182
+ "テラードール(CL30)2匹",
183
+ "テラードール(CL30)2匹、バリアリーフ(CL27)2匹",
184
+ "アップルドール(CL12/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
185
+ ],
186
+ "445" => [
187
+ "ナイトライダー(CL15)1匹",
188
+ "ナイトライダー(CL15)2匹",
189
+ "ジェネラル(CL55)1匹",
190
+ "ジェネラル(CL55)2匹",
191
+ "ナイトライダー(CL15/オリジン)1匹(〔HP〕+800、あらゆる致傷力+100)"
192
+ ],
193
+ "446" => [
194
+ "ジェルスケルトン(CL10)1匹",
195
+ "ジェルスケルトン(CL10)1匹(〔命中〕+4、〔FP〕+10、あらゆる致傷力+20)",
196
+ "ジェルスケルトン(CL10)1匹(〔命中〕+8、〔FP〕+20、あらゆる致傷力+40)",
197
+ "ジェルスケルトン(CL10)1匹(〔命中〕+12、〔FP〕+40、あらゆる致傷力+80)",
198
+ "ジェルスケルトン(CL10/オリジン)1匹(〔HP〕+1500、あらゆる致傷力+200)"
199
+ ],
200
+ "541" => [
201
+ "スナッチャー(CL4)3匹",
202
+ "ゴールデンビースト(CL10)3匹",
203
+ "ヨウコ(CL30)2匹",
204
+ "イビルオーメン(CL42)2匹",
205
+ "スナッチャー(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
206
+ ],
207
+ "542" => [
208
+ "スターゲイザー(CL10)1匹、オーク(CL3)3匹",
209
+ "スターゲイザー(CL10)1匹、ヘルハウンド(CL12)2匹",
210
+ "コスモロジスト(CL20)1匹、ケルベロス(CL33)1匹",
211
+ "サーバントマスター(CL35)1匹、ケルベロス(CL33)2匹",
212
+ "スターゲイザー(CL10/オリジン)1匹、オーク(CL3/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
213
+ ],
214
+ "543" => [
215
+ "オウルセージ(CL5)1匹、インプ(CL3)3匹。指定エネミー:オウルセージ",
216
+ "オウルセージ(CL5)3匹。指定エネミー:オウルセージ",
217
+ "オウルコマンダー(CL18)1匹、キメラ(CL15)2匹。指定エネミー:オウルコマンダー",
218
+ "オウルコマンダー(CL18)2匹、キメラグレート(CL60)1匹。指定エネミー:オウルコマンダー",
219
+ "オウルセージ(CL/オリジン5)1匹、インプ(CL3/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)。指定エネミー:オウルセージ"
220
+ ],
221
+ "544" => [
222
+ "グリーンアクトレス(CL22)1匹",
223
+ "魔将樹の騎士(CL40)1匹",
224
+ "魔将樹の番人(CL80)1匹",
225
+ "『魔将樹の剣姫』ロジエモール(CL120/ネームド)1匹",
226
+ "グリーンアクトレス(CL22/オリジン)1匹(〔HP〕+200、あらゆる致傷力+200、分類「ネームド」と【始原の力】を追加)"
227
+ ],
228
+ "545" => [
229
+ "ポイズンリリー(CL7)1匹、リリーの尖兵(CL5)1匹",
230
+ "ポイズンリリー(CL7)1匹、リリーの尖兵(CL5)1匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
231
+ "バリアリーフ(CL27)1匹、リリーの尖兵(CL5)1匹(〔命中〕+8、〔HP〕+60、〔FP〕+20、あらゆる致傷力+40)",
232
+ "『密林の女王』クイーンリリー(CL70/ネームド)1匹、リリーの尖兵(CL5)1匹(〔命中〕+16、〔HP〕+120、〔FP〕+40、あらゆる致傷力+80)",
233
+ "ポイズンリリー(CL7/オリジン)1匹、リリーの尖兵(CL5/オリジン)1匹(〔HP〕+800、あらゆる致傷力+100)"
234
+ ],
235
+ "546" => [
236
+ "ブラックナイト(CL10)1匹、ソルジャー(CL4)3匹",
237
+ "ヴァルキリー(CL20)1匹、ブラックナイト(CL10)2匹",
238
+ "フレイヤ(CL45)1匹、ヴァルキリー(CL20)2匹",
239
+ "ジェネラル(CL55)1匹、フレイヤ(CL45)2匹",
240
+ "ブラックナイト(CL10/オリジン)1匹、ソルジャー(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
241
+ ],
242
+ "641" => [
243
+ "ヤコ(CL6)3匹(【狐の送り火】のデータを「疲労:なし」に変更)",
244
+ "ヨウコ(CL30)1匹(【狐の送り火】のデータを「疲労:なし」に変更)",
245
+ "ヨウコ(CL30)3匹(【狐の送り火】のデータを「疲労:なし」に変更)",
246
+ "タタリドラゴン(CL60/ネームド)1匹(【狐の送り火】のデータを「疲労:なし」に変更)",
247
+ "ヤコ(CL6/オリジン)3匹((〔HP〕+500、あらゆる致傷力+100、【狐の送り火】のデータを「疲労:なし」に変更)"
248
+ ],
249
+ "642" => [
250
+ "スケルトン(CL3)4匹",
251
+ "ナイトスケルトン(CL12)3匹",
252
+ "ヒトキリ(CL33)2匹(「分類:アンデッド」を追加)",
253
+ "堕ちた黒龍(CL48)2匹",
254
+ "スケルトン(CL3/オリジン)4匹(〔HP〕+500、あらゆる致傷力+200)"
255
+ ],
256
+ "643" => [
257
+ "ポイズンリリー(CL7)1匹(【華劇:リリーオブザバレー】使用済み)、ファントム(CL5)2匹",
258
+ "ポイズンリリー(CL7)1匹(【華劇:リリーオブザバレー】使用済み)、ゴースト(CL10)3匹",
259
+ "グリーンアクトレス(CL22)1匹(【華劇:フォレストステップ】使用済み)、デュラハン(CL22)2匹",
260
+ "グリーンアクトレス(CL22)1匹(【華劇:フォレストステップ】使用済み)、カラクリヒメショーグン(CL75)1匹",
261
+ "ポイズンリリー(CL7/オリジン)1匹(【華劇:リリーオブザバレー】使用済み)、ファントム(CL5)2匹(〔HP〕+500、あらゆる致傷力+100)"
262
+ ],
263
+ "644" => [
264
+ "君たちの冒険はここで終了だ。",
265
+ "君たちの冒険はここで終了だ。",
266
+ "君たちの冒険はここで終了だ。",
267
+ "第二魔将『葬送者』グレイヴディガー(CL200/魔将)1匹、『ディガー様親衛隊長』フュネライユ(CL66/ネームド)1匹、『トラップマスター』アンテルモン(CL65/ネームド)1匹",
268
+ "[現在エネミー未実装の為振り直ししてください]",
269
+ ],
270
+ "645" => [
271
+ "ゴースト(CL10)1匹(通常ドロップ「1000GP」)、ソルジャー(CL4)2匹",
272
+ "ゴースト(CL10)1匹(通常ドロップ「2000GP」)、ハタモト(CL10)3匹",
273
+ "リッチ(CL44)1匹(通常ドロップ「4000GP」)、ミスリルゴーレム(CL27)1匹",
274
+ "エルダーリッチ(CL55)1匹(通常ドロップ「8000GP」)、アダマンゴーレム(CL45)1匹",
275
+ "ゴースト(CL10/オリジン)1匹(通常ドロップ「1000GP」)、ソルジャー(CL4/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
276
+ ],
277
+ "646" => [
278
+ "ボーンスネーク(CL20)1匹",
279
+ "ボーンスネーク(CL20)2匹",
280
+ "ラダマンティスの蛇(CL50)1匹",
281
+ "ラダマンティスの蛇(CL50)1匹(ネームド仕様[HP4倍、【ネームドエネミー】習得])",
282
+ "ボーンスネーク(CL20/オリジン)1匹(〔HP〕+1500、あらゆる致傷力+200)"
283
+ ],
284
+ "256" => [
285
+ "ボーンスネーク(CL50)1匹",
286
+ "ラダマンティスの蛇(CL50)1匹",
287
+ "銀河龍ラクテア/ドラゴン形態(CL90)1匹",
288
+ "『三つ首の災厄』トライディザスター(CL100/ネームド)1匹",
289
+ "ボーンスネーク(CL50/オリジン)1匹(〔HP〕+2000、あらゆる致傷力+200)"
290
+ ],
291
+ "265" => [
292
+ "キャンディークラウン(CL40)「1D6」匹",
293
+ "キャンディークラウン(CL40)「1D6+1」匹",
294
+ "キャンディークラウン(CL40)「1D6」匹、ゴールデンクラウン(CL177)1匹",
295
+ "キャンディークラウン(CL40)「1D6」匹、ゴールデンクラウン(CL177)2匹",
296
+ "キャンディークラウン(CL40/オリジン)「1D6」匹",
297
+ ],
298
+ "465" => [
299
+ "リビングデッド(CL5)3匹",
300
+ "ゴースト(CL10)3匹",
301
+ "デュラハン(CL22)3匹",
302
+ "リッチ(CL44)3匹",
303
+ "リビングデッド(CL5/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
304
+ ],
305
+ "665" => [
306
+ "カロン(CL12)2匹",
307
+ "カロンキャプテン(CL25)2匹",
308
+ "リッチ(CL44)2匹",
309
+ "エルダーリッチ(CL55)2匹(〔HP〕+10)",
310
+ "カロンキャプテン(CL25/オリジン)2匹"
311
+ ],
312
+ "666" => [
313
+ "『漆黒の戦鬼』ブラックナイト(CL10/ネームド)1匹",
314
+ "『漆黒の戦鬼』ブラックナイト(CL10/ネームド)1匹(〔命中〕+4、あらゆる致傷力+20、〔HP〕+200)",
315
+ "『白銀の猛将』ジェネラル(CL55/ネームド)1匹",
316
+ "『白銀の猛将』ジェネラル(CL55/ネームド)1匹(〔命中〕+4、あらゆる致傷力+20、〔HP〕+500)",
317
+ "[現在エネミー未実装の為振り直ししてください]"
318
+ ],
319
+ }.freeze
320
+ end
321
+ end
322
+ end