Mercurial > fujo
changeset 81:56b1eb2a3b07
heal as the player explores
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 04 Jan 2014 15:16:40 +0100 |
| parents | b94735a56562 |
| children | a262de8e390c |
| files | fujo/game.py fujo/items.py fujo/mobs.py fujo/player.py |
| diffstat | 4 files changed, 19 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/fujo/game.py Sat Jan 04 14:59:24 2014 +0100 +++ b/fujo/game.py Sat Jan 04 15:16:40 2014 +0100 @@ -6,7 +6,6 @@ from . import display from . import level from . import player -from . import things from . import window from . import saves @@ -69,9 +68,11 @@ acted = self.player.act(self.level, self.display) self.player.update(self.display) if acted: - self.level.explore(self.player.pos) - self.display.update_explored(self.level) - self.display.refresh() + explored = self.level.explore(self.player.pos) + if explored: + self.player.explored += explored + self.display.update_explored(self.level) + self.display.refresh() for mob in self.level.mobs.values(): mob.metabolize(self.level) for mob in self.level.mobs.values():
--- a/fujo/items.py Sat Jan 04 14:59:24 2014 +0100 +++ b/fujo/items.py Sat Jan 04 15:16:40 2014 +0100 @@ -51,9 +51,7 @@ level.player.health = min( level.player.health + self.nutrition // 10, level.player.max_health) - level.player.new_labels.append( - window.Label(level.player.rect.midtop, - "%d" % (self.nutrition //10), (0x22, 0xff, 0x00))) + level.player.label("%d" % (self.nutrition //10), (0x22, 0xff, 0x00)) return True def throw(self, level, pos, mob):
--- a/fujo/mobs.py Sat Jan 04 14:59:24 2014 +0100 +++ b/fujo/mobs.py Sat Jan 04 15:16:40 2014 +0100 @@ -16,7 +16,7 @@ COLOR_RED = (0xff, 0x00, 0x00) COLOR_WHITE = (0xee, 0xff, 0xff) COLOR_ORANGE = (0xff, 0xaa, 0x00) - +COLOR_GREEN = (0x22, 0xff, 0x00) def dpos(pos, direction): return pos[0] + DX[direction], pos[1] + DY[direction]
--- a/fujo/player.py Sat Jan 04 14:59:24 2014 +0100 +++ b/fujo/player.py Sat Jan 04 15:16:40 2014 +0100 @@ -7,7 +7,7 @@ from . import items from . import window -from .mobs import Mob, DX, DY, COLOR_RED, COLOR_ORANGE, dpos +from .mobs import Mob, DX, DY, COLOR_RED, COLOR_ORANGE, COLOR_GREEN, dpos from .resources import RES @@ -21,6 +21,8 @@ def __init__(self): self.max_health = 20 super(Player, self).__init__(RES.player) + self.explored = 0 + self.next_heal = 100 self.face = 0 self.animation = None self.level = 0 @@ -72,6 +74,11 @@ self.label("1", COLOR_RED, 4) self.hunger = 0 self.update_status() + if self.explored > self.next_heal: + self.next_heal += 100 + self.health = min(self.max_health, self.health + 1) + self.label("1", COLOR_GREEN, 4) + self.update_status() if self.health <= 0: self.die() @@ -257,6 +264,8 @@ 'armor': self.items.index(self.armor) if self.armor else None, 'items': [item.save() for item in self.items], 'face': self.face, + 'explored': self.explored, + 'next_heal': self.next_heal, }) return data @@ -272,3 +281,5 @@ self.weapon = self.items[data['weapon']] if data['weapon'] else None self.armor = self.items[data['armor']] if data['armor'] else None self.face = data['face'] + self.explored = data['explored'] + self.next_heal = data['next_heal']
