Class: CoopAl::Encounter
- Inherits:
-
Object
- Object
- CoopAl::Encounter
- Defined in:
- lib/coop_al/encounter.rb
Overview
Encounter
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #add_item(item) ⇒ Object
- #add_monster(monster) ⇒ Object
- #add_sub_encounter(encounter) ⇒ Object
- #add_treasure(treasure) ⇒ Object
- #add_xp(amount) ⇒ Object
- #adventure_name ⇒ Object
- #empty? ⇒ Boolean
- #full_name ⇒ Object
-
#initialize(name, parent) ⇒ Encounter
constructor
A new instance of Encounter.
- #run(state, log) ⇒ Object
Constructor Details
Instance Attribute Details
#name ⇒ Object (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_name ⇒ Object
17 18 19 |
# File 'lib/coop_al/encounter.rb', line 17 def adventure_name @parent.adventure_name end |
#empty? ⇒ Boolean
57 58 59 |
# File 'lib/coop_al/encounter.rb', line 57 def empty? @monsters.empty? && @xp.zero? && @loot.empty? end |
#full_name ⇒ Object
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 |