bcdice 3.11.0 → 3.13.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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/i18n/FutariSousa/ko_kr.yml +1625 -529
  4. data/i18n/Insane/ko_kr.yml +393 -258
  5. data/i18n/NinjaSlayer2/ja_jp.yml +34 -0
  6. data/lib/bcdice/arithmetic/parser.rb +4 -2
  7. data/lib/bcdice/base.rb +1 -1
  8. data/lib/bcdice/command/parser.rb +4 -2
  9. data/lib/bcdice/common_command/add_dice/parser.rb +4 -2
  10. data/lib/bcdice/common_command/barabara_dice/parser.rb +4 -2
  11. data/lib/bcdice/common_command/calc/parser.rb +4 -2
  12. data/lib/bcdice/common_command/reroll_dice/parser.rb +4 -2
  13. data/lib/bcdice/common_command/tally_dice/parser.rb +4 -2
  14. data/lib/bcdice/common_command/upper_dice/parser.rb +4 -2
  15. data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
  16. data/lib/bcdice/game_system/Alsetto.rb +2 -2
  17. data/lib/bcdice/game_system/AniMalus.rb +221 -0
  18. data/lib/bcdice/game_system/ArknightsFan.rb +182 -0
  19. data/lib/bcdice/game_system/Avandner.rb +1 -1
  20. data/lib/bcdice/game_system/BBN.rb +1 -1
  21. data/lib/bcdice/game_system/BadLife.rb +3 -3
  22. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  23. data/lib/bcdice/game_system/Chill3.rb +6 -6
  24. data/lib/bcdice/game_system/DarkSouls.rb +1 -1
  25. data/lib/bcdice/game_system/Elric.rb +1 -1
  26. data/lib/bcdice/game_system/Emoklore.rb +4 -6
  27. data/lib/bcdice/game_system/FullFace.rb +92 -0
  28. data/lib/bcdice/game_system/FutariSousa_Korean.rb +44 -19
  29. data/lib/bcdice/game_system/HunterTheReckoning5th.rb +10 -3
  30. data/lib/bcdice/game_system/InfiniteFantasia.rb +4 -1
  31. data/lib/bcdice/game_system/Insane_Korean.rb +11 -11
  32. data/lib/bcdice/game_system/Irisbane.rb +1 -1
  33. data/lib/bcdice/game_system/KamitsubakiCityUnderConstructionNarrative.rb +251 -0
  34. data/lib/bcdice/game_system/KillDeathBusiness.rb +1 -1
  35. data/lib/bcdice/game_system/KyokoShinshoku.rb +158 -0
  36. data/lib/bcdice/game_system/Liminal.rb +136 -0
  37. data/lib/bcdice/game_system/MetalHead.rb +1 -1
  38. data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
  39. data/lib/bcdice/game_system/NRR.rb +122 -0
  40. data/lib/bcdice/game_system/NSSQ.rb +1 -1
  41. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  42. data/lib/bcdice/game_system/NightWizard3rd.rb +15 -2
  43. data/lib/bcdice/game_system/NinjaSlayer.rb +3 -1
  44. data/lib/bcdice/game_system/NinjaSlayer2.rb +299 -0
  45. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  46. data/lib/bcdice/game_system/PastFutureParadox.rb +1238 -0
  47. data/lib/bcdice/game_system/Postman.rb +3 -3
  48. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  49. data/lib/bcdice/game_system/RuneQuestRoleplayingInGlorantha.rb +10 -7
  50. data/lib/bcdice/game_system/Ryutama.rb +4 -4
  51. data/lib/bcdice/game_system/SajinsenkiAGuS.rb +5 -1
  52. data/lib/bcdice/game_system/SajinsenkiAGuS2E.rb +285 -0
  53. data/lib/bcdice/game_system/Siren.rb +97 -0
  54. data/lib/bcdice/game_system/Skynauts.rb +1 -1
  55. data/lib/bcdice/game_system/SkynautsBouken.rb +1 -1
  56. data/lib/bcdice/game_system/Strave.rb +1 -1
  57. data/lib/bcdice/game_system/SwordWorld.rb +16 -0
  58. data/lib/bcdice/game_system/SwordWorld2_5.rb +8 -1
  59. data/lib/bcdice/game_system/TherapieSein.rb +1 -1
  60. data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
  61. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +21 -9
  62. data/lib/bcdice/game_system/WerewolfTheApocalypse5th.rb +179 -0
  63. data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +1 -1
  64. data/lib/bcdice/game_system/sword_world/rating_options.rb +3 -0
  65. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +9 -0
  66. data/lib/bcdice/game_system/sword_world/rating_parser.rb +177 -130
  67. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +1 -1
  68. data/lib/bcdice/game_system.rb +12 -0
  69. data/lib/bcdice/loader.rb +1 -1
  70. data/lib/bcdice/version.rb +1 -1
  71. metadata +32 -5
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "rating_parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -54,7 +54,8 @@ def parsed(rate, modifier, option)
54
54
  p.semi_fixed_val = option.semi_fixed_val&.clamp(1, 6) || 0
55
55
  p.tmp_fixed_val = option.tmp_fixed_val&.clamp(1, 6) || 0
56
56
  p.modifier_after_half = option.modifier_after_half&.eval(@round_type)
57
- p.critical = option.critical&.eval(@round_type)&.clamp(0, 13) || (p.half ? 13 : 10)
57
+ p.modifier_after_one_and_a_half = option.modifier_after_one_and_a_half&.eval(@round_type)
58
+ p.critical = option.critical&.eval(@round_type)&.clamp(0, 13) || (p.half || p.one_and_a_half ? 13 : 10)
58
59
  end
59
60
  end
60
61
 
@@ -65,111 +66,122 @@ end
65
66
  ##### State transition tables begin ###
66
67
 
67
68
  racc_action_table = [
68
- 15, 14, 16, 5, 17, 18, 20, 21, 57, 58,
69
- 23, 24, 11, 59, 12, 19, 13, 15, 14, 16,
70
- 4, 17, 18, 20, 21, 4, 30, 3, 30, 11,
71
- 8, 12, 19, 13, 26, 27, 26, 27, 29, 30,
72
- 29, 30, 55, 56, 55, 56, 30, 26, 27, 26,
73
- 27, 29, 30, 29, 26, 27, 9, 30, 29, 30,
74
- 26, 27, 55, 56, 29, 26, 27, 26, 27, 29,
75
- 30, 29, 30, 55, 56, 55, 56, 30, 26, 27,
76
- 26, 27, 29, 30, 29, 26, 27, 37, 30, 29,
77
- 30, 26, 27, 55, 56, 29, 26, 27, 26, 27,
78
- 29, 30, 29, 30, 55, 56, 38, 39, 32, 26,
79
- 27, 26, 27, 29, 46, 29, 33, 34, 51, 52,
80
- 53, 54 ]
69
+ 18, 16, 17, 19, 6, 20, 21, 23, 24, 64,
70
+ 65, 27, 28, 13, 66, 14, 22, 15, 18, 16,
71
+ 17, 19, 5, 20, 21, 23, 24, 5, 9, 3,
72
+ 4, 13, 10, 14, 22, 15, 18, 16, 17, 19,
73
+ 11, 20, 21, 23, 24, 34, 5, 34, 40, 13,
74
+ 42, 14, 22, 15, 30, 31, 30, 31, 33, 34,
75
+ 33, 34, 62, 63, 62, 63, 34, 43, 30, 31,
76
+ 30, 31, 33, 34, 33, 30, 31, 44, 34, 33,
77
+ 34, 52, 30, 31, 57, 34, 33, 30, 31, 30,
78
+ 31, 33, 34, 33, 30, 31, 58, 34, 33, 34,
79
+ 60, 30, 31, 61, 34, 33, 30, 31, 30, 31,
80
+ 33, 34, 33, 30, 31, nil, 34, 33, 34, nil,
81
+ 30, 31, nil, 34, 33, 30, 31, 30, 31, 33,
82
+ 36, 33, 30, 31, 62, 63, 33, 62, 63, 37,
83
+ 38, 62, 63, 62, 63, 62, 63 ]
81
84
 
82
85
  racc_action_check = [
83
- 6, 6, 6, 1, 6, 6, 6, 6, 49, 49,
84
- 10, 10, 6, 49, 6, 6, 6, 22, 22, 22,
85
- 3, 22, 22, 22, 22, 0, 11, 0, 12, 22,
86
- 4, 22, 22, 22, 11, 11, 12, 12, 11, 14,
87
- 12, 15, 41, 41, 43, 43, 19, 14, 14, 15,
88
- 15, 14, 20, 15, 19, 19, 5, 21, 19, 23,
89
- 20, 20, 44, 44, 20, 21, 21, 23, 23, 21,
90
- 24, 23, 26, 45, 45, 50, 50, 27, 24, 24,
91
- 26, 26, 24, 29, 26, 27, 27, 16, 55, 27,
92
- 56, 29, 29, 62, 62, 29, 55, 55, 56, 56,
93
- 55, 57, 56, 58, 63, 63, 17, 18, 13, 57,
94
- 57, 58, 58, 57, 25, 58, 13, 13, 33, 34,
95
- 38, 39 ]
86
+ 7, 7, 7, 7, 1, 7, 7, 7, 7, 55,
87
+ 55, 12, 12, 7, 55, 7, 7, 7, 25, 25,
88
+ 25, 25, 3, 25, 25, 25, 25, 0, 4, 0,
89
+ 0, 25, 5, 25, 25, 25, 49, 49, 49, 49,
90
+ 6, 49, 49, 49, 49, 13, 9, 14, 17, 49,
91
+ 19, 49, 49, 49, 13, 13, 14, 14, 13, 16,
92
+ 14, 18, 46, 46, 48, 48, 22, 20, 16, 16,
93
+ 18, 18, 16, 23, 18, 22, 22, 21, 24, 22,
94
+ 27, 29, 23, 23, 37, 28, 23, 24, 24, 27,
95
+ 27, 24, 30, 27, 28, 28, 38, 31, 28, 33,
96
+ 43, 30, 30, 44, 40, 30, 31, 31, 33, 33,
97
+ 31, 62, 33, 40, 40, nil, 63, 40, 64, nil,
98
+ 62, 62, nil, 65, 62, 63, 63, 64, 64, 63,
99
+ 15, 64, 65, 65, 50, 50, 65, 51, 51, 15,
100
+ 15, 56, 56, 69, 69, 70, 70 ]
96
101
 
97
102
  racc_action_pointer = [
98
- 22, 3, nil, 17, 28, 56, -4, nil, nil, nil,
99
- 0, 24, 26, 106, 37, 39, 80, 99, 100, 44,
100
- 50, 55, 13, 57, 68, 97, 70, 75, nil, 81,
101
- nil, nil, nil, 116, 117, nil, nil, nil, 118, 119,
102
- nil, 30, nil, 32, 50, 61, nil, nil, nil, -2,
103
- 63, nil, nil, nil, nil, 86, 88, 99, 101, nil,
104
- nil, nil, 81, 92 ]
103
+ 24, 4, nil, 19, 23, 30, 40, -4, nil, 43,
104
+ nil, nil, 0, 43, 45, 128, 57, 43, 59, 42,
105
+ 59, 69, 64, 71, 76, 14, nil, 78, 83, 63,
106
+ 90, 95, nil, 97, nil, nil, nil, 82, 94, nil,
107
+ 102, nil, nil, 98, 101, nil, 49, nil, 51, 32,
108
+ 121, 124, nil, nil, nil, -2, 128, nil, nil, nil,
109
+ nil, nil, 109, 114, 116, 121, nil, nil, nil, 130,
110
+ 132 ]
105
111
 
106
112
  racc_action_default = [
107
- -33, -33, -4, -33, -33, -33, -1, -4, -3, 64,
108
- -5, -33, -33, -33, -11, -33, -33, -33, -33, -33,
109
- -33, -33, -2, -33, -33, -33, -33, -33, -30, -33,
110
- -32, -7, -8, -33, -33, -12, -13, -14, -33, -33,
111
- -17, -18, -27, -19, -20, -21, -6, -28, -29, -33,
112
- -24, -9, -10, -15, -16, -33, -33, -33, -33, -31,
113
- -25, -26, -22, -23 ]
113
+ -36, -36, -5, -36, -36, -36, -36, -1, -5, -36,
114
+ -4, 71, -6, -36, -36, -36, -12, -36, -36, -36,
115
+ -36, -36, -36, -36, -36, -2, -5, -36, -36, -36,
116
+ -36, -36, -33, -36, -35, -8, -9, -36, -36, -13,
117
+ -14, -16, -17, -36, -36, -20, -21, -30, -22, -3,
118
+ -23, -24, -7, -31, -32, -36, -27, -10, -11, -15,
119
+ -18, -19, -36, -36, -36, -36, -34, -28, -29, -25,
120
+ -26 ]
114
121
 
115
122
  racc_goto_table = [
116
- 25, 31, 6, 35, 36, 1, 49, 22, 40, 41,
117
- 43, 2, 44, 45, 7, 47, 48, nil, 50, nil,
123
+ 29, 35, 7, 39, 1, 41, 46, 48, 25, 45,
124
+ 50, 51, 2, 55, nil, 8, 56, 53, 54, nil,
125
+ nil, 26, nil, nil, nil, nil, 49, 59, nil, nil,
118
126
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
119
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
120
- nil, nil, nil, nil, 60, 61, 62, 63 ]
127
+ nil, nil, nil, nil, nil, nil, nil, 69, 70, 67,
128
+ 68 ]
121
129
 
122
130
  racc_goto_check = [
123
- 5, 5, 3, 5, 5, 1, 7, 3, 5, 6,
124
- 6, 2, 6, 6, 2, 5, 5, nil, 6, nil,
125
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
131
+ 5, 5, 3, 5, 1, 5, 6, 6, 3, 5,
132
+ 6, 6, 2, 7, nil, 2, 6, 5, 5, nil,
133
+ nil, 2, nil, nil, nil, nil, 3, 5, nil, nil,
126
134
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
127
- nil, nil, nil, nil, 5, 5, 6, 6 ]
135
+ nil, nil, nil, nil, nil, nil, nil, 6, 6, 5,
136
+ 5 ]
128
137
 
129
138
  racc_goto_pointer = [
130
- nil, 5, 11, 0, nil, -11, -11, -23, nil ]
139
+ nil, 4, 12, 0, nil, -13, -17, -20, nil ]
131
140
 
132
141
  racc_goto_default = [
133
- nil, nil, nil, nil, 10, 42, nil, nil, 28 ]
142
+ nil, nil, nil, nil, 12, 47, nil, nil, 32 ]
134
143
 
135
144
  racc_reduce_table = [
136
145
  0, 0, :racc_error,
137
- 2, 22, :_reduce_1,
138
- 3, 22, :_reduce_2,
139
- 2, 23, :_reduce_3,
140
- 0, 24, :_reduce_4,
141
- 2, 24, :_reduce_5,
142
- 4, 24, :_reduce_6,
143
- 3, 24, :_reduce_7,
144
- 3, 24, :_reduce_8,
145
- 4, 24, :_reduce_9,
146
- 4, 24, :_reduce_10,
147
- 2, 24, :_reduce_11,
148
- 3, 24, :_reduce_12,
149
- 3, 24, :_reduce_13,
150
- 3, 24, :_reduce_14,
151
- 4, 24, :_reduce_15,
152
- 4, 24, :_reduce_16,
153
- 3, 24, :_reduce_17,
154
- 2, 25, :_reduce_18,
155
- 2, 25, :_reduce_19,
146
+ 2, 23, :_reduce_1,
147
+ 3, 23, :_reduce_2,
148
+ 4, 23, :_reduce_3,
149
+ 2, 24, :_reduce_4,
150
+ 0, 25, :_reduce_5,
151
+ 2, 25, :_reduce_6,
152
+ 4, 25, :_reduce_7,
153
+ 3, 25, :_reduce_8,
154
+ 3, 25, :_reduce_9,
155
+ 4, 25, :_reduce_10,
156
+ 4, 25, :_reduce_11,
157
+ 2, 25, :_reduce_12,
158
+ 3, 25, :_reduce_13,
159
+ 3, 25, :_reduce_14,
160
+ 4, 25, :_reduce_15,
161
+ 3, 25, :_reduce_16,
162
+ 3, 25, :_reduce_17,
163
+ 4, 25, :_reduce_18,
164
+ 4, 25, :_reduce_19,
156
165
  3, 25, :_reduce_20,
157
- 3, 25, :_reduce_21,
158
- 3, 28, :_reduce_22,
159
- 3, 28, :_reduce_23,
166
+ 2, 26, :_reduce_21,
167
+ 2, 26, :_reduce_22,
168
+ 3, 26, :_reduce_23,
169
+ 3, 26, :_reduce_24,
170
+ 3, 29, :_reduce_25,
171
+ 3, 29, :_reduce_26,
172
+ 1, 29, :_reduce_none,
173
+ 3, 28, :_reduce_28,
174
+ 3, 28, :_reduce_29,
160
175
  1, 28, :_reduce_none,
161
- 3, 27, :_reduce_25,
162
- 3, 27, :_reduce_26,
176
+ 2, 27, :_reduce_31,
177
+ 2, 27, :_reduce_32,
163
178
  1, 27, :_reduce_none,
164
- 2, 26, :_reduce_28,
165
- 2, 26, :_reduce_29,
166
- 1, 26, :_reduce_none,
167
- 3, 29, :_reduce_31,
168
- 1, 29, :_reduce_32 ]
179
+ 3, 30, :_reduce_34,
180
+ 1, 30, :_reduce_35 ]
169
181
 
170
- racc_reduce_n = 33
182
+ racc_reduce_n = 36
171
183
 
172
- racc_shift_n = 64
184
+ racc_shift_n = 71
173
185
 
174
186
  racc_token_table = {
175
187
  false => 0,
@@ -178,23 +190,24 @@ racc_token_table = {
178
190
  :K => 3,
179
191
  :R => 4,
180
192
  :H => 5,
181
- :G => 6,
182
- :F => 7,
183
- :S => 8,
184
- :T => 9,
185
- :PLUS => 10,
186
- :MINUS => 11,
187
- :ASTERISK => 12,
188
- :SLASH => 13,
189
- :PARENL => 14,
190
- :PARENR => 15,
191
- :BRACKETL => 16,
192
- :BRACKETR => 17,
193
- :AT => 18,
194
- :SHARP => 19,
195
- :DOLLAR => 20 }
196
-
197
- racc_nt_base = 21
193
+ :O => 6,
194
+ :G => 7,
195
+ :F => 8,
196
+ :S => 9,
197
+ :T => 10,
198
+ :PLUS => 11,
199
+ :MINUS => 12,
200
+ :ASTERISK => 13,
201
+ :SLASH => 14,
202
+ :PARENL => 15,
203
+ :PARENR => 16,
204
+ :BRACKETL => 17,
205
+ :BRACKETR => 18,
206
+ :AT => 19,
207
+ :SHARP => 20,
208
+ :DOLLAR => 21 }
209
+
210
+ racc_nt_base = 22
198
211
 
199
212
  racc_use_result_var = true
200
213
 
@@ -213,6 +226,7 @@ Racc_arg = [
213
226
  racc_shift_n,
214
227
  racc_reduce_n,
215
228
  racc_use_result_var ]
229
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
216
230
 
217
231
  Racc_token_to_s_table = [
218
232
  "$end",
@@ -221,6 +235,7 @@ Racc_token_to_s_table = [
221
235
  "K",
222
236
  "R",
223
237
  "H",
238
+ "O",
224
239
  "G",
225
240
  "F",
226
241
  "S",
@@ -245,6 +260,7 @@ Racc_token_to_s_table = [
245
260
  "mul",
246
261
  "add",
247
262
  "term" ]
263
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
248
264
 
249
265
  Racc_debug_parser = false
250
266
 
@@ -262,6 +278,7 @@ end
262
278
 
263
279
  def _reduce_2(val, _values, result)
264
280
  _, rate, option = val
281
+ raise ParseError if option.modifier_after_one_and_a_half
265
282
  option.modifier_after_half ||= Arithmetic::Node::Number.new(0)
266
283
  modifier = option.modifier || Arithmetic::Node::Number.new(0)
267
284
  result = parsed(rate, modifier.eval(@round_type), option)
@@ -270,17 +287,27 @@ def _reduce_2(val, _values, result)
270
287
  end
271
288
 
272
289
  def _reduce_3(val, _values, result)
273
- result = val[1].to_i
290
+ _, _, rate, option = val
291
+ raise ParseError if option.modifier_after_half
292
+ option.modifier_after_one_and_a_half ||= Arithmetic::Node::Number.new(0)
293
+ modifier = option.modifier || Arithmetic::Node::Number.new(0)
294
+ result = parsed(rate, modifier.eval(@round_type), option)
295
+
274
296
  result
275
297
  end
276
298
 
277
299
  def _reduce_4(val, _values, result)
300
+ result = val[1].to_i
301
+ result
302
+ end
303
+
304
+ def _reduce_5(val, _values, result)
278
305
  result = RatingOptions.new
279
306
 
280
307
  result
281
308
  end
282
309
 
283
- def _reduce_5(val, _values, result)
310
+ def _reduce_6(val, _values, result)
284
311
  option, term = val
285
312
  raise ParseError unless option.modifier.nil?
286
313
 
@@ -290,7 +317,7 @@ def _reduce_5(val, _values, result)
290
317
  result
291
318
  end
292
319
 
293
- def _reduce_6(val, _values, result)
320
+ def _reduce_7(val, _values, result)
294
321
  option, _, term, _ = val
295
322
  raise ParseError unless option.critical.nil?
296
323
 
@@ -300,7 +327,7 @@ def _reduce_6(val, _values, result)
300
327
  result
301
328
  end
302
329
 
303
- def _reduce_7(val, _values, result)
330
+ def _reduce_8(val, _values, result)
304
331
  option, _, term = val
305
332
  raise ParseError unless option.critical.nil?
306
333
 
@@ -310,7 +337,7 @@ def _reduce_7(val, _values, result)
310
337
  result
311
338
  end
312
339
 
313
- def _reduce_8(val, _values, result)
340
+ def _reduce_9(val, _values, result)
314
341
  option, _, term = val
315
342
  raise ParseError unless option.settable_first_roll_adjust_option?
316
343
 
@@ -320,7 +347,7 @@ def _reduce_8(val, _values, result)
320
347
  result
321
348
  end
322
349
 
323
- def _reduce_9(val, _values, result)
350
+ def _reduce_10(val, _values, result)
324
351
  option, _, _, term = val
325
352
  raise ParseError unless option.settable_first_roll_adjust_option?
326
353
 
@@ -330,7 +357,7 @@ def _reduce_9(val, _values, result)
330
357
  result
331
358
  end
332
359
 
333
- def _reduce_10(val, _values, result)
360
+ def _reduce_11(val, _values, result)
334
361
  option, _, _, term = val
335
362
  raise ParseError unless option.settable_first_roll_adjust_option?
336
363
 
@@ -340,7 +367,7 @@ def _reduce_10(val, _values, result)
340
367
  result
341
368
  end
342
369
 
343
- def _reduce_11(val, _values, result)
370
+ def _reduce_12(val, _values, result)
344
371
  option, _ = val
345
372
  raise ParseError unless option.modifier_after_half.nil?
346
373
 
@@ -350,7 +377,7 @@ def _reduce_11(val, _values, result)
350
377
  result
351
378
  end
352
379
 
353
- def _reduce_12(val, _values, result)
380
+ def _reduce_13(val, _values, result)
354
381
  option, _, term = val
355
382
  raise ParseError unless option.modifier_after_half.nil?
356
383
 
@@ -360,7 +387,27 @@ def _reduce_12(val, _values, result)
360
387
  result
361
388
  end
362
389
 
363
- def _reduce_13(val, _values, result)
390
+ def _reduce_14(val, _values, result)
391
+ option, _, _ = val
392
+ raise ParseError if option.modifier_after_one_and_a_half
393
+
394
+ option.modifier_after_one_and_a_half = Arithmetic::Node::Number.new(0)
395
+ result = option
396
+
397
+ result
398
+ end
399
+
400
+ def _reduce_15(val, _values, result)
401
+ option, _, _, term = val
402
+ raise ParseError if option.modifier_after_one_and_a_half
403
+
404
+ option.modifier_after_one_and_a_half = term
405
+ result = option
406
+
407
+ result
408
+ end
409
+
410
+ def _reduce_16(val, _values, result)
364
411
  option, _, term = val
365
412
  raise ParseError unless [:v2_5, :v2_0].include?(@version) && option.rateup.nil?
366
413
 
@@ -370,7 +417,7 @@ def _reduce_13(val, _values, result)
370
417
  result
371
418
  end
372
419
 
373
- def _reduce_14(val, _values, result)
420
+ def _reduce_17(val, _values, result)
374
421
  option, _, _ = val
375
422
  raise ParseError unless [:v2_5, :v2_0].include?(@version) && option.settable_non_2d_roll_option?
376
423
 
@@ -380,7 +427,7 @@ def _reduce_14(val, _values, result)
380
427
  result
381
428
  end
382
429
 
383
- def _reduce_15(val, _values, result)
430
+ def _reduce_18(val, _values, result)
384
431
  option, _, _, term = val
385
432
  raise ParseError unless [:v2_5, :v2_0].include?(@version) && option.settable_non_2d_roll_option?
386
433
 
@@ -390,7 +437,7 @@ def _reduce_15(val, _values, result)
390
437
  result
391
438
  end
392
439
 
393
- def _reduce_16(val, _values, result)
440
+ def _reduce_19(val, _values, result)
394
441
  option, _, _, term = val
395
442
  raise ParseError unless [:v2_5, :v2_0].include?(@version) && option.settable_non_2d_roll_option?
396
443
 
@@ -400,7 +447,7 @@ def _reduce_16(val, _values, result)
400
447
  result
401
448
  end
402
449
 
403
- def _reduce_17(val, _values, result)
450
+ def _reduce_20(val, _values, result)
404
451
  option, _, term = val
405
452
  raise ParseError unless @version == :v2_5 && option.kept_modify.nil?
406
453
 
@@ -410,69 +457,69 @@ def _reduce_17(val, _values, result)
410
457
  result
411
458
  end
412
459
 
413
- def _reduce_18(val, _values, result)
460
+ def _reduce_21(val, _values, result)
414
461
  result = val[1]
415
462
  result
416
463
  end
417
464
 
418
- def _reduce_19(val, _values, result)
465
+ def _reduce_22(val, _values, result)
419
466
  result = Arithmetic::Node::Negative.new(val[1])
420
467
  result
421
468
  end
422
469
 
423
- def _reduce_20(val, _values, result)
470
+ def _reduce_23(val, _values, result)
424
471
  result = Arithmetic::Node::BinaryOp.new(val[0], :+, val[2])
425
472
  result
426
473
  end
427
474
 
428
- def _reduce_21(val, _values, result)
475
+ def _reduce_24(val, _values, result)
429
476
  result = Arithmetic::Node::BinaryOp.new(val[0], :-, val[2])
430
477
  result
431
478
  end
432
479
 
433
- def _reduce_22(val, _values, result)
480
+ def _reduce_25(val, _values, result)
434
481
  result = Arithmetic::Node::BinaryOp.new(val[0], :+, val[2])
435
482
  result
436
483
  end
437
484
 
438
- def _reduce_23(val, _values, result)
485
+ def _reduce_26(val, _values, result)
439
486
  result = Arithmetic::Node::BinaryOp.new(val[0], :-, val[2])
440
487
  result
441
488
  end
442
489
 
443
- # reduce 24 omitted
490
+ # reduce 27 omitted
444
491
 
445
- def _reduce_25(val, _values, result)
492
+ def _reduce_28(val, _values, result)
446
493
  result = Arithmetic::Node::BinaryOp.new(val[0], :*, val[2])
447
494
  result
448
495
  end
449
496
 
450
- def _reduce_26(val, _values, result)
497
+ def _reduce_29(val, _values, result)
451
498
  result = Arithmetic::Node::DivideWithGameSystemDefault.new(val[0], val[2])
452
499
 
453
500
  result
454
501
  end
455
502
 
456
- # reduce 27 omitted
503
+ # reduce 30 omitted
457
504
 
458
- def _reduce_28(val, _values, result)
505
+ def _reduce_31(val, _values, result)
459
506
  result = val[1]
460
507
  result
461
508
  end
462
509
 
463
- def _reduce_29(val, _values, result)
510
+ def _reduce_32(val, _values, result)
464
511
  result = Arithmetic::Node::Negative.new(val[1])
465
512
  result
466
513
  end
467
514
 
468
- # reduce 30 omitted
515
+ # reduce 33 omitted
469
516
 
470
- def _reduce_31(val, _values, result)
517
+ def _reduce_34(val, _values, result)
471
518
  result = val[1]
472
519
  result
473
520
  end
474
521
 
475
- def _reduce_32(val, _values, result)
522
+ def _reduce_35(val, _values, result)
476
523
  result = Arithmetic::Node::Number.new(val[0])
477
524
  result
478
525
  end
@@ -39,7 +39,7 @@ module BCDice
39
39
  fumble = first_value_group == [1, 1]
40
40
  critical = first_value_group == [6, 6]
41
41
 
42
- if !fumble && !critical
42
+ unless fumble
43
43
  while sum_of_dice(value_groups.last) >= @critical_value
44
44
  value_groups.push(randomizer.roll_barabara(2, 6))
45
45
  end
@@ -12,8 +12,10 @@ require "bcdice/game_system/Amadeus"
12
12
  require "bcdice/game_system/Amadeus_Korean"
13
13
  require "bcdice/game_system/AngelGear"
14
14
  require "bcdice/game_system/AnimaAnimus"
15
+ require "bcdice/game_system/AniMalus"
15
16
  require "bcdice/game_system/Aoharubaan"
16
17
  require "bcdice/game_system/Arianrhod"
18
+ require "bcdice/game_system/ArknightsFan"
17
19
  require "bcdice/game_system/ArsMagica"
18
20
  require "bcdice/game_system/AssaultEngine"
19
21
  require "bcdice/game_system/Avandner"
@@ -83,6 +85,7 @@ require "bcdice/game_system/Fiasco"
83
85
  require "bcdice/game_system/Fiasco_Korean"
84
86
  require "bcdice/game_system/FilledWith"
85
87
  require "bcdice/game_system/FullMetalPanic"
88
+ require "bcdice/game_system/FullFace"
86
89
  require "bcdice/game_system/FutariSousa"
87
90
  require "bcdice/game_system/FutariSousa_Korean"
88
91
  require "bcdice/game_system/Garako"
@@ -120,6 +123,7 @@ require "bcdice/game_system/JekyllAndHyde"
120
123
  require "bcdice/game_system/JuinKansen"
121
124
  require "bcdice/game_system/Kamigakari"
122
125
  require "bcdice/game_system/Kamigakari_Korean"
126
+ require "bcdice/game_system/KamitsubakiCityUnderConstructionNarrative"
123
127
  require "bcdice/game_system/KanColle"
124
128
  require "bcdice/game_system/Karukami"
125
129
  require "bcdice/game_system/KemonoNoMori"
@@ -127,6 +131,8 @@ require "bcdice/game_system/KillDeathBusiness"
127
131
  require "bcdice/game_system/KillDeathBusiness_Korean"
128
132
  require "bcdice/game_system/KurayamiCrying"
129
133
  require "bcdice/game_system/Kutulu"
134
+ require "bcdice/game_system/KyokoShinshoku"
135
+ require "bcdice/game_system/Liminal"
130
136
  require "bcdice/game_system/LiveraDoll"
131
137
  require "bcdice/game_system/LogHorizon"
132
138
  require "bcdice/game_system/LogHorizon_Korean"
@@ -151,8 +157,10 @@ require "bcdice/game_system/NightWizard"
151
157
  require "bcdice/game_system/NightWizard3rd"
152
158
  require "bcdice/game_system/NightmareHunterDeep"
153
159
  require "bcdice/game_system/NinjaSlayer"
160
+ require "bcdice/game_system/NinjaSlayer2"
154
161
  require "bcdice/game_system/NjslyrBattle"
155
162
  require "bcdice/game_system/NobunagasBlackCastle"
163
+ require "bcdice/game_system/NRR"
156
164
  require "bcdice/game_system/NSSQ"
157
165
  require "bcdice/game_system/Nuekagami"
158
166
  require "bcdice/game_system/OneWayHeroics"
@@ -163,6 +171,7 @@ require "bcdice/game_system/Paradiso"
163
171
  require "bcdice/game_system/Paranoia"
164
172
  require "bcdice/game_system/ParanoiaRebooted"
165
173
  require "bcdice/game_system/ParasiteBlood"
174
+ require "bcdice/game_system/PastFutureParadox"
166
175
  require "bcdice/game_system/Pathfinder"
167
176
  require "bcdice/game_system/Peekaboo"
168
177
  require "bcdice/game_system/Pendragon"
@@ -182,6 +191,7 @@ require "bcdice/game_system/RuneQuestRoleplayingInGlorantha"
182
191
  require "bcdice/game_system/RyuTuber"
183
192
  require "bcdice/game_system/Ryutama"
184
193
  require "bcdice/game_system/SajinsenkiAGuS"
194
+ require "bcdice/game_system/SajinsenkiAGuS2E"
185
195
  require "bcdice/game_system/SRS"
186
196
  require "bcdice/game_system/SamsaraBallad"
187
197
  require "bcdice/game_system/Satasupe"
@@ -198,6 +208,7 @@ require "bcdice/game_system/ShinobiGami"
198
208
  require "bcdice/game_system/Shiranui"
199
209
  require "bcdice/game_system/ShoujoTenrankai"
200
210
  require "bcdice/game_system/ShuumatsuKikou"
211
+ require "bcdice/game_system/Siren"
201
212
  require "bcdice/game_system/Skynauts"
202
213
  require "bcdice/game_system/SkynautsBouken"
203
214
  require "bcdice/game_system/StarryDolls"
@@ -238,6 +249,7 @@ require "bcdice/game_system/WARPS"
238
249
  require "bcdice/game_system/WaresBlade"
239
250
  require "bcdice/game_system/Warhammer"
240
251
  require "bcdice/game_system/Warhammer4"
252
+ require "bcdice/game_system/WerewolfTheApocalypse5th"
241
253
  require "bcdice/game_system/WitchQuest"
242
254
  require "bcdice/game_system/WorldOfDarkness"
243
255
  require "bcdice/game_system/WorldsEndFrontline"
data/lib/bcdice/loader.rb CHANGED
@@ -8,7 +8,7 @@ module BCDice
8
8
  # @param id [String] ID
9
9
  # @return [Class, nil]
10
10
  def game_system_class(id)
11
- all_game_systems.find { |game_system| game_system::ID == id }
11
+ all_game_systems.find { |game_system| id == game_system::ID }
12
12
  end
13
13
 
14
14
  # ゲームシステムのクラス一覧を返す
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BCDice
4
- VERSION = "3.11.0"
4
+ VERSION = "3.13.0"
5
5
  end