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"),