35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
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 = cycle.next()
|
|
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()
|