Mercurial > scrounge
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):
