bcdice 3.0.0.pre.rc.1 → 3.0.0.pre.rc.2

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/i18n/DetatokoSaga/ja_jp.yml +3 -2
  4. data/i18n/DetatokoSaga/ko_kr.yml +1 -0
  5. data/lib/bcdice.rb +2 -0
  6. data/lib/bcdice/arithmetic_evaluator.rb +2 -0
  7. data/lib/bcdice/common_command.rb +2 -0
  8. data/lib/bcdice/common_command/add_dice.rb +2 -0
  9. data/lib/bcdice/common_command/add_dice/randomizer.rb +2 -0
  10. data/lib/bcdice/common_command/barabara_dice.rb +2 -0
  11. data/lib/bcdice/common_command/barabara_dice/node.rb +2 -0
  12. data/lib/bcdice/common_command/calc.rb +2 -0
  13. data/lib/bcdice/common_command/d66_dice.rb +2 -0
  14. data/lib/bcdice/common_command/upper_dice.rb +2 -0
  15. data/lib/bcdice/common_command/version.rb +2 -0
  16. data/lib/bcdice/dice_table.rb +2 -0
  17. data/lib/bcdice/dice_table/chain_table.rb +2 -0
  18. data/lib/bcdice/dice_table/d66_grid_table.rb +2 -0
  19. data/lib/bcdice/dice_table/d66_parity_table.rb +2 -0
  20. data/lib/bcdice/dice_table/d66_range_table.rb +2 -0
  21. data/lib/bcdice/dice_table/d66_table.rb +2 -0
  22. data/lib/bcdice/dice_table/roll_result.rb +2 -0
  23. data/lib/bcdice/dice_table/table.rb +2 -0
  24. data/lib/bcdice/enum.rb +2 -0
  25. data/lib/bcdice/format.rb +2 -0
  26. data/lib/bcdice/game_system.rb +6 -0
  27. data/lib/bcdice/game_system/AlchemiaStruggle.rb +58 -24
  28. data/lib/bcdice/game_system/BBN.rb +6 -4
  29. data/lib/bcdice/game_system/BlindMythos.rb +0 -1
  30. data/lib/bcdice/game_system/CodeLayerd.rb +33 -65
  31. data/lib/bcdice/game_system/DesperateRun.rb +163 -0
  32. data/lib/bcdice/game_system/DetatokoSaga.rb +25 -7
  33. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +3 -3
  34. data/lib/bcdice/game_system/DiceBot.rb +22 -4
  35. data/lib/bcdice/game_system/InfiniteBabeL.rb +518 -0
  36. data/lib/bcdice/game_system/JekyllAndHyde.rb +42 -0
  37. data/lib/bcdice/game_system/Peekaboo.rb +1 -1
  38. data/lib/bcdice/game_system/RecordOfLodossWar.rb +6 -4
  39. data/lib/bcdice/game_system/RyuTuber.rb +6 -4
  40. data/lib/bcdice/game_system/Satasupe.rb +0 -2
  41. data/lib/bcdice/game_system/ShoujoTenrankai.rb +1 -1
  42. data/lib/bcdice/game_system/SteamPunkers.rb +6 -4
  43. data/lib/bcdice/game_system/Yggdrasill.rb +605 -0
  44. data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +2 -0
  45. data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +2 -0
  46. data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +2 -0
  47. data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +2 -0
  48. data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +2 -0
  49. data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +2 -0
  50. data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +2 -0
  51. data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +2 -0
  52. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +2 -0
  53. data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +2 -0
  54. data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +2 -0
  55. data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +2 -0
  56. data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +2 -0
  57. data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +2 -0
  58. data/lib/bcdice/game_system/one_way_heroics/tables.rb +2 -0
  59. data/lib/bcdice/loader.rb +11 -4
  60. data/lib/bcdice/normalize.rb +2 -0
  61. data/lib/bcdice/randomizer.rb +2 -0
  62. data/lib/bcdice/repl.rb +2 -0
  63. data/lib/bcdice/result.rb +2 -0
  64. data/lib/bcdice/translate.rb +2 -0
  65. data/lib/bcdice/user_defined_dice_table.rb +2 -0
  66. data/lib/bcdice/version.rb +3 -1
  67. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 543af352f4624f57fc45ef2dcbd5d791c8b61b65c487b9da009a26a1f1645114
4
- data.tar.gz: 8a959dd5c0925a6fba2d2809d94131ba22704acb5718715144a454cde69bf0b1
3
+ metadata.gz: 55126c604f27cdbc88666e1db1e0ba1a41e25231d9ba6b8f3a0af7f815635071
4
+ data.tar.gz: 2b7eff8967a7de735bdad238f4b2d9c6341ecb7722c08fbba56eed7664001769
5
5
  SHA512:
6
- metadata.gz: c7fefae9b0473ac2642f2a42d51085ea4ec46966fe4a5ca2467e92d66ef7cd81beb1d466b8dc04e9f78236fcfc86e4b6d6a0cdf011f90cff57b495edddb75075
7
- data.tar.gz: 7cff2e1ff26358f2ebba187fe9aefb25bd086e4267c7842da946f093347286f0071b726714deb8b994bb608929424e24502e144f6eaec9edf07a4e42e09e9502
6
+ metadata.gz: 138610ab3c08353af3fb34acec240e8857e83c989c058ed2b6faa26dbccbee852f03d15d358039c3b2cbec5073ff49339118d988eacb1be035ec11721883c6d5
7
+ data.tar.gz: 58fef97c6e5e515aaab831e5ed09c425f94c5396bdab7a6dcb52babbac9e9933003c7d268fb717b208e3d07cfaebbeef5aca84b23a061b78ea274fa89b9475aa
@@ -12,6 +12,10 @@
12
12
  - アルケミア・ストラグル (AlchemiaStruggle): ViViさんありがとうっ! ([#341](https://github.com/bcdice/BCDice/pull/341))
13
13
  - 呪印感染 (JuinKansen): 猫あきら。さん情報提供ありがとうっ! ([#345](https://github.com/bcdice/BCDice/pull/345))
14
14
  - 韓国語版マギカロギア 마기카로기아 (MagicaLogia:Korean): Faithさんありがとうっ! ([#360](https://github.com/bcdice/BCDice/pull/360))
15
+ - 鋼鉄のユグドラシル (Yggdrasill): Doktorさん、Mid9658さんありがとうっ! ([#361](https://github.com/bcdice/BCDice/pull/361))
16
+ - Desperate Run TRPG (Desperate Run): えおふさんありがとうっ! ([#362](https://github.com/bcdice/BCDice/pull/362))
17
+ - ジキルとハイドとグリトグラ (JekyllAndHyde): えおふさんありがとうっ! ([#362](https://github.com/bcdice/BCDice/pull/362))
18
+ - 少年のための少女展爛会異聞 Infinite BabeL (InfiniteBabeL): 全裸さんありがとうっ! ([#367](https://github.com/bcdice/BCDice/pull/367))
15
19
 
16
20
  ### 追加機能
17
21
  - ログ・ホライズンTRPG: LHZB1とLHZB2両方の財宝表をサポート、消耗表ロールを追加、財宝表ロールを追加、区切り文字を変更 ([#279](https://github.com/bcdice/BCDice/pull/279))
@@ -1,11 +1,12 @@
1
1
  ja_jp:
2
2
  DetatokoSaga:
3
3
  DS:
4
- input_options: "判定! スキルレベル:%{skill} フラグ:%{flag} 目標値:%{target}"
4
+ input_options: "判定! スキルランク:%{skill} フラグ:%{flag} 目標値:%{target}"
5
+ modifier: " 修正値:%{modifier}"
5
6
  success: 目標値以上!【成功】
6
7
  failure: 目標値未満…【失敗】
7
8
  JD:
8
- input_options: "判定! スキルレベル:%{skill} フラグ:%{flag}"
9
+ input_options: "判定! スキルランク:%{skill} フラグ:%{flag}"
9
10
  modifier: " 修正値:%{modifier}"
10
11
  total_value: "判定値:%{total}"
11
12
  less_than_flag: "、フラグ以下!【気力%{will}点減少】【判定値変更不可】"
@@ -2,6 +2,7 @@ ko_kr:
2
2
  DetatokoSaga:
3
3
  DS:
4
4
  input_options: "판정! 스킬레벨:%{skill} 플래그:%{flag} 목표치:%{target}"
5
+ modifier: " 수정치:%{modifier}"
5
6
  success: 목표치 이상!【성공】
6
7
  failure: 목표치 미달… 【실패】
7
8
  JD:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/version"
2
4
  require "bcdice/arithmetic"
3
5
  require "bcdice/arithmetic_evaluator"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module ArithmeticEvaluator
3
5
  class << self
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/common_command/add_dice"
2
4
  require "bcdice/common_command/barabara_dice"
3
5
  require "bcdice/common_command/calc"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/normalize"
2
4
  require "bcdice/common_command/add_dice/parser"
3
5
  require "bcdice/common_command/add_dice/randomizer"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module CommonCommand
3
5
  module AddDice
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/common_command/barabara_dice/parser"
2
4
 
3
5
  module BCDice
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/format"
2
4
  require "bcdice/common_command/barabara_dice/result"
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/common_command/calc/parser"
2
4
 
3
5
  module BCDice
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module CommonCommand
3
5
  class D66Dice
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/common_command/upper_dice/parser"
2
4
 
3
5
  module BCDice
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module CommonCommand
3
5
  module Version
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/dice_table/roll_result"
2
4
  require "bcdice/dice_table/chain_table"
3
5
  require "bcdice/dice_table/d66_grid_table"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  class ChainTable
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  # D66を振って6x6マスの表を参照する
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  # 出目の偶奇による場合分け機能をもつD66表
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  # 項目をRangeを用いて参照するD66表
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  # D66を振って出目を昇順/降順にして表を参照する
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  class RollResult
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module DiceTable
3
5
  # 表を表すクラス
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  # D66のダイス入れ替え
3
5
  module D66SortType
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module Format
3
5
  module_function
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/game_system/AFF2e"
2
4
  require "bcdice/game_system/AceKillerGene"
3
5
  require "bcdice/game_system/Airgetlamh"
@@ -42,6 +44,7 @@ require "bcdice/game_system/DarkDaysDrive"
42
44
  require "bcdice/game_system/DarkSouls"
43
45
  require "bcdice/game_system/DeadlineHeroes"
44
46
  require "bcdice/game_system/DemonParasite"
47
+ require "bcdice/game_system/DesperateRun"
45
48
  require "bcdice/game_system/DetatokoSaga"
46
49
  require "bcdice/game_system/DetatokoSaga_Korean"
47
50
  require "bcdice/game_system/DiceBot"
@@ -86,11 +89,13 @@ require "bcdice/game_system/Hieizan"
86
89
  require "bcdice/game_system/HouraiGakuen"
87
90
  require "bcdice/game_system/HuntersMoon"
88
91
  require "bcdice/game_system/Illusio"
92
+ require "bcdice/game_system/InfiniteBabeL"
89
93
  require "bcdice/game_system/InfiniteFantasia"
90
94
  require "bcdice/game_system/Insane"
91
95
  require "bcdice/game_system/Insane_Korean"
92
96
  require "bcdice/game_system/IthaWenUa"
93
97
  require "bcdice/game_system/JamesBond"
98
+ require "bcdice/game_system/JekyllAndHyde"
94
99
  require "bcdice/game_system/JuinKansen"
95
100
  require "bcdice/game_system/Kamigakari"
96
101
  require "bcdice/game_system/Kamigakari_Korean"
@@ -193,4 +198,5 @@ require "bcdice/game_system/WitchQuest"
193
198
  require "bcdice/game_system/WorldOfDarkness"
194
199
  require "bcdice/game_system/YankeeYogSothoth"
195
200
  require "bcdice/game_system/YearZeroEngine"
201
+ require "bcdice/game_system/Yggdrasill"
196
202
  require "bcdice/game_system/ZettaiReido"
@@ -10,39 +10,52 @@ module BCDice
10
10
  SORT_KEY = "あるけみあすとらくる"
11
11
 
12
12
  HELP_MESSAGE = <<~MESSAGETEXT
13
- ■ ダイスロール( xAS )
14
- xDをロールします。
15
- 例) 5AS
16
- #{' '}
17
- ■ ダイスロール&最大になるようにピック( xASy )
18
- xDをロールし、そこから最大になるようにy個をピックします。
19
- 例) 4AS3
20
- #{' '}
21
-
22
- ・奇跡の触媒
23
- ・エレメント (CELE, CElement)
24
- ・アルケミア (CALC, CAlchemia)
25
- ・インフォーマント (CINF, CInformant)
26
- ・イノセンス (CINN, CInnocence)
27
- ・アクワイヤード (CACQ, CAcquired)
28
- ・携行品
29
- ・Sサイズ (ARS, ArticleS)
30
- ・Mサイズ (ARM, ArticleM)
31
- ・Lサイズ (ARL, ArticleL)
32
- ・PC情報獲得表 (PCI, PCInformation)
33
- ・理由表 (REA, Reason)
34
- ・交流表 (ASS, Associate)
35
- ・接触のきっかけ表 (CON, Contact)
13
+ ■ ダイスロール( xAS )
14
+ xDをロールします。
15
+ 例) 5AS
16
+
17
+ ■ ダイスロール&最大になるようにピック( xASy )
18
+ xDをロールし、そこから最大になるようにy個をピックします。
19
+ 例) 4AS3
20
+
21
+ ウルダイスの獲得( xUL )
22
+ xDのウルダイスを振り、出た出目の個数をNo.ごとにカウントします。
23
+ 例) 6UL
24
+
25
+
26
+ ・奇跡の触媒
27
+ ・エレメント (CELE, CElement)
28
+ ・アルケミア (CALC, CAlchemia)
29
+ ・インフォーマント (CINF, CInformant)
30
+ ・イノセンス (CINN, CInnocence)
31
+ ・アクワイヤード (CACQ, CAcquired)
32
+ ・携行品
33
+ ・Sサイズ (ARS, ArticleS)
34
+ ・Mサイズ (ARM, ArticleM)
35
+ ・Lサイズ (ARL, ArticleL)
36
+ ・PC情報獲得表 (PCI, PCInformation)
37
+ ・理由表 (REA, Reason)
38
+ ・交流表 (ASS, Associate)
39
+ ・接触のきっかけ表 (CON, Contact)
36
40
  MESSAGETEXT
37
41
 
38
42
  ROLL_REG = /^(\d+)AS(\d+)?$/i.freeze
39
43
 
40
- register_prefix('\\d+AS')
44
+ register_prefix('\d+AS', '\d+UL')
45
+
46
+ def initialize(command)
47
+ super(command)
48
+
49
+ @sort_add_dice = true # 加算ダイスのソート有
50
+ @sort_barabara_dice = true # バラバラダイスでソート有
51
+ @round_type = RoundType::CEIL # 割り算をした時の端数切り上げ
52
+ end
41
53
 
42
54
  def eval_game_system_specific_command(command)
43
55
  c = ALIAS[command] || command
44
56
 
45
57
  try_roll_alchemia(c) ||
58
+ try_roll_uldice(c) ||
46
59
  roll_tables(c, TABLES)
47
60
  end
48
61
 
@@ -67,6 +80,27 @@ module BCDice
67
80
  end
68
81
  end
69
82
 
83
+ def try_roll_uldice(command)
84
+ match = /^(\d+)UL$/.match(command)
85
+ return nil unless match
86
+
87
+ roll_dice_count = match[1].to_i
88
+ dice_list = @randomizer.roll_barabara(roll_dice_count, 6).sort
89
+ dice_list_text = dice_list.join(",")
90
+
91
+ result = dice_list.group_by(&:itself)
92
+ .map { |k, v| "No.#{k}: #{v.size}個" }
93
+ .join(", ")
94
+
95
+ sequence = [
96
+ "(#{roll_dice_count}D6)",
97
+ "[#{dice_list_text}]",
98
+ result
99
+ ]
100
+
101
+ sequence.join(" > ")
102
+ end
103
+
70
104
  def roll_alchemia(roll_dice_count)
71
105
  @randomizer.roll_barabara(roll_dice_count, 6)
72
106
  end
@@ -1,16 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module GameSystem
3
5
  class BBN < Base
4
6
  # ダイスボットで使用するコマンドを配列で列挙する
5
7
  register_prefix('\d+BN.*')
6
8
 
7
- ID = 'BBN'.freeze
9
+ ID = 'BBN'
8
10
 
9
- NAME = 'BBNTRPG'.freeze
11
+ NAME = 'BBNTRPG'
10
12
 
11
- SORT_KEY = 'ひいひいえぬTRPG'.freeze
13
+ SORT_KEY = 'ひいひいえぬTRPG'
12
14
 
13
- HELP_MESSAGE = <<~MESSAGETEXT.freeze
15
+ HELP_MESSAGE = <<~MESSAGETEXT
14
16
  ・判定(xBN±y>=z[c,f])
15
17
   xD6の判定。クリティカル、ファンブルの自動判定を行います。
16
18
   1Dのクリティカル値とファンブル値は1。2Dのクリティカル値とファンブル値は2。
@@ -167,7 +167,6 @@ module BCDice
167
167
 
168
168
  canReRoll = !rerollCommand.empty?
169
169
 
170
- # frozen_string_literal: true
171
170
  # ゲームシステムの識別子
172
171
  # ゲームシステム名
173
172
  # ゲームシステム名の読みがな
@@ -30,6 +30,12 @@ module BCDice
30
30
 
31
31
  register_prefix('[+-]?\d*CL([+-]\d+)?[@\d]*.*')
32
32
 
33
+ def initialize(command)
34
+ super(command)
35
+
36
+ @sides_implicit_d = 10
37
+ end
38
+
33
39
  def eval_game_system_specific_command(command)
34
40
  debug('eval_game_system_specific_command command', command)
35
41
 
@@ -41,10 +47,10 @@ module BCDice
41
47
  base = (m[1] || 1).to_i
42
48
  modifier1 = m[2].to_i
43
49
  target = (m[4] || 6).to_i
44
- criticalTarget = (m[6] || 1).to_i
50
+ critical_target = (m[6] || 1).to_i
45
51
  modifier2 = m[7].to_i
46
52
  diff = m[9].to_i
47
- result = checkRoll(base, target, criticalTarget, diff, modifier1 + modifier2)
53
+ result = check_roll(base, target, critical_target, diff, modifier1 + modifier2)
48
54
  end
49
55
 
50
56
  return nil if result.empty?
@@ -52,80 +58,42 @@ module BCDice
52
58
  return "#{command} > #{result}"
53
59
  end
54
60
 
55
- def checkRoll(base, target, criticalTarget, diff, modifier)
56
- result = ""
57
-
58
- base = getValue(base)
59
- target = getValue(target)
60
- criticalTarget = getValue(criticalTarget)
61
- if base <= 0
62
- criticalTarget = 0
61
+ def check_roll(base, target, critical_target, diff, modifier)
62
+ if base <= 0 # クリティカルしない1D
63
+ critical_target = 0
63
64
  base = 1
64
65
  end
65
66
 
66
67
  target = 10 if target > 10
68
+ dice_list = @randomizer.roll_barabara(base, 10).sort
69
+ success_count = dice_list.count { |x| x <= target }
70
+ critical_count = dice_list.count { |x| x <= critical_target }
71
+ success_total = success_count + critical_count + modifier
67
72
 
68
- result += "(#{base}d10#{Format.modifier(modifier)})"
69
-
70
- diceList = @randomizer.roll_barabara(base, 10).sort
71
-
72
- result += " > [#{diceList.join(',')}]#{Format.modifier(modifier)} > "
73
- result += getRollResultString(diceList, target, criticalTarget, diff, modifier)
74
-
75
- return result
76
- end
77
-
78
- def getRollResultString(diceList, target, criticalTarget, diff, modifier)
79
- successCount, criticalCount = getSuccessInfo(diceList, target, criticalTarget)
80
-
81
- successTotal = successCount + criticalCount + modifier
82
- result = ""
73
+ mod_text = Format.modifier(modifier)
83
74
 
75
+ # (10d10+5)
76
+ result = "(#{base}d10#{mod_text}) > [#{dice_list.join(',')}]#{mod_text} > "
84
77
  result += "判定値[#{target}] " unless target == 6
85
- result += "クリティカル値[#{criticalTarget}] " unless criticalTarget == 1
86
- result += "達成値[#{successCount}]"
87
-
88
- # 出目がすべて判定値より大きければ固定値に関わらずファンブル
89
- if successCount <= 0
90
- result += " > ファンブル!"
91
- return result
92
- end
78
+ result += "クリティカル値[#{critical_target}] " unless critical_target == 1
79
+ result += "達成値[#{success_count}]"
93
80
 
94
- result += "+クリティカル[#{criticalCount}]" if criticalCount > 0
95
- result += Format.modifier(modifier)
96
- result += "=[#{successTotal}]" if criticalCount > 0 || modifier != 0
81
+ return "#{result} > ファンブル!" if success_count <= 0
97
82
 
98
- successText = getSuccessResultText(successTotal, diff)
99
- result += " > #{successText}"
100
-
101
- return result
102
- end
103
-
104
- def getSuccessResultText(successTotal, diff)
105
- return successTotal.to_s if diff == 0
106
- return "成功" if successTotal >= diff
107
-
108
- return "失敗"
109
- end
110
-
111
- def getSuccessInfo(diceList, target, criticalTarget)
112
- debug("checkSuccess diceList, target, criticalTarget", diceList, target, criticalTarget)
113
-
114
- successCount = 0
115
- criticalCount = 0
116
-
117
- diceList.each do |dice|
118
- successCount += 1 if dice <= target
119
- criticalCount += 1 if dice <= criticalTarget
120
- end
121
-
122
- return successCount, criticalCount
123
- end
83
+ result += "+クリティカル[#{critical_count}]" if critical_count > 0
84
+ result += mod_text
85
+ result += "=[#{success_total}]" if critical_count > 0 || modifier != 0
124
86
 
125
- def getValue(number)
126
- return 0 if number > 100
87
+ success_text =
88
+ if diff == 0
89
+ success_total.to_s
90
+ elsif success_total >= diff
91
+ "成功"
92
+ else
93
+ "失敗"
94
+ end
127
95
 
128
- return number
96
+ return "#{result} > #{success_text}"
129
97
  end
130
98
  end
131
99
  end