Class: CoopAl::Encounter

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

Overview

Encounter

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, parent) ⇒ Encounter

Returns a new instance of Encounter.



8
9
10
11
12
13
14
15
# File 'lib/coop_al/encounter.rb', line 8

def initialize(name, parent)
  @name = name
  @parent = parent
  @monsters = []
  @xp = 0
  @loot = Loot.empty
  @sub_encounters = []
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/coop_al/encounter.rb', line 6

def name
  @name
end

Instance Method Details

#add_item(item) ⇒ Object



41
42
43
# File 'lib/coop_al/encounter.rb', line 41

def add_item(item)
  @loot.add_item(item)
end

#add_monster(monster) ⇒ Object



33
34
35
# File 'lib/coop_al/encounter.rb', line 33

def add_monster(monster)
  @monsters << monster
end

#add_sub_encounter(encounter) ⇒ Object



29
30
31
# File 'lib/coop_al/encounter.rb', line 29

def add_sub_encounter(encounter)
  @sub_encounters << encounter
end

#add_treasure(treasure) ⇒ Object



37
38
39
# File 'lib/coop_al/encounter.rb', line 37

def add_treasure(treasure)
  @loot.add_treasure(treasure)
end

#add_xp(amount) ⇒ Object



45
46
47
# File 'lib/coop_al/encounter.rb', line 45

def add_xp(amount)
  @xp += amount
end

#adventure_nameObject



17
18
19
# File 'lib/coop_al/encounter.rb', line 17

def adventure_name
  @parent.adventure_name
end

#empty?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/coop_al/encounter.rb', line 57

def empty?
  @monsters.empty? && @xp.zero? && @loot.empty?
end

#full_nameObject



21
22
23
24
25
26
27
# File 'lib/coop_al/encounter.rb', line 21

def full_name
  if @parent.nil?
    @name
  else
    @parent.full_name + ' - ' + @name
  end
end

#run(state, log) ⇒ Object



49
50
51
52
53
54
55
# File 'lib/coop_al/encounter.rb', line 49

def run(state, log)
  run_sub_encounters(state, log)
  trace unless empty?
  log.record_encounter(adventure_name, full_name, monster_names, total_xp, total_loot)
  state.add_xp(total_xp)
  state.add_loot(total_loot)
end