Class: CoopAl::SessionLog

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

Overview

SessionLog

Instance Method Summary collapse

Constructor Details

#initialize(date_generator, options) ⇒ SessionLog

Returns a new instance of SessionLog.



6
7
8
9
10
11
12
13
14
# File 'lib/coop_al/session_log.rb', line 6

def initialize(date_generator, options)
  @date_generator = date_generator
  @encounter_count = options[:encounter_count]
  @party_size = options[:party_size]
  @dm_name = options[:dm_name]
  @accumulated_xp = 0
  @accumulated_treasure = Value.new
  @sessions = []
end

Instance Method Details

#dump(s) ⇒ Object



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

def dump(s)
  @sessions.each { |e| e.dump(s) }
  s.puts "Session Count: #{@sessions.size}"
end

#record_downtime(adventure_name) ⇒ Object



23
24
25
26
# File 'lib/coop_al/session_log.rb', line 23

def record_downtime(adventure_name)
  ensure_active_session(adventure_name)
  active_session.add_encounter(Downtime.new)
end

#record_encounter(adventure_name, encounter_name, monsters, xp, loot) ⇒ Object



16
17
18
19
20
21
# File 'lib/coop_al/session_log.rb', line 16

def record_encounter(adventure_name, encounter_name, monsters, xp, loot)
  ensure_active_session(adventure_name)
  @accumulated_xp += xp / @party_size
  @accumulated_treasure += loot.treasure_value / @party_size
  active_session.add_encounter(SessionEncounter.new(encounter_name, monsters, xp / @party_size, loot.treasure_value / @party_size, loot.items.dup))
end