Class: CoopAl::Session

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

Overview

Session

Instance Method Summary collapse

Constructor Details

#initialize(number, date_generator, adventure_name, dm_name, starting_xp, starting_treasure, encounter_count) ⇒ Session

Returns a new instance of Session.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/coop_al/session.rb', line 6

def initialize(number, date_generator, adventure_name, dm_name, starting_xp, starting_treasure, encounter_count)
  @number = number
  @date_generator = date_generator
  @adventure_name = adventure_name
  @dm_name = dm_name
  @starting_xp = starting_xp
  @starting_treasure = starting_treasure
  @encounter_count = encounter_count
  @encounters = []

  @date_generator.add_session
end

Instance Method Details

#add_encounter(encounter) ⇒ Object



19
20
21
# File 'lib/coop_al/session.rb', line 19

def add_encounter(encounter)
  @encounters << encounter
end

#done?Boolean

Returns:

  • (Boolean)


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

def done?
  @encounters.count { |e| e.counts? } == @encounter_count
end

#dump(s) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/coop_al/session.rb', line 27

def dump(s)
  s.puts "Adventure: #{@adventure_name}"
  s.puts "Session ##{@number}: #{@date_generator.session(@number)}"
  s.puts "DM: #{@dm_name}"
  s.puts "Starting XP: #{@starting_xp} (level #{level(@starting_xp)})"
  s.puts "XP Earned: #{xp_earned}"
  s.puts "XP Total: #{@starting_xp + xp_earned} (level #{level(@starting_xp + xp_earned)})"
  s.puts "Starting Treasure: #{@starting_treasure}"
  s.puts "Treasure +/-: #{treasure_earned}"
  s.puts "Treasure Total: #{@starting_treasure + treasure_earned}"
  @encounters.each { |e| e.dump(s) if e.counts? }
  s.puts
end