module BCDice::GameSystem::Cthulhu7th::Rollable

Private Instance Methods

roll_ones_d10() click to toggle source

1D100の一の位用のダイスロール 0から9までの値を返す

@return [Integer]

# File lib/bcdice/game_system/cthulhu7th/rollable.rb, line 11
def roll_ones_d10
  dice = @randomizer.roll_once(10)
  return 0 if dice == 10

  return dice
end
roll_with_bonus(bonus) click to toggle source

@param bonus [Integer] ボーナス・ペナルティダイスの数。負の数ならペナルティダイス。 @return [Array<(Integer, Array<Integer>)>]

# File lib/bcdice/game_system/cthulhu7th/rollable.rb, line 20
def roll_with_bonus(bonus)
  tens_list = Array.new(bonus.abs + 1) { @randomizer.roll_tens_d10 }
  ones = roll_ones_d10()

  dice_list = tens_list.map do |tens|
    dice = tens + ones
    dice == 0 ? 100 : dice
  end

  dice =
    if bonus >= 0
      dice_list.min
    else
      dice_list.max
    end

  return dice, dice_list
end