bcdice 3.3.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +158 -74
- data/README.md +2 -1
- data/i18n/BeginningIdol/ja_jp.yml +2806 -0
- data/i18n/BeginningIdol/ko_kr.yml +1400 -0
- data/i18n/Cthulhu/zh_hans.yml +11 -0
- data/i18n/FutariSousa/ja_jp.yml +705 -9
- data/i18n/KillDeathBusiness/ja_jp.yml +2 -2
- data/i18n/MagicaLogia/ja_jp.yml +1 -1
- data/i18n/MonotoneMuseum/ko_kr.yml +526 -53
- data/i18n/SwordWorld/ja_jp.yml +6 -0
- data/i18n/SwordWorld2_0/ja_jp.yml +37 -0
- data/i18n/SwordWorld2_5/ja_jp.yml +57 -0
- data/lib/bcdice/common_command/add_dice/node.rb +28 -4
- data/lib/bcdice/common_command/add_dice/parser.rb +149 -85
- data/lib/bcdice/common_command/choice.rb +82 -7
- data/lib/bcdice/common_command/tally_dice/node.rb +135 -0
- data/lib/bcdice/common_command/tally_dice/parser.rb +302 -0
- data/lib/bcdice/common_command/tally_dice.rb +19 -0
- data/lib/bcdice/common_command.rb +2 -0
- data/lib/bcdice/dice_table/d66_left_range_table.rb +29 -0
- data/lib/bcdice/dice_table/d66_parity_table.rb +8 -0
- data/lib/bcdice/dice_table/d66_table.rb +5 -1
- data/lib/bcdice/dice_table.rb +1 -0
- data/lib/bcdice/game_system/AngelGear.rb +9 -4
- data/lib/bcdice/game_system/Aoharubaan.rb +91 -0
- data/lib/bcdice/game_system/AssaultEngine.rb +91 -0
- data/lib/bcdice/game_system/Avandner.rb +1 -2
- data/lib/bcdice/game_system/Ayabito.rb +229 -0
- data/lib/bcdice/game_system/BadLife.rb +264 -289
- data/lib/bcdice/game_system/Bakenokawa.rb +244 -0
- data/lib/bcdice/game_system/BattleTech.rb +1 -1
- data/lib/bcdice/game_system/BeginningIdol.rb +116 -2390
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +10 -2312
- data/lib/bcdice/game_system/CastleInGray.rb +133 -0
- data/lib/bcdice/game_system/Cthulhu.rb +2 -2
- data/lib/bcdice/game_system/Cthulhu7th.rb +10 -10
- data/lib/bcdice/game_system/Cthulhu_SimplifiedChinese.rb +60 -0
- data/lib/bcdice/game_system/CyberpunkRed.rb +135 -0
- data/lib/bcdice/game_system/DarkDaysDrive.rb +76 -41
- data/lib/bcdice/game_system/DoubleCross.rb +5 -0
- data/lib/bcdice/game_system/Dracurouge.rb +2 -1
- data/lib/bcdice/game_system/Elysion.rb +36 -20
- data/lib/bcdice/game_system/Emoklore.rb +1 -1
- data/lib/bcdice/game_system/FateCoreSystem.rb +117 -0
- data/lib/bcdice/game_system/FutariSousa.rb +48 -4
- data/lib/bcdice/game_system/GranCrest.rb +171 -406
- data/lib/bcdice/game_system/Irisbane.rb +154 -0
- data/lib/bcdice/game_system/Karukami.rb +84 -0
- data/lib/bcdice/game_system/KemonoNoMori.rb +17 -17
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/NeverCloud.rb +19 -8
- data/lib/bcdice/game_system/PersonaO.rb +86 -0
- data/lib/bcdice/game_system/Revulture.rb +2 -2
- data/lib/bcdice/game_system/Shiranui.rb +145 -0
- data/lib/bcdice/game_system/ShuumatsuKikou.rb +298 -0
- data/lib/bcdice/game_system/StarryDolls.rb +318 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +14 -1
- data/lib/bcdice/game_system/StellarKnights.rb +1 -1
- data/lib/bcdice/game_system/{SterileLife.rb → StellarLife.rb} +162 -226
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +18 -5
- data/lib/bcdice/game_system/SwordWorld.rb +11 -7
- data/lib/bcdice/game_system/SwordWorld2_0.rb +30 -38
- data/lib/bcdice/game_system/SwordWorld2_5.rb +9 -63
- data/lib/bcdice/game_system/TalesFromTheLoop.rb +83 -0
- data/lib/bcdice/game_system/TorgEternity.rb +2 -2
- data/lib/bcdice/game_system/ToshiakiHolyGrailWar.rb +92 -0
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +29 -28
- data/lib/bcdice/game_system/YearZeroEngine.rb +40 -19
- data/lib/bcdice/game_system/beginning_idol/accessories_table.rb +31 -0
- data/lib/bcdice/game_system/beginning_idol/bad_status_table.rb +43 -0
- data/lib/bcdice/game_system/beginning_idol/chain_d66_table.rb +29 -0
- data/lib/bcdice/game_system/beginning_idol/chain_table.rb +37 -0
- data/lib/bcdice/game_system/beginning_idol/costume_table.rb +37 -0
- data/lib/bcdice/game_system/beginning_idol/d6_twice_table.rb +36 -0
- data/lib/bcdice/game_system/beginning_idol/item_table.rb +51 -0
- data/lib/bcdice/game_system/beginning_idol/my_skill_name_table.rb +44 -0
- data/lib/bcdice/game_system/beginning_idol/random_event_table.rb +31 -0
- data/lib/bcdice/game_system/beginning_idol/skill_table.rb +63 -0
- data/lib/bcdice/game_system/beginning_idol/table.rb +193 -0
- data/lib/bcdice/game_system/beginning_idol/with_abnormality.rb +74 -0
- data/lib/bcdice/game_system/beginning_idol/work_table.rb +57 -0
- data/lib/bcdice/game_system/cyberpunk_red/tables.rb +530 -0
- data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +1 -1
- data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +1 -1
- data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +4 -4
- data/lib/bcdice/game_system/satasupe/tables.rb +1 -1
- data/lib/bcdice/game_system/sword_world/rating_options.rb +47 -0
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +40 -45
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +172 -141
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +14 -10
- data/lib/bcdice/game_system.rb +16 -1
- data/lib/bcdice/randomizer.rb +1 -1
- data/lib/bcdice/version.rb +1 -1
- metadata +45 -5
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class SwordWorld < Base
|
6
|
+
class RatingOptions
|
7
|
+
# @return [Integer, nil]
|
8
|
+
attr_accessor :critical
|
9
|
+
|
10
|
+
# @return [Integer, nil]
|
11
|
+
attr_accessor :kept_modify
|
12
|
+
|
13
|
+
# @return [Integer, nil]
|
14
|
+
attr_accessor :first_to
|
15
|
+
|
16
|
+
# @return [Integer, nil]
|
17
|
+
attr_accessor :first_modify
|
18
|
+
|
19
|
+
# @return [Integer, nil]
|
20
|
+
attr_accessor :rateup
|
21
|
+
|
22
|
+
# @return [Boolean, nil]
|
23
|
+
attr_accessor :greatest_fortune
|
24
|
+
|
25
|
+
# @return [Integer, nil]
|
26
|
+
attr_accessor :semi_fixed_val
|
27
|
+
|
28
|
+
# @return [Integer, nil]
|
29
|
+
attr_accessor :tmp_fixed_val
|
30
|
+
|
31
|
+
# @return [Integer, nil]
|
32
|
+
attr_accessor :modifier
|
33
|
+
|
34
|
+
# @return [Integer, nil]
|
35
|
+
attr_accessor :modifier_after_half
|
36
|
+
|
37
|
+
def settable_first_roll_adjust_option?
|
38
|
+
return first_modify.nil? && first_to.nil?
|
39
|
+
end
|
40
|
+
|
41
|
+
def settable_non_2d_roll_option?
|
42
|
+
return greatest_fortune.nil? && semi_fixed_val.nil? && tmp_fixed_val.nil?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -7,37 +7,48 @@ module BCDice
|
|
7
7
|
# @return [Integer]
|
8
8
|
attr_accessor :rate
|
9
9
|
|
10
|
-
# @return [Integer
|
11
|
-
|
10
|
+
# @return [Integer]
|
11
|
+
attr_accessor :critical
|
12
12
|
|
13
|
-
# @return [Integer
|
14
|
-
|
13
|
+
# @return [Integer]
|
14
|
+
attr_accessor :kept_modify
|
15
15
|
|
16
|
-
# @return [Integer
|
17
|
-
|
16
|
+
# @return [Integer]
|
17
|
+
attr_accessor :first_to
|
18
18
|
|
19
|
-
# @return [Integer
|
20
|
-
|
19
|
+
# @return [Integer]
|
20
|
+
attr_accessor :first_modify
|
21
21
|
|
22
|
-
# @return [Integer
|
23
|
-
|
22
|
+
# @return [Integer]
|
23
|
+
attr_accessor :rateup
|
24
24
|
|
25
25
|
# @return [Boolean]
|
26
26
|
attr_accessor :greatest_fortune
|
27
27
|
|
28
|
+
# @return [Integer]
|
29
|
+
attr_accessor :semi_fixed_val
|
30
|
+
|
31
|
+
# @return [Integer]
|
32
|
+
attr_accessor :tmp_fixed_val
|
33
|
+
|
28
34
|
# @return [Integer]
|
29
35
|
attr_accessor :modifier
|
30
36
|
|
31
37
|
# @return [Integer, nil]
|
32
|
-
|
33
|
-
|
34
|
-
def initialize
|
35
|
-
@
|
36
|
-
@
|
37
|
-
@
|
38
|
-
@
|
38
|
+
attr_accessor :modifier_after_half
|
39
|
+
|
40
|
+
def initialize(rate, modifier)
|
41
|
+
@rate = rate
|
42
|
+
@modifier = modifier
|
43
|
+
@critical = 13
|
44
|
+
@kept_modify = 0
|
45
|
+
@first_to = 0
|
46
|
+
@first_modify = 0
|
39
47
|
@greatest_fortune = false
|
40
|
-
@rateup =
|
48
|
+
@rateup = 0
|
49
|
+
@semi_fixed_val = 0
|
50
|
+
@tmp_fixed_val = 0
|
51
|
+
@modifier_after_half = nil
|
41
52
|
end
|
42
53
|
|
43
54
|
# @return [Boolean]
|
@@ -46,35 +57,17 @@ module BCDice
|
|
46
57
|
end
|
47
58
|
|
48
59
|
# @return [Integer]
|
49
|
-
def
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
# @return [Integer]
|
56
|
-
def first_modify
|
57
|
-
return @first_modify || 0
|
58
|
-
end
|
59
|
-
|
60
|
-
# @return [Integer]
|
61
|
-
def first_to
|
62
|
-
return @first_to || 0
|
63
|
-
end
|
64
|
-
|
65
|
-
# @return [Integer]
|
66
|
-
def rateup
|
67
|
-
return @rateup || 0
|
68
|
-
end
|
69
|
-
|
70
|
-
# @return [Integer]
|
71
|
-
def kept_modify
|
72
|
-
return @kept_modify || 0
|
60
|
+
def min_critical
|
61
|
+
if @semi_fixed_val <= 1
|
62
|
+
return 3
|
63
|
+
else
|
64
|
+
return (@semi_fixed_val + @kept_modify + 2).clamp(3, 13)
|
65
|
+
end
|
73
66
|
end
|
74
67
|
|
75
|
-
# @return [
|
76
|
-
def
|
77
|
-
return
|
68
|
+
# @return [Boolean]
|
69
|
+
def infinite_roll?
|
70
|
+
return critical < min_critical
|
78
71
|
end
|
79
72
|
|
80
73
|
# @return [String]
|
@@ -86,6 +79,8 @@ module BCDice
|
|
86
79
|
output += "m[#{first_to}]" if first_to != 0
|
87
80
|
output += "r[#{rateup}]" if rateup != 0
|
88
81
|
output += "gf" if @greatest_fortune
|
82
|
+
output += "sf[#{semi_fixed_val}]" if semi_fixed_val != 0
|
83
|
+
output += "tf[#{tmp_fixed_val}]" if tmp_fixed_val != 0
|
89
84
|
output += "a[#{Format.modifier(kept_modify)}]" if kept_modify != 0
|
90
85
|
|
91
86
|
if @modifier != 0
|