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