class BCDice::CommonCommand::AddDice::Randomizer

Constants

RandResult

Attributes

rand_results[R]

Public Class Methods

new(rand_source, game_system) click to toggle source

@param rand_source [BCDice::Randomizer] @param game_system [BCDice::Base]

# File lib/bcdice/common_command/add_dice/randomizer.rb, line 13
def initialize(rand_source, game_system)
  @rand_source = rand_source
  @game_system = game_system
  @rand_results = []
end

Public Instance Methods

roll(times, sides) click to toggle source

ダイスを振る @param times [Integer] ダイス数 @param sides [Integer] 面数 @return [Array<Integer>] 出目の配列

# File lib/bcdice/common_command/add_dice/randomizer.rb, line 23
def roll(times, sides)
  dice_list =
    if sides == 66
      Array.new(times) { @rand_source.roll_d66(@game_system.d66_sort_type) }
    elsif sides == 9 && @game_system.enabled_d9?
      Array.new(times) { @rand_source.roll_d9() }
    else
      @rand_source.roll_barabara(times, sides)
    end

  dice_list.sort! if @game_system.sort_add_dice?
  rand_results = dice_list.map { |value| RandResult.new(sides, value) }
  @rand_results.concat(rand_results)

  dice_list
end