Sha256: 690bb58119886b5a58be9563bccd402ded5131188e06e560be4e795fcbe0a92f

Contents?: true

Size: 1.29 KB

Versions: 2

Compression:

Stored size: 1.29 KB

Contents

require_relative 'player_class'
module StudioGame
    class BerserkPlayer < Player
        def initialize(name, health=100) #overwrites the default method when Player.new is created! Default health is now 100.
            super(name, health)
            @w00t_count = 0
        end

        def berserk? 
            @w00t_count > 5
        end 

        def w00t
            super #kind of like "apply all" here where super calls and applies the whole regular Player w00t method.
            @w00t_count +=1 #additional w00t method instructions specific to berserker subclass.
            puts "#{@name} is berserk!" if berserk? #fancy if statement (prints a warning when statement is true!)
        end

        def blam
            berserk? ? w00t : super #ternary operator rocks. woot if berserk is true, super if false
        end

    end
        # let's get some visible output on how a BerserkPlayer behaves at this point
        # if __FILE__ == $0
        #     berserker = BerserkPlayer.new("berserker", 50)
        #     6.times { berserker.w00t }
        # end

        if __FILE__ == $0
            berserker = BerserkPlayer.new("berserker", 50)
            6.times { berserker.w00t }
            2.times { berserker.blam }
            puts berserker.health
        end
    end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
j_studio_game-1.0.2 lib/berserk_player_class.rb
j_studio_game-1.0.1 lib/berserk_player_class.rb