diff mamba/sprites.py @ 181:061d711ba570

Interact with the world.
author Jeremy Thurgood <firxen@gmail.com>
date Wed, 14 Sep 2011 15:27:27 +0200
parents d9ee0e50a78f
children 0a955d2536f0
line wrap: on
line diff
--- a/mamba/sprites.py	Wed Sep 14 14:08:37 2011 +0200
+++ b/mamba/sprites.py	Wed Sep 14 15:27:27 2011 +0200
@@ -82,6 +82,7 @@
     variants_class = InvariantSpriteImageVariants
     variants = None
     name = None
+    alive = True
 
     def __init__(self, tileset=None, image_name=None, name=None,
                  mutators=()):
@@ -117,9 +118,13 @@
         self.tile_char = tile_char
         self.solid = solid
 
-    def get_solid(self, snake_mutations):
+    def get_solid(self, snake):
         return self.solid
 
+    def interact(self, snake):
+        if self.get_solid(snake):
+            snake.crash()
+
 
 class SingleImageTileSprite(TileSprite):
     image_name = None  # subclasses will override this
@@ -166,11 +171,18 @@
         super(PuddleSprite, self).__init__(**kw)
         self.image = self.load_image(*self.get_variant(*variant))
 
+    def get_solid(self, snake):
+        if snake.can_swim():
+            print "Splishy!"
+            return False
+        print "Drownded. :-("
+        return True
+
 
 class EdibleTile(SingleImageTileSprite):
     def eat(self):
-        self.image = None
-        self.solid = False
+        self.alive = False
+        self.kill()
 
 
 class BigMouse(EdibleTile):
@@ -194,4 +206,5 @@
 
     def interact(self, snake):
         print "Swimmery!"
+        snake.mutate('amphibious')
         self.eat()