diff --git a/PlayerState.py b/PlayerState.py index 0f9d2f1..eec38ce 100644 --- a/PlayerState.py +++ b/PlayerState.py @@ -22,11 +22,11 @@ class PlayerState: self.specialDisplay.printBallsToPlay(self.ballsLeft) def removeBall(self): + if self.ballsLeft == 0: + return + self.ballsLeft -= 1 self.specialDisplay.printBallsToPlay(self.ballsLeft) - if(self.ballsLeft == 0): - # todo emit endgame Event - pass def addUpperPlayfieldTime(self, time): self.upperPlayfieldTime += time diff --git a/events/EndGameEvent.py b/events/EndGameEvent.py index 95b22f9..2278d06 100644 --- a/events/EndGameEvent.py +++ b/events/EndGameEvent.py @@ -1,11 +1,15 @@ from Event import Event +from solenoids.MainFlipper import MainFlipper +from solenoids.TopFlipper import TopFlipper +#todo temporary +import sys class EndGameEvent(Event): - def __init__(self, flipper): - self.flipper = flipper + def __init__(self): super().__init__("End Game Event") def trigger(self, _): super().trigger() - self.flipper.deactivate() \ No newline at end of file + self.flipper.deactivate() + sys.exit(0) \ No newline at end of file diff --git a/events/EndOfBallEvent.py b/events/EndOfBallEvent.py index d204b58..657e951 100644 --- a/events/EndOfBallEvent.py +++ b/events/EndOfBallEvent.py @@ -1,5 +1,6 @@ from Event import Event +from events.EndGameEvent import EndGameEvent class EndOfBallEvent(Event): def __init__(self, playerState): @@ -9,3 +10,6 @@ class EndOfBallEvent(Event): def trigger(self, _): super().trigger() self.playerState().removeBall() + + if self.playerState().ballsLeft == 0: + EndGameEvent().trigger() diff --git a/factories/EventFactory.py b/factories/EventFactory.py index a92c0fb..458e17f 100644 --- a/factories/EventFactory.py +++ b/factories/EventFactory.py @@ -7,6 +7,7 @@ from events.LeftFlapEvent import LeftFlapEvent from events.RightKickerEvent import RightKickerEvent from events.EnterUpperPlayfieldEvent import EnterUpperPlayfieldEvent from events.StartGameEvent import StartGameEvent +from events.EndGameEvent import EndGameEvent class EventFactory: @@ -56,7 +57,6 @@ class EventFactory: def createStartGameEvent(self): event = StartGameEvent() - self.__registerEventToTarget(event, self.targets['Outhole']) self.__registerEventToTarget(event, self.targets['Credit']) return event diff --git a/solenoids/MainFlipper.py b/solenoids/MainFlipper.py index 84c16b8..507a404 100644 --- a/solenoids/MainFlipper.py +++ b/solenoids/MainFlipper.py @@ -3,4 +3,4 @@ from solenoids.Flipper import Flipper class MainFlipper(Flipper): def __init__(self): - super().__init__("Flipper Relay") \ No newline at end of file + ssluguper().__init__("Flipper Relay") \ No newline at end of file