bcdice 3.3.0 → 3.6.0

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