changeset 304:49fe66680ff8

And even death shall lose it's mysteries
author Neil Muller <drnlmuller@gmail.com>
date Fri, 16 Sep 2011 17:37:28 +0200
parents af202e15167d
children 0ed07dcebff4
files mamba/engine.py mamba/snake.py mamba/sprites.py mamba/widgets/game.py
diffstat 4 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/engine.py	Fri Sep 16 17:35:50 2011 +0200
+++ b/mamba/engine.py	Fri Sep 16 17:37:28 2011 +0200
@@ -97,8 +97,8 @@
     TYPE = "SNAKE_DIED"
 
     @classmethod
-    def post(cls):
-        super(SnakeDiedEvent, cls).post()
+    def post(cls, reason):
+        super(SnakeDiedEvent, cls).post(reason=reason)
 
 
 class LevelCompletedEvent(UserEvent):
--- a/mamba/snake.py	Fri Sep 16 17:35:50 2011 +0200
+++ b/mamba/snake.py	Fri Sep 16 17:37:28 2011 +0200
@@ -108,11 +108,11 @@
             return
         collides = spritecollide(self.head, self.segment_group, False)
         if [s for s in collides if s not in self.segments[:2]]:
-            self.crash()
+            self.crash('You hit yourself!')
 
-    def crash(self):
+    def crash(self, reason='You hit something'):
         play_sound('crash')
-        SnakeDiedEvent.post()
+        SnakeDiedEvent.post(reason)
 
     def exit_level(self):
         LevelCompletedEvent.post()
--- a/mamba/sprites.py	Fri Sep 16 17:35:50 2011 +0200
+++ b/mamba/sprites.py	Fri Sep 16 17:37:28 2011 +0200
@@ -143,7 +143,7 @@
 
     def interact(self, world, segment):
         if self.get_solid(world.snake, segment):
-            world.snake.crash()
+            world.snake.crash('You hit a %s' % self.name)
 
 
 class SingleImageTileSprite(TileSprite):
--- a/mamba/widgets/game.py	Fri Sep 16 17:35:50 2011 +0200
+++ b/mamba/widgets/game.py	Fri Sep 16 17:37:28 2011 +0200
@@ -48,7 +48,8 @@
     def snake_died(self, ev, widget):
         if not self.world.pause():
             return False
-        messagebox = MessageBox((300, 200), 'You died!', self.restart)
+        messagebox = MessageBox((300, 200), 'You died!\n%s' % ev.reason,
+                self.restart)
         self.parent.add(messagebox)
         messagebox.grab_focus()
         self.world.snake.alive = False