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