diff --git a/PlayerState.py b/PlayerState.py index d254f01..56752f4 100644 --- a/PlayerState.py +++ b/PlayerState.py @@ -142,13 +142,13 @@ class PlayerState: self.hasBallScored = False def resetBall(self): + self.resetBanks() + self.resetTargets() self.printSpecial() self.upperPlayfieldTimer = None self.upperPlayfieldTimeIter = iter(UPPER_PLAYFIELD_TIME) self.resetBonus() - self.resetTargets() - self.resetBanks() def resetBonus(self): self.bonus = 0 @@ -196,10 +196,14 @@ class PlayerState: self.specialDisplay.printGameTimeBonus(self.bonusTime) def advanceRightOrangeSpecial(self): + if not self.isActive: + return self.orangeSpecialRight = True self.setOrangeSpecialLit() def advanceLeftOrangeSpecial(self): + if not self.isActive: + return self.orangeSpecialLeft = True self.setOrangeSpecialLit() @@ -213,6 +217,8 @@ class PlayerState: Lamp("Special Orange").activate() def advanceRedSpecial(self): + if not self.isActive: + return self.redSpecial += 1 CHAMP_LAMPS.activateNext() @@ -221,6 +227,8 @@ class PlayerState: Lamp("Special Red").activate() def advanceTunnelScore(self): + if not self.isActive: + return try: self.tunnelScore = next(self.tunnelScoreIter) TUNNEL_SCORE_LAMPS.deactivateCurrent() @@ -230,6 +238,8 @@ class PlayerState: pass def advanceTunnel(self): + if not self.isActive: + return if self.tunnelLit == 5: self.advanceTunnelScore() TUNNEL_LAMPS.deactivate() @@ -241,6 +251,8 @@ class PlayerState: TUNNEL_NUMBER_LAMPS.activateNext() def advanceBonus(self): + if not self.isActive: + return if self.bonus >= 20: return @@ -248,14 +260,17 @@ class PlayerState: BONUS_LAMPS.activateNext() def advanceBonusMultiplier(self): + if not self.isActive: + return try: self.bonusMultiplier = next(self.bonusMultiplierIter) BONUS_MULTIPLIER_LAMPS.activateNext() except StopIteration: pass - def setReplayBall(self): + if not self.isActive: + return self.replayBall = True def addPoints(self, points): @@ -268,6 +283,8 @@ class PlayerState: self.points += points def addBall(self): + if not self.isActive: + return self.ballsLeft += 1 self.specialDisplay.printBallsToPlay(self.ballsLeft) @@ -279,6 +296,8 @@ class PlayerState: self.specialDisplay.printBallsToPlay(self.ballsLeft) def advanceUpperPlayfieldTime(self): + if not self.isActive: + return try: self.upperPlayfieldTime = next(self.upperPlayfieldTimeIter) UPPER_PLAYFIELD_TIME_LAMPS.activateNext() @@ -304,5 +323,7 @@ class PlayerState: self.upperPlayfieldTimer = Timer(1, self.updatePlayfieldTime) def addBonusTimeSecond(self): + if not self.isActive: + return self.bonusTime += 1