Add: Replay ball if not scored

This commit is contained in:
Jonas Zeunert
2022-02-21 22:37:46 +01:00
parent 57fc86b563
commit 011ff20365
2 changed files with 10 additions and 6 deletions

View File

@@ -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]:

View File

@@ -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