Mercurial > nagslang
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):