bcdice 3.0.0 → 3.1.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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -1
  3. data/README.md +32 -0
  4. data/i18n/MonotoneMuseum/ja_jp.yml +3 -3
  5. data/lib/bcdice/game_system.rb +1 -0
  6. data/lib/bcdice/game_system/AlchemiaStruggle.rb +1 -1
  7. data/lib/bcdice/game_system/Alshard.rb +1 -1
  8. data/lib/bcdice/game_system/AngelGear.rb +123 -0
  9. data/lib/bcdice/game_system/ArsMagica.rb +1 -1
  10. data/lib/bcdice/game_system/BBN.rb +1 -1
  11. data/lib/bcdice/game_system/BadLife.rb +1 -1
  12. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  13. data/lib/bcdice/game_system/BeastBindTrinity.rb +2 -2
  14. data/lib/bcdice/game_system/BlindMythos.rb +1 -1
  15. data/lib/bcdice/game_system/BloodCrusade.rb +42 -42
  16. data/lib/bcdice/game_system/BloodMoon.rb +41 -0
  17. data/lib/bcdice/game_system/CardRanker.rb +2 -2
  18. data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
  19. data/lib/bcdice/game_system/Chill.rb +1 -1
  20. data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
  21. data/lib/bcdice/game_system/Cthulhu.rb +8 -4
  22. data/lib/bcdice/game_system/Cthulhu7th.rb +40 -334
  23. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
  24. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
  25. data/lib/bcdice/game_system/CthulhuTech.rb +1 -1
  26. data/lib/bcdice/game_system/DarkBlaze.rb +1 -1
  27. data/lib/bcdice/game_system/DiceOfTheDead.rb +1 -1
  28. data/lib/bcdice/game_system/DoubleCross.rb +1 -1
  29. data/lib/bcdice/game_system/EarthDawn.rb +1 -1
  30. data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
  31. data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
  32. data/lib/bcdice/game_system/Elysion.rb +2 -2
  33. data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
  34. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
  35. data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
  36. data/lib/bcdice/game_system/Garako.rb +12 -4
  37. data/lib/bcdice/game_system/GehennaAn.rb +1 -1
  38. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  39. data/lib/bcdice/game_system/Gorilla.rb +1 -1
  40. data/lib/bcdice/game_system/HarnMaster.rb +1 -1
  41. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
  42. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  43. data/lib/bcdice/game_system/Illusio.rb +25 -34
  44. data/lib/bcdice/game_system/LostRoyal.rb +1 -1
  45. data/lib/bcdice/game_system/MeikyuDays.rb +1 -1
  46. data/lib/bcdice/game_system/MeikyuKingdom.rb +2 -2
  47. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +2 -2
  48. data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
  49. data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
  50. data/lib/bcdice/game_system/MonotoneMuseum.rb +1 -1
  51. data/lib/bcdice/game_system/NeverCloud.rb +540 -5
  52. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  53. data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
  54. data/lib/bcdice/game_system/NinjaSlayer.rb +4 -13
  55. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  56. data/lib/bcdice/game_system/OracleEngine.rb +1 -1
  57. data/lib/bcdice/game_system/OrgaRain.rb +17 -25
  58. data/lib/bcdice/game_system/Paradiso.rb +1 -1
  59. data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
  60. data/lib/bcdice/game_system/Postman.rb +1 -1
  61. data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
  62. data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
  63. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  64. data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
  65. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  66. data/lib/bcdice/game_system/SRS.rb +1 -1
  67. data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
  68. data/lib/bcdice/game_system/Satasupe.rb +79 -860
  69. data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
  70. data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
  71. data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
  72. data/lib/bcdice/game_system/ShinobiGami.rb +3 -3
  73. data/lib/bcdice/game_system/Skynauts.rb +2 -2
  74. data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
  75. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +1 -1
  76. data/lib/bcdice/game_system/SwordWorld.rb +46 -182
  77. data/lib/bcdice/game_system/SwordWorld2_0.rb +21 -149
  78. data/lib/bcdice/game_system/SwordWorld2_5.rb +126 -40
  79. data/lib/bcdice/game_system/Torg.rb +1 -1
  80. data/lib/bcdice/game_system/TorgEternity.rb +2 -2
  81. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  82. data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -1
  83. data/lib/bcdice/game_system/UnsungDuet.rb +1 -1
  84. data/lib/bcdice/game_system/Utakaze.rb +1 -1
  85. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
  86. data/lib/bcdice/game_system/Warhammer.rb +1 -1
  87. data/lib/bcdice/game_system/Warhammer4.rb +1 -1
  88. data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
  89. data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
  90. data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
  91. data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +294 -0
  92. data/lib/bcdice/game_system/cthulhu7th/rollable.rb +41 -0
  93. data/lib/bcdice/game_system/satasupe/tables.rb +723 -0
  94. data/lib/bcdice/game_system/sword_world/rating_lexer.rb +47 -0
  95. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +99 -0
  96. data/lib/bcdice/game_system/sword_world/rating_parser.rb +457 -0
  97. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +104 -0
  98. data/lib/bcdice/version.rb +1 -1
  99. metadata +10 -2
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BCDice
4
- VERSION = "3.0.0"
4
+ VERSION = "3.1.0"
5
5
  end
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.0.0
4
+ version: 3.1.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-01-24 00:00:00.000000000 Z
11
+ date: 2021-03-20 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,6 +317,8 @@ 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
320
323
  - lib/bcdice/game_system/filled_with/lot_tables.rb
321
324
  - lib/bcdice/game_system/meikyu_kingdom/item_table.rb
@@ -333,6 +336,11 @@ files:
333
336
  - lib/bcdice/game_system/one_way_heroics/dungeon_table.rb
334
337
  - lib/bcdice/game_system/one_way_heroics/random_event_table.rb
335
338
  - lib/bcdice/game_system/one_way_heroics/tables.rb
339
+ - lib/bcdice/game_system/satasupe/tables.rb
340
+ - lib/bcdice/game_system/sword_world/rating_lexer.rb
341
+ - lib/bcdice/game_system/sword_world/rating_parsed.rb
342
+ - lib/bcdice/game_system/sword_world/rating_parser.rb
343
+ - lib/bcdice/game_system/sword_world/transcendent_test.rb
336
344
  - lib/bcdice/loader.rb
337
345
  - lib/bcdice/normalize.rb
338
346
  - lib/bcdice/preprocessor.rb