Files
flippr-game/events/StartGameEvent.py
Jonas Zeunert 10c45939db haha
2022-09-03 13:09:44 +02:00

60 lines
1.6 KiB
Python

from Event import Event
from events.StartBallEvent import StartBallEvent
from solenoids.OutHoleSolenoid import OutHoleSolenoid
from solenoids.MainFlipper import MainFlipper
from threading import Timer
import config
from lamps.LampGroup import PLAYER_LAMPS
class StartGameEvent(Event):
playerCount = 1
timer = None
def __init__(self, gameState):
self.gameState = gameState
self.flipper = MainFlipper()
self.outHoleSolenoid = OutHoleSolenoid()
super().__init__("Start Game Event")
def restart_timer(self):
if self.timer is not None:
self.timer.cancel()
self.timer = Timer(interval=config.PLAYER_CHOOSE_INTERVAL, function=self.player_choose_ended)
self.timer.start()
def trigger(self, target):
if self.gameState.isStarted:
return
super().trigger(target)
if self.gameState.isIdle:
self.gameState.stopIdleLoop()
if self.timer is None:
PLAYER_LAMPS.deactivate()
PLAYER_LAMPS.activateNext()
self.restart_timer()
return
self.restart_timer()
if self.playerCount == config.MAX_PLAYERS:
PLAYER_LAMPS.deactivate()
PLAYER_LAMPS.activateNext()
self.playerCount = 1
return
PLAYER_LAMPS.activate_one(self.playerCount)
self.playerCount += 1
def player_choose_ended(self):
self.timer = None
PLAYER_LAMPS.deactivate()
self.gameState.startGame(self.playerCount)
#StartBallEvent().trigger(None)