class CoopAl::SessionEncounter

SessionEncounter

Attributes

treasure[R]
xp[R]

Public Class Methods

new(name, monsters, xp, treasure, items) click to toggle source
# File lib/coop_al/session_encounter.rb, line 7
def initialize(name, monsters, xp, treasure, items)
  @name = name
  @monster_counts = monster_counts(monsters)
  @monsters = monsters.uniq.sort
  @xp = xp
  @treasure = treasure
  @items = items
end

Public Instance Methods

counts?() click to toggle source
# File lib/coop_al/session_encounter.rb, line 16
def counts?
  @xp.nonzero?
end
dump(s) click to toggle source
# File lib/coop_al/session_encounter.rb, line 20
def dump(s)
  s.puts "Encounter: #{@name}"
  s.puts " Monsters: #{monsters_s}"
  s.puts " XP: #{@xp}"
  s.puts " Treasure: #{@treasure}" unless @treasure.zero?
  s.puts " Items: #{items_s}" unless @items.empty?
end

Private Instance Methods

items_s() click to toggle source
# File lib/coop_al/session_encounter.rb, line 51
def items_s
  @items.map(&:to_s).join(', ')
end
monster_counts(monsters) click to toggle source
# File lib/coop_al/session_encounter.rb, line 30
def monster_counts(monsters)
  results = {}
  monsters.each do |m|
    if results.key?(m)
      results[m] += 1
    else
      results[m] = 1
    end
  end
  results
end
monsters_s() click to toggle source
# File lib/coop_al/session_encounter.rb, line 42
def monsters_s
  @monsters.map { |m| pluralize(m, @monster_counts[m]) }.join(', ')
end
pluralize(monster, count) click to toggle source
# File lib/coop_al/session_encounter.rb, line 46
def pluralize(monster, count)
  return monster if count == 1
  "#{monster} (#{count})"
end