bcdice 3.14.0 → 3.15.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 +59 -0
- data/i18n/Cthulhu/zh_hant.yml +1 -1
- data/i18n/CyberpunkRed/ko_kr.yml +389 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +52 -0
- data/i18n/FutariSousa/ja_jp.yml +138 -138
- data/i18n/KillDeathBusiness/ja_jp.yml +198 -0
- data/i18n/MagicaLogia/ko_kr.yml +2 -2
- data/i18n/MonotoneMuseum/ko_kr.yml +227 -0
- data/i18n/SkynautsBouken/ko_kr.yml +114 -0
- data/i18n/StratoShout/ko_kr.yml +102 -102
- data/i18n/zh_hant.yml +5 -0
- data/lib/bcdice/game_system/Aionia.rb +131 -0
- data/lib/bcdice/game_system/Arianrhod_Korean.rb +2 -0
- data/lib/bcdice/game_system/ArknightsFan.rb +245 -87
- data/lib/bcdice/game_system/BlackJacket_Korean.rb +244 -0
- data/lib/bcdice/game_system/CharonSanctions.rb +112 -0
- data/lib/bcdice/game_system/Cthulhu7th.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/full_auto.rb +293 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/rollable.rb +43 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +470 -306
- data/lib/bcdice/game_system/CyberpunkRed.rb +1 -2
- data/lib/bcdice/game_system/CyberpunkRed_Korean.rb +66 -0
- data/lib/bcdice/game_system/DoubleCross.rb +18 -1
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +5 -1
- data/lib/bcdice/game_system/FullFace.rb +25 -3
- data/lib/bcdice/game_system/FutariSousa.rb +17 -5
- data/lib/bcdice/game_system/Garactier.rb +479 -0
- data/lib/bcdice/game_system/GardenOrder.rb +390 -9
- data/lib/bcdice/game_system/GundogRevised.rb +8 -8
- data/lib/bcdice/game_system/KillDeathBusiness.rb +155 -3
- data/lib/bcdice/game_system/KimitoYell.rb +568 -0
- data/lib/bcdice/game_system/Magius.rb +125 -0
- data/lib/bcdice/game_system/Magius_3rdNewTokyoCity.rb +62 -0
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/NSSQ.rb +17 -9
- data/lib/bcdice/game_system/NervWhitePaper.rb +129 -0
- data/lib/bcdice/game_system/RogueLikeHalf.rb +198 -0
- data/lib/bcdice/game_system/RuneQuestRoleplayingInGlorantha.rb +16 -13
- data/lib/bcdice/game_system/ShinobiGami.rb +73 -43
- data/lib/bcdice/game_system/SkynautsBouken.rb +4 -4
- data/lib/bcdice/game_system/SkynautsBouken_Korean.rb +57 -0
- data/lib/bcdice/game_system/StratoShout_Korean.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +4 -0
- data/lib/bcdice/game_system/SwordWorld2_5.rb +3 -2
- data/lib/bcdice/game_system/TensaiGunshiNiNaro.rb +51 -17
- data/lib/bcdice/game_system/TheIndieHack.rb +82 -0
- data/lib/bcdice/game_system/TorgEternity.rb +35 -6
- data/lib/bcdice/game_system/WoW.rb +161 -0
- data/lib/bcdice/game_system/YankeeMustDie.rb +192 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +225 -28
- data/lib/bcdice/game_system/YuMyoKishi.rb +141 -0
- data/lib/bcdice/game_system/sword_world/rating_lexer.rb +1 -0
- data/lib/bcdice/game_system/sword_world/rating_options.rb +4 -1
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +5 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +129 -115
- data/lib/bcdice/game_system.rb +15 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +22 -6
@@ -38,6 +38,11 @@ module BCDice
|
|
38
38
|
・製作委員決定表 PCDT/実際どうだったのか表 OHT
|
39
39
|
・タスク表 ヘルライオン PCT1/ヘルクロウ PCT2/ヘルスネーク PCT3/
|
40
40
|
ヘルドラゴン PCT4/ヘルフライ PCT5/ヘルゴート PCT6/ヘルベア PCT7
|
41
|
+
・大喜利スペシャル表 (-OT)
|
42
|
+
お題決定表(TOT)、〇〇を見て一言表(OOT)
|
43
|
+
単語表(WOT, WOTx) xに英字(A,B,C)で単語表A(人物)(AOT)、単語表B(物)(BOT)、単語表C(場所)を個別ロール
|
44
|
+
動詞表(VOT)、長め単語表(LOT)
|
45
|
+
ヘル司会者 リアクション表(好印象ver)(POT)、ヘル司会者 リアクション表(不満ver)(NOT)
|
41
46
|
・D66ダイスあり
|
42
47
|
INFO_MESSAGE_TEXT
|
43
48
|
|
@@ -156,21 +161,37 @@ module BCDice
|
|
156
161
|
when /^ST(\d)?$/
|
157
162
|
# シーン表
|
158
163
|
type = Regexp.last_match(1).to_i
|
159
|
-
|
160
164
|
tableName, result, number = getSceneTableResult(type)
|
161
165
|
when /^NAME(\d)?$/
|
162
166
|
# 万能命名表
|
163
167
|
type = Regexp.last_match(1).to_i
|
164
168
|
tableName, result, number = getNameTableResult(type)
|
165
169
|
when /^EST$/i, /^sErviceST$/i
|
170
|
+
# サービスシーン表
|
166
171
|
tableName, result, number = getServiceSceneTableResult()
|
167
172
|
when /^HSAT(\d)?$/
|
173
|
+
# ヘルスタイリスト罵倒表
|
168
174
|
type = Regexp.last_match(1).to_i
|
169
175
|
tableName, result, number = getHairStylistAbuseTableResult(type)
|
170
|
-
|
171
176
|
when /^EXT(\d)?$/
|
177
|
+
# エキストラ表
|
172
178
|
type = Regexp.last_match(1).to_i
|
173
179
|
tableName, result, number = getExtraTableResult(type)
|
180
|
+
when /^TOT?$/
|
181
|
+
# お題決定表
|
182
|
+
tableName, result, number = getThemeTableResult()
|
183
|
+
when /^OOT?$/
|
184
|
+
# 一言決定表
|
185
|
+
tableName, result, number = getOneWordTableResult()
|
186
|
+
when /^WOT?$/
|
187
|
+
# 単語決定表
|
188
|
+
tableName, result, number = getWordTableResult()
|
189
|
+
when /^POT?$/
|
190
|
+
# ヘル司会者 リアクション表(好印象ver)
|
191
|
+
tableName, result, number = getPositiveTableResult()
|
192
|
+
when /^NOT?$/
|
193
|
+
# ヘル司会者 リアクション表(不満ver)
|
194
|
+
tableName, result, number = getNegativeTableResult()
|
174
195
|
end
|
175
196
|
|
176
197
|
if result.empty?
|
@@ -333,6 +354,127 @@ module BCDice
|
|
333
354
|
return tableName, result, number
|
334
355
|
end
|
335
356
|
|
357
|
+
def getThemeTableResult()
|
358
|
+
tableName = translate("KillDeathBusiness.table.TOT.name")
|
359
|
+
|
360
|
+
result = ''
|
361
|
+
d6 = @randomizer.roll_once(6)
|
362
|
+
|
363
|
+
case d6
|
364
|
+
when 1
|
365
|
+
oneTableName, oneResult, oneD6, one = getOneWordTableResult()
|
366
|
+
result += "[#{oneTableName}]を見て一言。\n#{oneTableName}(#{oneD6}) > #{oneResult}\n> "
|
367
|
+
result += translate("KillDeathBusiness.table.TOT.items.1", one: one)
|
368
|
+
when 2
|
369
|
+
word1TableName, word1Result, word1D6, word1 = getWordTableResult()
|
370
|
+
word2TableName, word2Result, word2D6, word2 = getWordTableResult()
|
371
|
+
result += "この[#{word1TableName}]、ひょっとして[#{word1TableName}]かも、どうしてそう思った?\n#{word1TableName}(#{word1D6}) > #{word1Result}\n#{word2TableName}(#{word2D6}) > #{word2Result}\n> "
|
372
|
+
result += translate("KillDeathBusiness.table.TOT.items.2", word1: word1, word2: word2)
|
373
|
+
when 3
|
374
|
+
vot = self.class::TABLES["VOT"].roll(@randomizer)
|
375
|
+
verbTableName = vot.table_name
|
376
|
+
verb = vot.body
|
377
|
+
number = vot.value
|
378
|
+
wordTableName, wordResult, wordD6, word = getWordTableResult()
|
379
|
+
result += "[#{verbTableName}]した[#{wordTableName}]が言いそうなこと。\n#{verbTableName}(#{number}) > #{verb}\n#{wordTableName}(#{wordD6}) > #{wordResult}\n> "
|
380
|
+
result += translate("KillDeathBusiness.table.TOT.items.3", verb: verb, word: word)
|
381
|
+
when 4
|
382
|
+
word1TableName, word1Result, word1D6, word1 = getWordTableResult()
|
383
|
+
word2TableName, word2Result, word2D6, word2 = getWordTableResult()
|
384
|
+
result += "[#{word1TableName}]が[#{word1TableName}]になった世界ではどんなことが起こる?\n#{word1TableName}(#{word1D6}) > #{word1Result}\n#{word2TableName}(#{word2D6}) > #{word2Result}\n> "
|
385
|
+
result += translate("KillDeathBusiness.table.TOT.items.4", word1: word1, word2: word2)
|
386
|
+
when 5
|
387
|
+
wordTableName, wordResult, wordD6, word = getWordTableResult()
|
388
|
+
result += "こんな[#{wordTableName}]は嫌だ。どんなの?\n#{wordTableName}(#{wordD6}) > #{wordResult}\n> "
|
389
|
+
result += translate("KillDeathBusiness.table.TOT.items.5", word: word)
|
390
|
+
when 6
|
391
|
+
lot = self.class::TABLES["LOT"].roll(@randomizer)
|
392
|
+
longTableName = lot.table_name
|
393
|
+
long = lot.body
|
394
|
+
number = lot.value
|
395
|
+
result += "[#{longTableName}]みたいなことを言って下さい。\n#{longTableName}(#{number}) > #{long}\n> "
|
396
|
+
result += translate("KillDeathBusiness.table.TOT.items.6", long: long)
|
397
|
+
end
|
398
|
+
|
399
|
+
return tableName, result, d6
|
400
|
+
end
|
401
|
+
|
402
|
+
def getOneWordTableResult()
|
403
|
+
tableName = translate("KillDeathBusiness.table.OOT.name")
|
404
|
+
|
405
|
+
result = ''
|
406
|
+
d6 = @randomizer.roll_once(6)
|
407
|
+
|
408
|
+
case d6
|
409
|
+
when 1, 2
|
410
|
+
oneWord = translate("KillDeathBusiness.table.OOT.items.1")
|
411
|
+
result = oneWord
|
412
|
+
when 3, 4
|
413
|
+
oneWord = translate("KillDeathBusiness.table.OOT.items.3")
|
414
|
+
result = oneWord
|
415
|
+
when 5, 6
|
416
|
+
wordTableName, wordResult, wordD6, word = getWordTableResult()
|
417
|
+
result += "[#{wordTableName}]で検索して出てくる6番目の画像\n#{wordTableName}(#{wordD6}) > #{wordResult}\n> "
|
418
|
+
oneWord = translate("KillDeathBusiness.table.OOT.items.5", word: word)
|
419
|
+
result += oneWord
|
420
|
+
end
|
421
|
+
|
422
|
+
return tableName, result, d6, oneWord
|
423
|
+
end
|
424
|
+
|
425
|
+
def getWordTableResult()
|
426
|
+
tableName = "単語表"
|
427
|
+
|
428
|
+
d6 = @randomizer.roll_once(6)
|
429
|
+
table =
|
430
|
+
case d6
|
431
|
+
when 1, 2
|
432
|
+
self.class::TABLES["WOTA"]
|
433
|
+
when 3, 4
|
434
|
+
self.class::TABLES["WOTB"]
|
435
|
+
when 5, 6
|
436
|
+
self.class::TABLES["WOTC"]
|
437
|
+
end
|
438
|
+
|
439
|
+
result = table.roll(@randomizer)
|
440
|
+
|
441
|
+
return tableName, result.to_s, d6, result.body
|
442
|
+
end
|
443
|
+
|
444
|
+
def getPositiveTableResult()
|
445
|
+
tableName = translate("KillDeathBusiness.table.POT.name")
|
446
|
+
|
447
|
+
table = [
|
448
|
+
lambda { return translate("KillDeathBusiness.table.POT.items.1", size: @randomizer.roll_sum(1, 6).to_s) },
|
449
|
+
lambda { return translate("KillDeathBusiness.table.POT.items.2", size: @randomizer.roll_sum(1, 6).to_s) },
|
450
|
+
lambda { return translate("KillDeathBusiness.table.POT.items.3", size: @randomizer.roll_sum(2, 6).to_s) },
|
451
|
+
lambda { return translate("KillDeathBusiness.table.POT.items.4", size: @randomizer.roll_sum(2, 6).to_s) },
|
452
|
+
translate("KillDeathBusiness.table.POT.items.5"),
|
453
|
+
lambda { return translate("KillDeathBusiness.table.POT.items.6", size: (@randomizer.roll_sum(1, 6) - 3).to_s) },
|
454
|
+
]
|
455
|
+
|
456
|
+
result, number = get_table_by_1d6(table)
|
457
|
+
|
458
|
+
return tableName, result, number
|
459
|
+
end
|
460
|
+
|
461
|
+
def getNegativeTableResult()
|
462
|
+
tableName = translate("KillDeathBusiness.table.NOT.name")
|
463
|
+
|
464
|
+
table = [
|
465
|
+
translate("KillDeathBusiness.table.NOT.items.1"),
|
466
|
+
translate("KillDeathBusiness.table.NOT.items.2"),
|
467
|
+
lambda { return translate("KillDeathBusiness.table.NOT.items.3", size: @randomizer.roll_sum(1, 6).to_s) },
|
468
|
+
lambda { return translate("KillDeathBusiness.table.NOT.items.4", size: @randomizer.roll_sum(1, 6).to_s) },
|
469
|
+
lambda { return translate("KillDeathBusiness.table.NOT.items.5", size: @randomizer.roll_sum(1, 6).to_s) },
|
470
|
+
translate("KillDeathBusiness.table.NOT.items.6"),
|
471
|
+
]
|
472
|
+
|
473
|
+
result, number = get_table_by_1d6(table)
|
474
|
+
|
475
|
+
return tableName, result, number
|
476
|
+
end
|
477
|
+
|
336
478
|
ALIAS = {
|
337
479
|
"DeathWT" => "DWT",
|
338
480
|
"RevengeWT" => "RWT",
|
@@ -396,6 +538,11 @@ module BCDice
|
|
396
538
|
"PASPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.PASPT", locale),
|
397
539
|
"POSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.POSPT", locale),
|
398
540
|
"UMSPT" => DiceTable::Table.from_i18n("KillDeathBusiness.table.UMSPT", locale),
|
541
|
+
"WOTA" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.WOTA", locale),
|
542
|
+
"WOTB" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.WOTB", locale),
|
543
|
+
"WOTC" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.WOTC", locale),
|
544
|
+
"VOT" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.VOT", locale),
|
545
|
+
"LOT" => DiceTable::D66Table.from_i18n("KillDeathBusiness.table.LOT", locale),
|
399
546
|
}
|
400
547
|
end
|
401
548
|
|
@@ -413,7 +560,12 @@ module BCDice
|
|
413
560
|
'EST', 'sErviceST',
|
414
561
|
'HSAT[1-2]?',
|
415
562
|
'EXT[1-4]?',
|
416
|
-
'JD'
|
563
|
+
'JD',
|
564
|
+
'TOT',
|
565
|
+
'OOT',
|
566
|
+
'WOT',
|
567
|
+
'POT',
|
568
|
+
'NOT'
|
417
569
|
)
|
418
570
|
register_prefix(TABLES.keys, register_prefix(ALIAS.keys), RTT.prefixes)
|
419
571
|
end
|