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.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +49 -1
  3. data/README.md +33 -7
  4. data/i18n/MonotoneMuseum/ja_jp.yml +3 -3
  5. data/lib/bcdice/common_command/add_dice.rb +1 -1
  6. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +1 -1
  7. data/lib/bcdice/game_system.rb +1 -0
  8. data/lib/bcdice/game_system/AlchemiaStruggle.rb +1 -1
  9. data/lib/bcdice/game_system/Alshard.rb +1 -1
  10. data/lib/bcdice/game_system/AngelGear.rb +123 -0
  11. data/lib/bcdice/game_system/ArsMagica.rb +1 -1
  12. data/lib/bcdice/game_system/BBN.rb +1 -1
  13. data/lib/bcdice/game_system/BadLife.rb +1 -1
  14. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  15. data/lib/bcdice/game_system/BeastBindTrinity.rb +2 -2
  16. data/lib/bcdice/game_system/BlindMythos.rb +1 -1
  17. data/lib/bcdice/game_system/BloodCrusade.rb +42 -42
  18. data/lib/bcdice/game_system/BloodMoon.rb +41 -0
  19. data/lib/bcdice/game_system/CardRanker.rb +2 -2
  20. data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
  21. data/lib/bcdice/game_system/Chill.rb +1 -1
  22. data/lib/bcdice/game_system/CodeLayerd.rb +3 -1
  23. data/lib/bcdice/game_system/Cthulhu.rb +8 -4
  24. data/lib/bcdice/game_system/Cthulhu7th.rb +40 -334
  25. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +2 -2
  26. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +2 -2
  27. data/lib/bcdice/game_system/CthulhuTech.rb +1 -1
  28. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +1 -1
  29. data/lib/bcdice/game_system/Cthulhu_Korean.rb +1 -1
  30. data/lib/bcdice/game_system/DarkBlaze.rb +1 -1
  31. data/lib/bcdice/game_system/DiceOfTheDead.rb +1 -1
  32. data/lib/bcdice/game_system/DoubleCross.rb +1 -1
  33. data/lib/bcdice/game_system/EarthDawn.rb +1 -1
  34. data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
  35. data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
  36. data/lib/bcdice/game_system/Elysion.rb +2 -2
  37. data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
  38. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
  39. data/lib/bcdice/game_system/FilledWith.rb +203 -1274
  40. data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
  41. data/lib/bcdice/game_system/Garako.rb +12 -4
  42. data/lib/bcdice/game_system/GehennaAn.rb +1 -1
  43. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  44. data/lib/bcdice/game_system/Gorilla.rb +1 -1
  45. data/lib/bcdice/game_system/HarnMaster.rb +1 -1
  46. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
  47. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  48. data/lib/bcdice/game_system/Illusio.rb +25 -34
  49. data/lib/bcdice/game_system/LogHorizon.rb +3 -3
  50. data/lib/bcdice/game_system/LostRoyal.rb +1 -1
  51. data/lib/bcdice/game_system/MeikyuDays.rb +1 -1
  52. data/lib/bcdice/game_system/MeikyuKingdom.rb +2 -2
  53. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +3 -3
  54. data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
  55. data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
  56. data/lib/bcdice/game_system/MonotoneMuseum.rb +1 -1
  57. data/lib/bcdice/game_system/NeverCloud.rb +540 -5
  58. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  59. data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
  60. data/lib/bcdice/game_system/NinjaSlayer.rb +4 -13
  61. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  62. data/lib/bcdice/game_system/OracleEngine.rb +1 -1
  63. data/lib/bcdice/game_system/OrgaRain.rb +17 -25
  64. data/lib/bcdice/game_system/Paradiso.rb +3 -3
  65. data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
  66. data/lib/bcdice/game_system/Postman.rb +1 -1
  67. data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
  68. data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
  69. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  70. data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
  71. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  72. data/lib/bcdice/game_system/SRS.rb +1 -1
  73. data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
  74. data/lib/bcdice/game_system/Satasupe.rb +79 -860
  75. data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
  76. data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
  77. data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
  78. data/lib/bcdice/game_system/ShinobiGami.rb +3 -3
  79. data/lib/bcdice/game_system/Skynauts.rb +2 -2
  80. data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
  81. data/lib/bcdice/game_system/SterileLife.rb +2 -3
  82. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +2 -2
  83. data/lib/bcdice/game_system/SwordWorld.rb +46 -182
  84. data/lib/bcdice/game_system/SwordWorld2_0.rb +21 -149
  85. data/lib/bcdice/game_system/SwordWorld2_5.rb +126 -40
  86. data/lib/bcdice/game_system/Torg.rb +1 -1
  87. data/lib/bcdice/game_system/TorgEternity.rb +2 -2
  88. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  89. data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -1
  90. data/lib/bcdice/game_system/UnsungDuet.rb +1 -1
  91. data/lib/bcdice/game_system/Utakaze.rb +1 -1
  92. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
  93. data/lib/bcdice/game_system/Warhammer.rb +1 -1
  94. data/lib/bcdice/game_system/Warhammer4.rb +1 -1
  95. data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
  96. data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
  97. data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
  98. data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +294 -0
  99. data/lib/bcdice/game_system/cthulhu7th/rollable.rb +41 -0
  100. data/lib/bcdice/game_system/filled_with/enemy_data_tables.rb +322 -0
  101. data/lib/bcdice/game_system/filled_with/event_tables.rb +392 -0
  102. data/lib/bcdice/game_system/filled_with/tresure_tables.rb +179 -0
  103. data/lib/bcdice/game_system/satasupe/tables.rb +723 -0
  104. data/lib/bcdice/game_system/sword_world/rating_lexer.rb +47 -0
  105. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +99 -0
  106. data/lib/bcdice/game_system/sword_world/rating_parser.rb +457 -0
  107. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +104 -0
  108. data/lib/bcdice/version.rb +1 -1
  109. 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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BCDice
4
- VERSION = "3.0.0-rc.2"
4
+ VERSION = "3.1.3"
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.pre.rc.2
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-01-09 00:00:00.000000000 Z
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: 1.3.1
377
+ version: '0'
367
378
  requirements: []
368
379
  rubyforge_project:
369
380
  rubygems_version: 2.7.6.2