changeset 41:cb099f2e631b

added configurable targets
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 10 Sep 2011 11:33:20 +0200
parents d0dc54dc8dad
children dbda06fd85f8
files level01.map qq.py
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/level01.map	Sat Sep 10 11:28:16 2011 +0200
+++ b/level01.map	Sat Sep 10 11:33:20 2011 +0200
@@ -28,6 +28,7 @@
 tile = 1, 3
 sprite = patient.png
 monster = true
+target = h
 
 [h]
 name = bed
--- a/qq.py	Sat Sep 10 11:28:16 2011 +0200
+++ b/qq.py	Sat Sep 10 11:33:20 2011 +0200
@@ -154,9 +154,10 @@
 class Monster(Sprite):
     is_monster = True
 
-    def __init__(self, pos=(1, 1), frames=None):
+    def __init__(self, pos=(1, 1), frames=None, target=''):
         Sprite.__init__(self, pos, frames)
         self.direction = 2
+        self.target = target
 
     def go(self, level, direction):
         x, y = self.pos
@@ -350,7 +351,8 @@
                 sprite = Player(pos)
                 self.player = sprite
             elif tile.get('monster') in ('true', '1', 'yes', 'on'):
-                sprite = Monster(pos, SPRITE_CACHE[tile["sprite"]])
+                sprite = Monster(pos, SPRITE_CACHE[tile["sprite"]],
+                                 tile.get('target', ''))
                 self.monsters.append(sprite)
             else:
                 sprite = Sprite(pos, SPRITE_CACHE[tile["sprite"]])
@@ -425,7 +427,8 @@
             # If the player's animation is finished, check for keypresses
             if self.player.animation is None:
                 for monster in self.monsters:
-                    if self.level.map[monster.pos[1]][monster.pos[0]] != 'h':
+                    if (self.level.map[monster.pos[1]][monster.pos[0]]
+                        not in monster.target):
                         break
                 else:
                     return