class CoopAl::SessionLog
Public Class Methods
new(date_generator, options)
click to toggle source
# 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
Public Instance Methods
dump(s)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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
Private Instance Methods
active_session()
click to toggle source
# File lib/coop_al/session_log.rb, line 39 def active_session @sessions.last end
ensure_active_session(adventure_name)
click to toggle source
# File lib/coop_al/session_log.rb, line 35 def ensure_active_session(adventure_name) start_new_session(adventure_name) if @sessions.empty? || active_session.done? end
session_number()
click to toggle source
# File lib/coop_al/session_log.rb, line 47 def session_number @sessions.size + 1 end
start_new_session(adventure_name)
click to toggle source
# File lib/coop_al/session_log.rb, line 43 def start_new_session(adventure_name) @sessions.push(Session.new(session_number, @date_generator, adventure_name, @dm_name, @accumulated_xp, @accumulated_treasure.dup, @encounter_count)) end