bcdice 3.1.3 → 3.2.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 +33 -2
- data/i18n/StellarKnights/ja_jp.yml +496 -0
- data/lib/bcdice/common_command/add_dice.rb +1 -1
- data/lib/bcdice/common_command/calc.rb +1 -1
- data/lib/bcdice/dice_table.rb +2 -0
- data/lib/bcdice/dice_table/d66_half_grid_table.rb +33 -0
- data/lib/bcdice/dice_table/d66_one_third_table.rb +34 -0
- data/lib/bcdice/game_system.rb +3 -0
- data/lib/bcdice/game_system/AceKillerGene.rb +1 -1
- data/lib/bcdice/game_system/Ainecadette.rb +68 -0
- data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
- data/lib/bcdice/game_system/Alsetto.rb +1 -1
- data/lib/bcdice/game_system/AlterRaise.rb +2 -2
- data/lib/bcdice/game_system/AngelGear.rb +1 -1
- data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
- data/lib/bcdice/game_system/Arianrhod.rb +6 -8
- data/lib/bcdice/game_system/Avandner.rb +1 -1
- data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
- data/lib/bcdice/game_system/BattleTech.rb +1 -1
- data/lib/bcdice/game_system/BeginningIdol.rb +5 -5
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +5 -5
- data/lib/bcdice/game_system/BladeOfArcana.rb +1 -1
- data/lib/bcdice/game_system/BlindMythos.rb +1 -1
- data/lib/bcdice/game_system/BloodCrusade.rb +6 -7
- data/lib/bcdice/game_system/BloodMoon.rb +9 -8
- data/lib/bcdice/game_system/CardRanker.rb +8 -7
- data/lib/bcdice/game_system/ChaosFlare.rb +21 -15
- data/lib/bcdice/game_system/Chill.rb +10 -10
- data/lib/bcdice/game_system/Chill3.rb +9 -9
- data/lib/bcdice/game_system/CrashWorld.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th.rb +48 -10
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
- data/lib/bcdice/game_system/DarkBlaze.rb +0 -11
- data/lib/bcdice/game_system/DarkDaysDrive.rb +8 -7
- data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
- data/lib/bcdice/game_system/DemonParasite.rb +5 -13
- data/lib/bcdice/game_system/DesperateRun.rb +1 -1
- data/lib/bcdice/game_system/DoubleCross.rb +1 -1
- data/lib/bcdice/game_system/Dracurouge.rb +1 -1
- data/lib/bcdice/game_system/EclipsePhase.rb +14 -14
- data/lib/bcdice/game_system/Elric.rb +18 -14
- data/lib/bcdice/game_system/Elysion.rb +1 -1
- data/lib/bcdice/game_system/EmbryoMachine.rb +9 -8
- data/lib/bcdice/game_system/Emoklore.rb +3 -3
- data/lib/bcdice/game_system/Fiasco.rb +1 -1
- data/lib/bcdice/game_system/FilledWith.rb +4 -0
- data/lib/bcdice/game_system/GURPS.rb +17 -28
- data/lib/bcdice/game_system/Garako.rb +1 -1
- data/lib/bcdice/game_system/GardenOrder.rb +1 -1
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
- data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +2 -8
- data/lib/bcdice/game_system/GranCrest.rb +18 -11
- data/lib/bcdice/game_system/Gundog.rb +9 -8
- data/lib/bcdice/game_system/GundogRevised.rb +10 -9
- data/lib/bcdice/game_system/GundogZero.rb +1 -1
- data/lib/bcdice/game_system/GurpsFW.rb +16 -16
- data/lib/bcdice/game_system/HarnMaster.rb +19 -26
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
- data/lib/bcdice/game_system/Hieizan.rb +12 -21
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/HuntersMoon.rb +5 -10
- data/lib/bcdice/game_system/InfiniteFantasia.rb +19 -17
- data/lib/bcdice/game_system/Insane.rb +13 -20
- data/lib/bcdice/game_system/IthaWenUa.rb +8 -15
- data/lib/bcdice/game_system/JamesBond.rb +10 -10
- data/lib/bcdice/game_system/JekyllAndHyde.rb +1 -1
- data/lib/bcdice/game_system/Kamigakari.rb +1 -1
- data/lib/bcdice/game_system/KanColle.rb +4 -9
- data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
- data/lib/bcdice/game_system/KillDeathBusiness.rb +7 -15
- data/lib/bcdice/game_system/KurayamiCrying.rb +55 -2
- data/lib/bcdice/game_system/MeikyuDays.rb +10 -8
- data/lib/bcdice/game_system/MeikyuKingdom.rb +26 -26
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +3 -3
- data/lib/bcdice/game_system/MetalHead.rb +12 -22
- data/lib/bcdice/game_system/MetalHeadExtream.rb +5 -5
- data/lib/bcdice/game_system/MonotoneMuseum.rb +8 -6
- data/lib/bcdice/game_system/Nechronica.rb +28 -21
- data/lib/bcdice/game_system/NinjaSlayer.rb +4 -4
- data/lib/bcdice/game_system/NjslyrBattle.rb +8 -11
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
- data/lib/bcdice/game_system/Paradiso.rb +1 -1
- data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
- data/lib/bcdice/game_system/Peekaboo.rb +4 -9
- data/lib/bcdice/game_system/Pendragon.rb +7 -7
- data/lib/bcdice/game_system/PhantasmAdventure.rb +8 -8
- data/lib/bcdice/game_system/Postman.rb +1 -1
- data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
- data/lib/bcdice/game_system/Raisondetre.rb +2 -2
- data/lib/bcdice/game_system/Revulture.rb +123 -0
- data/lib/bcdice/game_system/RuneQuest.rb +8 -8
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/Satasupe.rb +1 -1
- data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
- data/lib/bcdice/game_system/SharedFantasia.rb +19 -23
- data/lib/bcdice/game_system/ShinobiGami.rb +14 -6
- data/lib/bcdice/game_system/Skynauts.rb +2 -2
- data/lib/bcdice/game_system/SkynautsBouken.rb +228 -0
- data/lib/bcdice/game_system/StellarKnights.rb +59 -696
- data/lib/bcdice/game_system/SterileLife.rb +1 -1
- data/lib/bcdice/game_system/StratoShout.rb +8 -16
- data/lib/bcdice/game_system/Strave.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +16 -7
- data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -2
- data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -2
- data/lib/bcdice/game_system/TherapieSein.rb +1 -1
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +1 -1
- data/lib/bcdice/game_system/TrinitySeven.rb +4 -4
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/Utakaze.rb +1 -1
- data/lib/bcdice/game_system/Villaciel.rb +1 -1
- data/lib/bcdice/game_system/WARPS.rb +11 -9
- data/lib/bcdice/game_system/WaresBlade.rb +4 -9
- data/lib/bcdice/game_system/Warhammer.rb +15 -6
- data/lib/bcdice/game_system/Warhammer4.rb +15 -11
- data/lib/bcdice/game_system/WitchQuest.rb +1 -1
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +4 -9
- data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +1 -1
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +4 -4
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +1 -1
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +26 -8
- data/lib/bcdice/repl.rb +1 -1
- data/lib/bcdice/result.rb +26 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +9 -4
|
@@ -13,7 +13,12 @@ module BCDice
|
|
|
13
13
|
SORT_KEY = 'くらやみくらいん'
|
|
14
14
|
|
|
15
15
|
# ダイスボットの使い方
|
|
16
|
-
HELP_MESSAGE =
|
|
16
|
+
HELP_MESSAGE = <<~TEXT
|
|
17
|
+
・アクシデント表(ACT)
|
|
18
|
+
・感情表(EMO)
|
|
19
|
+
・幕間シーン表(情景)(SST)
|
|
20
|
+
・幕間シーン表(関係)(SRT)
|
|
21
|
+
TEXT
|
|
17
22
|
|
|
18
23
|
def eval_game_system_specific_command(command)
|
|
19
24
|
if (m = /^ACT(\d+)$/i.match(command))
|
|
@@ -41,9 +46,57 @@ module BCDice
|
|
|
41
46
|
"まるで自分を支える何かが失われたように、あなたはその場に立ち尽くす。諦めと絶望が心を支配する。ああ、そうか。これが、「心が折れる」ということか……。あなたは「理性」を4点失う。"
|
|
42
47
|
]
|
|
43
48
|
),
|
|
49
|
+
"EMO" => DiceTable::Table.new(
|
|
50
|
+
"感情表",
|
|
51
|
+
"1D10",
|
|
52
|
+
[
|
|
53
|
+
"(正)信頼/(負)依存",
|
|
54
|
+
"(正)安心/(負)不安",
|
|
55
|
+
"(正)友情/(負)憤怒",
|
|
56
|
+
"(正)尊敬/(負)恐怖",
|
|
57
|
+
"(正)愛情/(負)嫉妬",
|
|
58
|
+
"(正)共感/(負)否定",
|
|
59
|
+
"(正)忠誠/(負)侮蔑",
|
|
60
|
+
"(正)憧憬/(負)劣等感",
|
|
61
|
+
"(正)性愛/(負)拒絶",
|
|
62
|
+
"(正)狂信/(負)殺意",
|
|
63
|
+
]
|
|
64
|
+
),
|
|
65
|
+
"SST" => DiceTable::Table.new(
|
|
66
|
+
"幕間シーン表(情景)",
|
|
67
|
+
"1D10",
|
|
68
|
+
[
|
|
69
|
+
"先が見えない闇の中を、あなたは手探りに進んでいる。暗がりに入り込んでしまったのか、それとも辺りの光が消えたのか———その時、あなたの眼前に、闇から溶け出すように何者かの姿が現れた。",
|
|
70
|
+
"夢を見ていた。かつてあった出来事が、目の前で繰り返される……ハッと気が付き、現実に戻る。心配そうにあなたを覗き込む顔を見て、再び夢の光景がフラッシュバックする。この人、あの時の……!",
|
|
71
|
+
"気が付くと見知らぬ場所を1人歩いている。迷ってしまったのだろうか。辺りを見回していた、その時———あなたは背後に気配を感じた。いつの間にか誰か立っている……!",
|
|
72
|
+
"「危ない!」突然上がった声と同時に、あなたは突き飛ばされ、床を転がった。次の瞬間、不気味で巨大な何かがあなたの頭をかすめてゆく……。あなたは身を起こし、あなたと一緒に倒れ込んだ人物に声をかけた。",
|
|
73
|
+
"不気味な声を上げながら、何かがゆっくりと近づいてくる。あなたが咄嗟に身を隠した場所には、すでに誰かいた。このまま息を殺し、一緒に危険が過ぎ去るのを待つしかない。",
|
|
74
|
+
"むせかえるような臭いが辺りに満ちている。これは血の臭いだろうか。いや、それにしては……。すると、あなたの近くで、誰かが小さく咳き込んだ……",
|
|
75
|
+
"一息つけそうな場所を見つけ、あなたは座りこんだ。不気味なことに巻き込まれているとは思えない、穏やかな時間が流れる。ふと、あなたは隣りに座っている人物に話しかけた。",
|
|
76
|
+
"静寂の中、あなたを呼ぶ声が響く。声の主に対し、あなたは思う。望むところだ。自分の方こそ、確認しなければならないことがある———!あなたは足早に、声のする方へと進んだ。",
|
|
77
|
+
"高い場所に立ち、あなたは異常な世界を見下ろしている。その時、後ろで誰かが地面を踏む音がした。来たか……予想通り、ここでなら会うことができた。あなたは振り返り、相手を見た。",
|
|
78
|
+
"周囲を確認し、あなたは相手に合図を送る。足音静かに、相手があなたの元へと駆け寄る。———他の気配はない。慎重に、密やかに、あなたは相手と話し始めた。",
|
|
79
|
+
]
|
|
80
|
+
),
|
|
81
|
+
"SRT" => DiceTable::Table.new(
|
|
82
|
+
"幕間シーン表(関係)",
|
|
83
|
+
"1D10",
|
|
84
|
+
[
|
|
85
|
+
"微かな香り。ちょっとした仕事。横顔。あの人のすべてが、あなたの胸を高鳴らせる———こんな気持ちは、初めてだ。",
|
|
86
|
+
"頭の中にノイズが走る。あなたは、たしかに、あの人とあったことがある。けれど、詳しく思い出そうとするたびに頭痛が走る……この記憶、確かめなければ。",
|
|
87
|
+
"異常な事態だというのに……いや、異常な事態だからこそ、あの人はあなたに安心感を与えてくれる、とにかく話がしたい。今はまず、あの人を探そう。",
|
|
88
|
+
"今あなたに必要なのは「捨て駒」だ。そう、ピッタリの奴がいるじゃないか!誰を犠牲にしても生き残ってやる。そのためには……。あなたは、あの人の方へと歩み寄った。",
|
|
89
|
+
"こんな時でも、どこか気の合う相手というのは見つかるものだ———安堵するような、弾むような気持ちで、あなたはその人に声をかけた。さぁ、共闘といこうじゃないか。",
|
|
90
|
+
"なんでよりによってこんなヤツと……!?図らずも二人きりになってしまった相手に、あなたは眉をひそめた。会話はない。そもそもこいつが安全かわからない……誰か助けて!",
|
|
91
|
+
"特に理由はない。けれど、一緒に行動すること自体は大事でしょう?仕方ないじゃないか、怖いんだから……!あなたは、いそいそと手近な人間へと寄って行った。",
|
|
92
|
+
"不意に昔のこと———二度と取り戻せない過ちが頭をよぎる。そんなことを思い出したのも、あの人の面影を、あの顔に感じてしまうせいだ。別人とはわかっている。けれど、今度こそ———。",
|
|
93
|
+
"あなたは影に隠れ、その人物を見張っている。怪しい……この人こそが、事件の元凶じゃないか?とはいえ、このままではじり貧だ。あなたは意を決し、影から飛び出して話をかけた。",
|
|
94
|
+
"間違いない……!あなたはその人物をにらみつけた。何という幸運だろう。追い求めた相手が、すぐそこにいるなんて!あなたは荒れ狂う胸の内を気取られぬよう、ゆっくりと近づいた。",
|
|
95
|
+
]
|
|
96
|
+
),
|
|
44
97
|
}.freeze
|
|
45
98
|
|
|
46
|
-
register_prefix(
|
|
99
|
+
register_prefix(TABLES.keys)
|
|
47
100
|
end
|
|
48
101
|
end
|
|
49
102
|
end
|
|
@@ -44,18 +44,19 @@ module BCDice
|
|
|
44
44
|
return string
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
def
|
|
48
|
-
return
|
|
49
|
-
return '' unless cmp_op == :>=
|
|
47
|
+
def result_2d6(total, dice_total, _dice_list, cmp_op, target)
|
|
48
|
+
return nil unless cmp_op == :>=
|
|
50
49
|
|
|
51
50
|
if dice_total <= 2
|
|
52
|
-
"
|
|
51
|
+
Result.fumble("絶対失敗")
|
|
53
52
|
elsif dice_total >= 12
|
|
54
|
-
"
|
|
53
|
+
Result.critical("絶対成功")
|
|
54
|
+
elsif target == "?"
|
|
55
|
+
Result.nothing
|
|
55
56
|
elsif total >= target
|
|
56
|
-
"
|
|
57
|
+
Result.success("成功")
|
|
57
58
|
else
|
|
58
|
-
"
|
|
59
|
+
Result.failure("失敗")
|
|
59
60
|
end
|
|
60
61
|
end
|
|
61
62
|
|
|
@@ -104,7 +105,8 @@ module BCDice
|
|
|
104
105
|
|
|
105
106
|
if signOfInequality != "" # 成功度判定処理
|
|
106
107
|
cmp_op = Normalize.comparison_operator(signOfInequality)
|
|
107
|
-
|
|
108
|
+
result = result_2d6(total_n, dice_now, dice_num, cmp_op, diff)
|
|
109
|
+
output += " > #{result.text}" if result
|
|
108
110
|
end
|
|
109
111
|
|
|
110
112
|
return output
|
|
@@ -51,12 +51,12 @@ module BCDice
|
|
|
51
51
|
'TT', 'NT', 'ET', 'MPT',
|
|
52
52
|
'T1T', 'T2T', 'T3T', 'T4T', 'T5T',
|
|
53
53
|
'NAME',
|
|
54
|
-
'DFT', 'IDT
|
|
54
|
+
'DFT', 'IDT',
|
|
55
55
|
'WIT', 'LIT', 'RIT', 'SIT', 'RWIT', 'RUIT',
|
|
56
56
|
'IFT',
|
|
57
57
|
'\d+RET',
|
|
58
|
-
'PNT
|
|
59
|
-
'KNT
|
|
58
|
+
'PNT', 'MLT',
|
|
59
|
+
'KNT', 'WORD'
|
|
60
60
|
)
|
|
61
61
|
|
|
62
62
|
def initialize(command)
|
|
@@ -77,38 +77,38 @@ module BCDice
|
|
|
77
77
|
return string
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
def
|
|
81
|
-
return
|
|
80
|
+
def result_nd6(total, dice_total, dice_list, cmp_op, target)
|
|
81
|
+
return Result.nothing if target == "?"
|
|
82
|
+
return nil unless cmp_op == :>=
|
|
82
83
|
|
|
83
|
-
result =
|
|
84
|
-
result +=
|
|
84
|
+
result = result_nd6_only(total, dice_total, cmp_op, target)
|
|
85
|
+
result.text += kiryoku_result(total, dice_list, target)
|
|
85
86
|
|
|
86
87
|
return result
|
|
87
88
|
end
|
|
88
89
|
|
|
89
|
-
|
|
90
|
+
def result_nd6_only(total, dice_total, cmp_op, target)
|
|
91
|
+
return nil unless cmp_op == :>=
|
|
90
92
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
" > 絶対成功"
|
|
93
|
+
if dice_total <= 2
|
|
94
|
+
Result.fumble("絶対失敗")
|
|
95
|
+
elsif dice_total >= 12
|
|
96
|
+
Result.critical("絶対成功")
|
|
97
|
+
elsif total >= target
|
|
98
|
+
Result.success("成功")
|
|
98
99
|
else
|
|
99
|
-
|
|
100
|
+
Result.failure("失敗")
|
|
100
101
|
end
|
|
101
102
|
end
|
|
102
103
|
|
|
103
|
-
def
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
end
|
|
104
|
+
def result_2d6_text(total, dice_total, cmp_op, target)
|
|
105
|
+
text = result_nd6_only(total, dice_total, cmp_op, target)&.text
|
|
106
|
+
return "" if text.nil?
|
|
107
|
+
|
|
108
|
+
return " > #{text}"
|
|
109
109
|
end
|
|
110
110
|
|
|
111
|
-
def
|
|
111
|
+
def kiryoku_result(total_n, dice_list, diff)
|
|
112
112
|
num_6 = dice_list.count(6)
|
|
113
113
|
|
|
114
114
|
if num_6 == 0
|
|
@@ -131,7 +131,7 @@ module BCDice
|
|
|
131
131
|
none6Dice_n = maxDice1 + maxDice2
|
|
132
132
|
debug("none6Dice_n", none6Dice_n)
|
|
133
133
|
debug("diff", diff)
|
|
134
|
-
none6DiceReuslt =
|
|
134
|
+
none6DiceReuslt = (none6Total_n >= diff ? " > 成功" : " > 失敗")
|
|
135
135
|
|
|
136
136
|
return " (もしくは) #{none6Total_n}#{none6DiceReuslt} & 《気力》1点獲得"
|
|
137
137
|
end
|
|
@@ -180,8 +180,8 @@ module BCDice
|
|
|
180
180
|
|
|
181
181
|
if signOfInequality != "" # 成功度判定処理
|
|
182
182
|
cmp_op = Normalize.comparison_operator(signOfInequality)
|
|
183
|
-
output +=
|
|
184
|
-
output +=
|
|
183
|
+
output += result_2d6_text(total_n, dice_now, cmp_op, diff)
|
|
184
|
+
output += kiryoku_result(total_n, dice_list, diff)
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
return output
|
|
@@ -65,14 +65,14 @@ module BCDice
|
|
|
65
65
|
'BDT', 'TBO', 'CBO', 'SBO', 'VBO',
|
|
66
66
|
'ET', 'FET', 'HET', 'SDT', 'IEQ', 'FRT',
|
|
67
67
|
'T1T', 'T2T', 'T3T', 'T4T', 'T5T',
|
|
68
|
-
'MPT', 'KNT
|
|
68
|
+
'MPT', 'KNT', 'WORD', 'NAME', 'NNAME', 'NM',
|
|
69
69
|
'RT', 'CIR', 'RUIR', 'RWIR',
|
|
70
70
|
'WIT', 'LIT', 'RIT', 'SIT', 'NRWT', 'NRUT', 'ARWT', 'ARUT',
|
|
71
71
|
'KET', 'TET', 'NST', 'RET', 'FAT', 'HRT', 'BLT',
|
|
72
72
|
'BUS', 'SHS', 'ASS', 'SUS', 'SCS', 'LAS', 'NES', 'COS', 'ENS', 'TOS',
|
|
73
73
|
'ABUS', 'ASHS', 'AASS', 'ASUS', 'ASCS', 'ALAS', 'ANES', 'ACOS', 'AENS', 'ATOS',
|
|
74
74
|
'SE', 'ARN', 'WEN', 'NEN', 'CEN', 'SEN', 'OEN',
|
|
75
|
-
'DFT
|
|
75
|
+
'DFT'
|
|
76
76
|
)
|
|
77
77
|
|
|
78
78
|
def initialize(command)
|
|
@@ -82,7 +82,7 @@ module BCDice
|
|
|
82
82
|
@d66_sort_type = D66SortType::ASC
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
-
def
|
|
85
|
+
def kiryoku_result(_total_n, dice_list, _diff)
|
|
86
86
|
num_6 = dice_list.count(6)
|
|
87
87
|
|
|
88
88
|
if num_6 == 0
|
|
@@ -35,7 +35,7 @@ module BCDice
|
|
|
35
35
|
例)CRCM98 対物で数値98の戦闘結果を参照する。
|
|
36
36
|
MESSAGETEXT
|
|
37
37
|
|
|
38
|
-
register_prefix('AR', 'SR', 'HR
|
|
38
|
+
register_prefix('AR', 'SR', 'HR<=', 'CC', 'ACT', 'ACL', 'ACS', 'CRC[A-Z]')
|
|
39
39
|
|
|
40
40
|
def eval_game_system_specific_command(command)
|
|
41
41
|
result = roll_tables(command, TABLES)
|
|
@@ -62,17 +62,13 @@ module BCDice
|
|
|
62
62
|
return string
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
-
def
|
|
66
|
-
return
|
|
65
|
+
def result_2d6(_total, dice_total, _dice_list, cmp_op, _target)
|
|
66
|
+
return nil if cmp_op != :>=
|
|
67
67
|
|
|
68
68
|
if dice_total >= 12
|
|
69
|
-
"
|
|
69
|
+
Result.critical("絶対成功")
|
|
70
70
|
elsif dice_total <= 2
|
|
71
|
-
"
|
|
72
|
-
elsif total >= target
|
|
73
|
-
" > 成功"
|
|
74
|
-
else
|
|
75
|
-
" > 失敗"
|
|
71
|
+
Result.fumble("絶対失敗")
|
|
76
72
|
end
|
|
77
73
|
end
|
|
78
74
|
|
|
@@ -85,11 +81,14 @@ module BCDice
|
|
|
85
81
|
return text
|
|
86
82
|
end
|
|
87
83
|
|
|
88
|
-
def
|
|
89
|
-
return
|
|
90
|
-
return '' unless cmp_op == :<=
|
|
84
|
+
def result_1d100(_total, dice_total, cmp_op, _target)
|
|
85
|
+
return nil unless cmp_op == :<=
|
|
91
86
|
|
|
92
|
-
|
|
87
|
+
if dice_total <= 5
|
|
88
|
+
Result.critical("絶対成功")
|
|
89
|
+
elsif dice_total >= 96
|
|
90
|
+
Result.fumble("絶対失敗")
|
|
91
|
+
end
|
|
93
92
|
end
|
|
94
93
|
|
|
95
94
|
def getHitResult(total_n, _dice_n, diff)
|
|
@@ -106,15 +105,6 @@ module BCDice
|
|
|
106
105
|
return ' > 成功'
|
|
107
106
|
end
|
|
108
107
|
|
|
109
|
-
def getResult(total_n, dice_n, diff)
|
|
110
|
-
return ' > 絶対成功' if dice_n <= 5
|
|
111
|
-
return ' > 絶対失敗' if dice_n >= 96
|
|
112
|
-
|
|
113
|
-
return ' > 成功' if total_n <= diff
|
|
114
|
-
|
|
115
|
-
return ' > 失敗'
|
|
116
|
-
end
|
|
117
|
-
|
|
118
108
|
# 戦闘結果チャートを振る
|
|
119
109
|
# @param [String] suv 耐久レベル
|
|
120
110
|
# @param [String] num 数値
|
|
@@ -51,11 +51,11 @@ module BCDice
|
|
|
51
51
|
MESSAGETEXT
|
|
52
52
|
|
|
53
53
|
register_prefix(
|
|
54
|
-
'[AS]R
|
|
55
|
-
'(HU|BK|WA|SC|BG|IN|PT|HT|TA|AC|HE|TR|VT|BO|CS|TH|AM|GD|HC|BI|BT|AI)HIT
|
|
56
|
-
'SUV[A-Z]
|
|
57
|
-
'CRT
|
|
58
|
-
'SEC', 'NAC', 'LDC', '[W]ENC
|
|
54
|
+
'[AS]R',
|
|
55
|
+
'(HU|BK|WA|SC|BG|IN|PT|HT|TA|AC|HE|TR|VT|BO|CS|TH|AM|GD|HC|BI|BT|AI)HIT',
|
|
56
|
+
'SUV[A-Z]', '[HTALMEBPD]DMG[LMHO]',
|
|
57
|
+
'CRT', '[GSME]AC', '[ASL]MA',
|
|
58
|
+
'SEC', 'NAC', 'LDC', '[W]ENC'
|
|
59
59
|
)
|
|
60
60
|
|
|
61
61
|
def eval_game_system_specific_command(command)
|
|
@@ -77,23 +77,25 @@ module BCDice
|
|
|
77
77
|
|
|
78
78
|
result =
|
|
79
79
|
if dice_value <= fumble
|
|
80
|
-
translate("MonotoneMuseum.automatic_failure")
|
|
80
|
+
Result.fumble(translate("MonotoneMuseum.automatic_failure"))
|
|
81
81
|
elsif dice_value >= critical
|
|
82
|
-
translate("MonotoneMuseum.automatic_success")
|
|
82
|
+
Result.critical(translate("MonotoneMuseum.automatic_success"))
|
|
83
83
|
elsif total >= target
|
|
84
|
-
translate("success")
|
|
84
|
+
Result.success(translate("success"))
|
|
85
85
|
else
|
|
86
|
-
translate("failure")
|
|
86
|
+
Result.failure(translate("failure"))
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
sequence = [
|
|
90
90
|
"(#{command})",
|
|
91
91
|
"#{dice_value}[#{dice_str}]#{Format.modifier(modify_number)}",
|
|
92
92
|
total.to_s,
|
|
93
|
-
result,
|
|
93
|
+
result.text,
|
|
94
94
|
]
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
result.text = sequence.join(" > ")
|
|
97
|
+
|
|
98
|
+
result
|
|
97
99
|
end
|
|
98
100
|
|
|
99
101
|
# モノトーンミュージアム用のテーブル
|
|
@@ -56,26 +56,33 @@ module BCDice
|
|
|
56
56
|
|
|
57
57
|
private
|
|
58
58
|
|
|
59
|
-
def
|
|
60
|
-
return
|
|
61
|
-
return
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
59
|
+
def result_nd10(total, _dice_total, dice_list, cmp_op, target) # ゲーム別成功度判定(nD10)
|
|
60
|
+
return Result.nothing if target == '?'
|
|
61
|
+
return nil unless cmp_op == :>=
|
|
62
|
+
|
|
63
|
+
if total >= 11
|
|
64
|
+
Result.critical(translate("Nechronica.critical"))
|
|
65
|
+
elsif total >= target
|
|
66
|
+
Result.success(translate("success"))
|
|
67
|
+
elsif dice_list.count { |i| i <= 1 } == 0
|
|
68
|
+
Result.failure(translate("failure"))
|
|
69
|
+
elsif dice_list.size > 1
|
|
70
|
+
fumble = translate("Nechronica.fumble")
|
|
71
|
+
break_all_parts = translate("Nechronica.break_all_parts")
|
|
72
|
+
Result.fumble("#{fumble} > #{break_all_parts}")
|
|
73
|
+
else
|
|
74
|
+
Result.fumble(translate("Nechronica.fumble"))
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
def result_nd10_text(total, dice_list, target)
|
|
79
|
+
text = result_nd10(total, 0, dice_list, :>=, target)&.text
|
|
80
|
+
|
|
81
|
+
if text.nil?
|
|
82
|
+
""
|
|
83
|
+
else
|
|
84
|
+
" > #{text}"
|
|
85
|
+
end
|
|
79
86
|
end
|
|
80
87
|
|
|
81
88
|
def nechronica_check(string)
|
|
@@ -120,7 +127,7 @@ module BCDice
|
|
|
120
127
|
dice_str = dice.join(",")
|
|
121
128
|
output += " > #{total_n}[#{dice_str}]"
|
|
122
129
|
|
|
123
|
-
output +=
|
|
130
|
+
output += result_nd10_text(total_n, dice, diff)
|
|
124
131
|
|
|
125
132
|
if isBattleMode
|
|
126
133
|
hit_loc = getHitLocation(total_n)
|
|
@@ -166,7 +173,7 @@ module BCDice
|
|
|
166
173
|
|
|
167
174
|
TABLES = translate_tables(:ja_jp)
|
|
168
175
|
|
|
169
|
-
register_prefix('\d+NC
|
|
176
|
+
register_prefix('\d+NC', '\d+NA', '\d+R10', TABLES.keys)
|
|
170
177
|
end
|
|
171
178
|
end
|
|
172
179
|
end
|
|
@@ -21,21 +21,18 @@ module BCDice
|
|
|
21
21
|
INFO_MESSAGE_TEXT
|
|
22
22
|
|
|
23
23
|
# ゲーム別成功度判定(2D6)
|
|
24
|
-
def
|
|
25
|
-
return
|
|
26
|
-
return
|
|
24
|
+
def result_2d6(total, _dice_total, dice_list, cmp_op, target)
|
|
25
|
+
return Result.nothing if target == "?"
|
|
26
|
+
return nil if cmp_op != :<=
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
result = (total <= target ? Result.success("成功") : Result.failure("失敗"))
|
|
29
|
+
result.text += juuten(dice_list)
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
if total <= target
|
|
33
|
-
" > 成功"
|
|
34
|
-
else
|
|
35
|
-
" > 失敗"
|
|
36
|
-
end
|
|
31
|
+
return result
|
|
37
32
|
end
|
|
38
33
|
|
|
34
|
+
private
|
|
35
|
+
|
|
39
36
|
def juuten(dice_list)
|
|
40
37
|
juuten = dice_list.count(1) + dice_list.count(6)
|
|
41
38
|
|