Mercurial > dw
changeset 28:2ccb6995d85d
Monster fights!
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Tue, 18 Dec 2007 02:10:40 +0100 |
| parents | 9897f946b8cc |
| children | f952dcc56f9e |
| files | lib/game.py monster/__init__.py monster/jello.py monster/player.py |
| diffstat | 4 files changed, 39 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/game.py Tue Dec 18 02:00:14 2007 +0100 +++ b/lib/game.py Tue Dec 18 02:10:40 2007 +0100 @@ -82,6 +82,10 @@ self.try_walk(4) elif keys[K_RIGHT] or key_pressed==K_RIGHT: self.try_walk(2) + elif key_pressed==K_SPACE: + av.wait() + self.end_turn() + elif key_pressed==K_ESCAPE: return key_pressed = None
--- a/monster/__init__.py Tue Dec 18 02:00:14 2007 +0100 +++ b/monster/__init__.py Tue Dec 18 02:10:40 2007 +0100 @@ -95,6 +95,19 @@ self.rect.move_ip(delta_x[self.facing]*3, delta_y[self.facing]*2) self.z += delta_y[self.facing]*2 self.animate(self.frames[0], 1) + + def anim_attack(self): + dx = delta_x[self.facing]*6 + dy = delta_y[self.facing]*4-1 + if self.step<=2: + dx = -dx + dy = -dy + self.h-=1 + else: + self.h+=1 + self.rect.move_ip(dx, dy) + self.animate(self.frames[0], 0) + def destroy(self): try: @@ -107,10 +120,10 @@ except KeyError: pass - def hit(self): + def hit(self, damage=5): if self.dead: return - Mesg(self, "-5", color=(255,0,0)) + Mesg(self, "-%d" % damage, color=(255,0,0)) self.die() def die(self):
--- a/monster/jello.py Tue Dec 18 02:00:14 2007 +0100 +++ b/monster/jello.py Tue Dec 18 02:10:40 2007 +0100 @@ -2,16 +2,24 @@ # -*- coding: utf-8 -*- import random - -from monster import Monster +import monster -class Mob(Monster): +class Mob(monster.Monster): def __init__(self, pos, level): - Monster.__init__(self, pos, level, "jello.png") + monster.Monster.__init__(self, pos, level, "jello.png") def act(self): direction = random.randint(1, 4) try: - self.walk(direction) - except: + try: + self.walk(direction) + except monster.MoveBump, e: + self.attack(direction, e.monster) + except monster.MoveError: pass + + def attack(self, direction, monster): + self.step = 4 + self.anim = self.anim_attack + monster.hit() +
--- a/monster/player.py Tue Dec 18 02:00:14 2007 +0100 +++ b/monster/player.py Tue Dec 18 02:10:40 2007 +0100 @@ -45,9 +45,15 @@ self.facing = facing self.image = self.frames[self.facing-1][0] + def wait(self): + self.step = 8 + self.anim = self.anim_stand def attack(self, direction, monster): self.rotate(direction) self.step = 4 self.anim = self.anim_attack monster.hit() + + def hit(self, damage=5): + Mesg(self, "-%d" % damage, color=(255,0,0))
