Add player choosing
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user