changeset 265:8a695b8ecd6c

Correcting damage application
author David Sharpe
date Thu, 05 Sep 2013 00:37:48 +0200
parents c1d862334e3d
children 9d05f0c4bca3
files nagslang/constants.py nagslang/enemies.py nagslang/protagonist.py nagslang/screens/area.py
diffstat 4 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/constants.py	Thu Sep 05 00:39:55 2013 +0200
+++ b/nagslang/constants.py	Thu Sep 05 00:37:48 2013 +0200
@@ -16,6 +16,7 @@
 COLLISION_TYPE_ENEMY = 5
 COLLISION_TYPE_DOOR = 6
 COLLISION_TYPE_PROJECTILE = 7
+COLLISION_TYPE_WEREWOLF_ATTACK = 8
 
 SWITCH_PUSHERS = [COLLISION_TYPE_PLAYER, COLLISION_TYPE_BOX]
 
--- a/nagslang/enemies.py	Thu Sep 05 00:39:55 2013 +0200
+++ b/nagslang/enemies.py	Thu Sep 05 00:37:48 2013 +0200
@@ -127,7 +127,7 @@
         super(PatrollingAlien, self).animate()
 
     def collide_with_protagonist(self, protagonist):
-        return 5
+        protagonist.lose_health(15)
 
     @classmethod
     def requires(cls):
--- a/nagslang/protagonist.py	Thu Sep 05 00:39:55 2013 +0200
+++ b/nagslang/protagonist.py	Thu Sep 05 00:37:48 2013 +0200
@@ -219,11 +219,14 @@
     def attack(self):
         """Attempt to hurt something.
         """
-        vec = Vec2d.unit()
-        vec.angle = self.angle
-        vec.length = 100
-        FireEvent.post(self.physicser.position, vec)
-        print "Biff", self.physicser.position, vec
+        if self.in_wolf_form():
+            pass
+        else:
+            vec = Vec2d.unit()
+            vec.angle = self.angle
+            vec.length = 100
+            FireEvent.post(self.physicser.position, vec)
+            print "Biff", self.physicser.position, vec
 
     def in_wolf_form(self):
         return self.form == self.WOLF_FORM
--- a/nagslang/screens/area.py	Thu Sep 05 00:39:55 2013 +0200
+++ b/nagslang/screens/area.py	Thu Sep 05 00:37:48 2013 +0200
@@ -86,8 +86,6 @@
     def _collision_pre_solve_handler(self, space, arbiter):
         gobj = arbiter.shapes[1].physicser.game_object
         result = gobj.collide_with_protagonist(self.protagonist)
-        if arbiter.shapes[1].collision_type == COLLISION_TYPE_ENEMY:
-            self.protagonist.lose_health(15)
         # The collision handler must return `True` or `False`. We don't want to
         # accidentally reject collisions from handlers that return `None`, so
         # we explicitly check for `False` and treate everything else as `True`.