Mercurial > fife-parpg
comparison demos/shooter/scripts/ships/enemies.py @ 471:7a79dc2a0592
Adding the credits window (still needs to be written)
Hopefully fixed some memory leaks.
Moved the flashing code to the appropriate spot (in ShipBase).
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Thu, 15 Apr 2010 15:53:06 +0000 |
parents | 3b04e921c93d |
children | 3164715a0621 |
comparison
equal
deleted
inserted
replaced
470:3b04e921c93d | 471:7a79dc2a0592 |
---|---|
32 super(EnemyActionListener, self).__init__(ship) | 32 super(EnemyActionListener, self).__init__(ship) |
33 | 33 |
34 def onInstanceActionFinished(self, instance, action): | 34 def onInstanceActionFinished(self, instance, action): |
35 if action.getId() == 'explode': | 35 if action.getId() == 'explode': |
36 self._ship.removeFromScene() | 36 self._ship.removeFromScene() |
37 | |
38 super(EnemyActionListener, self).onInstanceActionFinished(instance, action) | |
37 | 39 |
38 class BossActionListener(ShipActionListener): | 40 class BossActionListener(ShipActionListener): |
39 def __init__(self, ship): | 41 def __init__(self, ship): |
40 super(BossActionListener, self).__init__(ship) | 42 super(BossActionListener, self).__init__(ship) |
41 | 43 |
42 def onInstanceActionFinished(self, instance, action): | 44 def onInstanceActionFinished(self, instance, action): |
43 if action.getId() == 'explode': | 45 if action.getId() == 'explode': |
44 self._ship.removeFromScene() | 46 self._ship.removeFromScene() |
45 self._ship.endLevel() | 47 self._ship.endLevel() |
46 elif action.getId() == 'flash': | 48 |
47 if self._ship._flashnumber > 0: | 49 super(BossActionListener, self).onInstanceActionFinished(instance, action) |
48 self._ship.instance.act('flash', self._ship.instance.getFacingLocation()) | 50 |
49 self._ship._flashnumber -= 1 | |
50 else: | |
51 self._ship._flashing = False | |
52 | 51 |
53 class Saucer1(Ship): | 52 class Saucer1(Ship): |
54 def __init__(self, scene, name, instance, findInstance=True): | 53 def __init__(self, scene, name, instance, findInstance=True): |
55 super(Saucer1, self).__init__(scene, name, findInstance) | 54 super(Saucer1, self).__init__(scene, name, findInstance) |
56 self._instance = instance | 55 self._instance = instance |
105 self._actionlistener = EnemyActionListener(self) | 104 self._actionlistener = EnemyActionListener(self) |
106 | 105 |
107 self.hitpoints = 2 | 106 self.hitpoints = 2 |
108 self.scorevalue = 100 | 107 self.scorevalue = 100 |
109 | 108 |
110 | 109 def applyHit(self, hp): |
110 self.flash(1) | |
111 super(Saucer2, self).applyHit(hp) | |
112 | |
111 def update(self): | 113 def update(self): |
112 if self._dir == 1: | 114 if self._dir == 1: |
113 self.applyThrust(fife.DoublePoint(0,-0.25)) | 115 self.applyThrust(fife.DoublePoint(0,-0.25)) |
114 elif self._dir == 0: | 116 elif self._dir == 0: |
115 self.applyThrust(fife.DoublePoint(0,0.25)) | 117 self.applyThrust(fife.DoublePoint(0,0.25)) |
169 | 171 |
170 self._actionlistener = EnemyActionListener(self) | 172 self._actionlistener = EnemyActionListener(self) |
171 | 173 |
172 self.hitpoints = 2 | 174 self.hitpoints = 2 |
173 self.scorevalue = 150 | 175 self.scorevalue = 150 |
176 | |
177 def applyHit(self, hp): | |
178 self.flash(1) | |
179 super(Streaker, self).applyHit(hp) | |
174 | 180 |
175 def update(self): | 181 def update(self): |
176 self.applyThrust(fife.DoublePoint(-0.40,0)) | 182 self.applyThrust(fife.DoublePoint(-0.40,0)) |
177 super(Streaker, self).update() | 183 super(Streaker, self).update() |
178 | 184 |