bcdice 3.11.0 → 3.13.0

Sign up to get free protection for your applications and to get access to all the features.
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