bcdice 3.1.2 → 3.4.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 +154 -75
- data/README.md +3 -2
- data/i18n/Cthulhu/zh_hans.yml +11 -0
- 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/common_command/choice.rb +78 -7
- data/lib/bcdice/dice_table.rb +3 -0
- data/lib/bcdice/dice_table/d66_half_grid_table.rb +33 -0
- data/lib/bcdice/dice_table/d66_left_range_table.rb +29 -0
- data/lib/bcdice/dice_table/d66_one_third_table.rb +34 -0
- data/lib/bcdice/game_system.rb +10 -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 +10 -5
- 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 +50 -12
- 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/Cthulhu_SimplifiedChinese.rb +60 -0
- 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 +3 -2
- 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 +4 -0
- 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 +189 -417
- 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/Irisbane.rb +154 -0
- 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 +4 -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 +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/PersonaO.rb +86 -0
- 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 +25 -7
- 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/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/TorgEternity.rb +2 -2
- data/lib/bcdice/game_system/ToshiakiHolyGrailWar.rb +92 -0
- 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/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 +22 -5
|
@@ -82,16 +82,34 @@ module BCDice
|
|
|
82
82
|
|
|
83
83
|
dice_list_org_str = "[#{dice_list_org.join(',')}]" if dice_list_filtered != dice_list_org
|
|
84
84
|
|
|
85
|
+
result = result_compare(total)
|
|
86
|
+
result.critical = critical?
|
|
87
|
+
result.fumble = fumble?
|
|
88
|
+
|
|
89
|
+
dice_status =
|
|
90
|
+
if result.fumble?
|
|
91
|
+
"ファンブル"
|
|
92
|
+
elsif result.critical?
|
|
93
|
+
"クリティカル"
|
|
94
|
+
end
|
|
95
|
+
result_str =
|
|
96
|
+
if result.success?
|
|
97
|
+
"成功"
|
|
98
|
+
elsif result.failure?
|
|
99
|
+
"失敗"
|
|
100
|
+
end
|
|
101
|
+
|
|
85
102
|
sequence = [
|
|
86
103
|
command_expr(),
|
|
87
104
|
dice_list_org_str,
|
|
88
105
|
interim_expr(dice_list_filtered),
|
|
89
|
-
dice_status
|
|
106
|
+
dice_status,
|
|
90
107
|
total.to_s,
|
|
91
|
-
|
|
108
|
+
result_str
|
|
92
109
|
].compact
|
|
110
|
+
result.text = sequence.join(" > ")
|
|
93
111
|
|
|
94
|
-
return
|
|
112
|
+
return result
|
|
95
113
|
end
|
|
96
114
|
|
|
97
115
|
private
|
|
@@ -187,14 +205,6 @@ module BCDice
|
|
|
187
205
|
return expr
|
|
188
206
|
end
|
|
189
207
|
|
|
190
|
-
def dice_status
|
|
191
|
-
if fumble?
|
|
192
|
-
"ファンブル"
|
|
193
|
-
elsif critical?
|
|
194
|
-
"クリティカル"
|
|
195
|
-
end
|
|
196
|
-
end
|
|
197
|
-
|
|
198
208
|
def fumble?
|
|
199
209
|
@dice_total <= @fumble
|
|
200
210
|
end
|
|
@@ -220,7 +230,13 @@ module BCDice
|
|
|
220
230
|
|
|
221
231
|
def result_compare(total)
|
|
222
232
|
if @cmp_op
|
|
223
|
-
total.send(@cmp_op, @target_number)
|
|
233
|
+
if total.send(@cmp_op, @target_number)
|
|
234
|
+
Result.success(nil)
|
|
235
|
+
else
|
|
236
|
+
Result.failure(nil)
|
|
237
|
+
end
|
|
238
|
+
else
|
|
239
|
+
Result.new
|
|
224
240
|
end
|
|
225
241
|
end
|
|
226
242
|
end
|
|
@@ -55,13 +55,13 @@ module BCDice
|
|
|
55
55
|
INFO_MESSAGE_TEXT
|
|
56
56
|
|
|
57
57
|
register_prefix(
|
|
58
|
-
'[1-7]*PD
|
|
58
|
+
'[1-7]*PD',
|
|
59
59
|
'HW',
|
|
60
60
|
'BWT',
|
|
61
61
|
'LWT',
|
|
62
62
|
'TWT',
|
|
63
63
|
'CWT',
|
|
64
|
-
'LO
|
|
64
|
+
'LO',
|
|
65
65
|
'SU',
|
|
66
66
|
'WI',
|
|
67
67
|
'NA',
|
|
@@ -88,7 +88,7 @@ module BCDice
|
|
|
88
88
|
'NUR',
|
|
89
89
|
'GUR',
|
|
90
90
|
'BUR',
|
|
91
|
-
'BT
|
|
91
|
+
'BT',
|
|
92
92
|
'SGT',
|
|
93
93
|
'RS',
|
|
94
94
|
'SH',
|
|
@@ -110,7 +110,7 @@ module BCDice
|
|
|
110
110
|
'NCH',
|
|
111
111
|
'GCH',
|
|
112
112
|
'PCH',
|
|
113
|
-
'IT
|
|
113
|
+
'IT',
|
|
114
114
|
'ACT',
|
|
115
115
|
'ACB',
|
|
116
116
|
'ACE',
|
|
@@ -124,7 +124,7 @@ module BCDice
|
|
|
124
124
|
'RU',
|
|
125
125
|
'\d{2}C',
|
|
126
126
|
'BU',
|
|
127
|
-
'\d+S?A
|
|
127
|
+
'\d+S?A',
|
|
128
128
|
'SIP',
|
|
129
129
|
'BVT',
|
|
130
130
|
'LVT',
|
|
@@ -53,13 +53,13 @@ module BCDice
|
|
|
53
53
|
INFO_MESSAGE_TEXT
|
|
54
54
|
|
|
55
55
|
register_prefix(
|
|
56
|
-
'[1-7]*PD
|
|
56
|
+
'[1-7]*PD',
|
|
57
57
|
'HW',
|
|
58
58
|
'BWT',
|
|
59
59
|
'LWT',
|
|
60
60
|
'TWT',
|
|
61
61
|
'CWT',
|
|
62
|
-
'LO
|
|
62
|
+
'LO',
|
|
63
63
|
'SU',
|
|
64
64
|
'WI',
|
|
65
65
|
'NA',
|
|
@@ -85,7 +85,7 @@ module BCDice
|
|
|
85
85
|
'NUR',
|
|
86
86
|
'GUR',
|
|
87
87
|
'BUR',
|
|
88
|
-
'BT
|
|
88
|
+
'BT',
|
|
89
89
|
'SGT',
|
|
90
90
|
'RS',
|
|
91
91
|
'SH',
|
|
@@ -105,7 +105,7 @@ module BCDice
|
|
|
105
105
|
'SCH',
|
|
106
106
|
'WCH',
|
|
107
107
|
'NCH',
|
|
108
|
-
'IT
|
|
108
|
+
'IT',
|
|
109
109
|
'ACT',
|
|
110
110
|
'ACB',
|
|
111
111
|
'ACE',
|
|
@@ -119,7 +119,7 @@ module BCDice
|
|
|
119
119
|
'RU',
|
|
120
120
|
'\d{2}C',
|
|
121
121
|
'BU',
|
|
122
|
-
'\d+S?A
|
|
122
|
+
'\d+S?A',
|
|
123
123
|
'SIP',
|
|
124
124
|
'BVT',
|
|
125
125
|
'LVT',
|
|
@@ -22,7 +22,7 @@ module BCDice
|
|
|
22
22
|
BMSは振り足しを自動では行いません。
|
|
23
23
|
例)BM>=1 BM@3>=1 BMS2>=1
|
|
24
24
|
|
|
25
|
-
・判定振り足し:ReRollx,x,x...@y>=
|
|
25
|
+
・判定振り足し:ReRollx,x,x...@y>=z
|
|
26
26
|
x:振るダイスの個数
|
|
27
27
|
y:目標難易度(省略可。デフォルト4)
|
|
28
28
|
z:必要成功度
|
|
@@ -40,15 +40,15 @@ module BCDice
|
|
|
40
40
|
def eval_game_system_specific_command(command)
|
|
41
41
|
debug("eval_game_system_specific_command Begin")
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
return
|
|
43
|
+
result = judgeRoll(command)
|
|
44
|
+
return result unless result.nil?
|
|
45
45
|
|
|
46
46
|
isStop = true
|
|
47
47
|
text, = reRoll(command, isStop)
|
|
48
48
|
return text unless text.nil?
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
return
|
|
50
|
+
result = getRulingPlanetDiceCommandResult(command)
|
|
51
|
+
return result unless result.nil?
|
|
52
52
|
|
|
53
53
|
text = getDurtyTableCommandReuslt(command)
|
|
54
54
|
return text unless text.nil?
|
|
@@ -72,9 +72,10 @@ module BCDice
|
|
|
72
72
|
getRollResult([diceCount], judgeNumberText, judgeNumber, targetNumber, isReRoll, isStop)
|
|
73
73
|
|
|
74
74
|
message += text
|
|
75
|
-
|
|
75
|
+
result = getTotalResult(bitList, successList, countOneList, targetNumber, isStop, canReRoll)
|
|
76
|
+
result.text = message + result.text
|
|
76
77
|
|
|
77
|
-
return
|
|
78
|
+
return result
|
|
78
79
|
end
|
|
79
80
|
|
|
80
81
|
def reRoll(command, isStop)
|
|
@@ -181,7 +182,7 @@ module BCDice
|
|
|
181
182
|
return message, bitList, successList, countOneList, canReRoll
|
|
182
183
|
end
|
|
183
184
|
|
|
184
|
-
def
|
|
185
|
+
def getTotalResult(bitList, successList, countOneList, targetNumber, isStop, canReRoll)
|
|
185
186
|
success = successList.inject { |sum, i| sum + i }
|
|
186
187
|
countOne = countOneList.inject { |sum, i| sum + i }
|
|
187
188
|
|
|
@@ -196,27 +197,35 @@ module BCDice
|
|
|
196
197
|
|
|
197
198
|
if success >= targetNumber
|
|
198
199
|
result += " > 現状で成功。コマンド実行で追加リロールも可能"
|
|
200
|
+
return Result.success(result)
|
|
199
201
|
else
|
|
200
202
|
result += " > 現状のままでは失敗"
|
|
201
|
-
|
|
203
|
+
if countOne >= 1
|
|
204
|
+
result += "。汚染ポイント+#{countOne}"
|
|
205
|
+
return Result.fumble(result)
|
|
206
|
+
else
|
|
207
|
+
return Result.failure(result)
|
|
208
|
+
end
|
|
202
209
|
end
|
|
203
|
-
|
|
204
|
-
return result
|
|
205
210
|
end
|
|
206
211
|
|
|
207
212
|
if success >= targetNumber
|
|
208
213
|
result += " > 成功"
|
|
209
|
-
|
|
210
214
|
if bitList.size >= 1
|
|
211
215
|
result += "、禁書ビット発生[#{bitList.join(',')}]"
|
|
216
|
+
return Result.critical(result)
|
|
217
|
+
else
|
|
218
|
+
return Result.success(result)
|
|
212
219
|
end
|
|
213
|
-
|
|
214
220
|
else
|
|
215
221
|
result += " > 失敗"
|
|
216
|
-
|
|
222
|
+
if countOne >= 1
|
|
223
|
+
result += "。汚染ポイント+#{countOne}"
|
|
224
|
+
return Result.fumble(result)
|
|
225
|
+
else
|
|
226
|
+
return Result.failure(result)
|
|
227
|
+
end
|
|
217
228
|
end
|
|
218
|
-
|
|
219
|
-
return result
|
|
220
229
|
end
|
|
221
230
|
|
|
222
231
|
def getSameDieList(diceList)
|
|
@@ -252,44 +261,36 @@ module BCDice
|
|
|
252
261
|
end
|
|
253
262
|
|
|
254
263
|
def getRulingPlanetDiceCommandResult(command)
|
|
255
|
-
|
|
264
|
+
m = /^RP(\d+)$/i.match(command)
|
|
265
|
+
return nil unless m
|
|
256
266
|
|
|
257
|
-
targetNumbers =
|
|
267
|
+
targetNumbers = m[1].each_char.map(&:to_i)
|
|
258
268
|
diceList = getRulingPlanetDice
|
|
259
269
|
|
|
260
|
-
|
|
261
|
-
targetNumbers.each do |i|
|
|
262
|
-
if diceList.include?(i)
|
|
263
|
-
matchResult = "発動"
|
|
264
|
-
break
|
|
265
|
-
end
|
|
266
|
-
end
|
|
270
|
+
condition = diceList.any? { |dice| targetNumbers.include?(dice) }
|
|
267
271
|
|
|
268
|
-
|
|
272
|
+
result = condition ? "発動" : "失敗"
|
|
273
|
+
text = "守護星表チェック(#{targetNumbers.join(',')}) > #{diceList.count}D10[#{diceList.join(',')}] > #{result}"
|
|
269
274
|
|
|
270
|
-
|
|
275
|
+
Result.new.tap do |r|
|
|
276
|
+
r.text = text
|
|
277
|
+
r.condition = condition
|
|
278
|
+
end
|
|
271
279
|
end
|
|
272
280
|
|
|
273
281
|
def getRulingPlanetDice
|
|
274
|
-
dice1 = @randomizer.
|
|
275
|
-
dice2 = dice1
|
|
282
|
+
dice1, dice2 = @randomizer.roll_barabara(2, 10)
|
|
276
283
|
|
|
277
284
|
while dice1 == dice2
|
|
278
285
|
dice2 = @randomizer.roll_once(10)
|
|
279
286
|
end
|
|
280
287
|
|
|
281
|
-
dice1 =
|
|
282
|
-
dice2 =
|
|
288
|
+
dice1 = 0 if dice1 == 10
|
|
289
|
+
dice2 = 0 if dice2 == 10
|
|
283
290
|
|
|
284
291
|
return dice1, dice2
|
|
285
292
|
end
|
|
286
293
|
|
|
287
|
-
def changeRulingPlanetDice(dice)
|
|
288
|
-
return 0 if dice == 10
|
|
289
|
-
|
|
290
|
-
return dice
|
|
291
|
-
end
|
|
292
|
-
|
|
293
294
|
def getDurtyTableCommandReuslt(command)
|
|
294
295
|
return nil unless /^DT$/i =~ command
|
|
295
296
|
|
|
@@ -456,7 +457,7 @@ module BCDice
|
|
|
456
457
|
),
|
|
457
458
|
}.freeze
|
|
458
459
|
|
|
459
|
-
register_prefix('BM', 'ReRoll
|
|
460
|
+
register_prefix('BM', 'ReRoll', 'RP', 'DT', TABLES.keys)
|
|
460
461
|
end
|
|
461
462
|
end
|
|
462
463
|
end
|
|
@@ -44,18 +44,17 @@ module BCDice
|
|
|
44
44
|
@round_type = RoundType::CEIL # 端数切り上げに設定
|
|
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 if target == '?' || cmp_op != :>=
|
|
50
49
|
|
|
51
50
|
if dice_total <= 2
|
|
52
|
-
"
|
|
51
|
+
Result.fumble("ファンブル(【モラル】-3。追跡フェイズなら吸血シーンを追加。戦闘フェイズなら吸血鬼は追加行動を一回得る)")
|
|
53
52
|
elsif dice_total >= 12
|
|
54
|
-
"
|
|
53
|
+
Result.critical("スペシャル(【モラル】+3。追跡フェイズならあなたに関係を持つPCの【モラル】+2。攻撃判定ならダメージ+1D6)")
|
|
55
54
|
elsif total >= target
|
|
56
|
-
"
|
|
55
|
+
Result.success("成功")
|
|
57
56
|
else
|
|
58
|
-
"
|
|
57
|
+
Result.failure("失敗")
|
|
59
58
|
end
|
|
60
59
|
end
|
|
61
60
|
|
|
@@ -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)
|