class BCDice::GameSystem::GundogZero
Constants
- HELP_MESSAGE
ダイスボットの使い方
- ID
ゲームシステムの識別子
- NAME
ゲームシステム名
- SORT_KEY
ゲームシステム名の読みがな
Public Instance Methods
eval_game_system_specific_command(command)
click to toggle source
# File lib/bcdice/game_system/GundogZero.rb, line 31 def eval_game_system_specific_command(command) string = command.upcase table = [] ttype = "" type = "" mod = 0 # ダメージペナルティ表 if /(\w)DPT([+\-\d]*)/i =~ string ttype = 'ダメージペナルティー' head = Regexp.last_match(1) mod = ArithmeticEvaluator.eval(Regexp.last_match(2)) if Regexp.last_match(2) type, table = getDamageTypeAndTable(head) end # ファンブル表 if /(\w)FT([+\-\d]*)/i =~ string ttype = 'ファンブル' head = Regexp.last_match(1) mod = ArithmeticEvaluator.eval(Regexp.last_match(2)) if Regexp.last_match(2) type, table = getFumbleTypeAndTable(head) end return '1' if type.empty? dice = @randomizer.roll_index(10) + @randomizer.roll_index(10) + mod diceOriginalText = dice dice = 0 if dice < 0 dice = 18 if dice > 18 output = "#{type}#{ttype}表[#{diceOriginalText}] > #{table[dice]}" return output end
getDamageTypeAndTable(head)
click to toggle source
# File lib/bcdice/game_system/GundogZero.rb, line 69 def getDamageTypeAndTable(head) case head when "S" type = '射撃' # 射撃ダメージペナルティー表 table = [ '対象は[死亡]', # 0 '[追加D]4D6/[出血]2D6/[重傷]-30%/[朦朧判定]15', # 1 '[追加D]3D6/[出血]2D6/[重傷]-30%/[朦朧判定]14', # 2 '[追加D]3D6/[出血]2D6/[重傷]-20%/[朦朧判定]14', # 3 '[追加D]3D6/[出血]1D6/[重傷]-20%/[朦朧判定]12', # 4 '[追加D]2D6/[出血]1D6/[重傷]-10%/[朦朧判定]12', # 5 '[追加D]2D6/[軽傷]-20%/[朦朧判定]10', # 6 '[追加D]2D6/[軽傷]-10%/[朦朧判定]10', # 7 '[追加D]2D6/[軽傷]-20%/[朦朧判定]8', # 8 '[追加D]2D6/[軽傷]-20%/[朦朧判定]6', # 9 '[追加D]2D6/[軽傷]-10%/[朦朧判定]4', # 10 '[追加D]1D6/[軽傷]-20%', # 11 '[追加D]1D6/[軽傷]-20%', # 12 '[追加D]1D6/[軽傷]-10%', # 13 '[軽傷]-20%', # 14 '[軽傷]-10%', # 15 '[軽傷]-10%', # 16 '手に持った武器を落とす', # 17 'ペナルティー無し', # 18 ] when "M" type = '格闘' # 格闘ダメージペナルティー表 table = [ '対象は[死亡]', # 0 '[追加D]3D6/[出血]2D6/[重傷]-30%/[朦朧判定]15', # 1 '[追加D]2D6/[出血]2D6/[重傷]-30%/[朦朧判定]14', # 2 '[追加D]2D6/[出血]1D6/[重傷]-20%/[朦朧判定]14', # 3 '[追加D]3D6/[出血]1D6/[重傷]-10%/[朦朧判定]12', # 4 '[追加D]2D6/[軽傷]-20%/[朦朧判定]12', # 5 '[追加D]2D6/[軽傷]-10%/[朦朧判定]12', # 6 '[追加D]2D6/[軽傷]-10%/[朦朧判定]10', # 7 '[追加D]1D6/[軽傷]-20%/[朦朧判定]8', # 8 '[追加D]1D6/[軽傷]-10%/[朦朧判定]8', # 9 '[追加D]1D6/[軽傷]-10%/[朦朧判定]6', # 10 '[軽傷]-20%/[朦朧判定]6', # 11 '[軽傷]-10%/[朦朧判定]6', # 12 '[軽傷]-10%/[朦朧判定]4', # 13 '[軽傷]-20%', # 14 '[軽傷]-10%', # 15 '[軽傷]-10%', # 16 '手に持った武器を落とす', # 17 'ペナルティー無し', # 18 ] when "V" type = '車両' # 車両ダメージペナルティー表 table = [ '[クラッシュ]する。[チェイス]から除外', # 0 '[乗員D]3D6/[操縦性]-20%/[スピン判定]', # 1 '[乗員D]3D6/[操縦性]-20%/[スピン判定]', # 2 '[乗員D]2D6/[操縦性]-10%/[スピン判定]', # 3 '[乗員D]2D6/[操縦性]-10%/[スピン判定]', # 4 '[乗員D]3D6/[スピード]-2/[スピン判定]', # 5 '[乗員D]3D6/[スピード]-2/[スピン判定]', # 6 '[乗員D]2D6/[スピード]-1/[スピン判定]', # 7 '[乗員D]2D6/[スピード]-1/[スピン判定]', # 8 '[乗員D]2D6/[操縦判定]-20%', # 9 '[乗員D]2D6/[操縦判定]-20%', # 10 '[乗員D]1D6/[操縦判定]-10%', # 11 '[乗員D]1D6/[操縦判定]-10%', # 12 '[スピン判定]', # 13 '[スピン判定]', # 14 '乗員に[ショック]-20%', # 15 '乗員に[ショック]-10%', # 16 '乗員に[ショック]-10%', # 17 'ペナルティー無し', # 18 ] when "G" type = '汎用' # 汎用ダメージペナルティー表 table = [ '対象は[死亡]', # 0 '[追加D]4D6/[出血]2D6/[重傷]-30%/[朦朧判定]18', # 1 '[追加D]4D6/[出血]2D6/[重傷]-30%/[朦朧判定]16', # 2 '[追加D]3D6/[出血]2D6/[重傷]-20%/[朦朧判定]14', # 3 '[追加D]3D6/[出血]2D6/[重傷]-20%/[朦朧判定]14', # 4 '[追加D]3D6/[出血]1D6/[重傷]-10%/[朦朧判定]12', # 5 '[追加D]2D6/[出血]1D6/[重傷]-10%/[朦朧判定]12', # 6 '[追加D]2D6/[軽傷]-30%/[朦朧判定]12', # 7 '[追加D]2D6/[軽傷]-30%/[朦朧判定]10', # 8 '[追加D]2D6/[軽傷]-30%/[朦朧判定]8', # 9 '[追加D]2D6/[軽傷]-20%/[朦朧判定]8', # 10 '[追加D]2D6/[軽傷]-20%/[朦朧判定]6', # 11 '[追加D]2D6/[軽傷]-10%/[朦朧判定]6', # 12 '[追加D]1D6/[軽傷]-20%/[朦朧判定]4', # 13 '[追加D]1D6/[軽傷]-20%', # 14 '[追加D]1D6/[軽傷]-10%', # 15 '[軽傷]-20%', # 16 '[軽傷]-10%', # 17 'ペナルティー無し', # 18 ] else head = "S" # 間違ったら射撃扱い type, table = getDamageTypeAndTable(head) end return type, table end
getFumbleTypeAndTable(head)
click to toggle source
# File lib/bcdice/game_system/GundogZero.rb, line 178 def getFumbleTypeAndTable(head) case head when "S" type = '射撃' # 射撃ファンブル表 table = [ '銃器が暴発、自分に命中。[貫通D]', # 0 '銃器が暴発、自分に命中。[非貫通D]', # 1 '誤射。ランダムに味方に命中。[貫通D]', # 2 '誤射。ランダムに味方に命中。[非貫通D]', # 3 '銃器が完全に故障', # 4 '銃器が完全に故障', # 5 '故障。〈メカニック〉判定に成功するまで射撃不可', # 6 '故障。〈メカニック〉判定に成功するまで射撃不可', # 7 '作動不良。[アイテム使用]を2回行って修理するまで射撃不可', # 8 '作動不良。[アイテム使用]を2回行って修理するまで射撃不可', # 9 '作動不良。[アイテム使用]を行って修理するまで射撃不可', # 10 '作動不良。[アイテム使用]を行って修理するまで射撃不可', # 11 '姿勢を崩す。[不安定]', # 12 '姿勢を崩す。[不安定]', # 13 '姿勢を崩す。[ショック]-20%', # 14 '姿勢を崩す。[ショック]-20%', # 15 '姿勢を崩す。[ショック]-10%', # 16 '姿勢を崩す。[ショック]-10%', # 17 'ペナルティー無し', # 18 ] when "M" type = '格闘' # 格闘ファンブル表 table = [ '避けられて[転倒]、[朦朧]状態', # 0 'ランダムに[至近距離]の味方(居なければ自分)に命中。[貫通D]', # 1 'ランダムに[至近距離]の味方(居なければ自分)に命中。[貫通D]', # 2 '武器が完全に壊れる', # 3 '武器がガタつく。〈手先〉判定に成功するまで使用不可', # 4 '武器がガタつく。〈手先〉判定に成功するまで使用不可', # 5 '無理な姿勢で筋を伸ばす。[軽傷]-30%', # 6 '無理な姿勢で筋を伸ばす。[軽傷]-30%', # 7 '無理な姿勢で筋を伸ばす。[軽傷]-20%', # 8 '無理な姿勢で筋を伸ばす。[軽傷]-20%', # 9 '無理な姿勢で筋を伸ばす。[軽傷]-10%', # 10 '無理な姿勢で筋を伸ばす。[軽傷]-10%', # 11 '姿勢を崩す。[不安定]', # 12 '姿勢を崩す。[不安定]', # 13 '姿勢を崩す。[ショック]-20%', # 14 '姿勢を崩す。[ショック]-20%', # 15 '姿勢を崩す。[ショック]-10%', # 16 '姿勢を崩す。[ショック]-10%', # 17 'ペナルティー無し', # 18 ] when "T" type = '投擲' # 投擲ファンブル表 table = [ '[転倒]、[朦朧]状態', # 0 '自分に命中。[貫通D]', # 1 '自分に命中。[非貫通D]', # 2 'ランダムに味方(居なければ自分)に命中。[非貫通D]', # 3 'ランダムに味方(居なければ自分)に命中。[非貫通D]', # 4 '武器が完全に壊れる', # 5 '武器が完全に壊れる', # 6 '腰を痛める。[軽傷]-30%', # 7 '肩を痛める。[軽傷]-20%', # 8 '肩を痛める。[軽傷]-20%', # 9 '肘に違和感。[軽傷]-10%', # 10 '肘に違和感。[軽傷]-10%', # 11 '姿勢を崩す。[不安定]', # 12 '姿勢を崩す。[不安定]', # 13 '姿勢を崩す。[ショック]-20%', # 14 '姿勢を崩す。[ショック]-20%', # 15 '姿勢を崩す。[ショック]-10%', # 16 '姿勢を崩す。[ショック]-10%', # 17 'ペナルティー無し', # 18 ] else head = "S" # 間違ったら射撃扱い type, table = getFumbleTypeAndTable(head) end return type, table end