class DiceDSL

Public Class Methods

dice_pool(*args) click to toggle source
# File lib/dicebag.rb, line 20
def dice_pool(*args)
  DicePool.new(*args)
end
parse(dices) click to toggle source
# File lib/dicebag.rb, line 14
def parse(dices)
  %r{^(?<top_or_bottom>t|b)?(?<tb_number>\d)?\[(?<dice>.*)\](?<explode>\*)?(?<plus>\+\d+)?\=?(?<target>.*)?$} =~ dices
  die_set = eval "[" + string_to_dice_array(dice) + "]"
  dice_pool({set: die_set, top: tb_number.to_i, plus: plus.to_i})
end
string_to_dice_array(dice) click to toggle source
# File lib/dicebag.rb, line 24
def string_to_dice_array(dice)
  dice.gsub(/\s+/, '').
    split("+").
    map{|ds| ds.split('d') }.
    collect {|how_many, dice_face| (["d^#{dice_face}"]*how_many.to_i ).join(",") }.
    join(",")
end