bcdice 3.4.0 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -0
- data/i18n/BeginningIdol/ja_jp.yml +2806 -0
- data/i18n/BeginningIdol/ko_kr.yml +1400 -0
- data/i18n/KillDeathBusiness/ja_jp.yml +1 -1
- data/i18n/MagicaLogia/ja_jp.yml +1 -1
- data/i18n/MonotoneMuseum/ko_kr.yml +526 -53
- data/lib/bcdice/common_command/choice.rb +5 -1
- data/lib/bcdice/common_command/tally_dice/node.rb +135 -0
- data/lib/bcdice/common_command/tally_dice/parser.rb +302 -0
- data/lib/bcdice/common_command/tally_dice.rb +19 -0
- data/lib/bcdice/common_command.rb +2 -0
- data/lib/bcdice/dice_table/d66_table.rb +5 -1
- data/lib/bcdice/game_system/Aoharubaan.rb +91 -0
- data/lib/bcdice/game_system/AssaultEngine.rb +91 -0
- data/lib/bcdice/game_system/BadLife.rb +264 -289
- data/lib/bcdice/game_system/Bakenokawa.rb +244 -0
- data/lib/bcdice/game_system/BeginningIdol.rb +116 -2390
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +10 -2312
- data/lib/bcdice/game_system/CastleInGray.rb +133 -0
- data/lib/bcdice/game_system/Cthulhu.rb +2 -2
- data/lib/bcdice/game_system/Cthulhu7th.rb +6 -6
- data/lib/bcdice/game_system/DoubleCross.rb +5 -0
- data/lib/bcdice/game_system/Emoklore.rb +1 -1
- data/lib/bcdice/game_system/FateCoreSystem.rb +117 -0
- data/lib/bcdice/game_system/Karukami.rb +84 -0
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/{SterileLife.rb → StellarLife.rb} +162 -226
- data/lib/bcdice/game_system/SwordWorld.rb +6 -2
- data/lib/bcdice/game_system/SwordWorld2_0.rb +20 -5
- data/lib/bcdice/game_system/SwordWorld2_5.rb +6 -0
- data/lib/bcdice/game_system/TalesFromTheLoop.rb +83 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +40 -19
- data/lib/bcdice/game_system/beginning_idol/accessories_table.rb +31 -0
- data/lib/bcdice/game_system/beginning_idol/bad_status_table.rb +43 -0
- data/lib/bcdice/game_system/beginning_idol/chain_d66_table.rb +29 -0
- data/lib/bcdice/game_system/beginning_idol/chain_table.rb +37 -0
- data/lib/bcdice/game_system/beginning_idol/costume_table.rb +37 -0
- data/lib/bcdice/game_system/beginning_idol/d6_twice_table.rb +36 -0
- data/lib/bcdice/game_system/beginning_idol/item_table.rb +51 -0
- data/lib/bcdice/game_system/beginning_idol/my_skill_name_table.rb +44 -0
- data/lib/bcdice/game_system/beginning_idol/random_event_table.rb +31 -0
- data/lib/bcdice/game_system/beginning_idol/skill_table.rb +63 -0
- data/lib/bcdice/game_system/beginning_idol/table.rb +193 -0
- data/lib/bcdice/game_system/beginning_idol/with_abnormality.rb +74 -0
- data/lib/bcdice/game_system/beginning_idol/work_table.rb +57 -0
- data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +4 -4
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +46 -3
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +147 -106
- data/lib/bcdice/game_system.rb +8 -1
- data/lib/bcdice/version.rb +1 -1
- metadata +28 -3
@@ -44,24 +44,7 @@ module BCDice
|
|
44
44
|
register_prefix('\d?(BAD|BL|GL)', '[TDGKSB]RN', 'SKL')
|
45
45
|
|
46
46
|
def eval_game_system_specific_command(command)
|
47
|
-
command
|
48
|
-
|
49
|
-
result = judgeDice(command)
|
50
|
-
return result unless result.nil?
|
51
|
-
|
52
|
-
output =
|
53
|
-
case command
|
54
|
-
|
55
|
-
when /([TDGKSB])RN/i
|
56
|
-
initials = Regexp.last_match(1)
|
57
|
-
get_name_table(initials)
|
58
|
-
|
59
|
-
when 'SKL'
|
60
|
-
get_skill_table
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
return output
|
47
|
+
judgeDice(command) || roll_tables(command, TABLES)
|
65
48
|
end
|
66
49
|
|
67
50
|
def judgeDice(command)
|
@@ -153,283 +136,275 @@ module BCDice
|
|
153
136
|
return result
|
154
137
|
end
|
155
138
|
|
156
|
-
def
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
139
|
+
def get_value(text)
|
140
|
+
text ||= ""
|
141
|
+
return ArithmeticEvaluator.eval(text)
|
142
|
+
end
|
143
|
+
|
144
|
+
TABLES = {
|
145
|
+
"SKL" => DiceTable::Table.new(
|
146
|
+
"スキル表",
|
147
|
+
"1D100",
|
148
|
+
[
|
149
|
+
"一撃離脱",
|
150
|
+
"一撃離脱",
|
151
|
+
"チェイサー",
|
152
|
+
"チェイサー",
|
153
|
+
"影の外套",
|
154
|
+
"影の外套",
|
155
|
+
"二段ジャンプ",
|
156
|
+
"二段ジャンプ",
|
157
|
+
"韋駄天",
|
158
|
+
"韋駄天",
|
159
|
+
"手練",
|
160
|
+
"手練",
|
161
|
+
"ハニーテイスト",
|
162
|
+
"ハニーテイスト",
|
163
|
+
"先見の明",
|
164
|
+
"先見の明",
|
165
|
+
"ベテラン",
|
166
|
+
"ベテラン",
|
167
|
+
"応急手当",
|
168
|
+
"応急手当",
|
169
|
+
"セラピー",
|
170
|
+
"セラピー",
|
171
|
+
"緊急治療",
|
172
|
+
"緊急治療",
|
173
|
+
"ゴールドディガー",
|
174
|
+
"ゴールドディガー",
|
175
|
+
"デイリーミッション",
|
176
|
+
"デイリーミッション",
|
177
|
+
"見切り",
|
178
|
+
"見切り",
|
179
|
+
"鷹の目",
|
180
|
+
"鷹の目",
|
181
|
+
"しびれ罠",
|
182
|
+
"しびれ罠",
|
183
|
+
"大逆転",
|
184
|
+
"大逆転",
|
185
|
+
"武器習熟:○○",
|
186
|
+
"武器習熟:○○",
|
187
|
+
"百発百中",
|
188
|
+
"百発百中",
|
189
|
+
"屈強な肉体",
|
190
|
+
"屈強な肉体",
|
191
|
+
"二刀流",
|
192
|
+
"二刀流",
|
193
|
+
"クイックリカバリー",
|
194
|
+
"クイックリカバリー",
|
195
|
+
"体験主義",
|
196
|
+
"体験主義",
|
197
|
+
"破釜沈船",
|
198
|
+
"破釜沈船",
|
199
|
+
"想定の範囲内",
|
200
|
+
"想定の範囲内",
|
201
|
+
"セカンドチャンス",
|
202
|
+
"セカンドチャンス",
|
203
|
+
"優秀な子分",
|
204
|
+
"優秀な子分",
|
205
|
+
"時間管理術",
|
206
|
+
"時間管理術",
|
207
|
+
"連撃術",
|
208
|
+
"連撃術",
|
209
|
+
"罵詈雑言",
|
210
|
+
"罵詈雑言",
|
211
|
+
"ケセラセラ",
|
212
|
+
"ケセラセラ",
|
213
|
+
"ダンス&ミュージック",
|
214
|
+
"ダンス&ミュージック",
|
215
|
+
"フェイント",
|
216
|
+
"フェイント",
|
217
|
+
"ヘイトコントロール",
|
218
|
+
"ヘイトコントロール",
|
219
|
+
"惜別",
|
220
|
+
"惜別",
|
221
|
+
"戦闘マシーン",
|
222
|
+
"戦闘マシーン",
|
223
|
+
"戦闘マシーン",
|
224
|
+
"名医",
|
225
|
+
"名医",
|
226
|
+
"名医",
|
227
|
+
"忍者",
|
228
|
+
"忍者",
|
229
|
+
"忍者",
|
230
|
+
"観察眼",
|
231
|
+
"観察眼",
|
232
|
+
"観察眼",
|
233
|
+
"クレバー",
|
234
|
+
"クレバー",
|
235
|
+
"クレバー",
|
236
|
+
"フェイスマン",
|
237
|
+
"フェイスマン",
|
238
|
+
"フェイスマン",
|
239
|
+
"スポーツマン",
|
240
|
+
"スポーツマン",
|
241
|
+
"スポーツマン",
|
242
|
+
"不屈",
|
243
|
+
"不屈",
|
244
|
+
"不屈",
|
245
|
+
"慎重",
|
246
|
+
"慎重",
|
247
|
+
"慎重",
|
248
|
+
"この表を2回振る",
|
181
249
|
]
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
250
|
+
),
|
251
|
+
"TRN" => DiceTable::Table.new(
|
252
|
+
"怪盗コードネーム表",
|
253
|
+
"1D20",
|
254
|
+
[
|
255
|
+
"フォックス",
|
256
|
+
"フォックス",
|
257
|
+
"ラット",
|
258
|
+
"ラット",
|
259
|
+
"キャット",
|
260
|
+
"キャット",
|
261
|
+
"タイガー",
|
262
|
+
"タイガー",
|
263
|
+
"シャーク",
|
264
|
+
"シャーク",
|
265
|
+
"コンドル",
|
266
|
+
"コンドル",
|
267
|
+
"スパイダー",
|
268
|
+
"スパイダー",
|
269
|
+
"ウルフ",
|
270
|
+
"ウルフ",
|
271
|
+
"コヨーテ",
|
272
|
+
"コヨーテ",
|
273
|
+
"ジャガー",
|
274
|
+
"ジャガー",
|
205
275
|
]
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
276
|
+
),
|
277
|
+
"DRN" => DiceTable::Table.new(
|
278
|
+
"闇医者コードネーム表",
|
279
|
+
"1D20",
|
280
|
+
[
|
281
|
+
"キャンサー",
|
282
|
+
"キャンサー",
|
283
|
+
"ヘッドエイク",
|
284
|
+
"ヘッドエイク",
|
285
|
+
"ブラッド",
|
286
|
+
"ブラッド",
|
287
|
+
"ウーンズ",
|
288
|
+
"ウーンズ",
|
289
|
+
"ポイズン",
|
290
|
+
"ポイズン",
|
291
|
+
"ペイン",
|
292
|
+
"ペイン",
|
293
|
+
"スリープ",
|
294
|
+
"スリープ",
|
295
|
+
"キュア",
|
296
|
+
"キュア",
|
297
|
+
"デス",
|
298
|
+
"デス",
|
299
|
+
"リーンカーネイション",
|
300
|
+
"リーンカーネイション",
|
229
301
|
]
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
302
|
+
),
|
303
|
+
"GRN" => DiceTable::Table.new(
|
304
|
+
"博徒コードネーム表",
|
305
|
+
"1D20",
|
306
|
+
[
|
307
|
+
"リトルダイス",
|
308
|
+
"リトルダイス",
|
309
|
+
"プラチナム",
|
310
|
+
"プラチナム",
|
311
|
+
"プレジデント",
|
312
|
+
"プレジデント",
|
313
|
+
"ドリーム",
|
314
|
+
"ドリーム",
|
315
|
+
"アクシデント",
|
316
|
+
"アクシデント",
|
317
|
+
"グリード",
|
318
|
+
"グリード",
|
319
|
+
"フォーチュン",
|
320
|
+
"フォーチュン",
|
321
|
+
"ミラクル",
|
322
|
+
"ミラクル",
|
323
|
+
"ホープ",
|
324
|
+
"ホープ",
|
325
|
+
"ビッグヒット",
|
326
|
+
"ビッグヒット",
|
253
327
|
]
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
328
|
+
),
|
329
|
+
"KRN" => DiceTable::Table.new(
|
330
|
+
"殺シ屋コードネーム表",
|
331
|
+
"1D20",
|
332
|
+
[
|
333
|
+
"ハンマー",
|
334
|
+
"ハンマー",
|
335
|
+
"アロー",
|
336
|
+
"アロー",
|
337
|
+
"ボマー",
|
338
|
+
"ボマー",
|
339
|
+
"キャノン",
|
340
|
+
"キャノン",
|
341
|
+
"ブレード",
|
342
|
+
"ブレード",
|
343
|
+
"スティング",
|
344
|
+
"スティング",
|
345
|
+
"ガロット",
|
346
|
+
"ガロット",
|
347
|
+
"パイルバンカー",
|
348
|
+
"パイルバンカー",
|
349
|
+
"レイザー",
|
350
|
+
"レイザー",
|
351
|
+
"カタナ",
|
352
|
+
"カタナ",
|
277
353
|
]
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
354
|
+
),
|
355
|
+
"SRN" => DiceTable::Table.new(
|
356
|
+
"業師コードネーム表",
|
357
|
+
"1D20",
|
358
|
+
[
|
359
|
+
"ローズ",
|
360
|
+
"ローズ",
|
361
|
+
"サクラ",
|
362
|
+
"サクラ",
|
363
|
+
"ライラック",
|
364
|
+
"ライラック",
|
365
|
+
"ダンデライオン",
|
366
|
+
"ダンデライオン",
|
367
|
+
"フリージア",
|
368
|
+
"フリージア",
|
369
|
+
"カクタス",
|
370
|
+
"カクタス",
|
371
|
+
"ロータス",
|
372
|
+
"ロータス",
|
373
|
+
"リリィ",
|
374
|
+
"リリィ",
|
375
|
+
"ラフレシア",
|
376
|
+
"ラフレシア",
|
377
|
+
"ヒヤシンス",
|
378
|
+
"ヒヤシンス",
|
301
379
|
]
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
[19, '応急手当'],
|
331
|
-
[20, '応急手当'],
|
332
|
-
[21, 'セラピー'],
|
333
|
-
[22, 'セラピー'],
|
334
|
-
[23, '緊急治療'],
|
335
|
-
[24, '緊急治療'],
|
336
|
-
[25, 'ゴールドディガー'],
|
337
|
-
[26, 'ゴールドディガー'],
|
338
|
-
[27, 'デイリーミッション'],
|
339
|
-
[28, 'デイリーミッション'],
|
340
|
-
[29, '見切り'],
|
341
|
-
[30, '見切り'],
|
342
|
-
[31, '鷹の目'],
|
343
|
-
[32, '鷹の目'],
|
344
|
-
[33, 'しびれ罠'],
|
345
|
-
[34, 'しびれ罠'],
|
346
|
-
[35, '大逆転'],
|
347
|
-
[36, '大逆転'],
|
348
|
-
[37, '武器習熟:○○'],
|
349
|
-
[38, '武器習熟:○○'],
|
350
|
-
[39, '百発百中'],
|
351
|
-
[40, '百発百中'],
|
352
|
-
[41, '屈強な肉体'],
|
353
|
-
[42, '屈強な肉体'],
|
354
|
-
[43, '二刀流'],
|
355
|
-
[44, '二刀流'],
|
356
|
-
[45, 'クイックリカバリー'],
|
357
|
-
[46, 'クイックリカバリー'],
|
358
|
-
[47, '体験主義'],
|
359
|
-
[48, '体験主義'],
|
360
|
-
[49, '破釜沈船'],
|
361
|
-
[50, '破釜沈船'],
|
362
|
-
[51, '想定の範囲内'],
|
363
|
-
[52, '想定の範囲内'],
|
364
|
-
[53, 'セカンドチャンス'],
|
365
|
-
[54, 'セカンドチャンス'],
|
366
|
-
[55, '優秀な子分'],
|
367
|
-
[56, '優秀な子分'],
|
368
|
-
[57, '時間管理術'],
|
369
|
-
[58, '時間管理術'],
|
370
|
-
[59, '連撃術'],
|
371
|
-
[60, '連撃術'],
|
372
|
-
[61, '罵詈雑言'],
|
373
|
-
[62, '罵詈雑言'],
|
374
|
-
[63, 'ケセラセラ'],
|
375
|
-
[64, 'ケセラセラ'],
|
376
|
-
[65, 'ダンス&ミュージック'],
|
377
|
-
[66, 'ダンス&ミュージック'],
|
378
|
-
[67, 'フェイント'],
|
379
|
-
[68, 'フェイント'],
|
380
|
-
[69, 'ヘイトコントロール'],
|
381
|
-
[70, 'ヘイトコントロール'],
|
382
|
-
[71, '惜別'],
|
383
|
-
[72, '惜別'],
|
384
|
-
[73, '戦闘マシーン'],
|
385
|
-
[74, '戦闘マシーン'],
|
386
|
-
[75, '戦闘マシーン'],
|
387
|
-
[76, '名医'],
|
388
|
-
[77, '名医'],
|
389
|
-
[78, '名医'],
|
390
|
-
[79, '忍者'],
|
391
|
-
[80, '忍者'],
|
392
|
-
[81, '忍者'],
|
393
|
-
[82, '観察眼'],
|
394
|
-
[83, '観察眼'],
|
395
|
-
[84, '観察眼'],
|
396
|
-
[85, 'クレバー'],
|
397
|
-
[86, 'クレバー'],
|
398
|
-
[87, 'クレバー'],
|
399
|
-
[88, 'フェイスマン'],
|
400
|
-
[89, 'フェイスマン'],
|
401
|
-
[90, 'フェイスマン'],
|
402
|
-
[91, 'スポーツマン'],
|
403
|
-
[92, 'スポーツマン'],
|
404
|
-
[93, 'スポーツマン'],
|
405
|
-
[94, '不屈'],
|
406
|
-
[95, '不屈'],
|
407
|
-
[96, '不屈'],
|
408
|
-
[97, '慎重'],
|
409
|
-
[98, '慎重'],
|
410
|
-
[99, '慎重'],
|
411
|
-
[100, 'この表を2回振る']
|
412
|
-
]
|
413
|
-
dice = @randomizer.roll_once(100)
|
414
|
-
result = get_table_by_number(dice, table)
|
415
|
-
|
416
|
-
return get_badlife_table_result(name, dice, result)
|
417
|
-
end
|
418
|
-
|
419
|
-
def get_badlife_1d20_table_result(name, table)
|
420
|
-
dice = @randomizer.roll_once(20)
|
421
|
-
output = get_table_by_number(dice, table)
|
422
|
-
return get_badlife_table_result(name, dice, output)
|
423
|
-
end
|
424
|
-
|
425
|
-
def get_badlife_table_result(name, dice, output)
|
426
|
-
return "#{name}(#{dice}) > #{output}"
|
427
|
-
end
|
428
|
-
|
429
|
-
def get_value(text)
|
430
|
-
text ||= ""
|
431
|
-
return ArithmeticEvaluator.eval(text)
|
432
|
-
end
|
380
|
+
),
|
381
|
+
"BRN" => DiceTable::Table.new(
|
382
|
+
"遊ビ人コードネーム表",
|
383
|
+
"1D20",
|
384
|
+
[
|
385
|
+
"モノポリー",
|
386
|
+
"モノポリー",
|
387
|
+
"ブリッジ",
|
388
|
+
"ブリッジ",
|
389
|
+
"チェッカー",
|
390
|
+
"チェッカー",
|
391
|
+
"アクワイア",
|
392
|
+
"アクワイア",
|
393
|
+
"ジャンケン",
|
394
|
+
"ジャンケン",
|
395
|
+
"トランプ",
|
396
|
+
"トランプ",
|
397
|
+
"ケイドロ",
|
398
|
+
"ケイドロ",
|
399
|
+
"パンデミック",
|
400
|
+
"パンデミック",
|
401
|
+
"スゴロク",
|
402
|
+
"スゴロク",
|
403
|
+
"キャベツカンテイ",
|
404
|
+
"キャベツカンテイ",
|
405
|
+
]
|
406
|
+
),
|
407
|
+
}.freeze
|
433
408
|
end
|
434
409
|
end
|
435
410
|
end
|