class RpgTools::DiceBag
Attributes
base[RW]
dices[RW]
rolls[RW]
set[RW]
total[RW]
Public Class Methods
new(base)
click to toggle source
# File lib/rpg_tools/dice_bag.rb, line 5 def initialize(base) @base = base.upcase @dices = set_bag_content(@base.gsub(/[D].+/, '').to_i) @rolls = 0 @set = [] @total = 0 end
Public Instance Methods
roll()
click to toggle source
# File lib/rpg_tools/dice_bag.rb, line 13 def roll @set = roll_dices_set calculate_total_and_show_set end
Also aliased as: roll!
Private Instance Methods
calculate_total_and_show_set()
click to toggle source
# File lib/rpg_tools/dice_bag.rb, line 47 def calculate_total_and_show_set @total = @set.inject{ |sum, x| sum + x } @set end
empty_bag_check(dice_number)
click to toggle source
# File lib/rpg_tools/dice_bag.rb, line 21 def empty_bag_check(dice_number) if dice_number.zero? raise ArgumentError.new("You can't create an empty bag.") end end
roll_dices_set()
click to toggle source
# File lib/rpg_tools/dice_bag.rb, line 37 def roll_dices_set @dices.each do |dice| dice.roll end @dices.each_with_object([]) do |dice, response| response << dice.value end end
set_bag_content(dice_number)
click to toggle source
# File lib/rpg_tools/dice_bag.rb, line 27 def set_bag_content(dice_number) empty_bag_check(dice_number) [].tap do |bag| dice_number.times do bag << Dice.new(@base.gsub(/^\d+/, '')) end end end