Add player choosing

This commit is contained in:
rhetenor
2022-08-30 17:06:25 +02:00
parent 269e072010
commit 4c3aa016ba
6 changed files with 71 additions and 31 deletions

View File

@@ -1,10 +1,20 @@
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):
def __init__(self, gameState):
isPlayerChoosing = True
playerCount = 1
timer = None
def __init__(self, gameState, startBallEvent):
self.startBallEvent = startBallEvent
self.gameState = gameState
self.flipper = MainFlipper()
self.outHoleSolenoid = OutHoleSolenoid()
@@ -15,8 +25,23 @@ class StartGameEvent(Event):
return
super().trigger(target)
self.flipper.activate()
self.gameState.nextPlayer()
if not self.isPlayerChoosing:
self.timer = Timer(interval=config.PLAYER_CHOOSE_INTERVAL, function=self.player_choose_ended)
self.timer.start()
return
self.outHoleSolenoid.trigger()
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)