class RollD20::RollD20
Public Class Methods
roll(dice_info, return_arr=false)
click to toggle source
# File lib/roll_d20.rb, line 6 def self.roll dice_info, return_arr=false num_dice = self.get_number_of_dice dice_info num_sides = self.get_number_of_sides dice_info modifier = self.get_modifier dice_info rolls =[] num_dice.times do actual_roll = 1 +rand(num_sides) rolls << actual_roll end if return_arr rolls return rolls << modifier else sum = 0 rolls.each { |roll| sum += roll } return sum + modifier end end
roll_multiple(dice_info, num_times)
click to toggle source
# File lib/roll_d20.rb, line 28 def self.roll_multiple dice_info, num_times output = [] num_times.times do roll = self.roll dice_info output << roll end output end
Private Class Methods
get_modifier(dice_info)
click to toggle source
# File lib/roll_d20.rb, line 47 def self.get_modifier dice_info if dice_info.include? '+' modifier = dice_info.split('d')[1].split('+')[1].to_i elsif dice_info.include? '-' modifier = 0 - dice_info.split('d')[1].split('-')[1].to_i else modifier = 0 end modifier end
get_number_of_dice(dice_info)
click to toggle source
# File lib/roll_d20.rb, line 39 def self.get_number_of_dice dice_info dice_info.split('d')[0].to_i end
get_number_of_sides(dice_info)
click to toggle source
# File lib/roll_d20.rb, line 43 def self.get_number_of_sides dice_info dice_info.split('d')[1].split('+')[0].to_i end