changeset 42:635af8abf7d1

make some monsters start asleep
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Tue, 23 Aug 2011 22:04:50 +0200
parents a07bb1dabe9a
children 84989d4aba4e
files hero.py main.py
diffstat 2 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/hero.py	Tue Aug 23 21:50:34 2011 +0200
+++ b/hero.py	Tue Aug 23 22:04:50 2011 +0200
@@ -88,12 +88,22 @@
         self.x, self.y = x, y
         self.effects = []
         self.sprite = HeroSprite()
-        self.hp = 10
+        self.max_hp = 10
+        self.hp = self.max_hp
+        self.regen = 10
+        self.regen_tick = 0
 
     def render(self, to_display):
         to_display.sprites.add(self.sprite)
         to_display.sprites.add(thing.ShadowSprite(self.sprite))
 
+    def tick(self):
+        self.regen_tick += 1
+        if self.regen_tick > self.regen:
+            if self.hp < self.max_hp:
+                self.hp += 1
+            self.regen_tick = 0
+
     def enter(self, level, x, y):
         self.x = x
         self.y = y
@@ -130,6 +140,7 @@
 
     def hit(self, damage):
         self.hp -= damage
+        self.regen_tick = 0
         self.effects.append(
             effect.Caption(self.x, self.y, '%d' % (-damage), (255, 32, 32)))
 
--- a/main.py	Tue Aug 23 21:50:34 2011 +0200
+++ b/main.py	Tue Aug 23 22:04:50 2011 +0200
@@ -35,7 +35,6 @@
             if self.level.map[self.hero.y][self.hero.x] == '>':
                 self.hero.exit(self.level)
                 return
-            self.health.change('HP %d/10' % self.hero.hp)
             pressed = self.display.get_pressed()
             if pygame.locals.K_UP in pressed:
                 self.hero.walk(self.level, 0, -1)
@@ -50,6 +49,8 @@
                 self.hero.walk(self.level, 1, 0)
                 end_turn = True
         if end_turn:
+            self.hero.tick()
+            self.health.change('HP %d/10' % self.hero.hp)
             monsters = self.level.monsters.values()
             for m in monsters:
                 if m.dead: