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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "bcdice/format"
|
|
4
|
+
|
|
3
5
|
module BCDice
|
|
4
6
|
module GameSystem
|
|
5
7
|
class ColossalHunter < Base
|
|
@@ -14,10 +16,12 @@ module BCDice
|
|
|
14
16
|
|
|
15
17
|
# ダイスボットの使い方
|
|
16
18
|
HELP_MESSAGE = <<~MESSAGETEXT
|
|
17
|
-
・判定(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
・判定(nCH±x>=y)
|
|
20
|
+
nD6の判定。クリティカル、ファンブルの自動判定を行います。
|
|
21
|
+
n:ダイス数。省略可能。省略した場合3。
|
|
22
|
+
x:修正値。省略可能。
|
|
23
|
+
y:目標値。省略可能。
|
|
24
|
+
例) CH CH+1 CH+2>=10 4CH+1
|
|
21
25
|
・BIG-6表(B6T)
|
|
22
26
|
・覚醒表(AWT)
|
|
23
27
|
・現状表(CST)
|
|
@@ -45,65 +49,48 @@ module BCDice
|
|
|
45
49
|
def getCheckRollDiceCommandResult(command)
|
|
46
50
|
debug("getCheckRollDiceCommandResult command", command)
|
|
47
51
|
|
|
48
|
-
|
|
52
|
+
parser = Command::Parser.new(/\d*CH/, round_type: round_type)
|
|
53
|
+
.restrict_cmp_op_to(nil, :>=)
|
|
49
54
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
parsed = parser.parse(command)
|
|
56
|
+
unless parsed
|
|
57
|
+
return nil
|
|
58
|
+
end
|
|
53
59
|
|
|
54
|
-
|
|
55
|
-
modify = getValue(modifyText, 0)
|
|
60
|
+
parsed.command = "3CH" unless parsed.command.start_with?(/\d/)
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
dice_count = parsed.command.to_i
|
|
63
|
+
modify = parsed.modify_number
|
|
59
64
|
|
|
60
65
|
# ダイスロール
|
|
61
|
-
dice_list = @randomizer.roll_barabara(
|
|
66
|
+
dice_list = @randomizer.roll_barabara(dice_count, 6)
|
|
62
67
|
dice = dice_list.sum()
|
|
63
68
|
dice_str = dice_list.join(",")
|
|
64
69
|
|
|
65
70
|
total = dice + modify
|
|
66
71
|
|
|
67
|
-
# 出力用ダイスコマンドを生成
|
|
68
|
-
command = "#{diceCount}CH#{modifyText}"
|
|
69
|
-
command += ">=#{difficulty}" unless difficulty.nil?
|
|
70
|
-
|
|
71
72
|
# 出力文の生成
|
|
72
|
-
|
|
73
|
+
text = "(#{parsed}) > #{dice}[#{dice_str}]#{Format.modifier(modify)} > #{total}"
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
if isFamble(dice)
|
|
76
|
-
result += " > ファンブル"
|
|
77
|
-
elsif isCritical(total)
|
|
78
|
-
result += " > クリティカル"
|
|
79
|
-
else
|
|
80
|
-
result += getJudgeResultString(difficulty, total)
|
|
81
|
-
end
|
|
75
|
+
result = get_judge_result(dice, total, parsed)
|
|
82
76
|
|
|
77
|
+
result.text = text + result.text
|
|
83
78
|
return result
|
|
84
79
|
end
|
|
85
80
|
|
|
86
81
|
# 成否判定
|
|
87
|
-
def
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def isCritical(total)
|
|
102
|
-
(total >= 16)
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def isFamble(total)
|
|
106
|
-
(total <= 5)
|
|
82
|
+
def get_judge_result(dice, total, parsed)
|
|
83
|
+
if dice <= 5
|
|
84
|
+
Result.fumble(" > ファンブル")
|
|
85
|
+
elsif total >= 16
|
|
86
|
+
Result.critical(" > クリティカル")
|
|
87
|
+
elsif parsed.cmp_op.nil?
|
|
88
|
+
Result.new("")
|
|
89
|
+
elsif total >= parsed.target_number
|
|
90
|
+
Result.success(" > 成功")
|
|
91
|
+
else
|
|
92
|
+
Result.failure(" > 失敗")
|
|
93
|
+
end
|
|
107
94
|
end
|
|
108
95
|
|
|
109
96
|
def getSourceSceneDiceCommandResult(command)
|
|
@@ -562,7 +549,7 @@ module BCDice
|
|
|
562
549
|
|
|
563
550
|
}.freeze
|
|
564
551
|
|
|
565
|
-
register_prefix(
|
|
552
|
+
register_prefix('\d*CH', "B6T", "CNP", TABLES.keys)
|
|
566
553
|
end
|
|
567
554
|
end
|
|
568
555
|
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}]",
|
|
@@ -10,7 +10,7 @@ module BCDice
|
|
|
10
10
|
NAME = '克蘇魯神話第7版'
|
|
11
11
|
|
|
12
12
|
# ゲームシステム名の読みがな
|
|
13
|
-
SORT_KEY = '国際化:Chinese Traditional
|
|
13
|
+
SORT_KEY = '国際化:Chinese Traditional:克蘇魯神話第7版'
|
|
14
14
|
|
|
15
15
|
# ダイスボットの使い方
|
|
16
16
|
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
|
@@ -35,7 +35,7 @@ module BCDice
|
|
|
35
35
|
・實時型 Short/總結型 Longer
|
|
36
36
|
INFO_MESSAGE_TEXT
|
|
37
37
|
|
|
38
|
-
register_prefix('CC
|
|
38
|
+
register_prefix('CC', 'CBR', 'FAR')
|
|
39
39
|
|
|
40
40
|
def initialize(command)
|
|
41
41
|
super(command)
|
|
@@ -10,7 +10,7 @@ module BCDice
|
|
|
10
10
|
NAME = '크툴루의 부름 7판'
|
|
11
11
|
|
|
12
12
|
# ゲームシステム名の読みがな
|
|
13
|
-
SORT_KEY = '国際化:Korean
|
|
13
|
+
SORT_KEY = '国際化:Korean:크툴루의 부름 7판'
|
|
14
14
|
|
|
15
15
|
# ダイスボットの使い方
|
|
16
16
|
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
|
@@ -32,7 +32,7 @@ module BCDice
|
|
|
32
32
|
예)FAR(25,70,98) FAR(50,80,98,-1)
|
|
33
33
|
INFO_MESSAGE_TEXT
|
|
34
34
|
|
|
35
|
-
register_prefix('CC
|
|
35
|
+
register_prefix('CC', 'CBR', 'FAR')
|
|
36
36
|
|
|
37
37
|
def initialize(command)
|
|
38
38
|
super(command)
|
|
@@ -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
|
|
|
@@ -33,8 +33,8 @@ module BCDice
|
|
|
33
33
|
INFO_MESSAGE_TEXT
|
|
34
34
|
|
|
35
35
|
register_prefix(
|
|
36
|
-
'DLH
|
|
37
|
-
'DC
|
|
36
|
+
'DLH',
|
|
37
|
+
'DC[LSC]',
|
|
38
38
|
'RNC[JO]',
|
|
39
39
|
'HNC'
|
|
40
40
|
)
|
|
@@ -71,10 +71,11 @@ module BCDice
|
|
|
71
71
|
"行為判定(成功率:#{success_rate}%)",
|
|
72
72
|
"1D100[#{dice10},#{dice01}]=#{roll_result_text}",
|
|
73
73
|
roll_result_text.to_s,
|
|
74
|
-
result
|
|
74
|
+
result.text
|
|
75
75
|
]
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
result.text = sequence.join(" > ")
|
|
78
|
+
result
|
|
78
79
|
end
|
|
79
80
|
|
|
80
81
|
SUCCESS_STR = "成功"
|
|
@@ -84,19 +85,19 @@ module BCDice
|
|
|
84
85
|
|
|
85
86
|
def action_result(total, tens, ones, success_rate)
|
|
86
87
|
if total == 100 || success_rate <= 0
|
|
87
|
-
FUMBLE_STR
|
|
88
|
+
Result.fumble(FUMBLE_STR)
|
|
88
89
|
elsif total <= success_rate - 100
|
|
89
|
-
CRITICAL_STR
|
|
90
|
+
Result.critical(CRITICAL_STR)
|
|
90
91
|
elsif tens == ones
|
|
91
92
|
if total <= success_rate
|
|
92
|
-
CRITICAL_STR
|
|
93
|
+
Result.critical(CRITICAL_STR)
|
|
93
94
|
else
|
|
94
|
-
FUMBLE_STR
|
|
95
|
+
Result.fumble(FUMBLE_STR)
|
|
95
96
|
end
|
|
96
97
|
elsif total <= success_rate
|
|
97
|
-
SUCCESS_STR
|
|
98
|
+
Result.success(SUCCESS_STR)
|
|
98
99
|
else
|
|
99
|
-
FAILURE_STR
|
|
100
|
+
Result.failure(FAILURE_STR)
|
|
100
101
|
end
|
|
101
102
|
end
|
|
102
103
|
|
|
@@ -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
|
|