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
+            ])