class BCDice::GameSystem::DeadlineHeroes::DeathChart

Public Class Methods

new(name, chart) click to toggle source
# File lib/bcdice/game_system/DeadlineHeroes.rb, line 117
def initialize(name, chart)
  @name = name
  @chart = chart.freeze

  if @chart.size != 11
    raise ArgumentError, "unexpected chart size #{name.inspect} (given #{@chart.size}, expected 11)"
  end
end

Public Instance Methods

roll(randomizer, minus_score) click to toggle source

@param randomizer [Randomizer] @param minus_score [Integer] @return [String]

# File lib/bcdice/game_system/DeadlineHeroes.rb, line 129
def roll(randomizer, minus_score)
  dice = randomizer.roll_once(10)
  key_number = dice + minus_score

  key_text, chosen = at(key_number)

  return "デスチャート(#{@name})[マイナス値:#{minus_score} + 1D10(->#{dice}) = #{key_number}] > #{key_text} : #{chosen}"
end

Private Instance Methods

at(key_number) click to toggle source

key_numberの10から20がindexの0から10に対応する

# File lib/bcdice/game_system/DeadlineHeroes.rb, line 141
def at(key_number)
  if key_number < 10
    ["10以下", @chart.first]
  elsif key_number > 20
    ["20以上", @chart.last]
  else
    [key_number.to_s, @chart[key_number - 10]]
  end
end