diff nagslang/enemies.py @ 333:3dd32686dbc3

Better wolf claw attack.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 06 Sep 2013 10:49:19 +0200
parents 26d1978fa1da
children a3f1b2f0e3fb
line wrap: on
line diff
--- a/nagslang/enemies.py	Fri Sep 06 03:10:04 2013 +0200
+++ b/nagslang/enemies.py	Fri Sep 06 10:49:19 2013 +0200
@@ -24,6 +24,7 @@
 class Enemy(GameObject):
     """A base class for mobile enemies"""
     enemy_type = None  # Image to use for dead Enemy
+    enemy_damage = None
 
     def __init__(self, space, world, position):
         self._setup_physics(space, position)
@@ -61,6 +62,13 @@
             self.remove = True
             EnemyDeathEvent.post(self.physicser.position, self.enemy_type)
 
+    def collide_with_protagonist(self, protagonist):
+        if self.enemy_damage is not None:
+            protagonist.lose_health(self.enemy_damage)
+
+    def collide_with_claw_attack(self, claw_attack):
+        self.lose_health(claw_attack.damage)
+
 
 class DeadEnemy(GameObject):
     def __init__(self, space, world, position, enemy_type='A'):
@@ -135,7 +143,7 @@
         self._body.apply_impulse(
             (dx * self.impulse_factor, dy * self.impulse_factor))
 
-    def update(self, seconds):
+    def update(self, dt):
         # Calculate the step every frame
         if self._direction == 'away':
             target = self._end_pos
@@ -158,10 +166,7 @@
         if abs(x_step) < 1 and abs(y_step) < 1:
             self._switch_direction()
         self.set_direction(x_step, y_step)
-        super(PatrollingAlien, self).update(seconds)
-
-    def collide_with_protagonist(self, protagonist):
-        protagonist.lose_health(15)
+        super(PatrollingAlien, self).update(dt)
 
     @classmethod
     def requires(cls):
@@ -216,7 +221,7 @@
         self._body.apply_impulse(
             (dx * self.impulse_factor, dy * self.impulse_factor))
 
-    def update(self, seconds):
+    def update(self, dt):
         # Calculate the step every frame
         # Distance to the protagonist
         pos = self._body.position
@@ -241,10 +246,7 @@
         if abs(y_step) < 0.5:
             y_step = 0
         self.set_direction(x_step, y_step)
-        super(ChargingAlien, self).update(seconds)
-
-    def collide_with_protagonist(self, protagonist):
-        protagonist.lose_health(20)
+        super(ChargingAlien, self).update(dt)
 
     @classmethod
     def requires(cls):