Mercurial > jelly
changeset 16:e5e4eb7b9443
Add sleep_behavior
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Thu, 15 Mar 2012 09:06:48 +0100 |
| parents | 9bd38901e351 |
| children | e768ce31a8d3 |
| files | jelly/mobs.py |
| diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/jelly/mobs.py Thu Mar 15 08:59:42 2012 +0100 +++ b/jelly/mobs.py Thu Mar 15 09:06:48 2012 +0100 @@ -19,9 +19,16 @@ } +def sleep_behavior(mob, level): + if mob.status.get('asleep', True): + return True + return False + + def attack_behavior(mob, level): if dist(level.pc.pos, mob.pos) <= 1: level.attack(mob, pos2dir(mob.pos, level.pc.pos), level.pc) + mob.status['asleep'] = False return True return False @@ -49,8 +56,8 @@ def slow_behavior(mob, level): - mob.wait = not getattr(mob, 'wait', False) - if mob.wait: + mob.status['wait'] = not mob.status.get('wait', False) + if mob.status['wait']: return True return False @@ -79,6 +86,7 @@ def __init__(self, (x, y)): self.pos = x, y self.hp = self.max_hp + self.status = {} def make_sprite(self, tiles): sprite = self.Sprite(tiles, self.pos, self.animation) @@ -92,6 +100,7 @@ def hit(self, level, attacker): self.hp -= 1 + self.status['asleep'] = False if self.hp <= 0: level.kill(self) return True @@ -108,7 +117,7 @@ name = 'purple jelly' color = 1 animation = [46, 46, 47, 47, 47, 47] - behaviors = [attack_behavior, wander_behavior] + behaviors = [attack_behavior, sleep_behavior, wander_behavior] class RedJelly(Mob):
