class Scion::CLI
Public Instance Methods
roll(dice, auto_successes = 0, num_sides = 10, threshold = 7)
click to toggle source
# File lib/scion/cli.rb, line 6 def roll(dice, auto_successes = 0, num_sides = 10, threshold = 7) dice = Integer(dice) auto_successes = Integer(auto_successes) num_sides = Integer(num_sides) threshold = Integer(threshold) die_rolls = (1..dice).map { |_| Random.rand(num_sides) + 1 } puts die_rolls.join(', ') critical_hit = -> (d) { d == num_sides } hit = -> (d) { d >= threshold } successful_die = die_rolls.reduce(0) do |num_successes, die| case die when critical_hit num_successes + 2 when hit num_successes + 1 else num_successes end end successes = successful_die + auto_successes puts "Successes: #{successes}" end