bcdice 3.0.0.pre.rc.2 → 3.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +49 -1
- data/README.md +33 -7
- data/i18n/MonotoneMuseum/ja_jp.yml +3 -3
- data/lib/bcdice/common_command/add_dice.rb +1 -1
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +1 -1
- data/lib/bcdice/game_system.rb +1 -0
- data/lib/bcdice/game_system/AlchemiaStruggle.rb +1 -1
- data/lib/bcdice/game_system/Alshard.rb +1 -1
- data/lib/bcdice/game_system/AngelGear.rb +123 -0
- data/lib/bcdice/game_system/ArsMagica.rb +1 -1
- data/lib/bcdice/game_system/BBN.rb +1 -1
- data/lib/bcdice/game_system/BadLife.rb +1 -1
- data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
- data/lib/bcdice/game_system/BeastBindTrinity.rb +2 -2
- data/lib/bcdice/game_system/BlindMythos.rb +1 -1
- data/lib/bcdice/game_system/BloodCrusade.rb +42 -42
- data/lib/bcdice/game_system/BloodMoon.rb +41 -0
- data/lib/bcdice/game_system/CardRanker.rb +2 -2
- data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
- data/lib/bcdice/game_system/Chill.rb +1 -1
- data/lib/bcdice/game_system/CodeLayerd.rb +3 -1
- data/lib/bcdice/game_system/Cthulhu.rb +8 -4
- data/lib/bcdice/game_system/Cthulhu7th.rb +40 -334
- 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/CthulhuTech.rb +1 -1
- 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 +1 -1
- data/lib/bcdice/game_system/DiceOfTheDead.rb +1 -1
- data/lib/bcdice/game_system/DoubleCross.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
- data/lib/bcdice/game_system/Elysion.rb +2 -2
- data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
- data/lib/bcdice/game_system/FilledWith.rb +203 -1274
- data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
- data/lib/bcdice/game_system/Garako.rb +12 -4
- data/lib/bcdice/game_system/GehennaAn.rb +1 -1
- data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +1 -1
- data/lib/bcdice/game_system/HarnMaster.rb +1 -1
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/Illusio.rb +25 -34
- data/lib/bcdice/game_system/LogHorizon.rb +3 -3
- data/lib/bcdice/game_system/LostRoyal.rb +1 -1
- data/lib/bcdice/game_system/MeikyuDays.rb +1 -1
- data/lib/bcdice/game_system/MeikyuKingdom.rb +2 -2
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +3 -3
- data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
- data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum.rb +1 -1
- data/lib/bcdice/game_system/NeverCloud.rb +540 -5
- data/lib/bcdice/game_system/NightWizard.rb +1 -1
- data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
- data/lib/bcdice/game_system/NinjaSlayer.rb +4 -13
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
- data/lib/bcdice/game_system/OracleEngine.rb +1 -1
- data/lib/bcdice/game_system/OrgaRain.rb +17 -25
- data/lib/bcdice/game_system/Paradiso.rb +3 -3
- data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
- data/lib/bcdice/game_system/Postman.rb +1 -1
- data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
- data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
- data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
- data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/SRS.rb +1 -1
- data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
- data/lib/bcdice/game_system/Satasupe.rb +79 -860
- data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
- data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
- data/lib/bcdice/game_system/ShinobiGami.rb +3 -3
- data/lib/bcdice/game_system/Skynauts.rb +2 -2
- data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
- data/lib/bcdice/game_system/SterileLife.rb +2 -3
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +2 -2
- data/lib/bcdice/game_system/SwordWorld.rb +46 -182
- data/lib/bcdice/game_system/SwordWorld2_0.rb +21 -149
- data/lib/bcdice/game_system/SwordWorld2_5.rb +126 -40
- data/lib/bcdice/game_system/Torg.rb +1 -1
- data/lib/bcdice/game_system/TorgEternity.rb +2 -2
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -1
- data/lib/bcdice/game_system/UnsungDuet.rb +1 -1
- data/lib/bcdice/game_system/Utakaze.rb +1 -1
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
- data/lib/bcdice/game_system/Warhammer.rb +1 -1
- data/lib/bcdice/game_system/Warhammer4.rb +1 -1
- data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
- data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
- data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +294 -0
- data/lib/bcdice/game_system/cthulhu7th/rollable.rb +41 -0
- 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/satasupe/tables.rb +723 -0
- data/lib/bcdice/game_system/sword_world/rating_lexer.rb +47 -0
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +99 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +457 -0
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +104 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +15 -4
@@ -0,0 +1,104 @@
|
|
1
|
+
module BCDice
|
2
|
+
module GameSystem
|
3
|
+
class SwordWorld2_0 < SwordWorld
|
4
|
+
# 超越判定のノード
|
5
|
+
class TranscendentTest
|
6
|
+
# @param [Integer] critical_value クリティカル値
|
7
|
+
# @param [Integer] modifier 修正値
|
8
|
+
# @param [String, nil] cmp_op 比較演算子(> または >=)
|
9
|
+
# @param [Integer, nil] target 目標値
|
10
|
+
def initialize(critical_value, modifier, cmp_op, target)
|
11
|
+
@critical_value = critical_value
|
12
|
+
@modifier = modifier
|
13
|
+
@cmp_op = cmp_op
|
14
|
+
@target = target
|
15
|
+
|
16
|
+
@modifier_str = Format.modifier(@modifier)
|
17
|
+
@expression = node_expression()
|
18
|
+
end
|
19
|
+
|
20
|
+
# 超越判定を行う
|
21
|
+
# @param randomizer [Randomizer]
|
22
|
+
# @return [String]
|
23
|
+
def execute(randomizer)
|
24
|
+
if @critical_value < 3
|
25
|
+
return "(#{@expression}) > クリティカル値が小さすぎます。3以上を指定してください。"
|
26
|
+
end
|
27
|
+
|
28
|
+
first_value_group = randomizer.roll_barabara(2, 6)
|
29
|
+
value_groups = [first_value_group]
|
30
|
+
|
31
|
+
fumble = first_value_group == [1, 1]
|
32
|
+
critical = first_value_group == [6, 6]
|
33
|
+
|
34
|
+
if !fumble && !critical
|
35
|
+
while sum_of_dice(value_groups.last) >= @critical_value
|
36
|
+
value_groups.push(randomizer.roll_barabara(2, 6))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
sum = sum_of_dice(value_groups)
|
41
|
+
total_sum = sum + @modifier
|
42
|
+
|
43
|
+
parts = [
|
44
|
+
"(#{@expression})",
|
45
|
+
"#{dice_str(value_groups, sum)}#{@modifier_str}",
|
46
|
+
total_sum,
|
47
|
+
@target && result_str(total_sum, value_groups.length, fumble, critical)
|
48
|
+
].compact
|
49
|
+
|
50
|
+
return parts.join(" > ")
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
# 数式表記を返す
|
56
|
+
# @return [String]
|
57
|
+
def node_expression
|
58
|
+
lhs = "2D6@#{@critical_value}#{@modifier_str}"
|
59
|
+
|
60
|
+
return @target ? "#{lhs}#{@cmp_op}#{@target}" : lhs
|
61
|
+
end
|
62
|
+
|
63
|
+
# 出目の合計を返す
|
64
|
+
# @param [(Integer, Integer), Array<(Integer, Integer)>] value_groups
|
65
|
+
# 出目のグループまたはその配列
|
66
|
+
# @return [Integer]
|
67
|
+
def sum_of_dice(value_groups)
|
68
|
+
value_groups.flatten.sum
|
69
|
+
end
|
70
|
+
|
71
|
+
# ダイス部分の文字列を返す
|
72
|
+
# @param [Array<(Integer, Integer)>] value_groups 出目のグループの配列
|
73
|
+
# @param [Integer] sum 出目の合計
|
74
|
+
# @return [String]
|
75
|
+
def dice_str(value_groups, sum)
|
76
|
+
value_groups_str =
|
77
|
+
value_groups
|
78
|
+
.map { |values| "[#{values.join(',')}]" }
|
79
|
+
.join
|
80
|
+
|
81
|
+
return "#{sum}#{value_groups_str}"
|
82
|
+
end
|
83
|
+
|
84
|
+
# 判定結果の文字列を返す
|
85
|
+
# @param [Integer] total_sum 合計値
|
86
|
+
# @param [Integer] n_value_groups 出目のグループの数
|
87
|
+
# @param [Boolean] fumble ファンブルかどうか
|
88
|
+
# @param [Boolean] critical クリティカルかどうか
|
89
|
+
# @return [String]
|
90
|
+
def result_str(total_sum, n_value_groups, fumble, critical)
|
91
|
+
return "自動的失敗" if fumble
|
92
|
+
return "自動的成功" if critical
|
93
|
+
|
94
|
+
if total_sum.send(@cmp_op, @target)
|
95
|
+
# 振り足しが行われ、合計値が41以上ならば「超成功」
|
96
|
+
n_value_groups >= 2 && total_sum >= 41 ? "超成功" : "成功"
|
97
|
+
else
|
98
|
+
"失敗"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
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.1.3
|
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-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- lib/bcdice/game_system/AlterRaise.rb
|
126
126
|
- lib/bcdice/game_system/Amadeus.rb
|
127
127
|
- lib/bcdice/game_system/Amadeus_Korean.rb
|
128
|
+
- lib/bcdice/game_system/AngelGear.rb
|
128
129
|
- lib/bcdice/game_system/AnimaAnimus.rb
|
129
130
|
- lib/bcdice/game_system/Arianrhod.rb
|
130
131
|
- lib/bcdice/game_system/ArsMagica.rb
|
@@ -316,8 +317,13 @@ files:
|
|
316
317
|
- lib/bcdice/game_system/YearZeroEngine.rb
|
317
318
|
- lib/bcdice/game_system/Yggdrasill.rb
|
318
319
|
- lib/bcdice/game_system/ZettaiReido.rb
|
320
|
+
- lib/bcdice/game_system/cthulhu7th/full_auto.rb
|
321
|
+
- lib/bcdice/game_system/cthulhu7th/rollable.rb
|
319
322
|
- lib/bcdice/game_system/filled_with/cook_tables.rb
|
323
|
+
- lib/bcdice/game_system/filled_with/enemy_data_tables.rb
|
324
|
+
- lib/bcdice/game_system/filled_with/event_tables.rb
|
320
325
|
- lib/bcdice/game_system/filled_with/lot_tables.rb
|
326
|
+
- lib/bcdice/game_system/filled_with/tresure_tables.rb
|
321
327
|
- lib/bcdice/game_system/meikyu_kingdom/item_table.rb
|
322
328
|
- lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb
|
323
329
|
- lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb
|
@@ -333,6 +339,11 @@ files:
|
|
333
339
|
- lib/bcdice/game_system/one_way_heroics/dungeon_table.rb
|
334
340
|
- lib/bcdice/game_system/one_way_heroics/random_event_table.rb
|
335
341
|
- lib/bcdice/game_system/one_way_heroics/tables.rb
|
342
|
+
- lib/bcdice/game_system/satasupe/tables.rb
|
343
|
+
- lib/bcdice/game_system/sword_world/rating_lexer.rb
|
344
|
+
- lib/bcdice/game_system/sword_world/rating_parsed.rb
|
345
|
+
- lib/bcdice/game_system/sword_world/rating_parser.rb
|
346
|
+
- lib/bcdice/game_system/sword_world/transcendent_test.rb
|
336
347
|
- lib/bcdice/loader.rb
|
337
348
|
- lib/bcdice/normalize.rb
|
338
349
|
- lib/bcdice/preprocessor.rb
|
@@ -361,9 +372,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
361
372
|
version: '2.5'
|
362
373
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
363
374
|
requirements:
|
364
|
-
- - "
|
375
|
+
- - ">="
|
365
376
|
- !ruby/object:Gem::Version
|
366
|
-
version:
|
377
|
+
version: '0'
|
367
378
|
requirements: []
|
368
379
|
rubyforge_project:
|
369
380
|
rubygems_version: 2.7.6.2
|