Class: BCDice::GameSystem::NinjaSlayer
- Defined in:
- lib/bcdice/game_system/NinjaSlayer.rb
Defined Under Namespace
Constant Summary collapse
- ID =
ゲームシステムの識別子
'NinjaSlayer'
- NAME =
ゲームシステム名
'ニンジャスレイヤーTRPG'
- SORT_KEY =
ゲームシステム名の読みがな
'にんしやすれいやあTRPG'
- HELP_MESSAGE =
ダイスボットの使い方
<<~MESSAGETEXT ・通常判定 NJ NJx[y] or NJx@y or NJx x=判定ダイス y=難易度 省略時はNORMAL(4) 例:NJ4@H 難易度HARD、判定ダイス4で判定 ・回避判定 EV EVx[y]/z or EVx@y/z or EVx/z or EVx[y] or EVx@y or EVx x=判定ダイス y=難易度 z=攻撃側の成功数(省略可) 難易度を省略時はNORMAL(4) 攻撃側の成功数を指定した場合、カウンターカラテ発生時には表示 例:EV5/3 難易度NORMAL(省略時)、判定ダイス5、攻撃側の成功数3で判定 ・近接攻撃 AT ATx[y] or ATx@y or ATx x=判定ダイス y=難易度 省略時はNORMAL(4) サツバツ!発生時には表示 例:AT6[H] 難易度HARD,判定ダイス5で近接攻撃の判定 ・サツバツ判定 SB ・電子戦 EL ELx[y] or ELx@y or ELx x=判定ダイス y=難易度 省略時はNORMAL(4) 例:EL6[H] 難易度HARD,判定ダイス5で電子戦の判定 ・難易度 KIDS=K,EASY=E,NORMAL=N,HARD=H,ULTRA HARD=UH 数字にも対応 ※上記コマンド群は『ニンジャスレイヤーTRPG コア・ルールブック』に対応していません。コア・ルールブックで遊ぶ場合には『ニンジャスレイヤーTRPG 2版』のコマンドを利用してください。 MESSAGETEXT
- DIFFICULTY_VALUE_RE =
難易度の値の正規表現
/UH|[2-6KENH]/i.freeze
- DIFFICULTY_RE =
難易度の正規表現
/\[(#{DIFFICULTY_VALUE_RE})\]|@(#{DIFFICULTY_VALUE_RE})/io.freeze
- NJ_RE =
通常判定の正規表現
/\A(S)?NJ(\d+)#{DIFFICULTY_RE}?\z/io.freeze
- EV_RE =
回避判定の正規表現
%r{\AEV(\d+)#{DIFFICULTY_RE}?(?:/(\d+))?\z}io.freeze
- AT_RE =
近接攻撃の正規表現
/\AAT(\d+)#{DIFFICULTY_RE}?\z/io.freeze
- EL_RE =
電子戦の正規表現
/\AEL(\d+)#{DIFFICULTY_RE}?\z/io.freeze
- DIFFICULTY_SYMBOL_TO_INTEGER =
難易度の文字表現から整数値への対応
{ 'K' => 2, 'E' => 3, 'N' => 4, 'H' => 5, 'UH' => 6 }.freeze
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
- #change_text(str) ⇒ Object
- #eval_game_system_specific_command(command) ⇒ Object
-
#initialize(command) ⇒ NinjaSlayer
constructor
A new instance of NinjaSlayer.
Methods inherited from Base
#check_result, command_pattern, #enable_debug, #enabled_d9?, eval, #eval, #grich_text, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?
Methods included from Translate
Constructor Details
#initialize(command) ⇒ NinjaSlayer
Returns a new instance of NinjaSlayer.
45 46 47 48 49 50 |
# File 'lib/bcdice/game_system/NinjaSlayer.rb', line 45 def initialize(command) super(command) @default_cmp_op = :>= @default_target_number = 4 end |
Instance Method Details
#change_text(str) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/bcdice/game_system/NinjaSlayer.rb', line 82 def change_text(str) m = NJ_RE.match(str) return str unless m b_roll = bRollCommand(m[2], integerValueOfDifficulty(m[3] || m[4])) return "#{m[1]}#{b_roll}" end |
#eval_game_system_specific_command(command) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/bcdice/game_system/NinjaSlayer.rb', line 90 def eval_game_system_specific_command(command) debug('eval_game_system_specific_command begin string', command) if (table = TABLES[command]) return table.roll(randomizer) end case node = parse(command) when EV return executeEV(node) when AT return executeAT(node) when EL return executeEL(node) else return nil end end |