class BCDice::GameSystem::LogHorizon::ConsumptionTable

消耗表

Public Class Methods

new(name, tables) click to toggle source

@param name [String] @param tables [Array[Hash{Integer => String}]]

# File lib/bcdice/game_system/LogHorizon.rb, line 221
def initialize(name, tables)
  @name = name
  @tables = tables

  @dice_value = nil
end

Public Instance Methods

fix_dice_value(dice) click to toggle source

ダイスの値を固定する @param dice [Integer] @return [void]

# File lib/bcdice/game_system/LogHorizon.rb, line 231
def fix_dice_value(dice)
  @dice_value = dice
end
roll(cr, modifier, randomizer) click to toggle source
# File lib/bcdice/game_system/LogHorizon.rb, line 235
def roll(cr, modifier, randomizer)
  table_index = ((cr - 1) / 5).clamp(0, @tables.size - 1)
  items = @tables[table_index]

  @dice_value ||= randomizer.roll_once(6)
  total = @dice_value + modifier

  chosen = items[total.clamp(0, 7)]

  "#{@name}(#{total}[#{@dice_value}]) > #{chosen}"
end