Class: BCDice::GameSystem::NightWizard

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

Direct Known Subclasses

NightWizard3rd, SevenFortressMobius

Defined Under Namespace

Classes: Parsed, Parsed2R6, ParsedNW

Constant Summary collapse

ID =

ゲームシステムの識別子

'NightWizard'
NAME =

ゲームシステム名

'ナイトウィザード The 2nd Edition'
SORT_KEY =

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

'ないとういさあと2'
HELP_MESSAGE =

ダイスボットの使い方

<<~INFO_MESSAGE_TEXT
  ・判定用コマンド (aNW+b@x#y$z+c)
    a : 基本値
    b : 常時に準じる特技による補正
    c : 常時以外の特技、および支援効果による補正(ファンブル時には適用されない)
    x : クリティカル値のカンマ区切り(省略時 10)
    y : ファンブル値のカンマ区切り(省略時 5)
    z : プラーナによる達成値補正のプラーナ消費数(ファンブル時には適用されない)
   クリティカル値、ファンブル値が無い場合は1や13などのあり得ない数値を入れてください。
   例)12NW-5@7#2$3 1NW 50nw+5@7,10#2,5 50nw-5+10@7,10#2,5+15+25
INFO_MESSAGE_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, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

#initialize(command) ⇒ NightWizard

Returns a new instance of NightWizard.



33
34
35
36
37
# File 'lib/bcdice/game_system/NightWizard.rb', line 33

def initialize(command)
  super(command)

  @nw_command = "NW"
end

Instance Method Details

#eval_game_system_specific_command(string) ⇒ String?

Returns:

  • (String, nil)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/bcdice/game_system/NightWizard.rb', line 40

def eval_game_system_specific_command(string)
  cmd = parse_nw(string) || parse_2r6(string)
  unless cmd
    return nil
  end

  total, interim_expr, status = roll_nw(cmd)
  result =
    if cmd.cmp_op
      total.send(cmd.cmp_op, cmd.target_number) ? "成功" : "失敗"
    end

  sequence = [
    "(#{cmd})",
    interim_expr,
    status,
    total.to_s,
    result,
  ].compact
  return sequence.join("")
end