Mercurial > sypikslang
view gamelib/gamegui.py @ 56:78dfd429b9a6
Start adding science buttons
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Mon, 07 May 2012 22:54:15 +0200 |
parents | 655a6912e0ae |
children | 9aa0252fb6e4 |
line wrap: on
line source
# -*- coding: utf-8 -*- # vim:fileencoding=utf-8 ai ts=4 sts=4 et sw=4 """Gui for the actual game""" from gamelib.gui_base import Window from gamelib.gui import BigButton from gamelib.engine import PopWindow from gamelib.constants import WIDTH from gamelib.gamestate import Game class ExitGameButton(BigButton): def __init__(self): super(ExitGameButton, self).__init__(((WIDTH - 128), 10), 'Exit') def on_click(self): PopWindow.post() class EndTurnButton(BigButton): def __init__(self, parent): super(EndTurnButton, self).__init__(((WIDTH - 256), 10), 'End Turn') self.parent = parent def on_click(self): self.parent.end_turn() class ResetButton(BigButton): def __init__(self, parent): super(ResetButton, self).__init__((10, 10), 'Reset points') self.parent = parent def on_click(self): self.parent.reset() class ScienceWidget(BigButton): def __init__(self, science, pos, parent): self.science = science self.points = 0 self.parent = parent super(ScienceWidget, self).__init__(pos, '%s: %d' % (science.NAME, science.points)) def on_click(self): if self.parent.available_points > 0: self.points += 1 self.text = '%s: %d' % (self.science.NAME, self.science.points + self.points) self.parent.available_points -= 1 self._draw_text() def reset(self): self.parent.available_points += self.points self.points = 0 self.text = '%s: %d' % (self.science.NAME, self.science.points) self._draw_text() class GameWindow(Window): """Main window for the game""" def __init__(self, screen): super(GameWindow, self).__init__(screen) self.game = Game() exit = ExitGameButton() self.add_child(exit) end_turn = EndTurnButton(self) self.add_child(end_turn) reset = ResetButton(self) self.add_child(reset) self.game.start_turn() self.available_points = self.game.points self._sciences = [] x = 0 y = 200 for science in self.game.lab.science: widget = ScienceWidget(science, (x, y), self) self.add_child(widget) self._sciences.append(widget) x += 100 def end_turn(self): pass def reset(self): for widget in self._sciences: widget.reset()