Class: BCDice::GameSystem::NinjaSlayer2

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

Constant Summary collapse

ID =

ゲームシステムの識別子

"NinjaSlayer2"
NAME =

ゲームシステム名

"ニンジャスレイヤーTRPG 2版"
SORT_KEY =

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

"にんしやすれいやあTRPG2"
HELP_MESSAGE =
<<~TEXT
  - K{x1},{x2},...,{xn}
  難易度K([K]ids)の成功判定({x1}B6>=2)を、ダイス{x1}個({x2}~を指定した場合はそれぞれ個々に)で実行します。
  先頭の文字を変えることで、難易度E([E]asy),N([N]ormal),H([H]ard),U([U]ltra-hard)もしくはUH([U]ltra-[H]ard)でも実行可能です。(以下も同様)

  - K{x1},{x2},...,{xn}[>={y}]
  K{x1}のロールの結果を使って、[]内で指定された条件を満たすダイスの個数を追加で出力します。
  判定式は「>=」の他に「>」「<=」「<」「=」「!=」が利用可能です。
  [=5][=6]のように複数記述することで、それぞれで追加判定が可能です。

  - K{x1},{x2},...,{xn}[S] or K{x1},{x2},...,{xn}[S{y}]
  - K{x1},{x2},...,{xn}[C] or K{x1},{x2},...,{xn}[C{y}]
  いずれもK{x1},{x2},...,{xn}[>={y}]のショートカットです。({y}省略時は固定値6で処理します。)
  出力時のテキストが、Sの場合は「サツバツ!」に、Cの場合は「クリティカル!」になります。
  こちらも複数記述することで、それぞれで追加判定が可能です。

  - SB or SB@{x}
  {x}(1-6/省略時はd6)に対応したサツバツ([S]atz-[B]atz)・クリティカル表の内容を返します。

  - WS{x}
  {x}(1-12/省略不可)に対応する[W]as[s]hoi!判定(2d6<={x})を行います

  - WSE or WSE@{x}
  {x}(1-6/省略時はd6)に対応する死神のエントリー決定表([W]as[s]hoi! [E]ntry)の内容を返します。

  - NRS_E{x} or NRS_E{x}@{y} or NRS@{y}
  ダイス{x}個で難易度[E]asy(>=3)のNRS判定({x}省略時はスキップ)を行い、失敗した場合は{y}(1~7/省略時は難易度に応じたダイス目)に対応するNRS発狂表を返します。
  「_E」部分を変更することで、難易度N,H,U,UHでも利用可能です。(Kはありません)
TEXT

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

#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

#translate

Constructor Details

This class inherits a constructor from BCDice::Base

Instance Method Details

#eval_game_system_specific_command(command) ⇒ String?

Base::eval_game_system_specific_commandの実装

Parameters:

  • command (String)

Returns:

  • (String, nil)


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/bcdice/game_system/NinjaSlayer2.rb', line 48

def eval_game_system_specific_command(command)
  # @debug = true
  debug("input: #{command}")

  begin
    case command
    when RE_JUDGE_DICEROLL
      # 2版用のダイス判定
      proc_result = proc_dice_2nd(Regexp.last_match)

      # 結果は文字列と達成値という形で受け取る
      if proc_result[1] > 0
        return Result.success(proc_result[0])
      else
        return Result.failure(proc_result[0])
      end
    else
      # ダイスでなければ定型文処理
      return proc_text(command)
    end
  rescue StandardError => e
    # 解析できずにエラーが出たら構文ミスと皆してnilを返す
    debug("#{e.message} \n#{e.backtrace}")
    return nil
  end
end