from Event import Event from events.EndGameEvent import EndGameEvent from events.StartBallEvent import StartBallEvent from solenoids.MainFlipper import MainFlipper from solenoids.TopFlipper import TopFlipper from time import sleep from config import BONUS_SLEEP_TIME from lamps.LampGroup import BONUS_LAMPS class EndBallEvent(Event): def __init__(self, gameState): self.gameState = gameState super().__init__("End Of Ball Event") def trigger(self, target): super().trigger(target) TopFlipper().deactivate() MainFlipper().deactivate() if self.gameState.currentPlayer.replayBall or not self.gameState.currentPlayer.hasBallScored: StartBallEvent().trigger(None) return self.gameState.isPlaying = False self.gameState.currentPlayer.removeBall() self.scorePoints() self.gameState.currentPlayer.deactivate() if self.gameState.currentPlayer.ballsLeft == 0: EndGameEvent().trigger(None) def scorePoints(self): currentPlayer = self.gameState.currentPlayer for i in range(currentPlayer.bonus): bonus = self.gameState.currentPlayer.bonusMultiplier * 1000 self.gameState.currentPlayer.addPoints(bonus) BONUS_LAMPS.deactivateCurrent() sleep(BONUS_SLEEP_TIME)