From 762cb03912f3654ff85939b41dc5f3cf43402086 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Tue, 30 Aug 2022 19:14:21 +0200 Subject: [PATCH] dunno --- GameState.py | 3 ++- events/StartBallEvent.py | 7 ++++++- events/StartGameEvent.py | 2 +- factories/EventFactory.py | 5 +++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/GameState.py b/GameState.py index 1febd73..befd0bb 100644 --- a/GameState.py +++ b/GameState.py @@ -10,6 +10,7 @@ class GameState: players = None credits = config.BALLS_PER_GAME isPlaying = False + isStarted = False def __init__(self, playerStateFactory, highscore, specialDisplay, currentPlayerID = 0): CREDIT.activate() @@ -26,7 +27,7 @@ class GameState: self.currentPlayer = next(self.players) def startGame(self, playerCount): - self.isPlaying = True + self.isStarted = True self.createPlayers(playerCount) self.nextPlayer() diff --git a/events/StartBallEvent.py b/events/StartBallEvent.py index 0b1b8f4..68bd9b0 100644 --- a/events/StartBallEvent.py +++ b/events/StartBallEvent.py @@ -4,11 +4,16 @@ from solenoids.MainFlipper import MainFlipper class StartBallEvent(Event): - def __init__(self): + def __init__(self, gameState = None): + self.gameState = gameState self.flipper = MainFlipper() super().__init__("Start Ball Event") def trigger(self, target): + if self.gameState is not None: + if self.gameState.isPlaying or not self.gameState.isStarted: + return + super().trigger(target) self.flipper.activate() OutHoleSolenoid().trigger() diff --git a/events/StartGameEvent.py b/events/StartGameEvent.py index 6426a86..407a921 100644 --- a/events/StartGameEvent.py +++ b/events/StartGameEvent.py @@ -27,7 +27,7 @@ class StartGameEvent(Event): self.timer.start() def trigger(self, target): - if self.gameState.isPlaying: + if self.gameState.isStarted: return super().trigger(target) diff --git a/factories/EventFactory.py b/factories/EventFactory.py index 06e4b78..21d6881 100644 --- a/factories/EventFactory.py +++ b/factories/EventFactory.py @@ -8,6 +8,7 @@ from events.RightKickerEvent import RightKickerEvent from events.EnterUpperPlayfieldEvent import EnterUpperPlayfieldEvent from events.StartGameEvent import StartGameEvent from events.EndGameEvent import EndGameEvent +from events.StartBallEvent import StartBallEvent from events.BottomRightBankEvent import BottomRightBankEvent from events.BottomLeftBankEvent import BottomLeftBankEvent from events.TopCentralBankEvent import TopCentralBankEvent @@ -93,6 +94,10 @@ class EventFactory: self.__registerEventToTarget(event, self.targets['Credit']) return event + def createStartBallEvent(self): + event = StartBallEvent(self.gameState) + self.__registerEventToTarget(event, self.targets['Credit']) + return event def createBottomLeftBankEvent(self): event = BottomLeftBankEvent(self.gameState) self.__registerEventToTarget(event, self.targets["Left Bank"])