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