Class: BCDice::GameSystem::NinjaSlayer

Inherits:
Base
  • Object
show all
Defined in:
lib/bcdice/game_system/NinjaSlayer.rb

Defined Under Namespace

Classes: AT, EL, EV

Constant Summary collapse

ID =

ゲームシステムの識別子

'NinjaSlayer'
NAME =

ゲームシステム名

'ニンジャスレイヤーTRPG'
SORT_KEY =

ゲームシステム名の読みがな

'にんしやすれいやあTRPG'
HELP_MESSAGE =

ダイスボットの使い方

"\u30FB\u901A\u5E38\u5224\u5B9A\u3000NJ\n\u3000NJx[y] or NJx@y or NJx\n\u3000x=\u5224\u5B9A\u30C0\u30A4\u30B9 y=\u96E3\u6613\u5EA6 \u7701\u7565\u6642\u306FNORMAL(4)\n\u3000\u4F8B:NJ4@H \u96E3\u6613\u5EA6HARD\u3001\u5224\u5B9A\u30C0\u30A4\u30B94\u3067\u5224\u5B9A\n\u30FB\u56DE\u907F\u5224\u5B9A\u3000EV\n\u3000EVx[y]/z or EVx@y/z or EVx/z or EVx[y] or EVx@y or EVx\n\u3000x=\u5224\u5B9A\u30C0\u30A4\u30B9 y=\u96E3\u6613\u5EA6 z=\u653B\u6483\u5074\u306E\u6210\u529F\u6570(\u7701\u7565\u53EF) \u96E3\u6613\u5EA6\u3092\u7701\u7565\u6642\u306FNORMAL(4)\n\u3000\u653B\u6483\u5074\u306E\u6210\u529F\u6570\u3092\u6307\u5B9A\u3057\u305F\u5834\u5408\u3001\u30AB\u30A6\u30F3\u30BF\u30FC\u30AB\u30E9\u30C6\u767A\u751F\u6642\u306B\u306F\u8868\u793A\n\u3000\u4F8B:EV5/3 \u96E3\u6613\u5EA6NORMAL(\u7701\u7565\u6642)\u3001\u5224\u5B9A\u30C0\u30A4\u30B95\u3001\u653B\u6483\u5074\u306E\u6210\u529F\u65703\u3067\u5224\u5B9A\n\u30FB\u8FD1\u63A5\u653B\u6483\u3000AT\n\u3000ATx[y] or ATx@y or ATx\n\u3000x=\u5224\u5B9A\u30C0\u30A4\u30B9 y=\u96E3\u6613\u5EA6 \u7701\u7565\u6642\u306FNORMAL(4) \u30B5\u30C4\u30D0\u30C4\uFF01\u767A\u751F\u6642\u306B\u306F\u8868\u793A\n\u3000\u4F8B:AT6[H] \u96E3\u6613\u5EA6HARD,\u5224\u5B9A\u30C0\u30A4\u30B95\u3067\u8FD1\u63A5\u653B\u6483\u306E\u5224\u5B9A\n\u30FB\u30B5\u30C4\u30D0\u30C4\u5224\u5B9A\u3000SB\n\u30FB\u96FB\u5B50\u6226\u3000EL\n\u3000ELx[y] or ELx@y or ELx\n\u3000x=\u5224\u5B9A\u30C0\u30A4\u30B9 y=\u96E3\u6613\u5EA6 \u7701\u7565\u6642\u306FNORMAL(4)\n\u3000\u4F8B:EL6[H] \u96E3\u6613\u5EA6HARD,\u5224\u5B9A\u30C0\u30A4\u30B95\u3067\u96FB\u5B50\u6226\u306E\u5224\u5B9A\n\n\u30FB\u96E3\u6613\u5EA6\n\u3000KIDS=K,EASY=E,NORMAL=N,HARD=H,ULTRA HARD=UH \u6570\u5B57\u306B\u3082\u5BFE\u5FDC\n\n\u203B\u4E0A\u8A18\u30B3\u30DE\u30F3\u30C9\u7FA4\u306F\u300E\u30CB\u30F3\u30B8\u30E3\u30B9\u30EC\u30A4\u30E4\u30FCTRPG \u30B3\u30A2\u30FB\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u300F\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u30B3\u30A2\u30FB\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u3067\u904A\u3076\u5834\u5408\u306B\u306F\u300E\u30CB\u30F3\u30B8\u30E3\u30B9\u30EC\u30A4\u30E4\u30FCTRPG 2\u7248\u300F\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u5229\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n"
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

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

#translate

Constructor Details

#initialize(command) ⇒ 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