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
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BCDice
|
|
4
|
+
module GameSystem
|
|
5
|
+
class FilledWith < Base
|
|
6
|
+
# 夢幻の迷宮財宝表
|
|
7
|
+
def getTresureResult(command)
|
|
8
|
+
m = /^TRS(\d+)([+\-]\d)?$/.match(command)
|
|
9
|
+
unless m
|
|
10
|
+
return nil
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
rank = m[1].to_i + m[2].to_i
|
|
14
|
+
rank = rank.clamp(0, 12)
|
|
15
|
+
|
|
16
|
+
return TRESURE_TABLES[rank].roll(@randomizer)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
TRESURE_TABLES = {
|
|
20
|
+
0 => DiceTable::Table.new(
|
|
21
|
+
"財宝表",
|
|
22
|
+
"1D6",
|
|
23
|
+
[
|
|
24
|
+
"HPポーション(消耗品)",
|
|
25
|
+
"FPポーション(消耗品)",
|
|
26
|
+
"マジックパウダー:火(消耗品)",
|
|
27
|
+
"マジックパウダー:氷(消耗品)",
|
|
28
|
+
"マジックパウダー:雷(消耗品)",
|
|
29
|
+
"500GP",
|
|
30
|
+
]
|
|
31
|
+
),
|
|
32
|
+
1 => DiceTable::Table.new(
|
|
33
|
+
"財宝表",
|
|
34
|
+
"1D6",
|
|
35
|
+
[
|
|
36
|
+
"高級HPポーション(消耗品)",
|
|
37
|
+
"高級FPポーション(消耗品)",
|
|
38
|
+
"高級抵抗ポーション(消耗品)",
|
|
39
|
+
"高級鉄壁ポーション(消耗品)",
|
|
40
|
+
"マジックパウダー:火、氷、雷の3点セット(消耗品)",
|
|
41
|
+
"1000GP",
|
|
42
|
+
]
|
|
43
|
+
),
|
|
44
|
+
2 => DiceTable::Table.new(
|
|
45
|
+
"財宝表",
|
|
46
|
+
"1D6",
|
|
47
|
+
[
|
|
48
|
+
"鈴のお守り(装飾品)",
|
|
49
|
+
"盗賊の小手(装飾品)",
|
|
50
|
+
"狩人の羽帽子(装飾品)",
|
|
51
|
+
"狙撃手の指貫(装飾品)",
|
|
52
|
+
"「スタミナバンド」「健康お守り」「レザーマント」3点セット",
|
|
53
|
+
"2000GP",
|
|
54
|
+
]
|
|
55
|
+
),
|
|
56
|
+
3 => DiceTable::Table.new(
|
|
57
|
+
"財宝表",
|
|
58
|
+
"1D6",
|
|
59
|
+
[
|
|
60
|
+
"最高級HPポーション×2(消耗品)",
|
|
61
|
+
"最高級FPポーション×2(消耗品)",
|
|
62
|
+
"最高級抵抗ポーション×2(消耗品)",
|
|
63
|
+
"任意の装飾品1つ(4000GPまでのもの)",
|
|
64
|
+
"アタッチメント割引券(全員に1枚)",
|
|
65
|
+
"3000GP",
|
|
66
|
+
]
|
|
67
|
+
),
|
|
68
|
+
4 => DiceTable::Table.new(
|
|
69
|
+
"財宝表",
|
|
70
|
+
"1D6",
|
|
71
|
+
[
|
|
72
|
+
"任意の「ミスリル」武器1つ",
|
|
73
|
+
"ミスリルシールド(盾)",
|
|
74
|
+
"ミスリルスケイル(鎧)",
|
|
75
|
+
"任意の装飾品1つ(5000GPまでのもの)",
|
|
76
|
+
"アタッチメント割引券(全員に2枚)",
|
|
77
|
+
"5000GP",
|
|
78
|
+
]
|
|
79
|
+
),
|
|
80
|
+
5 => DiceTable::Table.new(
|
|
81
|
+
"財宝表",
|
|
82
|
+
"1D6",
|
|
83
|
+
[
|
|
84
|
+
"任意の武器1つ(10000GPまでのもの)",
|
|
85
|
+
"任意の盾1つ(10000GPまでのもの)",
|
|
86
|
+
"任意の鎧1つ(10000GPまでのもの)",
|
|
87
|
+
"最高級HPポーション(人数分)",
|
|
88
|
+
"任意の装飾品1つ(10000GPまでのもの)",
|
|
89
|
+
"7500GP",
|
|
90
|
+
]
|
|
91
|
+
),
|
|
92
|
+
6 => DiceTable::Table.new(
|
|
93
|
+
"財宝表",
|
|
94
|
+
"1D6",
|
|
95
|
+
[
|
|
96
|
+
"任意の武器1つ(15000GPまでのもの)",
|
|
97
|
+
"任意の盾1つ(15000GPまでのもの)",
|
|
98
|
+
"任意の鎧1つ(15000GPまでのもの)",
|
|
99
|
+
"任意の装飾品1つ(15000GPまでのもの)",
|
|
100
|
+
"最高級FPポーション(人数分)",
|
|
101
|
+
"10000GP",
|
|
102
|
+
]
|
|
103
|
+
),
|
|
104
|
+
7 => DiceTable::Table.new(
|
|
105
|
+
"財宝表",
|
|
106
|
+
"1D6",
|
|
107
|
+
[
|
|
108
|
+
"任意の武器1つ(30000GPまでのもの)",
|
|
109
|
+
"任意の盾1つ(30000GPまでのもの)",
|
|
110
|
+
"任意の鎧1つ(30000GPまでのもの)",
|
|
111
|
+
"任意の装飾品1つ(30000GPまでのもの)",
|
|
112
|
+
"蘇生ポーション(消耗品)",
|
|
113
|
+
"20000GP",
|
|
114
|
+
]
|
|
115
|
+
),
|
|
116
|
+
8 => DiceTable::Table.new(
|
|
117
|
+
"財宝表",
|
|
118
|
+
"1D6",
|
|
119
|
+
[
|
|
120
|
+
"任意の武器1つ(60000GPまでのもの)",
|
|
121
|
+
"任意の盾1つ(60000GPまでのもの)",
|
|
122
|
+
"任意の鎧1つ(60000GPまでのもの)",
|
|
123
|
+
"任意の装飾品1つ(60000GPまでのもの)",
|
|
124
|
+
"蘇生ポーション(装飾品)+アタッチメント割引券10枚(割引券は人数分)",
|
|
125
|
+
"40000GP",
|
|
126
|
+
]
|
|
127
|
+
),
|
|
128
|
+
9 => DiceTable::Table.new(
|
|
129
|
+
"財宝表",
|
|
130
|
+
"1D6",
|
|
131
|
+
[
|
|
132
|
+
"任意の武器1つ(100000GPまでのもの)",
|
|
133
|
+
"任意の盾1つ(100000GPまでのもの)",
|
|
134
|
+
"任意の鎧1つ(100000GPまでのもの)",
|
|
135
|
+
"任意の装飾品1つ(100000GPまでのもの)",
|
|
136
|
+
"蘇生ポーション(装飾品)+アタッチメント割引券20枚(割引券は人数分)",
|
|
137
|
+
"60000GP",
|
|
138
|
+
]
|
|
139
|
+
),
|
|
140
|
+
10 => DiceTable::Table.new(
|
|
141
|
+
"財宝表",
|
|
142
|
+
"1D6",
|
|
143
|
+
[
|
|
144
|
+
"任意の武器1つ(150000GPまでのもの)",
|
|
145
|
+
"任意の盾1つ(150000GPまでのもの)",
|
|
146
|
+
"任意の鎧1つ(150000GPまでのもの)",
|
|
147
|
+
"任意の装飾品1つ(200000GPまでのもの)",
|
|
148
|
+
"蘇生ポーション(装飾品)+アタッチメント割引券30枚(割引券は人数分)",
|
|
149
|
+
"黄金の守護者の証(装飾品)(【ハッキング】があれば黄金の電子暗号キー(装飾品)も追加)",
|
|
150
|
+
]
|
|
151
|
+
),
|
|
152
|
+
11 => DiceTable::Table.new(
|
|
153
|
+
"財宝表",
|
|
154
|
+
"1D6",
|
|
155
|
+
[
|
|
156
|
+
"体力の欠片(大事なもの)(全員に10個)",
|
|
157
|
+
"敏捷の欠片(大事なもの)(全員に10個)",
|
|
158
|
+
"感覚の欠片(大事なもの)(全員に10個)",
|
|
159
|
+
"知力の欠片(大事なもの)(全員に10個)",
|
|
160
|
+
"意志の欠片(大事なもの)(全員に10個)",
|
|
161
|
+
"お好きな副能力の欠片(大事なもの)(1人ずつ好きなものを選択して全員に50個)",
|
|
162
|
+
]
|
|
163
|
+
),
|
|
164
|
+
12 => DiceTable::Table.new(
|
|
165
|
+
"財宝表",
|
|
166
|
+
"1D6",
|
|
167
|
+
[
|
|
168
|
+
"体力の欠片(大事なもの)(全員に20個)",
|
|
169
|
+
"敏捷の欠片(大事なもの)(全員に20個)",
|
|
170
|
+
"感覚の欠片(大事なもの)(全員に20個)",
|
|
171
|
+
"知力の欠片(大事なもの)(全員に20個)",
|
|
172
|
+
"意志の欠片(大事なもの)(全員に20個)",
|
|
173
|
+
"お好きな副能力の欠片(大事なもの)(1人ずつ好きなものを選択して全員に100個)",
|
|
174
|
+
]
|
|
175
|
+
)
|
|
176
|
+
}.freeze
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
end
|
|
@@ -112,7 +112,7 @@ module BCDice
|
|
|
112
112
|
[3, "あなたの国は、英雄が用いた武具の伝説が残っている。レア武具アイテムの中からランダムに1種を選ぶ。そのレアアイテムのレシピを持っている。【王宮】のある部屋に、そのレア武具アイテムの名前を記入すること。"],
|
|
113
113
|
[4, "あなたの国は、有名な職人たちが揃う工業国家である。コモンアイテムを作成するとき、それらのアイテムを作成するための必要国力が1点高いものとして扱う。"],
|
|
114
114
|
[5, "あなたの国は、質実剛健な兵士たちが揃っている。その国のキャラクターは、《配下》最大値が1人上昇する(最大2人まで上昇する。3回目以降は振り直すこと)。"],
|
|
115
|
-
[6, "あなたの国は、過去に列強に臣従し、いまでも友好的な関係を築いている。(1D6)を振ること。1ならダイナマイト帝国、2なら千年王朝、3ならメトロ汗国、4
|
|
115
|
+
[6, "あなたの国は、過去に列強に臣従し、いまでも友好的な関係を築いている。(1D6)を振ること。1ならダイナマイト帝国、2なら千年王朝、3ならメトロ汗国、4ならハグルマ資本主義神聖共和国との関係が「友好」になる。5や6なら振り直すこと。また、その列強の列強系施設1軒を獲得する。"],
|
|
116
116
|
]
|
|
117
117
|
return get_table_by_number(num, table)
|
|
118
118
|
end
|
|
@@ -57,22 +57,22 @@ module BCDice
|
|
|
57
57
|
return @first_modify || 0
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
-
# @return
|
|
60
|
+
# @return [Integer]
|
|
61
61
|
def first_to
|
|
62
62
|
return @first_to || 0
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
-
# @return
|
|
65
|
+
# @return [Integer]
|
|
66
66
|
def rateup
|
|
67
67
|
return @rateup || 0
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
# @return
|
|
70
|
+
# @return [Integer]
|
|
71
71
|
def kept_modify
|
|
72
72
|
return @kept_modify || 0
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
# @return
|
|
75
|
+
# @return [Integer]
|
|
76
76
|
def modifier_after_half
|
|
77
77
|
return @modifier_after_half || 0
|
|
78
78
|
end
|
|
@@ -12,10 +12,10 @@ require "bcdice/enum"
|
|
|
12
12
|
require "bcdice/game_system/sword_world/rating_lexer"
|
|
13
13
|
require "bcdice/game_system/sword_world/rating_parsed"
|
|
14
14
|
|
|
15
|
-
# SwordWorldの威力表コマンドをパースするクラス
|
|
16
15
|
module BCDice
|
|
17
16
|
module GameSystem
|
|
18
17
|
class SwordWorld < Base
|
|
18
|
+
# SwordWorldの威力表コマンドをパースするクラス
|
|
19
19
|
|
|
20
20
|
class RatingParser < Racc::Parser
|
|
21
21
|
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
+
require "bcdice/result"
|
|
2
|
+
|
|
1
3
|
module BCDice
|
|
2
4
|
module GameSystem
|
|
3
5
|
class SwordWorld2_0 < SwordWorld
|
|
4
6
|
# 超越判定のノード
|
|
5
7
|
class TranscendentTest
|
|
8
|
+
RESULT_STR = {
|
|
9
|
+
success: "成功",
|
|
10
|
+
failure: "失敗",
|
|
11
|
+
super_success: "超成功",
|
|
12
|
+
critical: "自動的成功",
|
|
13
|
+
fumble: "自動的失敗",
|
|
14
|
+
}.freeze
|
|
15
|
+
|
|
6
16
|
# @param [Integer] critical_value クリティカル値
|
|
7
17
|
# @param [Integer] modifier 修正値
|
|
8
18
|
# @param [String, nil] cmp_op 比較演算子(> または >=)
|
|
@@ -40,14 +50,21 @@ module BCDice
|
|
|
40
50
|
sum = sum_of_dice(value_groups)
|
|
41
51
|
total_sum = sum + @modifier
|
|
42
52
|
|
|
53
|
+
result = result_status(total_sum, value_groups.length, fumble, critical)
|
|
43
54
|
parts = [
|
|
44
55
|
"(#{@expression})",
|
|
45
56
|
"#{dice_str(value_groups, sum)}#{@modifier_str}",
|
|
46
57
|
total_sum,
|
|
47
|
-
|
|
58
|
+
RESULT_STR[result],
|
|
48
59
|
].compact
|
|
49
60
|
|
|
50
|
-
return
|
|
61
|
+
return Result.new.tap do |r|
|
|
62
|
+
r.text = parts.join(" > ")
|
|
63
|
+
r.fumble = result == :fumble
|
|
64
|
+
r.critical = result == :critical
|
|
65
|
+
r.success = [:success, :super_success, :critical].include?(result)
|
|
66
|
+
r.failure = [:failure, :fumble].include?(result)
|
|
67
|
+
end
|
|
51
68
|
end
|
|
52
69
|
|
|
53
70
|
private
|
|
@@ -86,16 +103,17 @@ module BCDice
|
|
|
86
103
|
# @param [Integer] n_value_groups 出目のグループの数
|
|
87
104
|
# @param [Boolean] fumble ファンブルかどうか
|
|
88
105
|
# @param [Boolean] critical クリティカルかどうか
|
|
89
|
-
# @return [
|
|
90
|
-
def
|
|
91
|
-
return
|
|
92
|
-
return
|
|
106
|
+
# @return [Symbol]
|
|
107
|
+
def result_status(total_sum, n_value_groups, fumble, critical)
|
|
108
|
+
return :no_target unless @target
|
|
109
|
+
return :fumble if fumble
|
|
110
|
+
return :critical if critical
|
|
93
111
|
|
|
94
112
|
if total_sum.send(@cmp_op, @target)
|
|
95
113
|
# 振り足しが行われ、合計値が41以上ならば「超成功」
|
|
96
|
-
n_value_groups >= 2 && total_sum >= 41 ?
|
|
114
|
+
n_value_groups >= 2 && total_sum >= 41 ? :super_success : :success
|
|
97
115
|
else
|
|
98
|
-
|
|
116
|
+
:failure
|
|
99
117
|
end
|
|
100
118
|
end
|
|
101
119
|
end
|
data/lib/bcdice/repl.rb
CHANGED
data/lib/bcdice/result.rb
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module BCDice
|
|
4
|
+
# ダイスロールの結果を表すクラス
|
|
5
|
+
#
|
|
6
|
+
# コマンドの結果の文字列や、成功/失敗/クリティカル/ファンブルの情報を保持する。
|
|
7
|
+
# 成功/失敗は同時に発生しないこととする。
|
|
8
|
+
# 成功/失敗のペアとクリティカル、ファンブルの三者は独立した要素とし、
|
|
9
|
+
# 「クリティカルだが失敗」や「ファンブルだが成功でも失敗でもない」を許容する。
|
|
4
10
|
class Result
|
|
5
11
|
class << self
|
|
12
|
+
# +success+ が設定された +Result+ を作成する
|
|
13
|
+
#
|
|
14
|
+
# @param text [String]
|
|
15
|
+
# @return [Result]
|
|
6
16
|
def success(text)
|
|
7
17
|
new.tap do |r|
|
|
8
18
|
r.text = text
|
|
@@ -10,6 +20,10 @@ module BCDice
|
|
|
10
20
|
end
|
|
11
21
|
end
|
|
12
22
|
|
|
23
|
+
# +failure+ が設定された +Result+ を作成する
|
|
24
|
+
#
|
|
25
|
+
# @param text [String]
|
|
26
|
+
# @return [Result]
|
|
13
27
|
def failure(text)
|
|
14
28
|
new.tap do |r|
|
|
15
29
|
r.text = text
|
|
@@ -17,6 +31,10 @@ module BCDice
|
|
|
17
31
|
end
|
|
18
32
|
end
|
|
19
33
|
|
|
34
|
+
# +success+ と +critical+ が設定された +Result+ を作成する
|
|
35
|
+
#
|
|
36
|
+
# @param text [String]
|
|
37
|
+
# @return [Result]
|
|
20
38
|
def critical(text)
|
|
21
39
|
new.tap do |r|
|
|
22
40
|
r.text = text
|
|
@@ -25,6 +43,10 @@ module BCDice
|
|
|
25
43
|
end
|
|
26
44
|
end
|
|
27
45
|
|
|
46
|
+
# +failure+ と +fumble+ が設定された +Result+ を作成する
|
|
47
|
+
#
|
|
48
|
+
# @param text [String]
|
|
49
|
+
# @return [Result]
|
|
28
50
|
def fumble(text)
|
|
29
51
|
new.tap do |r|
|
|
30
52
|
r.text = text
|
|
@@ -33,11 +55,15 @@ module BCDice
|
|
|
33
55
|
end
|
|
34
56
|
end
|
|
35
57
|
|
|
58
|
+
# その後の判定で何もすることがないことを示すために利用する
|
|
59
|
+
#
|
|
60
|
+
# @return [:nothing]
|
|
36
61
|
def nothing
|
|
37
62
|
:nothing
|
|
38
63
|
end
|
|
39
64
|
end
|
|
40
65
|
|
|
66
|
+
# @param text [String | nil]
|
|
41
67
|
def initialize(text = nil)
|
|
42
68
|
@text = text
|
|
43
69
|
@rands = nil
|
data/lib/bcdice/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bcdice
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- SAKATA Sinji
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-05-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: i18n
|
|
@@ -59,14 +59,18 @@ files:
|
|
|
59
59
|
- i18n/LogHorizon/ko_kr.yml
|
|
60
60
|
- i18n/MagicaLogia/ja_jp.yml
|
|
61
61
|
- i18n/MagicaLogia/ko_kr.yml
|
|
62
|
+
- i18n/MagicaLogia/zh_hans.yml
|
|
62
63
|
- i18n/MonotoneMuseum/ja_jp.yml
|
|
63
64
|
- i18n/MonotoneMuseum/ko_kr.yml
|
|
64
65
|
- i18n/Nechronica/ja_jp.yml
|
|
65
66
|
- i18n/Nechronica/ko_kr.yml
|
|
67
|
+
- i18n/StellarKnights/ja_jp.yml
|
|
68
|
+
- i18n/StellarKnights/ko_kr.yml
|
|
66
69
|
- i18n/StratoShout/ja_jp.yml
|
|
67
70
|
- i18n/StratoShout/ko_kr.yml
|
|
68
71
|
- i18n/ja_jp.yml
|
|
69
72
|
- i18n/ko_kr.yml
|
|
73
|
+
- i18n/zh_hans.yml
|
|
70
74
|
- i18n/zh_hant.yml
|
|
71
75
|
- lib/bcdice.rb
|
|
72
76
|
- lib/bcdice/arithmetic.rb
|
|
@@ -104,6 +108,8 @@ files:
|
|
|
104
108
|
- lib/bcdice/dice_table.rb
|
|
105
109
|
- lib/bcdice/dice_table/chain_table.rb
|
|
106
110
|
- lib/bcdice/dice_table/d66_grid_table.rb
|
|
111
|
+
- lib/bcdice/dice_table/d66_half_grid_table.rb
|
|
112
|
+
- lib/bcdice/dice_table/d66_one_third_table.rb
|
|
107
113
|
- lib/bcdice/dice_table/d66_parity_table.rb
|
|
108
114
|
- lib/bcdice/dice_table/d66_range_table.rb
|
|
109
115
|
- lib/bcdice/dice_table/d66_table.rb
|
|
@@ -118,6 +124,7 @@ files:
|
|
|
118
124
|
- lib/bcdice/game_system.rb
|
|
119
125
|
- lib/bcdice/game_system/AFF2e.rb
|
|
120
126
|
- lib/bcdice/game_system/AceKillerGene.rb
|
|
127
|
+
- lib/bcdice/game_system/Ainecadette.rb
|
|
121
128
|
- lib/bcdice/game_system/Airgetlamh.rb
|
|
122
129
|
- lib/bcdice/game_system/AlchemiaStruggle.rb
|
|
123
130
|
- lib/bcdice/game_system/Alsetto.rb
|
|
@@ -228,6 +235,7 @@ files:
|
|
|
228
235
|
- lib/bcdice/game_system/LostRoyal.rb
|
|
229
236
|
- lib/bcdice/game_system/MagicaLogia.rb
|
|
230
237
|
- lib/bcdice/game_system/MagicaLogia_Korean.rb
|
|
238
|
+
- lib/bcdice/game_system/MagicaLogia_SimplifiedChinese.rb
|
|
231
239
|
- lib/bcdice/game_system/MeikyuDays.rb
|
|
232
240
|
- lib/bcdice/game_system/MeikyuKingdom.rb
|
|
233
241
|
- lib/bcdice/game_system/MeikyuKingdomBasic.rb
|
|
@@ -263,6 +271,7 @@ files:
|
|
|
263
271
|
- lib/bcdice/game_system/Raisondetre.rb
|
|
264
272
|
- lib/bcdice/game_system/RecordOfLodossWar.rb
|
|
265
273
|
- lib/bcdice/game_system/RecordOfSteam.rb
|
|
274
|
+
- lib/bcdice/game_system/Revulture.rb
|
|
266
275
|
- lib/bcdice/game_system/RokumonSekai2.rb
|
|
267
276
|
- lib/bcdice/game_system/RoleMaster.rb
|
|
268
277
|
- lib/bcdice/game_system/RuinBreakers.rb
|
|
@@ -283,8 +292,11 @@ files:
|
|
|
283
292
|
- lib/bcdice/game_system/ShinobiGami.rb
|
|
284
293
|
- lib/bcdice/game_system/ShoujoTenrankai.rb
|
|
285
294
|
- lib/bcdice/game_system/Skynauts.rb
|
|
295
|
+
- lib/bcdice/game_system/SkynautsBouken.rb
|
|
296
|
+
- lib/bcdice/game_system/StarryDolls.rb
|
|
286
297
|
- lib/bcdice/game_system/SteamPunkers.rb
|
|
287
298
|
- lib/bcdice/game_system/StellarKnights.rb
|
|
299
|
+
- lib/bcdice/game_system/StellarKnights_Korean.rb
|
|
288
300
|
- lib/bcdice/game_system/SterileLife.rb
|
|
289
301
|
- lib/bcdice/game_system/StrangerOfSwordCity.rb
|
|
290
302
|
- lib/bcdice/game_system/StratoShout.rb
|
|
@@ -320,7 +332,10 @@ files:
|
|
|
320
332
|
- lib/bcdice/game_system/cthulhu7th/full_auto.rb
|
|
321
333
|
- lib/bcdice/game_system/cthulhu7th/rollable.rb
|
|
322
334
|
- lib/bcdice/game_system/filled_with/cook_tables.rb
|
|
335
|
+
- lib/bcdice/game_system/filled_with/enemy_data_tables.rb
|
|
336
|
+
- lib/bcdice/game_system/filled_with/event_tables.rb
|
|
323
337
|
- lib/bcdice/game_system/filled_with/lot_tables.rb
|
|
338
|
+
- lib/bcdice/game_system/filled_with/tresure_tables.rb
|
|
324
339
|
- lib/bcdice/game_system/meikyu_kingdom/item_table.rb
|
|
325
340
|
- lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb
|
|
326
341
|
- lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb
|
|
@@ -373,8 +388,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
373
388
|
- !ruby/object:Gem::Version
|
|
374
389
|
version: '0'
|
|
375
390
|
requirements: []
|
|
376
|
-
|
|
377
|
-
rubygems_version: 2.7.6.2
|
|
391
|
+
rubygems_version: 3.1.2
|
|
378
392
|
signing_key:
|
|
379
393
|
specification_version: 4
|
|
380
394
|
summary: BCDice is a rolling dice engine for TRPG
|