changeset 100:b5b6cbf556e6

Make start new game start a new game. Add Resume to main menu
author Neil Muller <neil@dip.sun.ac.za>
date Tue, 24 Aug 2010 08:48:50 +0200
parents 367b1c9c3c6d
children 19d784fd3918
files gamelib/gamescreen.py gamelib/menu.py
diffstat 2 files changed, 21 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/gamescreen.py	Tue Aug 24 08:16:56 2010 +0200
+++ b/gamelib/gamescreen.py	Tue Aug 24 08:48:50 2010 +0200
@@ -126,13 +126,20 @@
 class GameScreen(Screen):
     def __init__(self, shell):
         Screen.__init__(self, shell)
+        self.running = False
 
+    def _clear_all(self):
+        for widget in self.subwidgets[:]:
+            self.remove(widget)
+
+    def start_game(self):
+        self._clear_all()
         # TODO: Randomly plonk the state here for now
         self.state = initial_state()
         self.state_widget = StateWidget(self.state)
         self.add(self.state_widget)
 
-        self.popup_menu = PopupMenu(shell)
+        self.popup_menu = PopupMenu(self.shell)
         self.menubutton = PopupMenuButton('Menu',
                 action=self.popup_menu.show_menu)
 
@@ -153,8 +160,7 @@
 
         self.detail = DetailWindow(self.state)
 
-        # Test items
-        self.state.add_inventory_item('triangle')
+        self.running = True
 
     def show_detail(self):
         self.state_widget.add_centered(self.detail)
--- a/gamelib/menu.py	Tue Aug 24 08:16:56 2010 +0200
+++ b/gamelib/menu.py	Tue Aug 24 08:48:50 2010 +0200
@@ -10,17 +10,28 @@
     def __init__(self, shell):
         Screen.__init__(self, shell)
         StartButton = Button('Start New Game', action = self.start)
+        ResumeButton = Button('Resume Game', action = self.resume,
+                enable=self.check_running)
         QuitButton = Button('Quit', action = shell.quit)
         Title = Label('Suspended Sentence')
         menu = Column([
             Title,
             StartButton,
+            ResumeButton,
             QuitButton,
             ], align='l', spacing=20)
         self.add_centered(menu)
 
     def start(self):
-        print 'Starting the game'
+        self.shell.game_screen.start_game()
         self.shell.show_screen(self.shell.game_screen)
 
+    def check_running(self):
+        return self.shell.game_screen.running
 
+    def resume(self):
+        if self.shell.game_screen.running:
+            self.shell.show_screen(self.shell.game_screen)
+
+
+