diff mamba/snake.py @ 153:9c47bf162ea1

snake has plastic surgery
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Tue, 13 Sep 2011 22:39:37 +0200
parents 20b2cedf0f1d
children e0573297b17c
line wrap: on
line diff
--- a/mamba/snake.py	Tue Sep 13 21:32:38 2011 +0200
+++ b/mamba/snake.py	Tue Sep 13 22:39:37 2011 +0200
@@ -78,7 +78,7 @@
 
     def __init__(self, image_name, tile_pos):
         super(Segment, self).__init__()
-        self._base_image = "/".join(["snake", image_name])
+        self.set_base_image(image_name)
         self._colour_overlay = self.GREEN
         self._orientation = Snake.UP
 
@@ -86,6 +86,9 @@
         self.update_image()
         self.set_tile_pos(tile_pos)
 
+    def set_base_image(self, image_name):
+        self._base_image = "/".join(["snake", image_name])
+
     def make_images(self):
         self._images = {}
         for orientation, muts in [
@@ -112,29 +115,41 @@
 
 
 class Head(Segment):
+    CLOSED = "snake-head"
+    OPEN = "snake-head-mouth-open-r"
+    EYE = mutators.Overlay("tiles/common/snake/snake-head-eye-r.png")
+    TONGUE = mutators.Overlay("tiles/common/snake/snake-head-tongue-r.png")
+
     def __init__(self, tile_pos):
-        self._eye = mutators.Overlay("tiles/common/snake/snake-head-eye-r.png")
-        self._tongue = mutators.Overlay(
-                "tiles/common/snake/snake-head-tongue-r.png")
-        self._detail_mutators = (self._eye,)
-        super(Head, self).__init__("snake-head-mouth-open-r", tile_pos)
+        self._detail_mutators = (self.EYE,)
+        super(Head, self).__init__(self.CLOSED, tile_pos)
+
+    def mouth_open(self):
+        self.set_base_image(self.OPEN)
+        self.make_images()
+        self.update_image()
+
+    def mouth_closed(self):
+        self.set_base_image(self.CLOSED)
+        self.make_images()
+        self.update_image()
 
     def tongue_out(self):
-        self._detail_mutators = (self._eye, self._tongue)
+        self._detail_mutators = (self.EYE, self.TONGUE)
         self.make_images()
         self.update_image()
 
     def tongue_in(self):
-        self._detail_mutators = (self._eye,)
+        self._detail_mutators = (self.EYE,)
         self.make_images()
         self.update_image()
 
 
 class Body(Segment):
     def __init__(self, tile_pos):
-        super(Body, self).__init__("snake-body-r", tile_pos)
+        super(Body, self).__init__("snake-body", tile_pos)
 
 
 class Tail(Segment):
     def __init__(self, tile_pos):
-        super(Tail, self).__init__("snake-tail-r", tile_pos)
+        super(Tail, self).__init__("snake-tail", tile_pos)