Mercurial > nagslang
changeset 238:28d906fc2ab1
Add a world object to collect some stats
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 04 Sep 2013 22:07:20 +0200 |
parents | 6995dbefdbfb |
children | 30137dc83a72 93a20b51963f |
files | nagslang/engine.py nagslang/screens/area.py nagslang/screens/menu.py nagslang/world.py |
diffstat | 4 files changed, 32 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/nagslang/engine.py Wed Sep 04 22:06:55 2013 +0200 +++ b/nagslang/engine.py Wed Sep 04 22:07:20 2013 +0200 @@ -7,6 +7,7 @@ from nagslang.screens.menu import MenuScreen from nagslang.screens.area import AreaScreen from nagslang.events import ScreenChange +from nagslang.world import World class Engine(object): @@ -15,7 +16,7 @@ self._clock = pygame.time.Clock() self._fps = constants.FPS self._dt = 1. / self._fps - self._world = None # TODO: create the world + self._world = World() self._current_screen = None self._screens = { 'menu': MenuScreen,
--- a/nagslang/screens/area.py Wed Sep 04 22:06:55 2013 +0200 +++ b/nagslang/screens/area.py Wed Sep 04 22:07:20 2013 +0200 @@ -126,11 +126,13 @@ ScreenChange.post('menu') if ev.key == pygame.locals.K_c: self.protagonist.toggle_form() + self.world.transformations += 1 elif DoorEvent.matches(ev): self.protagonist.set_position(ev.dest_pos) if ev.destination != self.name: # Go to anther screen self._disable_render = True + self.world.rooms += 1 ScreenChange.post(ev.destination, self.protagonist) return # else we're teleporting within the screen, and just the
--- a/nagslang/screens/menu.py Wed Sep 04 22:06:55 2013 +0200 +++ b/nagslang/screens/menu.py Wed Sep 04 22:07:20 2013 +0200 @@ -4,7 +4,7 @@ from nagslang.screens.base import Screen from nagslang.events import QuitEvent, ScreenChange -from nagslang.widgets.text import TextWidget +from nagslang.widgets.text import TextWidget, MultiLineWidget class MenuScreen(Screen): @@ -23,6 +23,7 @@ TextWidget((40, 50), 'Start new game'), TextWidget((40, 70), 'Restore saved game'), TextWidget((40, 90), 'Quit'), + MultiLineWidget((60, 120), self.world.get_formatted_stats()), self.cursor, ]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nagslang/world.py Wed Sep 04 22:07:20 2013 +0200 @@ -0,0 +1,26 @@ +# The world object +# +# This is a global object for tracking state across scenes and all that + + +class World(object): + + def __init__(self): + self.transformations = 0 + self.kills = 0 + self.rooms = 0 + + def save(self): + # TODO: Do this + pass + + def load(self): + # TODO: Do this + pass + + def get_formatted_stats(self): + return "\n".join([ + "Times transformed: %d" % self.transformations, + "Enemies killed: %d" % self.kills, + "Rooms entered: %d" % self.rooms + ])