Files
flippr-game/events/EndBallEvent.py
Jonas Zeunert 66089d0d4d next player
2022-08-30 19:19:25 +02:00

45 lines
1.4 KiB
Python

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)
self.gameState.nextPlayer()
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)