diff gamelib/animal.py @ 241:1a7000c8211c

Demolition foxes, including better fox selection.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 05 Sep 2009 11:19:26 +0000
parents 9a6ac9c9ff46
children 4f86c2616cdf
line wrap: on
line diff
--- a/gamelib/animal.py	Sat Sep 05 10:37:43 2009 +0000
+++ b/gamelib/animal.py	Sat Sep 05 11:19:26 2009 +0000
@@ -10,6 +10,7 @@
 from misc import Position
 import sound
 import equipment
+import animations
 
 class Animal(Sprite):
     """Base class for animals"""
@@ -369,14 +370,14 @@
             # We'll head back towards the holes we make/find
             self.landmarks.append(final_pos)
         elif tiles.TILE_MAP[this_tile] == 'fence' and not self.dig_pos:
-            self._dig(final_pos)
+            self._dig(gameboard, final_pos)
             return self.pos
         self.last_steps.append(final_pos)
         if len(self.last_steps) > 3:
             self.last_steps.pop(0)
         return final_pos
 
-    def _dig(self, dig_pos):
+    def _dig(self, gameboard, dig_pos):
         """Setup dig parameters, to be overridden if needed"""
         self.tick = 5
         self.dig_pos = dig_pos
@@ -422,6 +423,16 @@
 class DemoFox(Fox):
     """Demolition Foxes destroy fences easily"""
 
+    DIG_ANIMATION = animations.FenceExplosion
+    IMAGE_FILE = 'sprites/sapper_fox.png'
+
+    def _dig(self, gameboard, dig_pos):
+        """Setup dig parameters, to be overridden if needed"""
+        self.tick = 0 # Costs us nothing to go through a fence.
+        self.dig_pos = dig_pos
+        gameboard.animations.append(self.DIG_ANIMATION(dig_pos))
+        self._make_hole(gameboard)
+
 class GreedyFox(Fox):
     """Greedy foxes eat more chickens"""