Mercurial > nagslang
diff nagslang/enemies.py @ 305:ce11e1cae0ed
Enemies now die
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Fri, 06 Sep 2013 00:17:22 +0200 |
parents | e72025e9aa07 |
children | c2bbb1e70d6f |
line wrap: on
line diff
--- a/nagslang/enemies.py Fri Sep 06 00:16:32 2013 +0200 +++ b/nagslang/enemies.py Fri Sep 06 00:17:22 2013 +0200 @@ -25,6 +25,7 @@ def __init__(self, space, world, position): self._setup_physics(space, position) self._setup_renderer() + self.health = 42 super(Enemy, self).__init__( self._physicser, self.renderer) @@ -47,6 +48,13 @@ def requires(cls): return [("name", "string"), ("position", "coordinates")] + def lose_health(self, amount): + self.health -= amount + if self.health < 0: + self.world.kills += 1 + self.physicser.remove_from_space() + self.remove = True + class PatrollingAlien(Enemy): is_moving = True # Always walking. @@ -130,6 +138,9 @@ def collide_with_protagonist(self, protagonist): protagonist.lose_health(15) + def hit(self, weapon): + self.lose_health(weapon.damage) + @classmethod def requires(cls): return [("name", "string"), ("position", "coordinates"),