changeset 106:5977a709f8c8

Refactor out a bunch of common gui code stuff (since Jermery's not touching this)
author Neil Muller <drnlmuller@gmail.com>
date Wed, 09 May 2012 22:19:09 +0200
parents 86a6434c4eb2
children bdd11db41124
files gamelib/gamegui.py
diffstat 1 files changed, 23 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/gamegui.py	Wed May 09 22:18:09 2012 +0200
+++ b/gamelib/gamegui.py	Wed May 09 22:19:09 2012 +0200
@@ -310,13 +310,12 @@
         self.add_child(won)
 
 
-class ActivityWindow(Window):
+class GameStateWindow(Window):
+    """Base class for windows that show a lot of game state info"""
 
-    def __init__(self, screen, lab, develop):
-        super(ActivityWindow, self).__init__(screen)
-        self.lab = lab
-        self.develop = develop
-        self.game = lab.game
+    def __init__(self, screen, game):
+        super(GameStateWindow, self).__init__(screen)
+        self.game = game
         self.screen = screen
         exitbut = ExitGameButton()
         self.add_child(exitbut)
@@ -335,9 +334,22 @@
         self.reputation = ValueLabel((310, 95), 'Reputation')
         self.add_child(self.reputation)
 
+    def update_labels(self):
+        self.points.set_value(self.game.get_available_points())
+        self.money.set_value(self.game.money)
+        self.milestone.set_value(self.game.milestone)
+        self.reputation.set_value(self.game.reputation)
+
+
+class ActivityWindow(GameStateWindow):
+
+    def __init__(self, screen, lab, develop):
+        super(ActivityWindow, self).__init__(screen, lab.game)
+        self.lab = lab
+        self.develop = develop
+
         labbut = SwitchWinButton((150, 10), 'Research', lab)
         self.add_child(labbut)
-
         devbut = SwitchWinButton((300, 10), 'Development', develop)
         self.add_child(devbut)
 
@@ -373,12 +385,6 @@
     def update(self):
         self.update_labels()
 
-    def update_labels(self):
-        self.points.set_value(self.game.get_available_points())
-        self.money.set_value(self.game.money)
-        self.milestone.set_value(self.game.milestone)
-        self.reputation.set_value(self.game.reputation)
-
     def do_reset(self):
         self.lab.reset()
         self.develop.reset()
@@ -399,29 +405,12 @@
         self.update_labels()
 
 
-class DevelopmentWindow(Window):
+class DevelopmentWindow(GameStateWindow):
     """Window for handling schematics research"""
 
     def __init__(self, screen, lab):
-        super(DevelopmentWindow, self).__init__(screen)
+        super(DevelopmentWindow, self).__init__(screen, lab.game)
         self.lab = lab
-        self.game = lab.game
-        exitbut = ExitGameButton()
-        self.add_child(exitbut)
-        end_turn = EndTurnButton(self)
-        self.add_child(end_turn)
-        reset = ResetButton(self)
-        self.add_child(reset)
-
-        self.points = ValueLabel((10, 75), 'Available Human Resources')
-        self.add_child(self.points)
-        self.money = ValueLabel((310, 75), 'Money')
-        self.add_child(self.money)
-
-        self.milestone = ValueLabel((10, 95), 'Currently taken over')
-        self.add_child(self.milestone)
-        self.reputation = ValueLabel((310, 95), 'Reputation')
-        self.add_child(self.reputation)
 
         labbut = SwitchWinButton((150, 10), 'Research', lab)
         self.add_child(labbut)
@@ -468,12 +457,6 @@
     def update(self):
         self.update_labels()
 
-    def update_labels(self):
-        self.points.set_value(self.game.get_available_points())
-        self.money.set_value(self.game.money)
-        self.milestone.set_value(self.game.milestone)
-        self.reputation.set_value(self.game.reputation)
-
     def do_reset(self):
         self.reset()
         self.lab.reset()
@@ -484,31 +467,14 @@
             widget.reset()
 
 
-class LabWindow(Window):
+class LabWindow(GameStateWindow):
     """Window for the research lab"""
 
     def __init__(self, screen, game_dict):
-        super(LabWindow, self).__init__(screen)
-        self.screen = screen
         self.game = Game(game_dict)
-        exit = ExitGameButton()
-        self.add_child(exit)
-        end_turn = EndTurnButton(self)
-        self.add_child(end_turn)
-        reset = ResetButton(self)
-        self.add_child(reset)
+        super(LabWindow, self).__init__(screen, self.game)
         self.autosave = get_save_filename()
 
-        self.points = ValueLabel((10, 75), 'Available Human Resources')
-        self.add_child(self.points)
-        self.money = ValueLabel((310, 75), 'Money')
-        self.add_child(self.money)
-
-        self.milestone = ValueLabel((10, 95), 'Currently taken over')
-        self.add_child(self.milestone)
-        self.reputation = ValueLabel((310, 95), 'Reputation')
-        self.add_child(self.reputation)
-
         self.develop = DevelopmentWindow(screen, self)
         self.activity = ActivityWindow(screen, self, self.develop)
         self.develop.set_activity_window(self.activity)
@@ -569,12 +535,6 @@
     def update(self):
         self.update_labels()
 
-    def update_labels(self):
-        self.points.set_value(self.game.get_available_points())
-        self.money.set_value(self.game.money)
-        self.milestone.set_value(self.game.milestone)
-        self.reputation.set_value(self.game.reputation)
-
     def do_reset(self):
         self.reset()
         self.develop.reset()