bcdice 3.1.0 → 3.3.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 +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)
|