Class: StudioGame::Player
- Inherits:
-
Object
- Object
- StudioGame::Player
- Defined in:
- lib/studio_game/player.rb
Instance Attribute Summary collapse
-
#health ⇒ Object
readonly
Returns the value of attribute health.
-
#name ⇒ Object
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #blam ⇒ Object
- #each_found_treasure ⇒ Object
- #found_treasure(treasure) ⇒ Object
-
#initialize(name, health = 100) ⇒ Player
constructor
A new instance of Player.
- #points ⇒ Object
- #score ⇒ Object
- #strong? ⇒ Boolean
- #to_s ⇒ Object
- #w00t ⇒ Object
Constructor Details
#initialize(name, health = 100) ⇒ Player
Returns a new instance of Player.
6 7 8 9 10 |
# File 'lib/studio_game/player.rb', line 6 def initialize(name, health=100) @name = name.capitalize @health = health @found_treasures = Hash.new(0) end |
Instance Attribute Details
#health ⇒ Object (readonly)
Returns the value of attribute health.
4 5 6 |
# File 'lib/studio_game/player.rb', line 4 def health @health end |
#name ⇒ Object
Returns the value of attribute name.
3 4 5 |
# File 'lib/studio_game/player.rb', line 3 def name @name end |
Class Method Details
.from_csv(string) ⇒ Object
12 13 14 15 |
# File 'lib/studio_game/player.rb', line 12 def self.from_csv(string) name, health = string.split(',') new(name, Integer(health)) end |
Instance Method Details
#<=>(other) ⇒ Object
21 22 23 |
# File 'lib/studio_game/player.rb', line 21 def <=>(other) other.score <=> score end |
#blam ⇒ Object
25 26 27 28 |
# File 'lib/studio_game/player.rb', line 25 def blam @health -= 10 puts "#{@name} got balmmed!" end |
#each_found_treasure ⇒ Object
53 54 55 56 57 |
# File 'lib/studio_game/player.rb', line 53 def each_found_treasure @found_treasures.each do |name, points| yield Treasure.new(name, points) end end |
#found_treasure(treasure) ⇒ Object
43 44 45 46 47 |
# File 'lib/studio_game/player.rb', line 43 def found_treasure(treasure) @found_treasures[treasure.name] += treasure.points puts "#{@name} found a #{treasure.name} worth #{treasure.points} points." puts "#{@name}'s treasures: #{@found_treasures}" end |
#points ⇒ Object
49 50 51 |
# File 'lib/studio_game/player.rb', line 49 def points @found_treasures.values.reduce(0, :+) end |
#score ⇒ Object
35 36 37 |
# File 'lib/studio_game/player.rb', line 35 def score @health + points end |
#strong? ⇒ Boolean
39 40 41 |
# File 'lib/studio_game/player.rb', line 39 def strong? @health > 100 end |
#to_s ⇒ Object
17 18 19 |
# File 'lib/studio_game/player.rb', line 17 def to_s "I'm #{@name} with health = #{@health}, points = #{points}, and score = #{score}." end |
#w00t ⇒ Object
30 31 32 33 |
# File 'lib/studio_game/player.rb', line 30 def w00t @health += 15 puts "#{@name} got w00ted!" end |