class SuperDice
Public Class Methods
roll(dice_info, return_arr=false)
click to toggle source
# File lib/super_dice.rb, line 3 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
Private Class Methods
get_modifier(dice_info)
click to toggle source
# File lib/super_dice.rb, line 36 def self.get_modifier dice_info if dice_info.include? '+' modifier = 0 - 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/super_dice.rb, line 28 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/super_dice.rb, line 32 def self.get_number_of_sides dice_info dice_info.split('d')[1].split('+')[1].to_i end