simplify next player logic
This commit is contained in:
26
GameState.py
26
GameState.py
@@ -1,11 +1,13 @@
|
|||||||
import logging
|
import logging
|
||||||
from lamps.LampGroup import PLAYER_LAMPS
|
from lamps.LampGroup import PLAYER_LAMPS
|
||||||
from lamps.Lamp import CREDIT
|
from lamps.Lamp import CREDIT
|
||||||
|
from itertools import cycle
|
||||||
|
|
||||||
class GameState:
|
class GameState:
|
||||||
def __init__(self, players, highscore, specialDisplay, currentPlayerID = 0):
|
def __init__(self, players, highscore, specialDisplay, currentPlayerID = 0):
|
||||||
CREDIT.activate()
|
CREDIT.activate()
|
||||||
self.players = players
|
self.players = cycle(players)
|
||||||
|
self._currentPlayer = cycle.next()
|
||||||
self.gameStateID = currentPlayerID
|
self.gameStateID = currentPlayerID
|
||||||
self.highscore = highscore
|
self.highscore = highscore
|
||||||
self.credits = 3
|
self.credits = 3
|
||||||
@@ -15,29 +17,17 @@ class GameState:
|
|||||||
PLAYER_LAMPS.activateNext()
|
PLAYER_LAMPS.activateNext()
|
||||||
|
|
||||||
def nextPlayer(self):
|
def nextPlayer(self):
|
||||||
if not self.isPlaying:
|
self._currentPlayer = next(self.players)
|
||||||
self.isPlaying = True
|
|
||||||
nextPlayer = self.players[0].id
|
|
||||||
else:
|
|
||||||
nextPlayer = self.players[1].id
|
|
||||||
self.currentPlayer = nextPlayer
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def currentPlayer(self):
|
def currentPlayer(self):
|
||||||
return self.players[0]
|
return self._currentPlayer
|
||||||
|
|
||||||
@currentPlayer.setter
|
@currentPlayer.setter
|
||||||
def currentPlayer(self, playerId):
|
def currentPlayer(self, player):
|
||||||
if(playerId > len(self.players)):
|
logging.info("Set active player to player " + str(player.id))
|
||||||
pass # todo throw error
|
|
||||||
|
|
||||||
logging.info("Set active player to player " + str(playerId))
|
|
||||||
|
|
||||||
savedPlayer = self.players[0]
|
|
||||||
self.players[0] = next(filter(lambda x: playerId == x.id, self.players))
|
|
||||||
self.players.remove(savedPlayer)
|
|
||||||
self.players.append(savedPlayer)
|
|
||||||
|
|
||||||
|
self._currentPlayer = player
|
||||||
PLAYER_LAMPS.deactivateCurrent()
|
PLAYER_LAMPS.deactivateCurrent()
|
||||||
PLAYER_LAMPS.activateNext()
|
PLAYER_LAMPS.activateNext()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user