Platinum Partner

Ruby Dice Roller Plus!

So you are happy with the original Ruby Dice roller, but wish you could combine dice rolls or add bonuses just like you might in D&D?

Well wish no more!


class Dicer
  attr_accessor :rolls, :total, :bonus

  def initialize
    @rolls = []
    @total = 0
    @bonus = 0
  end

  def +(bonus)
    if bonus.instance_of?(Fixnum)
      @bonus += bonus
      @total += bonus
    else
      @rolls += bonus.rolls
      @total += bonus.total
      @bonus += bonus.total
    end
    self
  end
end

class Fixnum

  def d(sides=2)
    out = Dicer.new{|h,k| h[k] = []}
    self.times {
      out.rolls << 1 + rand(sides)
    }
    out.total = out.rolls.inject{|sum,n| sum + n}
    out
  end

end



Usage:

>> d = Dicer.new
=> #
>> 3.d(6)
=> #
>> 3.d(6)+1
=> #
>> 3.d(6)+2+1.d(4)
=> #
{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}