Class: BCDice::GameSystem::SRS

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

Defined Under Namespace

Modules: ClassMethods Classes: SRSRollNode

Constant Summary collapse

ID =

ゲームシステムの識別子

'SRS'
NAME =

ゲームシステム名

'スタンダードRPGシステム'
SORT_KEY =

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

'すたんたあとRPGしすてむ'
HELP_MESSAGE_1 =
<<~HELP_MESSAGE
  ・判定
   ・通常判定:2D6+m@c#f>=t または 2D6+m>=t[c,f]
    修正値m、目標値t、クリティカル値c、ファンブル値fで判定ロールを行います。
    修正値、クリティカル値、ファンブル値は省略可能です([]ごと省略可、@c・#fの指定は順不同)。
    クリティカル値、ファンブル値の既定値は、それぞれ12、2です。
    自動成功、自動失敗、成功、失敗を自動表示します。

    例) 2d6>=10     修正値0、目標値10で判定
    例) 2d6+2>=10    修正値+2、目標値10で判定
    例) 2d6+2>=10[11]  ↑をクリティカル値11で判定
    例) 2d6+2@11>=10   ↑をクリティカル値11で判定
    例) 2d6+2>=10[12,4] ↑をクリティカル値12、ファンブル値4で判定
    例) 2d6+2@12#4>=10  ↑をクリティカル値12、ファンブル値4で判定
    例) 2d6+2>=10[,4]  ↑をクリティカル値12、ファンブル値4で判定(クリティカル値の省略)
    例) 2d6+2#4>=10   ↑をクリティカル値12、ファンブル値4で判定(クリティカル値の省略)
HELP_MESSAGE
HELP_MESSAGE_2 =
<<~HELP_MESSAGE
   ・クリティカルおよびファンブルのみの判定:2D6+m@c#f または 2D6+m[c,f]
    目標値を指定せず、修正値m、クリティカル値c、ファンブル値fで判定ロールを行います。
    修正値、クリティカル値、ファンブル値は省略可能です([]は省略不可、@c・#fの指定は順不同)。
    自動成功、自動失敗を自動表示します。

    例) 2d6[]    修正値0、クリティカル値12、ファンブル値2で判定
    例) 2d6+2[11]  修正値+2、クリティカル値11、ファンブル値2で判定
    例) 2d6+2@11   修正値+2、クリティカル値11、ファンブル値2で判定
    例) 2d6+2[12,4] 修正値+2、クリティカル値12、ファンブル値4で判定
    例) 2d6+2@12#4  修正値+2、クリティカル値12、ファンブル値4で判定
HELP_MESSAGE
HELP_MESSAGE_3 =
<<~HELP_MESSAGE
  ・D66ダイスあり(入れ替えなし)
HELP_MESSAGE
DEFAULT_HELP_MESSAGE =

既定のダイスボット説明文

"#{HELP_MESSAGE_1}\n#{HELP_MESSAGE_2}\n#{HELP_MESSAGE_3}"
HELP_MESSAGE =
DEFAULT_HELP_MESSAGE
DEFAULT_CRITICAL_VALUE =

既定のクリティカル値

12
DEFAULT_FUMBLE_VALUE =

既定のファンブル値

2

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

Class Method Summary collapse

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) ⇒ SRS

ダイスボットを初期化する



146
147
148
149
150
151
152
153
154
155
# File 'lib/bcdice/game_system/SRS.rb', line 146

def initialize(command)
  super(command)

  # 式、出目ともに送信する

  # バラバラロール(Bコマンド)でソートする
  @sort_add_dice = true
  # D66ダイスあり(出目をソートしない)
  @d66_sort_type = D66SortType::NO_SORT
end

Class Method Details

.aliasesArray<String>

成功判定のエイリアスコマンドの一覧

Returns:

  • (Array<String>)


137
138
139
# File 'lib/bcdice/game_system/SRS.rb', line 137

def aliases
  []
end

.help_messageString

ダイスボットの説明文を返す

Returns:

  • (String)

    既定のダイスボット説明文



131
132
133
# File 'lib/bcdice/game_system/SRS.rb', line 131

def help_message
  DEFAULT_HELP_MESSAGE
end

.inherited(subclass) ⇒ void

This method returns an undefined value.

クラスが継承されたときに行う処理



123
124
125
126
127
# File 'lib/bcdice/game_system/SRS.rb', line 123

def inherited(subclass)
  subclass
    .extend(ClassMethods)
    .clear_aliases_for_srs_roll
end

Instance Method Details

#aliasesArray<String>

成功判定のエイリアスコマンドの一覧

Returns:

  • (Array<String>)


165
166
167
# File 'lib/bcdice/game_system/SRS.rb', line 165

def aliases
  self.class.aliases
end

#eval_game_system_specific_command(command) ⇒ Result?

固有のダイスロールコマンドを実行する

Parameters:

  • command (String)

    入力されたコマンド

Returns:

  • (Result, nil)

    ダイスロールコマンドの実行結果



191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'lib/bcdice/game_system/SRS.rb', line 191

def eval_game_system_specific_command(command)
  legacy_c_f_match = /(.+)\[(.*)\]\z/.match(command)
  node =
    if legacy_c_f_match
      parse_legacy(legacy_c_f_match[1], legacy_c_f_match[2])
    else
      parse(command)
    end

  if node
    return execute_srs_roll(node)
  end

  return nil
end

#help_messageString

ダイスボットの説明文を返す

Returns:

  • (String)


159
160
161
# File 'lib/bcdice/game_system/SRS.rb', line 159

def help_message
  self.class.help_message
end