changeset 38:f6cd326c1169

make chests show "empty"
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Tue, 23 Aug 2011 20:59:00 +0200
parents 98e5639fa00b
children 36e009505a41
files hero.py monster.py
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/hero.py	Tue Aug 23 20:50:36 2011 +0200
+++ b/hero.py	Tue Aug 23 20:59:00 2011 +0200
@@ -112,12 +112,22 @@
             self.y += dy
             self.sprite.animation = self.sprite.anim_walk(dx, dy)
         elif hasattr(block, 'hit'):
-            block.hit()
-            self.sprite.animation = self.sprite.anim_fight(dx, dy)
+            self.attack(level, dx, dy, block)
         else:
             self.sprite.animation = self.sprite.anim_blocked(dx, dy)
         self.sprite.animation.next()
 
+    def attack(self, level, dx, dy, what=None):
+        if what is None:
+            what = level.is_blocked(self.x + dx, self.y + dy)
+        if not hasattr(what, 'hit'):
+            return
+        what.hit()
+        self.sprite.animation = self.sprite.anim_fight(dx, dy)
+        if isinstance(what, thing.Chest):
+            self.effects.append(
+                effect.Caption(self.x + dx, self.y + dy, 'empty', (64, 192, 0)))
+
     def hit(self, damage):
         self.hp -= damage
         self.effects.append(
--- a/monster.py	Tue Aug 23 20:50:36 2011 +0200
+++ b/monster.py	Tue Aug 23 20:59:00 2011 +0200
@@ -140,6 +140,7 @@
             return
         if (level.hero.x, level.hero.y) == (self.x + dx, self.y + dy):
             self.attack(level, dx, dy)
+            return
         del level.monsters[(self.x, self.y)]
         self.x += dx
         self.y += dy