class RpgTools::Dice::Base
Attributes
modifiers[RW]
rolls[RW]
sides[RW]
value[RW]
Public Class Methods
new(sides = 0, modifiers = '')
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 6 def initialize(sides = 0, modifiers = '') @sides = sides.zero? ? sides_count : sides @modifiers = modifiers @value = 0 @rolls = 0 check_sides end
Public Instance Methods
roll()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 15 def roll @rolls += 1 @value = perform_roll end
Private Instance Methods
check_sides()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 41 def check_sides if not_enough_sides raise ArgumentError, 'Your dice must have at least three sides.' end end
not_enough_sides()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 47 def not_enough_sides @sides < 3 end
perform_roll()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 23 def perform_roll return roll_calculation if @modifiers.empty? roll_with_modifiers end
roll_calculation()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 33 def roll_calculation raise NotImplementedError end
roll_with_modifiers()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 29 def roll_with_modifiers Utils::ModifierCalculator.new(roll_calculation, @modifiers).recalculate end
sides_count()
click to toggle source
# File lib/rpg_tools/dice/base.rb, line 37 def sides_count 0 end