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 |