Class: BCDice::GameSystem::TherapieSein
- Defined in:
- lib/bcdice/game_system/TherapieSein.rb
Constant Summary collapse
- ID =
ゲームシステムの識別子
'TherapieSein'
- NAME =
ゲームシステム名
'セラフィザイン'
- SORT_KEY =
ゲームシステム名の読みがな
'せらふいさいん'
- HELP_MESSAGE =
ダイスボットの使い方
<<~MESSAGETEXT ・一般判定:TS[n][±m][@t] []内のコマンドは省略可能。クリティカル無。 ・戦闘判定:OP[n][±m][@t] []内のコマンドは省略可能。クリティカル有。 「n」で能力値修正などを指定。 「±m」で達成値への修正値を追加指定。+5+1-3のように、複数指定も可能です。 「@t」で目標値を指定。省略時は達成値のみ表示、指定時は判定の正否を追加表示。 【書式例】 ・TS → ダイスの合計値を達成値として表示。 ・TS4 → ダイス合計+4を達成値表示。 ・TS4-1 → ダイス合計+4-1(計+3)を達成値表示。 ・TS2+1@10 → ダイス合計+2+1(計+3)の達成値と、判定の成否を表示。 ・OP4+3+1 → ダイス合計+4+3+1(計+8)を達成値&クリティカル表示。 ・OP3@12 → ダイス合計+3の達成値&クリティカル、判定の成否を表示。 MESSAGETEXT
Instance Attribute Summary
Attributes inherited from Base
#d66_sort_type, #default_cmp_op, #default_target_number, #randomizer, #reroll_dice_reroll_threshold, #round_type, #sides_implicit_d, #upper_dice_reroll_threshold
Instance Method Summary collapse
- #checkRoll(hasCritical, modify, target) ⇒ Object
- #eval_game_system_specific_command(command) ⇒ Object
- #getValueText(value) ⇒ Object
Methods inherited from Base
#change_text, #check_result, command_pattern, #enable_debug, #enabled_d9?, #eval, eval, #grich_text, #initialize, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?
Methods included from Translate
Constructor Details
This class inherits a constructor from BCDice::Base
Instance Method Details
#checkRoll(hasCritical, modify, target) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/bcdice/game_system/TherapieSein.rb', line 55 def checkRoll(hasCritical, modify, target) dice_list = @randomizer.(2, 6) dice = dice_list.sum() diceText = dice_list.join(",") successValue = dice + modify modifyText = getValueText(modify) targetText = (target == 0 ? '' : ">=#{target}") result = "(2D6#{modifyText}#{targetText})" result += " > #{dice}(#{diceText})#{modifyText}" if hasCritical && (dice == 12) result += " > クリティカル!" return result end result += " > #{successValue}#{targetText}" return result if target == 0 if successValue >= target result += " > 【成功】" else result += " > 【失敗】" end return result end |
#eval_game_system_specific_command(command) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/bcdice/game_system/TherapieSein.rb', line 35 def eval_game_system_specific_command(command) output = case command.upcase when /(TS|OP)(\d+)?(([+-]\d+)*)(@(\d+))?$/i hasCritical = (Regexp.last_match(1) == "OP") target = (Regexp.last_match(6) || 0).to_i modify = (Regexp.last_match(2) || 0).to_i modifyAddString = Regexp.last_match(3) modify_list = modifyAddString.scan(/[+-]\d+/) # 修正値を分割して配列へ modify_list.each { |i| modify += i.to_i } checkRoll(hasCritical, modify, target) end return output end |
#getValueText(value) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/bcdice/game_system/TherapieSein.rb', line 85 def getValueText(value) return "" if value == 0 return value.to_s if value < 0 return "\+#{value}" end |