class CoopAl::EncounterGenerator
Public Class Methods
new(name, parent, bestiary)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 6 def initialize(name, parent, bestiary) @bestiary = bestiary @encounter = Encounter.new(name, parent) end
Public Instance Methods
encounter(name, &blk)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 38 def encounter(name, &blk) generator = EncounterGenerator.new(name, @encounter, @bestiary) @encounter.add_sub_encounter(generator.generate_encounter(&blk)) end
generate_encounter(&blk)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 11 def generate_encounter(&blk) instance_eval(&blk) @encounter end
item(description)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 34 def item(description) items(1, description) end
items(count, description)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 30 def items(count, description) @encounter.add_item(Item.new(expand_count(count), description, @encounter)) end
monster(id, treasure = :default)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 22 def monster(id, treasure = :default) monsters(1, id, treasure) end
monsters(count, id, treasure = :default)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 16 def monsters(count, id, treasure = :default) expand_count(count).times do @encounter.add_monster(@bestiary.create(id, treasure, @encounter)) end end
npc(cr)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 52 def npc(cr) xp(XpRewardTable.new[cr]) end
npcs(count, cr)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 56 def npcs(count, cr) xp(count * XpRewardTable.new[cr]) end
random(name, &blk)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 43 def random(name, &blk) generator = RandomEncounterGenerator.new(name, @encounter, @bestiary) @encounter.add_sub_encounter(generator.generate_encounter(&blk)) end
treasure(value, description = nil)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 26 def treasure(value, description = nil) @encounter.add_treasure(Treasure.new(value, description)) end
xp(amount)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 48 def xp(amount) @encounter.add_xp(amount) end
Private Instance Methods
expand_count(count)
click to toggle source
# File lib/coop_al/encounter_generator.rb, line 62 def expand_count(count) return roll_dice(count) if count.is_a?(String) count end