From 05a802068967e7139381ba7d846c212525efbdb2 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Mon, 6 Jun 2022 22:20:04 +0200 Subject: [PATCH] Add dummy player --- GameState.py | 10 +++++++--- displays/DummyDisplay.py | 12 ++++++++++++ factories/GameFactory.py | 3 ++- factories/PlayerStateFactory.py | 8 ++++++-- 4 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 displays/DummyDisplay.py diff --git a/GameState.py b/GameState.py index 246cfd5..aa8f970 100644 --- a/GameState.py +++ b/GameState.py @@ -4,10 +4,11 @@ from lamps.Lamp import CREDIT from itertools import cycle class GameState: - def __init__(self, players, highscore, specialDisplay, currentPlayerID = 0): + def __init__(self, players, highscore, specialDisplay, dummyPlayer, currentPlayerID = 0): CREDIT.activate() self.players = cycle(players) - self._currentPlayer = None + self.dummyPlayer = dummyPlayer + self._currentPlayer = dummyPlayer self.gameStateID = currentPlayerID self.highscore = highscore self.credits = 3 @@ -27,8 +28,11 @@ class GameState: def currentPlayer(self, player): logging.info("Set active player to player " + str(player.id)) - self._currentPlayer = player + self._currentPlayer = self.dummyPlayer PLAYER_LAMPS.deactivateCurrent() PLAYER_LAMPS.activateNext() self.currentPlayer.activate() + + self._currentPlayer = player + diff --git a/displays/DummyDisplay.py b/displays/DummyDisplay.py new file mode 100644 index 0000000..96883cd --- /dev/null +++ b/displays/DummyDisplay.py @@ -0,0 +1,12 @@ +from displays.Display import Display + + +class DummyDisplay(Display): + def __init__(self): + super(DummyDisplay, self).__init__("DummyDisplay") + + def printContent(self, content): + pass + + def printScore(self, score): + pass \ No newline at end of file diff --git a/factories/GameFactory.py b/factories/GameFactory.py index db36365..e34fc8b 100644 --- a/factories/GameFactory.py +++ b/factories/GameFactory.py @@ -28,8 +28,9 @@ class GameFactory: banks = [targets['Left Bank'], targets['Right Bank'], targets['Top Bank']] players = self.createPlayers(banks) + dummyPlayer = self.gameStateFactory.createDummyPlayerState() - gameState = GameState(players, self.getHighScore(), self.specialDisplay, players[0].id) + gameState = GameState(players, self.getHighScore(), self.specialDisplay, dummyPlayer, players[0].id) eventFactory = EventFactory(targets, gameState) events = eventFactory.allEvents() diff --git a/factories/PlayerStateFactory.py b/factories/PlayerStateFactory.py index b595f61..ac4ea1b 100644 --- a/factories/PlayerStateFactory.py +++ b/factories/PlayerStateFactory.py @@ -1,10 +1,14 @@ from config import * from PlayerState import PlayerState - +from displays.DummyDisplay import DummyDisplay class PlayerStateFactory: def __init__(self, specialDisplay): self.specialDisplay = specialDisplay def createPlayerState(self, display, id, banks): - return PlayerState(display, self.specialDisplay, id, BALLS_PER_GAME, banks) \ No newline at end of file + return PlayerState(display, self.specialDisplay, id, BALLS_PER_GAME, banks) + + def createDummyPlayerState(self): + display = DummyDisplay() + return PlayerState(display, display, -1, -1, None) \ No newline at end of file