Class: CoopAl::RandomEncounterGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/coop_al/random_encounter_generator.rb

Overview

RandomEncounterGenerator

Instance Method Summary collapse

Constructor Details

#initialize(name, parent, bestiary) ⇒ RandomEncounterGenerator

Returns a new instance of RandomEncounterGenerator.



6
7
8
9
10
11
# File 'lib/coop_al/random_encounter_generator.rb', line 6

def initialize(name, parent, bestiary)
  @name = name
  @parent = parent
  @bestiary = bestiary
  @encounter = RandomEncounter.new(name, parent)
end

Instance Method Details

#fixed(*args, &blk) ⇒ Object Also known as: f



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/coop_al/random_encounter_generator.rb', line 18

def fixed(*args, &blk)
  generator = EncounterGenerator.new(@name, @parent, @bestiary)
  entry = generator.generate_encounter(&blk)
  if args.empty?
    @encounter.add_entry(entry)
  else
    roll = args.shift
    if roll.is_a?(Integer)
      @encounter.set_entry(roll, entry)
    elsif roll.is_a?(Range)
      @encounter.set_range(roll, entry)
    else
      raise "Inappropriate roll descriptor (#{roll})"
    end
  end
end

#generate_encounter(&blk) ⇒ Object



13
14
15
16
# File 'lib/coop_al/random_encounter_generator.rb', line 13

def generate_encounter(&blk)
  instance_eval(&blk)
  @encounter
end