class CoopAl::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