import logging from lamps.LampGroup import PLAYER_LAMPS from lamps.Lamp import CREDIT from itertools import cycle class GameState: def __init__(self, players, highscore, specialDisplay, currentPlayerID = 0): CREDIT.activate() self.players = cycle(players) self._currentPlayer = None self.gameStateID = currentPlayerID self.highscore = highscore self.credits = 3 self.specialDisplay = specialDisplay self.specialDisplay.printCredits(self.credits) self.isPlaying = False PLAYER_LAMPS.activateNext() def nextPlayer(self): self._currentPlayer = next(self.players) @property def currentPlayer(self): return self._currentPlayer @currentPlayer.setter def currentPlayer(self, player): logging.info("Set active player to player " + str(player.id)) self._currentPlayer = player PLAYER_LAMPS.deactivateCurrent() PLAYER_LAMPS.activateNext() self.currentPlayer.activate()