diff gamelib/animal.py @ 158:baf857805867

armour works now
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Thu, 03 Sep 2009 21:50:49 +0000
parents 2a1064fae608
children 9b4213f6ea7f
line wrap: on
line diff
--- a/gamelib/animal.py	Thu Sep 03 21:45:57 2009 +0000
+++ b/gamelib/animal.py	Thu Sep 03 21:50:49 2009 +0000
@@ -27,6 +27,7 @@
         self.equipment = []
         self.abode = None
         self.facing = 'left'
+        self.lives = 1
 
     def loop(self, tv, _sprite):
         ppos = tv.tile_to_view(self.pos.to_tuple())
@@ -60,6 +61,13 @@
 
     def equip(self, item):
         self.equipment.append(item)
+        self.draw_equipment(item)
+        if not equipment.is_weapon(item):
+            # redraw weapons on top
+            for weapon in self.weapons():
+                self.draw_equipment(weapon)
+
+    def draw_equipment(self, item):
         if not hasattr(self, 'EQUIPMENT_IMAGE_ATTRIBUTE'):
             return
         eq_image_attr = getattr(item, self.EQUIPMENT_IMAGE_ATTRIBUTE, 'None')
@@ -271,9 +279,11 @@
 
     def _catch_chicken(self, chicken, gameboard):
         """Catch a chicken"""
-        sound.play_sound("kill-chicken.ogg")
+        chicken.lives -= 1
+        if not chicken.lives > 0:
+            sound.play_sound("kill-chicken.ogg")
+            gameboard.remove_chicken(chicken)
         self.closest = None
-        gameboard.remove_chicken(chicken)
         self.hunting = False
         self.last_steps = [] # Forget history here