class StudioGame::Player

Attributes

health[RW]
name[RW]

Public Class Methods

from_csv(string) click to toggle source
# File lib/studio_game/player.rb, line 47
def self.from_csv(string)
        name, health = string.split(',')
        player = Player.new(name, Integer(health))
end
new(name, health = 150) click to toggle source
# File lib/studio_game/player.rb, line 13
def initialize(name, health = 150)
        @name = name.capitalize
        @health = health
        @found_treasures = Hash.new(0)
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/studio_game/player.rb, line 23
def <=>(other)
        other.score <=> score
end
each_found_treasure() { |treasure| ... } click to toggle source
# File lib/studio_game/player.rb, line 41
def each_found_treasure 
        @found_treasures.each do |name, points|
                yield Treasure.new(name, points)
        end
end
found_treasure(treasure) click to toggle source
# File lib/studio_game/player.rb, line 35
def found_treasure(treasure)
        @found_treasures[treasure.name] += treasure.points
        puts "#{@name} then found a #{treasure.name} - that's worth #{treasure.points}pts!"
        puts "#{@name}'s treasure chest (#{@found_treasures}) is now worth #{@found_treasures.values.reduce(:+)}pts"
end
points() click to toggle source
# File lib/studio_game/player.rb, line 27
def points
        @found_treasures.values.reduce(0, :+)
end
score() click to toggle source
# File lib/studio_game/player.rb, line 31
def score 
        @health + points
end
to_s() click to toggle source
# File lib/studio_game/player.rb, line 19
def to_s
        "#{@name} has #{@health}HP & #{points} Treasure pts for a total of #{score}GP"
end