From 011ff203653397209e05aa91abf10ea97ac04e5b Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Mon, 21 Feb 2022 22:37:46 +0100 Subject: [PATCH] Add: Replay ball if not scored --- PlayerState.py | 14 +++++++++----- events/EndBallEvent.py | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/PlayerState.py b/PlayerState.py index 581998b..ac69588 100644 --- a/PlayerState.py +++ b/PlayerState.py @@ -22,6 +22,7 @@ class PlayerState: bonusMultiplier = 1 ballsLeft = 0 replayBall = False + hasBallScored = False redSpecial = 0 redSpecialLit = False @@ -103,8 +104,9 @@ class PlayerState: def reset(self): self.upperPlayfieldTimer = None - self.replayBall = False self.upperPlayfieldTime = config.BEGINNING_UPPER_PLAYFIELD_TIME + self.replayBall = False + self.hasBallScored = False self.resetBonus() self.resetTargets() @@ -152,7 +154,6 @@ class PlayerState: if self.orangeSpecialLit: Lamp("Special Orange").activate() - def advanceRedSpecial(self): self.redSpecial += 1 CHAMP_LAMPS.activateNext() @@ -173,7 +174,7 @@ class PlayerState: BONUS_LAMPS.activateNext() def advanceBonusMultiplier(self): - if self.bonusMultiplier >= 15: + if self.bonusMultiplier >= 50: return if self.bonusMultiplier == 1: @@ -181,7 +182,7 @@ class PlayerState: elif self.bonusMultiplier == 10: self.bonusMultiplier = 20 elif self.bonusMultiplier == 20: - self.bonusMultiplier == 50 + self.bonusMultiplier == 50 #todo BONUS_MULTIPLIER_LAMPS.activateNext() @@ -189,6 +190,9 @@ class PlayerState: self.replayBall = True def addPoints(self, points): + if not self.hasBallScored: + self.hasBallScored = True + self.points += points self.display.printScore(self.points) @@ -221,7 +225,7 @@ class PlayerState: def updatePlayfieldTime(self): if self.upperPlayfieldTime == 0: self.upperPlayfieldTimer = None - LeaveUpperPlayfieldEvent(self, ) + LeaveUpperPlayfieldEvent(self) return if self.upperPlayfieldTime in [0, 5, 10, 20]: diff --git a/events/EndBallEvent.py b/events/EndBallEvent.py index c6731cc..2864f6f 100644 --- a/events/EndBallEvent.py +++ b/events/EndBallEvent.py @@ -11,7 +11,7 @@ class EndBallEvent(Event): def trigger(self, target): super().trigger(target) - if self.playerState.replayBall: + if self.playerState.replayBall or not self.playerState.hasBallScored: StartBallEvent().trigger(None) return