Class: BCDice::GameSystem::DiceOfTheDead
- Defined in:
- lib/bcdice/game_system/DiceOfTheDead.rb
Constant Summary collapse
- ID =
ゲームシステムの識別子
'DiceOfTheDead'
- NAME =
ゲームシステム名
'ダイス・オブ・ザ・デッド'
- SORT_KEY =
ゲームシステム名の読みがな
'たいすおふさてつと'
- HELP_MESSAGE =
ダイスボットの使い方
<<~INFO_MESSAGE_TEXT ・ゾンビ化表 ZMB+x (x=オープン中の感染度マスの数。+xは省略可能、省略時は0) ・感染度表 BIOx (xは被弾回数。xは省略可能、省略時は1) (上記二つは最初からシークレットダイスで行われます) 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
- #checkInfection(roll_times) ⇒ Object
- #eval_game_system_specific_command(command) ⇒ Object
-
#initialize(command) ⇒ DiceOfTheDead
constructor
A new instance of DiceOfTheDead.
-
#rollZombie(value) ⇒ Object
各種表.
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
Constructor Details
#initialize(command) ⇒ DiceOfTheDead
Returns a new instance of DiceOfTheDead.
26 27 28 29 30 31 |
# File 'lib/bcdice/game_system/DiceOfTheDead.rb', line 26 def initialize(command) super(command) @sort_add_dice = true @d66_sort_type = D66SortType::ASC end |
Instance Method Details
#checkInfection(roll_times) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/bcdice/game_system/DiceOfTheDead.rb', line 52 def checkInfection(roll_times) result = "感染度表" roll_times.times do d1 = @randomizer.roll_once(6) d2 = @randomizer.roll_once(6) result += " > 出目:#{d1}、#{d2} " index1 = (d1 / 2.0).ceil - 1 index2 = (d2 / 2.0).ceil - 1 table = [["「右下(【足】+1)」", "「右中(【足】+1)」", "「右上(【足】+1)」"], ["「中下(【腕】+1)」", "「真中(【腕】+1)」", "「中上(【腕】+1)」"], ["「左下(【頭】+1)」", "「左中(【頭】+1)」", "「左上(【頭】+1)」"],] result += table[index1][index2] end return result end |
#eval_game_system_specific_command(command) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/bcdice/game_system/DiceOfTheDead.rb', line 33 def eval_game_system_specific_command(command) case command when /^BIO(\d+)?$/ roll_times = (Regexp.last_match(1) || 1).to_i Result.new.tap do |r| r.secret = true r.text = checkInfection(roll_times) end when /^ZMB(\+(\d+))?$/ value = Regexp.last_match(2).to_i Result.new.tap do |r| r.secret = true r.text = rollZombie(value) end end end |
#rollZombie(value) ⇒ Object
各種表
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/bcdice/game_system/DiceOfTheDead.rb', line 78 def rollZombie(value) d1 = @randomizer.roll_once(6) d2 = @randomizer.roll_once(6) diceTotal = d1 + d2 + value table = [ [5, "5以下:影響なし"], [6, "6:任意の部位を1点回復"], [7, "7:〈アイテム〉武器を1つその場に落とす"], [8, "8:〈アイテム〉便利道具1つをその場に落とす"], [9, "9:〈アイテム〉消耗品1つをその場に落とす"], [10, "10:腕の傷が広がる。「部位:【腕】」1点ダメージ"], [11, "11:足の傷が広がる。「部位:【足】」1点ダメージ"], [12, "12:頭の傷が広がる。「部位:【頭】」1点ダメージ"], [13, "13:【ゾンビ化表】が新たに適用されるまで「【感染度】+1マス」の効果を受ける"], [14, "14:即座に自分以外の味方1人のスロット内の〈アイテム〉1つをランダムに捨てさせる"], [15, "15:味方1人に素手で攻撃を行う"], [16, "16:即座に感染度が1上昇する"], [17, "17:次のターンのみ、すべての【能力値】を2倍にする"], [18, "18以上:自分以外の味方1人にできる限り全力で攻撃を行う。〈アイテム〉も可能な限り使用する"] ] minDice = table.first.first maxDice = table.last.first index = diceTotal index = [minDice, index].max index = [index, maxDice].min _number, text = table.assoc(index) result = "ゾンビ化表 > 出目:#{d1}+#{d2} 感染度:#{value} 合計値:#{diceTotal} > #{text}" return result end |