Sha256: 04a230c1526e73033d4c2cd4036ecd4f2f011c376d17fe67dee30a6bbfbdca82

Contents?: true

Size: 935 Bytes

Versions: 1

Compression:

Stored size: 935 Bytes

Contents

require_relative 'player'
require_relative 'treasure_trove'

module StudioGame
  class ClumsyPlayer < Player

    attr_accessor :boost_factor

    def initialize(name, health=100, boost_factor=1)
      super(name, health)
      @boost_factor = boost_factor
    end

    def found_treasure(treasure)
      damaged_treasure = Treasure.new(treasure.name, treasure.points / 2.0)
      super(damaged_treasure)
    end

    def w00t
      @boost_factor.times { super }
    end
  end

  if __FILE__ == $0
    clumsy = ClumsyPlayer.new("klutz", 105)

    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
end

Version data entries

1 entries across 1 versions & 1 rubygems

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