Module: BCDice::GameSystem::SRS::ClassMethods

Defined in:
lib/bcdice/game_system/SRS.rb

Overview

成功判定のエイリアスコマンド定義用のクラスメソッドを提供するモジュール

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#aliases_re_for_srs_roll_with_target_valueRegexp? (readonly)

目標値あり成功判定のエイリアスコマンドの正規表現を返す

Returns:

  • (Regexp, nil)


59
60
61
# File 'lib/bcdice/game_system/SRS.rb', line 59

def aliases_re_for_srs_roll_with_target_value
  @aliases_re_for_srs_roll_with_target_value
end

#aliases_re_for_srs_roll_without_target_valueRegexp? (readonly)

目標値なし成功判定のエイリアスコマンドの正規表現を返す

Returns:

  • (Regexp, nil)


63
64
65
# File 'lib/bcdice/game_system/SRS.rb', line 63

def aliases_re_for_srs_roll_without_target_value
  @aliases_re_for_srs_roll_without_target_value
end

#help_messageString (readonly)

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

Returns:

  • (String)


55
56
57
# File 'lib/bcdice/game_system/SRS.rb', line 55

def help_message
  @help_message
end

Instance Method Details

#clear_aliases_for_srs_rollself

成功判定のエイリアスコマンドを未設定にする

Returns:

  • (self)


97
98
99
100
101
102
103
# File 'lib/bcdice/game_system/SRS.rb', line 97

def clear_aliases_for_srs_roll
  @aliases_re_for_srs_roll_with_target_value = nil
  @aliases_re_for_srs_roll_without_target_value = nil
  @help_message = SRS::DEFAULT_HELP_MESSAGE

  return self
end

#set_aliases_for_srs_roll(*aliases) ⇒ self

成功判定のエイリアスコマンドを設定する エイリアスコマンドとして指定した文字列がコマンドの先頭にあれば、 実行時にそれが2D6に置換されるようになる。

Parameters:

  • aliases (String)

    エイリアスコマンド(可変長引数)

Returns:

  • (self)


71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/bcdice/game_system/SRS.rb', line 71

def set_aliases_for_srs_roll(*aliases)
  aliases_upcase = aliases.map(&:upcase)
  aliases_part = aliases_upcase
                 .map { |a| Regexp.escape(a) }
                 .join('|')

  @aliases_re_for_srs_roll_with_target_value = Regexp.new(
    '\A' \
    "(?:#{aliases_part})" \
    '((?:[-+][-+\d]+)?>=\d+(?:\[\d*(?:,\d+)?\])?)\z'
  )

  @aliases_re_for_srs_roll_without_target_value = Regexp.new(
    '\A' \
    "(?:#{aliases_part})" \
    '([-+][-+\d]+)?(\[\d*(?:,\d+)?\])?\z'
  )

  prepare_help_msg_for_aliases_for_srs_roll(aliases_upcase)
  @help_message = concatenate_help_messages

  return self
end