changeset 41:a07bb1dabe9a

make some monsters start asleep
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Tue, 23 Aug 2011 21:50:34 +0200
parents 9c5ba35a6596
children 635af8abf7d1
files monster.py
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/monster.py	Tue Aug 23 21:45:10 2011 +0200
+++ b/monster.py	Tue Aug 23 21:50:34 2011 +0200
@@ -92,6 +92,7 @@
         self.dead = False
         self.effects = []
         self.hp = self.max_hp
+        self.asleep = False
 
     def render(self, to_display):
         self.sprite = MonsterSprite(self.x, self.y, self.tx)
@@ -102,6 +103,7 @@
         to_display.sprites.add(thing.ShadowSprite(self.sprite))
 
     def hit(self, damage=1):
+        self.asleep = False
         self.effects.append(
             effect.Caption(self.x, self.y, '%d' % (-damage), (255, 128, 16)))
         self.hp -= damage
@@ -121,6 +123,9 @@
             self.attack(level, level.hero.x - self.x, level.hero.y - self.y)
             return
 
+        if self.asleep:
+            return
+
         # Walk towards the hero
         possible = [(dx, dy) for (dx, dy) in dirs if
                     not self.is_blocked(level, dx, dy)]
@@ -151,6 +156,7 @@
         self.sprite.animation.next()
 
     def attack(self, level, dx, dy):
+        self.asleep = False
         if not (level.hero.x, level.hero.y) == (self.x + dx, self.y + dy):
             return
         self.sprite.animation = self.sprite.anim_fight(dx, dy)
@@ -188,6 +194,9 @@
                 self.attack(level, level.hero.x - self.x, level.hero.y - self.y)
                 return
 
+        if self.asleep:
+            return
+
         # Move randomly (very annoying)
         possible = [(dx, dy) for (dx, dy) in dirs if
                     not self.is_blocked(level, dx, dy)]
@@ -214,6 +223,7 @@
     tx = 5
     name = "eye"
     max_hp = 7
+    asleep = True
 
 
 class Jelly(Monster):