class CoopAl::LootGenerator
Public Class Methods
new()
click to toggle source
# File lib/coop_al/loot_generator.rb, line 6 def initialize end
Public Instance Methods
generate(cr, treasure)
click to toggle source
# File lib/coop_al/loot_generator.rb, line 9 def generate(cr, treasure) return Loot.empty if treasure == :no_treasure return generate_individual(cr) if treasure == :individual generate_hoard(cr) end
Private Instance Methods
cr_value(cr)
click to toggle source
# File lib/coop_al/loot_generator.rb, line 31 def cr_value(cr) return 0.125 if cr == :cr1_8 return 0.25 if cr == :cr1_4 return 0.5 if cr == :cr1_2 cr[2..-1].to_i end
generate_hoard(_cr)
click to toggle source
# File lib/coop_al/loot_generator.rb, line 38 def generate_hoard(_cr) raise 'Hoard loot not implemented' end
generate_individual(cr)
click to toggle source
# File lib/coop_al/loot_generator.rb, line 17 def generate_individual(cr) table_name = individual_treasure_table_by_cr(cr) treasure = Treasure.new(roll_on(table_name)) Loot.from_treasure(treasure) end
individual_treasure_table_by_cr(cr)
click to toggle source
# File lib/coop_al/loot_generator.rb, line 23 def individual_treasure_table_by_cr(cr) value = cr_value(cr) return :individual_treasure_cr_0_4 if value <= 4 return :individual_treasure_cr_5_10 if value <= 10 return :individual_treasure_cr_11_16 if value <= 16 :individual_treasure_cr_17_ end