Sha256: 01739469dbb789ca46c4a99fdbbd168fa45bf6edd0013aacf2e6e5c8add9b1e8

Contents?: true

Size: 888 Bytes

Versions: 1

Compression:

Stored size: 888 Bytes

Contents

require_relative 'player'

module StudioGame
  class ClumsyPlayer < Player
    attr_reader :boost_factor
  
    def initialize(name, health=100, boost_factor=1)
      super(name, health)
      @boost_factor = boost_factor
    end
  
    def w00t
      @boost_factor.times { super }
    end
  
    def found_treasure(treasure)
      damaged_treasure = Treasure.new(treasure.name, treasure.points / 2.0)
      super(damaged_treasure)
    end
  end
end

if __FILE__ == $0
  clumsy = ClumsyPlayer.new("klutz", 105, 3)  
  
  hammer = Treasure.new(:hammer, 50)
  clumsy.found_treasure(hammer)
  clumsy.found_treasure(hammer)
  clumsy.found_treasure(hammer)
  
  crowbar = Treasure.new(:crowbar, 400)
  clumsy.found_treasure(crowbar)
  
  clumsy.each_found_treasure do |treasure|
    puts "#{treasure.points} total #{treasure.name} points"
  end
  puts "#{clumsy.points} grand total points"
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pragma_studio_game-1.0.0 lib/studio_game/clumsy_player.rb