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
|
@@ -9,7 +9,7 @@ module BCDice
|
|
|
9
9
|
ID = 'BloodMoon'
|
|
10
10
|
|
|
11
11
|
# ゲームシステム名
|
|
12
|
-
NAME = '
|
|
12
|
+
NAME = 'ブラッドムーン'
|
|
13
13
|
|
|
14
14
|
# ゲームシステム名の読みがな
|
|
15
15
|
SORT_KEY = 'ふらつとむうん'
|
|
@@ -43,18 +43,19 @@ module BCDice
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
# ゲーム別成功度判定(2D6)
|
|
46
|
-
def
|
|
47
|
-
return
|
|
48
|
-
return '' unless cmp_op == :>=
|
|
46
|
+
def result_2d6(total, dice_total, _dice_list, cmp_op, target)
|
|
47
|
+
return nil unless cmp_op == :>=
|
|
49
48
|
|
|
50
49
|
if dice_total <= 2
|
|
51
|
-
|
|
50
|
+
Result.fumble("ファンブル(【余裕】が 0 に)")
|
|
52
51
|
elsif dice_total >= 12
|
|
53
|
-
|
|
52
|
+
Result.critical("スペシャル(【余裕】+3)")
|
|
53
|
+
elsif target == '?'
|
|
54
|
+
Result.nothing
|
|
54
55
|
elsif total >= target
|
|
55
|
-
|
|
56
|
+
Result.success("成功")
|
|
56
57
|
else
|
|
57
|
-
|
|
58
|
+
Result.failure("失敗")
|
|
58
59
|
end
|
|
59
60
|
end
|
|
60
61
|
|
|
@@ -37,18 +37,19 @@ module BCDice
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
# ゲーム別成功度判定(2D6)
|
|
40
|
-
def
|
|
41
|
-
return
|
|
42
|
-
return '' unless cmp_op == :>=
|
|
40
|
+
def result_2d6(total, dice_total, _dice_list, cmp_op, target)
|
|
41
|
+
return nil unless cmp_op == :>=
|
|
43
42
|
|
|
44
43
|
if dice_total <= 2
|
|
45
|
-
|
|
44
|
+
Result.fumble("ファンブル")
|
|
46
45
|
elsif dice_total >= 12
|
|
47
|
-
|
|
46
|
+
Result.critical("スペシャル > " + RTT.roll_command(@randomizer, "RM"))
|
|
47
|
+
elsif target == "?"
|
|
48
|
+
Result.nothing
|
|
48
49
|
elsif total >= target
|
|
49
|
-
|
|
50
|
+
Result.success("成功")
|
|
50
51
|
else
|
|
51
|
-
|
|
52
|
+
Result.failure("失敗")
|
|
52
53
|
end
|
|
53
54
|
end
|
|
54
55
|
|
|
@@ -39,33 +39,39 @@ module BCDice
|
|
|
39
39
|
- FT7
|
|
40
40
|
INFO_MESSAGE_TEXT
|
|
41
41
|
|
|
42
|
-
register_prefix('\d*CF', 'FT
|
|
42
|
+
register_prefix('\d*CF', 'FT')
|
|
43
43
|
|
|
44
44
|
# ゲーム別成功度判定(2D6)。以前の処理をそのまま残しています。
|
|
45
|
-
def
|
|
46
|
-
return
|
|
45
|
+
def result_2d6(total, dice_total, _dice_list, cmp_op, target)
|
|
46
|
+
return nil unless cmp_op == :>=
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
sequence = []
|
|
49
|
+
result = Result.new
|
|
49
50
|
|
|
50
51
|
if dice_total <= 2
|
|
51
52
|
total -= 20
|
|
52
|
-
|
|
53
|
+
sequence.push("ファンブル(-20)")
|
|
54
|
+
result.fumble = true
|
|
53
55
|
end
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
if target != '?'
|
|
58
|
+
if total >= target
|
|
59
|
+
sequence.push("成功")
|
|
60
|
+
result.success = true
|
|
61
|
+
else
|
|
62
|
+
sequence.push("失敗")
|
|
63
|
+
result.failure = true
|
|
64
|
+
end
|
|
58
65
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if total > target
|
|
62
|
-
output += " > 差分値#{total - target}"
|
|
66
|
+
if total - target != 0
|
|
67
|
+
sequence.push("差分値#{total - target}")
|
|
63
68
|
end
|
|
64
|
-
else
|
|
65
|
-
output += " > 失敗 > 差分値#{total - target}"
|
|
66
69
|
end
|
|
67
70
|
|
|
68
|
-
return
|
|
71
|
+
return Result.nothing if sequence.empty?
|
|
72
|
+
|
|
73
|
+
result.text = sequence.join(" > ")
|
|
74
|
+
return result
|
|
69
75
|
end
|
|
70
76
|
|
|
71
77
|
def eval_game_system_specific_command(command)
|
|
@@ -22,24 +22,24 @@ module BCDice
|
|
|
22
22
|
例)SR7 sr13 SR(7+4) Ssr10
|
|
23
23
|
INFO_MESSAGE_TEXT
|
|
24
24
|
|
|
25
|
-
register_prefix('SR
|
|
25
|
+
register_prefix('SR')
|
|
26
26
|
|
|
27
|
-
def
|
|
28
|
-
return
|
|
29
|
-
return
|
|
27
|
+
def result_1d100(total, _dice_total, cmp_op, target)
|
|
28
|
+
return nil if target == '?'
|
|
29
|
+
return nil if cmp_op != :<=
|
|
30
30
|
|
|
31
31
|
if total >= 100
|
|
32
|
-
"
|
|
32
|
+
Result.fumble("ファンブル")
|
|
33
33
|
elsif total > target
|
|
34
|
-
"
|
|
34
|
+
Result.failure("失敗")
|
|
35
35
|
elsif total >= (target * 0.9)
|
|
36
|
-
"
|
|
36
|
+
Result.success("L成功")
|
|
37
37
|
elsif total >= (target / 2)
|
|
38
|
-
"
|
|
38
|
+
Result.success("M成功")
|
|
39
39
|
elsif total >= (target / 10)
|
|
40
|
-
"
|
|
40
|
+
Result.success("H成功")
|
|
41
41
|
else
|
|
42
|
-
"
|
|
42
|
+
Result.critical("C成功")
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
|
|
@@ -19,9 +19,9 @@ module BCDice
|
|
|
19
19
|
Chill3 : (1D100<=50) > 55 > Botch
|
|
20
20
|
INFO_MESSAGE_TEXT
|
|
21
21
|
|
|
22
|
-
def
|
|
23
|
-
return
|
|
24
|
-
return
|
|
22
|
+
def result_1d100(total, dice_total, cmp_op, target)
|
|
23
|
+
return nil if target == '?'
|
|
24
|
+
return nil unless cmp_op == :<=
|
|
25
25
|
|
|
26
26
|
# ゾロ目ならC-ResultかBotch
|
|
27
27
|
tens = (dice_total / 10) % 10
|
|
@@ -30,21 +30,21 @@ module BCDice
|
|
|
30
30
|
if tens == ones
|
|
31
31
|
if (total > target) || (dice_total == 100) # 00は必ず失敗
|
|
32
32
|
if target > 100 # 目標値が100を超えている場合は、00を振ってもBotchにならない
|
|
33
|
-
return "
|
|
33
|
+
return Result.failure("失敗")
|
|
34
34
|
else
|
|
35
|
-
return "
|
|
35
|
+
return Result.fumble("Botch")
|
|
36
36
|
end
|
|
37
37
|
else
|
|
38
|
-
return "
|
|
38
|
+
return Result.critical("C成功")
|
|
39
39
|
end
|
|
40
40
|
elsif (total <= target) || (dice_total == 1) # 01は必ず成功
|
|
41
41
|
if total <= (target / 2)
|
|
42
|
-
return "
|
|
42
|
+
return Result.success("H成功")
|
|
43
43
|
else
|
|
44
|
-
return "
|
|
44
|
+
return Result.success("L成功")
|
|
45
45
|
end
|
|
46
46
|
else
|
|
47
|
-
return "
|
|
47
|
+
return Result.failure("失敗")
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -17,13 +17,19 @@ module BCDice
|
|
|
17
17
|
|
|
18
18
|
# ダイスボットの使い方
|
|
19
19
|
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
|
20
|
-
※コマンドは入力内容の前方一致で検出しています。
|
|
21
20
|
・判定 CC(x)<=(目標値)
|
|
22
|
-
x
|
|
21
|
+
x:ボーナス・ペナルティダイス。省略可。
|
|
23
22
|
目標値が無くても1D100は表示される。
|
|
24
23
|
ファンブル/失敗/ レギュラー成功/ハード成功/
|
|
25
24
|
イクストリーム成功/クリティカル を自動判定。
|
|
26
|
-
|
|
25
|
+
例)CC<=30 CC(2)<=50 CC(+2)<=50 CC(-1)<=75 CC-1<=50 CC1<=65 CC+1<=65 CC
|
|
26
|
+
|
|
27
|
+
・技能ロールの難易度指定 CC(x)<=(目標値)(難易度)
|
|
28
|
+
目標値の後に難易度を指定することで
|
|
29
|
+
成功/失敗/クリティカル/ファンブル を自動判定する。
|
|
30
|
+
難易度の指定:
|
|
31
|
+
r:レギュラー h:ハード e:イクストリーム c:クリティカル
|
|
32
|
+
例)CC<=70r CC1<=60h CC-2<=50e CC2<=99c
|
|
27
33
|
|
|
28
34
|
・組み合わせ判定 (CBR(x,y))
|
|
29
35
|
目標値 x と y で%ロールを行い、成否を判定。
|
|
@@ -48,7 +54,7 @@ module BCDice
|
|
|
48
54
|
強力でない呪文の場合 FCL/強力な呪文の場合 FCM
|
|
49
55
|
INFO_MESSAGE_TEXT
|
|
50
56
|
|
|
51
|
-
register_prefix('CC', 'CBR
|
|
57
|
+
register_prefix('CC', 'CBR', 'FAR', 'BMR', 'BMS', 'FCL', 'FCM', 'PH', 'MA')
|
|
52
58
|
|
|
53
59
|
def eval_game_system_specific_command(command)
|
|
54
60
|
case command
|
|
@@ -77,6 +83,7 @@ module BCDice
|
|
|
77
83
|
LEVEL = [
|
|
78
84
|
:fumble,
|
|
79
85
|
:failure,
|
|
86
|
+
:success,
|
|
80
87
|
:regular_success,
|
|
81
88
|
:hard_success,
|
|
82
89
|
:extreme_success,
|
|
@@ -88,10 +95,25 @@ module BCDice
|
|
|
88
95
|
extreme_success: "イクストリーム成功",
|
|
89
96
|
hard_success: "ハード成功",
|
|
90
97
|
regular_success: "レギュラー成功",
|
|
98
|
+
success: "成功",
|
|
91
99
|
fumble: "ファンブル",
|
|
92
100
|
failure: "失敗",
|
|
93
101
|
}.freeze
|
|
94
102
|
|
|
103
|
+
def self.with_difficulty_level(total, difficulty)
|
|
104
|
+
fumble = difficulty < 50 ? 96 : 100
|
|
105
|
+
|
|
106
|
+
if total == 1
|
|
107
|
+
ResultLevel.new(:critical)
|
|
108
|
+
elsif total <= difficulty
|
|
109
|
+
ResultLevel.new(:success)
|
|
110
|
+
elsif total >= fumble
|
|
111
|
+
ResultLevel.new(:fumble)
|
|
112
|
+
else
|
|
113
|
+
ResultLevel.new(:failure)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
95
117
|
def self.from_values(total, difficulty, fumbleable = false)
|
|
96
118
|
fumble = difficulty < 50 || fumbleable ? 96 : 100
|
|
97
119
|
|
|
@@ -117,7 +139,7 @@ module BCDice
|
|
|
117
139
|
end
|
|
118
140
|
|
|
119
141
|
def success?
|
|
120
|
-
@level_index >= LEVEL.index(:
|
|
142
|
+
@level_index >= LEVEL.index(:success)
|
|
121
143
|
end
|
|
122
144
|
|
|
123
145
|
def failure?
|
|
@@ -160,15 +182,26 @@ module BCDice
|
|
|
160
182
|
end
|
|
161
183
|
|
|
162
184
|
def skill_roll(command)
|
|
163
|
-
m = /^CC([-+]?\d+)?(?:<=(\d+))?$/.match(command)
|
|
185
|
+
m = /^CC([-+]?\d+)?(?:<=(\d+)([RHEC])?)?$/.match(command)
|
|
164
186
|
unless m
|
|
165
187
|
return nil
|
|
166
188
|
end
|
|
167
189
|
|
|
168
190
|
bonus_dice = m[1].to_i
|
|
169
|
-
difficulty = m[2]
|
|
191
|
+
difficulty = m[2]&.to_i
|
|
192
|
+
difficulty_level = m[3]
|
|
193
|
+
|
|
194
|
+
if difficulty == 0
|
|
195
|
+
difficulty = nil
|
|
196
|
+
elsif difficulty_level == "H"
|
|
197
|
+
difficulty /= 2
|
|
198
|
+
elsif difficulty_level == "E"
|
|
199
|
+
difficulty /= 5
|
|
200
|
+
elsif difficulty_level == "C"
|
|
201
|
+
difficulty = 0
|
|
202
|
+
end
|
|
170
203
|
|
|
171
|
-
if bonus_dice == 0 && difficulty
|
|
204
|
+
if bonus_dice == 0 && difficulty.nil?
|
|
172
205
|
dice = @randomizer.roll_once(100)
|
|
173
206
|
return "1D100 > #{dice}"
|
|
174
207
|
end
|
|
@@ -179,8 +212,13 @@ module BCDice
|
|
|
179
212
|
|
|
180
213
|
total, total_list = roll_with_bonus(bonus_dice)
|
|
181
214
|
|
|
182
|
-
expr = difficulty.
|
|
183
|
-
result =
|
|
215
|
+
expr = difficulty.nil? ? "1D100" : "1D100<=#{difficulty}"
|
|
216
|
+
result =
|
|
217
|
+
if difficulty_level
|
|
218
|
+
ResultLevel.with_difficulty_level(total, difficulty)
|
|
219
|
+
elsif difficulty
|
|
220
|
+
ResultLevel.from_values(total, difficulty)
|
|
221
|
+
end
|
|
184
222
|
|
|
185
223
|
sequence = [
|
|
186
224
|
"(#{expr}) ボーナス・ペナルティダイス[#{bonus_dice}]",
|
|
@@ -43,17 +43,6 @@ module BCDice
|
|
|
43
43
|
return string
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
# ゲーム別成功度判定(nD6)
|
|
47
|
-
def check_nD6(total, _dice_total, _dice_list, cmp_op, target)
|
|
48
|
-
if cmp_op != :>= || target == "?"
|
|
49
|
-
''
|
|
50
|
-
elsif total >= target
|
|
51
|
-
" > 成功"
|
|
52
|
-
else
|
|
53
|
-
" > 失敗"
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
46
|
def check_roll(string)
|
|
58
47
|
string = replace_text(string)
|
|
59
48
|
return nil unless (m = /(^|\s)S?(3[rR]6([+\-\d]+)?(\[(\d+),(\d+)\])(([>=]+)(\d+))?)(\s|$)/i.match(string))
|
|
@@ -51,18 +51,19 @@ module BCDice
|
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# ゲーム別成功度判定(2D6)
|
|
54
|
-
def
|
|
55
|
-
return
|
|
56
|
-
return '' unless cmp_op == :>=
|
|
54
|
+
def result_2d6(total, dice_total, _dice_list, cmp_op, target)
|
|
55
|
+
return nil unless cmp_op == :>=
|
|
57
56
|
|
|
58
57
|
if dice_total <= 2
|
|
59
|
-
"
|
|
58
|
+
Result.fumble("ファンブル(判定失敗。失敗表(FT)を追加で1回振る)")
|
|
60
59
|
elsif dice_total >= 12
|
|
61
|
-
"
|
|
60
|
+
Result.critical("スペシャル(判定成功。大成功表(GJT)を1回使用可能)")
|
|
61
|
+
elsif target == "?"
|
|
62
|
+
Result.nothing
|
|
62
63
|
elsif total >= target
|
|
63
|
-
"
|
|
64
|
+
Result.success("成功")
|
|
64
65
|
else
|
|
65
|
-
"
|
|
66
|
+
Result.failure("失敗")
|
|
66
67
|
end
|
|
67
68
|
end
|
|
68
69
|
|
|
@@ -28,7 +28,7 @@ module BCDice
|
|
|
28
28
|
・D66ダイスあり
|
|
29
29
|
INFO_MESSAGE_TEXT
|
|
30
30
|
|
|
31
|
-
register_prefix('[NAMUC]?URGE
|
|
31
|
+
register_prefix('[NAMUC]?URGE')
|
|
32
32
|
|
|
33
33
|
def initialize(command)
|
|
34
34
|
super(command)
|
|
@@ -38,21 +38,13 @@ module BCDice
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
# ゲーム別成功度判定(nD6)
|
|
41
|
-
def
|
|
41
|
+
def result_nd6(_total, _dice_total, dice_list, _cmp_op, target)
|
|
42
42
|
if dice_list.count(1) >= 2 # 1の目が2個以上ならファンブル
|
|
43
|
-
|
|
43
|
+
Result.fumble("致命的失敗")
|
|
44
44
|
elsif dice_list.count(6) >= 2 # 6の目が2個以上あったらクリティカル
|
|
45
|
-
|
|
45
|
+
Result.critical("効果的成功")
|
|
46
46
|
elsif target == "?"
|
|
47
|
-
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
if [:>=, :>].include?(cmp_op)
|
|
51
|
-
if total.send(cmp_op, target)
|
|
52
|
-
" > 成功"
|
|
53
|
-
else
|
|
54
|
-
" > 失敗"
|
|
55
|
-
end
|
|
47
|
+
Result.nothing
|
|
56
48
|
end
|
|
57
49
|
end
|
|
58
50
|
|