class BCDice::GameSystem::Yggdrasill::ChainTable

Public Class Methods

new(name, type, items, additonal_table:, additonal_index:) click to toggle source
Calls superclass method BCDice::DiceTable::Table::new
# File lib/bcdice/game_system/Yggdrasill.rb, line 331
def initialize(name, type, items, additonal_table:, additonal_index:)
  super(name, type, items)

  @additonal_table = additonal_table
  @index = additonal_index
end

Public Instance Methods

roll(randomizer) click to toggle source
# File lib/bcdice/game_system/Yggdrasill.rb, line 338
def roll(randomizer)
  value = randomizer.roll_sum(@times, @sides)
  chosen = choice(value)

  return chosen unless @index.include?(value)

  body = "#{chosen.body} > #{@additonal_table.roll(randomizer)}"
  DiceTable::RollResult.new(chosen.table_name, chosen.value, body)
end