changeset 30:43ac8c34ab1a default tip

Add killing
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Tue, 28 Aug 2012 15:53:03 +0200
parents 1090d7e5537f
children
files level.map qq.py
diffstat 2 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/level.map	Sat Aug 20 11:27:49 2011 +0200
+++ b/level.map	Tue Aug 28 15:53:03 2012 +0200
@@ -36,6 +36,11 @@
 tile = 0, 3
 sprite = skeleton.png
 block = true
+on_kill = S
+
+[S]
+name = dead skeleton
+tile = 0, 3
 
 [>]
 name = stairs
--- a/qq.py	Sat Aug 20 11:27:49 2011 +0200
+++ b/qq.py	Tue Aug 28 15:53:03 2012 +0200
@@ -192,7 +192,8 @@
         parser = ConfigParser.ConfigParser()
         parser.read(filename)
         self.tileset = parser.get("level", "tileset")
-        self.map = parser.get("level", "map").split("\n")
+        self.map = [list(line) for line in
+                    parser.get("level", "map").split("\n")]
         for section in parser.sections():
             if len(section) == 1:
                 desc = dict(parser.items(section))
@@ -286,6 +287,14 @@
             return True
         return self.get_bool(x, y, 'block')
 
+    def kill(self, x, y):
+        # Note: to show the change, you need to render the map again.
+        # Note: need to find the right sprite and .kill() it.
+        try:
+            self.map[y][x] = self.get_tile(x, y)['kill_to']
+        except KeyError:
+            return
+
 
 class Game(object):
     """The main game object."""