bcdice 3.1.0 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +78 -1
- data/README.md +1 -1
- data/i18n/MagicaLogia/zh_hans.yml +564 -0
- data/i18n/StellarKnights/ja_jp.yml +498 -0
- data/i18n/StellarKnights/ko_kr.yml +498 -0
- data/i18n/zh_hans.yml +7 -0
- data/lib/bcdice/command/parsed.rb +11 -3
- data/lib/bcdice/command/parser.rb +179 -100
- data/lib/bcdice/common_command/add_dice.rb +1 -1
- data/lib/bcdice/common_command/barabara_dice/node.rb +2 -2
- data/lib/bcdice/common_command/barabara_dice/result.rb +6 -0
- 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/dice_table/sai_fic_skill_table.rb +1 -1
- data/lib/bcdice/game_system.rb +6 -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/Amadeus.rb +110 -93
- data/lib/bcdice/game_system/AngelGear.rb +2 -2
- data/lib/bcdice/game_system/AnimaAnimus.rb +16 -9
- 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 +109 -28
- data/lib/bcdice/game_system/BeastBindTrinity.rb +28 -12
- 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 +39 -38
- 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/CodeLayerd.rb +39 -39
- data/lib/bcdice/game_system/ColossalHunter.rb +34 -47
- 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 +2 -2
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +2 -2
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu_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 +11 -10
- 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 +3 -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 +25 -20
- data/lib/bcdice/game_system/Fiasco.rb +1 -1
- data/lib/bcdice/game_system/FilledWith.rb +205 -1272
- data/lib/bcdice/game_system/FutariSousa.rb +12 -10
- 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 +12 -7
- 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 +26 -39
- data/lib/bcdice/game_system/KillDeathBusiness.rb +7 -15
- data/lib/bcdice/game_system/KurayamiCrying.rb +141 -2
- data/lib/bcdice/game_system/LiveraDoll.rb +254 -304
- data/lib/bcdice/game_system/LogHorizon.rb +13 -10
- data/lib/bcdice/game_system/MagicaLogia_SimplifiedChinese.rb +66 -0
- 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 +5 -4
- 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 +63 -90
- data/lib/bcdice/game_system/NinjaSlayer.rb +6 -7
- 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 +3 -3
- 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/SRS.rb +17 -16
- data/lib/bcdice/game_system/SamsaraBallad.rb +38 -11
- data/lib/bcdice/game_system/Satasupe.rb +32 -32
- data/lib/bcdice/game_system/ScreamHighSchool.rb +5 -5
- 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 +103 -142
- data/lib/bcdice/game_system/SkynautsBouken.rb +228 -0
- data/lib/bcdice/game_system/StarryDolls.rb +318 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +11 -6
- data/lib/bcdice/game_system/StellarKnights.rb +85 -706
- data/lib/bcdice/game_system/StellarKnights_Korean.rb +79 -0
- data/lib/bcdice/game_system/SterileLife.rb +2 -3
- data/lib/bcdice/game_system/StrangerOfSwordCity.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/TokumeiTenkousei.rb +4 -3
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +1 -1
- data/lib/bcdice/game_system/TrinitySeven.rb +279 -280
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/Utakaze.rb +53 -48
- 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/Yggdrasill.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +20 -25
- data/lib/bcdice/game_system/filled_with/enemy_data_tables.rb +322 -0
- data/lib/bcdice/game_system/filled_with/event_tables.rb +392 -0
- data/lib/bcdice/game_system/filled_with/tresure_tables.rb +179 -0
- 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 +18 -4
@@ -72,16 +72,17 @@ module BCDice
|
|
72
72
|
|
73
73
|
result =
|
74
74
|
if max <= 1
|
75
|
-
translate("FutariSousa.DT.fumble")
|
75
|
+
Result.fumble(translate("FutariSousa.DT.fumble"))
|
76
76
|
elsif dice_list.include?(SPECIAL_DICE)
|
77
|
-
translate("FutariSousa.DT.special")
|
77
|
+
Result.critical(translate("FutariSousa.DT.special"))
|
78
78
|
elsif max >= SUCCESS_THRESHOLD
|
79
|
-
translate("success")
|
79
|
+
Result.success(translate("success"))
|
80
80
|
else
|
81
|
-
translate("failure")
|
81
|
+
Result.failure(translate("failure"))
|
82
82
|
end
|
83
83
|
|
84
|
-
|
84
|
+
result.text = "#{command}(#{dice_list.join(',')}) > #{result.text}"
|
85
|
+
result
|
85
86
|
end
|
86
87
|
|
87
88
|
# 助手用判定コマンド AS
|
@@ -91,16 +92,17 @@ module BCDice
|
|
91
92
|
|
92
93
|
result =
|
93
94
|
if max <= 1
|
94
|
-
translate("FutariSousa.AS.fumble")
|
95
|
+
Result.fumble(translate("FutariSousa.AS.fumble"))
|
95
96
|
elsif dice_list.include?(SPECIAL_DICE)
|
96
|
-
translate("FutariSousa.AS.special")
|
97
|
+
Result.critical(translate("FutariSousa.AS.special"))
|
97
98
|
elsif max >= SUCCESS_THRESHOLD
|
98
|
-
translate("FutariSousa.AS.success")
|
99
|
+
Result.success(translate("FutariSousa.AS.success"))
|
99
100
|
else
|
100
|
-
translate("failure")
|
101
|
+
Result.failure(translate("failure"))
|
101
102
|
end
|
102
103
|
|
103
|
-
|
104
|
+
result.text = "#{command}(#{dice_list.join(',')}) > #{result.text}"
|
105
|
+
result
|
104
106
|
end
|
105
107
|
|
106
108
|
class << self
|
@@ -32,7 +32,7 @@ module BCDice
|
|
32
32
|
・D66ダイスあり
|
33
33
|
INFO_MESSAGE_TEXT
|
34
34
|
|
35
|
-
register_prefix('FEAR
|
35
|
+
register_prefix('FEAR', 'REACT', '[\d\+\-]+\-3D6?[\d\+\-]*')
|
36
36
|
|
37
37
|
def initialize(command)
|
38
38
|
super(command)
|
@@ -41,26 +41,23 @@ module BCDice
|
|
41
41
|
end
|
42
42
|
|
43
43
|
# ゲーム別成功度判定(nD6)
|
44
|
-
def
|
45
|
-
return
|
46
|
-
return
|
44
|
+
def result_nd6(total, dice_total, dice_list, cmp_op, target)
|
45
|
+
return nil if target == "?"
|
46
|
+
return nil unless dice_list.size == 3 && cmp_op == :<=
|
47
47
|
|
48
48
|
success = target - total # 成功度
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
" > #{result}"
|
50
|
+
if critical?(dice_total, target)
|
51
|
+
Result.critical("クリティカル(成功度:#{success})")
|
52
|
+
elsif fumble?(dice_total, target)
|
53
|
+
Result.fumble("ファンブル(失敗度:#{success})")
|
54
|
+
elsif dice_total >= 17
|
55
|
+
Result.failure("自動失敗(失敗度:#{success})")
|
56
|
+
elsif total <= target
|
57
|
+
Result.success("成功(成功度:#{success})")
|
58
|
+
else
|
59
|
+
Result.failure("失敗(失敗度:#{success})")
|
60
|
+
end
|
64
61
|
end
|
65
62
|
|
66
63
|
def eval_game_system_specific_command(command)
|
@@ -85,16 +82,8 @@ module BCDice
|
|
85
82
|
modifier = ArithmeticEvaluator.eval(m[2])
|
86
83
|
formated_modifier = Format.modifier(modifier)
|
87
84
|
|
88
|
-
|
89
|
-
|
90
|
-
dice_str = dice_list.join(",")
|
91
|
-
|
92
|
-
total = dice_total + modifier
|
93
|
-
|
94
|
-
"(3D6#{formated_modifier}<=#{target_number}) > "\
|
95
|
-
"#{dice_total}[#{dice_str}]#{formated_modifier} > "\
|
96
|
-
"#{total}"\
|
97
|
-
"#{check_nD6(total, dice_total, dice_list, :<=, target_number)}"
|
85
|
+
cmd = "3D6#{formated_modifier}<=#{target_number}"
|
86
|
+
return CommonCommand::AddDice.eval(cmd, self, @randomizer)
|
98
87
|
end
|
99
88
|
|
100
89
|
def roll_fear(command)
|
@@ -26,7 +26,7 @@ module BCDice
|
|
26
26
|
INFO_MESSAGE_TEXT
|
27
27
|
|
28
28
|
register_prefix(
|
29
|
-
'GO
|
29
|
+
'GO',
|
30
30
|
'DC(SL|BL|IM|BR|RF|EL).+'
|
31
31
|
)
|
32
32
|
|
@@ -58,6 +58,10 @@ module BCDice
|
|
58
58
|
|
59
59
|
def check_roll_repeat_attack(success_rate, repeat_count, critical_border)
|
60
60
|
success_rate_per_one = success_rate / repeat_count
|
61
|
+
# 連続攻撃は最終的な成功率が50%以上であることが必要 cf. p217
|
62
|
+
if repeat_count > 1 && success_rate_per_one < 50
|
63
|
+
return "D100<=#{success_rate_per_one}@#{critical_border} > 連続攻撃は成功率が50%以上必要です"
|
64
|
+
end
|
61
65
|
|
62
66
|
check_roll(success_rate_per_one, critical_border)
|
63
67
|
end
|
@@ -69,16 +73,17 @@ module BCDice
|
|
69
73
|
dice_value = @randomizer.roll_once(100)
|
70
74
|
result = get_check_result(dice_value, success_rate, critical_border, fumble_border)
|
71
75
|
|
72
|
-
text = "D100<=#{success_rate}@#{critical_border} > #{dice_value} > #{result}"
|
73
|
-
return
|
76
|
+
result.text = "D100<=#{success_rate}@#{critical_border} > #{dice_value} > #{result.text}"
|
77
|
+
return result
|
74
78
|
end
|
75
79
|
|
76
80
|
def get_check_result(dice_value, success_rate, critical_border, fumble_border)
|
77
|
-
|
78
|
-
return "ファンブル" if dice_value >= fumble_border
|
79
|
-
return "
|
81
|
+
# クリティカルとファンブルが重なった場合は、ファンブルとなる。 cf. p175
|
82
|
+
return Result.fumble("ファンブル") if dice_value >= fumble_border
|
83
|
+
return Result.critical("クリティカル") if dice_value <= critical_border
|
84
|
+
return Result.success("成功") if dice_value <= success_rate
|
80
85
|
|
81
|
-
return "失敗"
|
86
|
+
return Result.failure("失敗")
|
82
87
|
end
|
83
88
|
|
84
89
|
def look_up_damage_chart(type, damage_value)
|
@@ -28,15 +28,9 @@ module BCDice
|
|
28
28
|
return string
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
32
|
-
return '' if target == '?'
|
33
|
-
|
31
|
+
def result_2d6(_total, _dice_total, dice_list, _cmp_op, _target)
|
34
32
|
if dice_list == [5, 5]
|
35
|
-
"
|
36
|
-
elsif total.send(cmp_op, target)
|
37
|
-
" > 成功"
|
38
|
-
else
|
39
|
-
" > 失敗"
|
33
|
+
Result.critical("ゴリティカル(自動的成功)")
|
40
34
|
end
|
41
35
|
end
|
42
36
|
end
|
@@ -46,29 +46,36 @@ module BCDice
|
|
46
46
|
end
|
47
47
|
|
48
48
|
# ゲーム別成功度判定(nD6)
|
49
|
-
def
|
50
|
-
|
49
|
+
def result_nd6(total, _dice_total, dice_list, cmp_op, target)
|
50
|
+
return nil unless cmp_op == :>=
|
51
|
+
|
52
|
+
result = Result.new
|
53
|
+
sequence = []
|
51
54
|
|
52
55
|
if dice_list.count(6) >= 2
|
53
56
|
total += 10
|
54
|
-
result =
|
57
|
+
result.critical = true
|
58
|
+
sequence.push("(クリティカル)", total.to_s)
|
55
59
|
end
|
56
60
|
|
57
|
-
if
|
58
|
-
|
61
|
+
if target != '?'
|
62
|
+
if total >= target
|
63
|
+
sequence.push("成功")
|
64
|
+
result.success = true
|
65
|
+
else
|
66
|
+
sequence.push("失敗")
|
67
|
+
result.failure = true
|
68
|
+
end
|
59
69
|
end
|
60
70
|
|
61
|
-
if
|
62
|
-
|
63
|
-
else
|
64
|
-
result += " > 失敗"
|
71
|
+
if sequence.empty?
|
72
|
+
return nil
|
65
73
|
end
|
66
74
|
|
75
|
+
result.text = sequence.join(" > ")
|
67
76
|
return result
|
68
77
|
end
|
69
78
|
|
70
|
-
alias check_2D6 check_nD6
|
71
|
-
|
72
79
|
def eval_game_system_specific_command(command)
|
73
80
|
debug("eval_game_system_specific_command command", command)
|
74
81
|
|
@@ -24,14 +24,15 @@ module BCDice
|
|
24
24
|
end
|
25
25
|
|
26
26
|
# ゲーム別成功度判定(1d100)
|
27
|
-
def
|
28
|
-
return
|
29
|
-
return '' unless cmp_op == :<=
|
27
|
+
def result_1d100(total, _dice_total, cmp_op, target)
|
28
|
+
return nil unless cmp_op == :<=
|
30
29
|
|
31
30
|
if total >= 100
|
32
|
-
"
|
31
|
+
Result.fumble("ファンブル")
|
33
32
|
elsif total <= 1
|
34
|
-
"
|
33
|
+
Result.critical("絶対成功(達成値1+SL)")
|
34
|
+
elsif target == "?"
|
35
|
+
Result.nothing
|
35
36
|
elsif total <= target
|
36
37
|
dig10 = total / 10
|
37
38
|
dig1 = total - dig10 * 10
|
@@ -39,12 +40,12 @@ module BCDice
|
|
39
40
|
dig1 = 0 if dig1 >= 10 # 条件的にはあり得ない(笑
|
40
41
|
|
41
42
|
if dig1 <= 0
|
42
|
-
"
|
43
|
+
Result.critical("クリティカル(達成値20+SL)")
|
43
44
|
else
|
44
|
-
"
|
45
|
+
Result.success("成功(達成値#{dig10 + dig1}+SL)")
|
45
46
|
end
|
46
47
|
else
|
47
|
-
"
|
48
|
+
Result.failure("失敗")
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end
|
@@ -26,7 +26,7 @@ module BCDice
|
|
26
26
|
修正を後ろに書くことも出来ます。
|
27
27
|
INFO_MESSAGE_TEXT
|
28
28
|
|
29
|
-
register_prefix('
|
29
|
+
register_prefix('.DPT', '.FT')
|
30
30
|
|
31
31
|
def initialize(command)
|
32
32
|
super(command)
|
@@ -35,14 +35,15 @@ module BCDice
|
|
35
35
|
|
36
36
|
# ---- 以降、Gundog.rbよりほぼコピペ(絶対成功→ベアリーに用語変更対応の為、継承だと不都合)
|
37
37
|
# ゲーム別成功度判定(1d100)
|
38
|
-
def
|
39
|
-
return
|
40
|
-
return '' unless cmp_op == :<=
|
38
|
+
def result_1d100(total, _dice_total, cmp_op, target)
|
39
|
+
return nil unless cmp_op == :<=
|
41
40
|
|
42
41
|
if total >= 100
|
43
|
-
"
|
42
|
+
Result.fumble("ファンブル")
|
44
43
|
elsif total <= 1
|
45
|
-
"
|
44
|
+
Result.critical("ベアリー(達成値1+SL)")
|
45
|
+
elsif target == "?"
|
46
|
+
Result.nothing
|
46
47
|
elsif total <= target
|
47
48
|
dig10 = total / 10
|
48
49
|
dig1 = total - dig10 * 10
|
@@ -50,12 +51,12 @@ module BCDice
|
|
50
51
|
dig1 = 0 if dig1 >= 10 # 条件的にはあり得ない(笑
|
51
52
|
|
52
53
|
if dig1 <= 0
|
53
|
-
"
|
54
|
+
Result.critical("クリティカル(達成値20+SL)")
|
54
55
|
else
|
55
|
-
"
|
56
|
+
Result.success("成功(達成値#{dig10 + dig1}+SL)")
|
56
57
|
end
|
57
58
|
else
|
58
|
-
"
|
59
|
+
Result.failure("失敗")
|
59
60
|
end
|
60
61
|
end
|
61
62
|
|
@@ -55,18 +55,18 @@ module BCDice
|
|
55
55
|
'FMB',
|
56
56
|
'MFMB',
|
57
57
|
'HIT',
|
58
|
-
'FEAR
|
59
|
-
'REACT
|
60
|
-
'TRAP
|
61
|
-
'TRS
|
62
|
-
'RAND
|
63
|
-
'RENC
|
58
|
+
'FEAR',
|
59
|
+
'REACT',
|
60
|
+
'TRAP[ENHL]',
|
61
|
+
'TRS[ENHL]',
|
62
|
+
'RAND[ENHL]',
|
63
|
+
'RENC[ENHL]',
|
64
64
|
'AREA',
|
65
|
-
'
|
65
|
+
'DROPN?',
|
66
66
|
'HST',
|
67
67
|
'KHST',
|
68
68
|
'RANDOP',
|
69
|
-
'LOT
|
69
|
+
'LOT[NP]'
|
70
70
|
)
|
71
71
|
|
72
72
|
def initialize(command)
|
@@ -75,14 +75,14 @@ module BCDice
|
|
75
75
|
@d66_sort_type = D66SortType::NO_SORT
|
76
76
|
end
|
77
77
|
|
78
|
-
def
|
79
|
-
return
|
80
|
-
return
|
78
|
+
def result_nd6(total, dice_total, dice_list, cmp_op, target)
|
79
|
+
return Result.nothing if target == '?'
|
80
|
+
return nil unless dice_list.size == 3 && cmp_op == :<=
|
81
81
|
|
82
82
|
success = target - total # 成功度
|
83
|
-
crt_string = "
|
84
|
-
fmb_string = "
|
85
|
-
fail_string = "
|
83
|
+
crt_string = Result.critical("クリティカル(成功度:#{success})")
|
84
|
+
fmb_string = Result.fumble("ファンブル(失敗度:#{success})")
|
85
|
+
fail_string = Result.failure("自動失敗(失敗度:#{success})")
|
86
86
|
|
87
87
|
# クリティカル
|
88
88
|
if (dice_total <= 6) && (target >= 16)
|
@@ -105,9 +105,9 @@ module BCDice
|
|
105
105
|
end
|
106
106
|
|
107
107
|
if total <= target
|
108
|
-
return "
|
108
|
+
return Result.success("成功(成功度:#{success})")
|
109
109
|
else
|
110
|
-
return "
|
110
|
+
return Result.failure("失敗(失敗度:#{success})")
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
@@ -21,32 +21,25 @@ module BCDice
|
|
21
21
|
・人型用 中段命中部位表 (SLH)/上段命中部位 (SLHU)/上段命中部位 (SLHD)
|
22
22
|
MESSAGETEXT
|
23
23
|
|
24
|
-
register_prefix('SHK
|
25
|
-
|
26
|
-
def
|
27
|
-
return
|
28
|
-
return
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
return "失敗"
|
44
|
-
end
|
45
|
-
|
46
|
-
def getSuccessResult(total)
|
47
|
-
return "決定的成功" if (total % 5) == 0
|
48
|
-
|
49
|
-
return "成功"
|
24
|
+
register_prefix('SHK', 'SLH', 'SLHU', 'SLHD')
|
25
|
+
|
26
|
+
def result_1d100(total, _dice_total, cmp_op, target)
|
27
|
+
return Result.nothing if target == '?'
|
28
|
+
return nil unless cmp_op == :<=
|
29
|
+
|
30
|
+
if total <= target
|
31
|
+
if total % 5 == 0
|
32
|
+
Result.critical("決定的成功")
|
33
|
+
else
|
34
|
+
Result.success("成功")
|
35
|
+
end
|
36
|
+
else
|
37
|
+
if total % 5 == 0
|
38
|
+
Result.fumble("致命的失敗")
|
39
|
+
else
|
40
|
+
Result.failure("失敗")
|
41
|
+
end
|
42
|
+
end
|
50
43
|
end
|
51
44
|
|
52
45
|
def eval_game_system_specific_command(command)
|