Mercurial > sypikslang
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()