class CoopAl::Session
Public Class Methods
new(number, date_generator, adventure_name, dm_name, starting_xp, starting_treasure, encounter_count)
click to toggle source
# 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
Public Instance Methods
add_encounter(encounter)
click to toggle source
# File lib/coop_al/session.rb, line 19 def add_encounter(encounter) @encounters << encounter end
done?()
click to toggle source
# File lib/coop_al/session.rb, line 23 def done? @encounters.count { |e| e.counts? } == @encounter_count end
dump(s)
click to toggle source
# 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
Private Instance Methods
level(xp)
click to toggle source
# File lib/coop_al/session.rb, line 51 def level(xp) XpRequirementTable.new.level_from_xp(xp) end
treasure_earned()
click to toggle source
# File lib/coop_al/session.rb, line 47 def treasure_earned @encounters.inject(Value.new) { |a, e| a + e.treasure } end
xp_earned()
click to toggle source
# File lib/coop_al/session.rb, line 43 def xp_earned @encounters.inject(0) { |a, e| a + e.xp } end