Class: BCDice::GameSystem::Strave

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

Constant Summary collapse

ID =

ゲームシステムの識別子

'Strave'
NAME =

ゲームシステム名

'碧空のストレイヴ'
SORT_KEY =

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

'へきくうのすとれいふ'
HELP_MESSAGE =

ダイスボットの使い方

<<~MESSAGETEXT
  ・モラトリアムフェイズ用判定:MPm
  ・命中判定:nSTm*p

  「n」でダイス数を指定。
  「m」で目標値を指定。省略は出来ません。
  「p」で攻撃力を指定。「*」は「x」でも可。

  【書式例】
  ・MP6 → 目標値6のモラトリアムフェイズ用判定。
  ・5ST6*10 → 5d10で目標値6、攻撃力10の命中判定。

  【各種表】
  ・所属表:AFF  VN版:AFV
  ・アイデンティティ表:IDT  VN版:IDV

  ※アイデンティティ表はエラッタ適用済です。
MESSAGETEXT

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

Returns a new instance of Strave.



40
41
42
43
# File 'lib/bcdice/game_system/Strave.rb', line 40

def initialize(command)
  super(command)
  @sort_add_dice = true # ダイスのソート有
end

Instance Method Details

#checkRoll(diceCount, target, damage) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/bcdice/game_system/Strave.rb', line 77

def checkRoll(diceCount, target, damage)
  target = 1 if target < 1
  target = 10 if target > 10

  diceArray = @randomizer.roll_barabara(diceCount, 10).sort
  diceText = diceArray.join(",")

  successCount = diceArray.find_all { |i| (i <= target) }.size

  isDamage = !damage.nil?

  if isDamage
    totalDamage = successCount * damage
    result = "(#{diceCount}D10\<\=#{target}) > #{diceText} > Hits:#{successCount}*#{damage}#{totalDamage}ダメージ"
  else
    result = "(#{diceCount}D10\<\=#{target}) > #{diceText}"
    if  successCount > 0
      result += " > 【成功】"
    else
      result += " > 【失敗】"
    end
  end

  return result
end

#eval_game_system_specific_command(command) ⇒ Object



45
46
47
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
74
75
# File 'lib/bcdice/game_system/Strave.rb', line 45

def eval_game_system_specific_command(command)
  output =
    case command.upcase

    # MPコマンド:モラトリアムフェイズ用判定
    when /MP(\d+)$/i
      diceCount = 2
      target = Regexp.last_match(1).to_i
      checkRoll(diceCount, target, nil)

    # STコマンド:命中判定
    when /(\d+)ST(\d+)(x|\*)(\d+)$/i
      diceCount = Regexp.last_match(1).to_i
      target = Regexp.last_match(2).to_i
      damage = (Regexp.last_match(4) || 0).to_i
      checkRoll(diceCount, target, damage)

    # 各種表
    when 'AFF'
      get_affiliation_table
    when 'IDT'
      get_identity_table
    when 'AFV'
      get_affiliation_table2
    when 'IDV'
      get_identity_table2

    end

  return output
end

#get_affiliation_tableObject



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/bcdice/game_system/Strave.rb', line 103

def get_affiliation_table
  name = '所属表:基本'
  table = [
    [1, 'アリウス管理委員会:あなたはアリウス管理委員会に所属している。'],
    [2, 'オーヴァーブルー:あなたはオーヴァーブルーに所属している。'],
    [3, 'ウォルゲイト:あなたはウォルゲイトに所属している。'],
    [4, '暁部隊:あなたはかつて、反逆者・暁弥琴と同じ部隊に所属していた。'],
    [5, '天文部:あなたは天文部に所属している。'],
    [6, '吹奏楽部:あなたは吹奏楽部に所属している。'],
    [7, '剣道部:あなたは剣道部に所属している。'],
    [8, 'ボクシング部:あなたはボクシング部に所属している。'],
    [9, '陸上部:あなたは陸上部に所属している。'],
    [10, '茶道部:あなたは茶道部に所属している。'],
    [11, 'パソコン部:あなたはパソコン部に所属している。'],
    [12, '新聞部:あなたは新聞部に所属している。'],
    [13, '弓道部:あなたは弓道部に所属している。'],
    [14, '美術部:あなたは美術部に所属している。'],
    [15, 'ミリタリー研究会:あなたはミリタリー研究会に所属している。'],
    [16, '歴史研究会:あなたは歴史研究会に所属している。'],
    [17, 'ロボット研究会:あなたはロボット研究会に所属している。'],
    [18, '図書委員会:あなたは図書委員会に所属している。'],
    [19, '任意:あなたの任意の所属を設定せよ。'],
    [20, '任意:あなたの任意の所属を設定せよ。']
  ]
  return get_strave_1d100_table_result(name, table)
end

#get_affiliation_table2Object



157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/bcdice/game_system/Strave.rb', line 157

def get_affiliation_table2
  name = '所属表:ヴァリアンスネイヴァー'
  table = [
    [1, 'シュヴァレ・トワール:あなたはシュヴァレ・トワールに所属している。'],
    [2, 'ディープシンカー:あなたはディープシンカーに所属している。'],
    [3, 'ヴェルクシュタット:あなたはヴェルクシュタットに所属している。'],
    [4, 'アウスヴァル:あなたはアウスヴァルに所属している。'],
    [5, '美術科:あなたは美術科に所属している。'],
    [6, '哲学科:あなたは哲学科に所属している。'],
    [7, '数学科:あなたは数学科に所属している。'],
    [8, '地理学科:あなたは地理学科に所属している。'],
    [9, '工学科:あなたは工学科に所属している。'],
    [10, '体育学科:あなたは体育学科に所属している。'],
    [11, '農学科:あなたは農学科に所属している。'],
    [12, '歴史学科:あなたは歴史学科に所属している。'],
    [13, '医学科:あなたは医学科に所属している。'],
    [14, '情報学科:あなたは情報学科に所属している。'],
    [15, '音楽科:あなたは音楽科に所属している。'],
    [16, '心理学科:あなたは心理学科に所属している。'],
    [17, '文学科:あなたは文学科に所属している。'],
    [18, '任意:あなたの任意の所属を設定すること。'],
    [19, '任意:あなたの任意の所属を設定すること。'],
    [20, '任意:あなたの任意の所属を設定すること。']
  ]
  return get_strave_1d100_table_result(name, table)
end

#get_identity_tableObject



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/bcdice/game_system/Strave.rb', line 130

def get_identity_table
  name = 'アイデンティティ表:基本'
  table = [
    [1, '戦い:戦いこそが、あなたをあなたたらしめている。'],
    [2, '守護:あなたには守るべきものがある。'],
    [3, '復讐:あなたは復讐を誓っている。何かに、あるいは誰かに。'],
    [4, '名声:その身に浴びる脚光を、何よりも誉としている。'],
    [5, '恋愛:あなたはその身を焦がす恋に生きている。'],
    [6, '家族:あなたにとって、家族はかけがえの無いものだ。'],
    [7, '友人:あなたは友のために戦っている。'],
    [8, '部隊:共に戦う部隊の仲間が、あなたに力をくれる。'],
    [9, 'ストレイヴ:あなたは自身のストレイヴを誇りに思っている。'],
    [10, 'スフィアブレイク:あなたはスフィアブレイクを熱烈に目指している。'],
    [11, 'お金:あなたはお金を求めている。報酬こそが自分の価値だ。'],
    [12, '夢:あなたには夢がある。自分を突き動かす夢が。'],
    [13, '忠誠:あなたは忠誠を誓っている。何かに、あるいは誰かに。'],
    [14, '共生:あなたは、ヴァイエルと人類との共生を望んでいる。'],
    [15, '居場所:自身の居場所こそが、あなたに力をくれる。'],
    [16, '強制:あなたは不本意ながら今の立場にいる。'],
    [17, '碧空:見上げた青空が、あなたを変えた。'],
    [18, '任意:あなたの任意のアイデンティティを設定せよ。'],
    [19, '任意:あなたの任意のアイデンティティを設定せよ。'],
    [20, '任意:あなたの任意のアイデンティティを設定せよ。']
  ]
  return get_strave_1d100_table_result(name, table)
end

#get_identity_table2Object



184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/bcdice/game_system/Strave.rb', line 184

def get_identity_table2
  name = 'アイデンティティ表:ヴァリアンスネイヴァー'
  table = [
    [1, '戦い:戦いへの衝動が、あなたをあなたたらしめている。'],
    [2, '守護:守るべきものの存在が、あなたをあなたたらしめている。'],
    [3, '復讐:復讐の誓いこそが、あなたをあなたたらしめている。'],
    [4, '名声:与えられた名誉こそが、あなたをあなたたらしめている。'],
    [5, '恋愛:愛する者への想いが、あなたをあなたたらしめている。'],
    [6, '家族:かけがえのない家族が、あなたをあなたたらしめている。'],
    [7, '友人:友の存在が、あなたをあなたたらしめている。'],
    [8, '部隊:部隊の戦友こそが、あなたをあなたたらしめている。'],
    [9, 'ストレイヴ:ストレイヴの存在が、あなたの心を保っている。'],
    [10, '宇宙:やがて来る旅立ちの日まで、あなたはあなたであろうとしている。'],
    [11, 'お金:与えられる報酬のため、あなたはあなたであろうとしている。'],
    [12, '夢:あなたには、己の心に誓った夢がある。'],
    [13, '忠誠:その心でもって、誓った忠義がある。'],
    [14, '共生:あなたは、ヴァイエルと人類との共生を望んでいる。'],
    [15, '居場所:自身の居場所への思いが、あなたをあなたたらしめている。'],
    [16, 'ヴァイエル:あなたと同じでありながら、あなたと異なる存在。彼らへの思いが、あなたをあなたたらしめている。'],
    [17, 'エコール:自身の生きる場所への思いが、あなたをあなたたらしめている。'],
    [18, '任意:あなたの任意のアイデンティティを設定せよ。'],
    [19, '任意:あなたの任意のアイデンティティを設定せよ。'],
    [20, '任意:あなたの任意のアイデンティティを設定せよ。']
  ]
  return get_strave_1d100_table_result(name, table)
end

#get_strave_1d100_table_result(name, table) ⇒ Object



211
212
213
214
215
216
# File 'lib/bcdice/game_system/Strave.rb', line 211

def get_strave_1d100_table_result(name, table)
  dice = @randomizer.roll_once(100)
  dice2 = ((dice.to_i - 1) / 5).floor + 1
  result = get_table_by_number(dice2, table)
  return get_strave_table_result(name, dice, result)
end

#get_strave_table_result(name, dice, result) ⇒ Object



218
219
220
# File 'lib/bcdice/game_system/Strave.rb', line 218

def get_strave_table_result(name, dice, result)
  return "#{name}(#{dice}) > #{result}"
end