Add: Replay ball if not scored
This commit is contained in:
@@ -22,6 +22,7 @@ class PlayerState:
|
|||||||
bonusMultiplier = 1
|
bonusMultiplier = 1
|
||||||
ballsLeft = 0
|
ballsLeft = 0
|
||||||
replayBall = False
|
replayBall = False
|
||||||
|
hasBallScored = False
|
||||||
|
|
||||||
redSpecial = 0
|
redSpecial = 0
|
||||||
redSpecialLit = False
|
redSpecialLit = False
|
||||||
@@ -103,8 +104,9 @@ class PlayerState:
|
|||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.upperPlayfieldTimer = None
|
self.upperPlayfieldTimer = None
|
||||||
self.replayBall = False
|
|
||||||
self.upperPlayfieldTime = config.BEGINNING_UPPER_PLAYFIELD_TIME
|
self.upperPlayfieldTime = config.BEGINNING_UPPER_PLAYFIELD_TIME
|
||||||
|
self.replayBall = False
|
||||||
|
self.hasBallScored = False
|
||||||
|
|
||||||
self.resetBonus()
|
self.resetBonus()
|
||||||
self.resetTargets()
|
self.resetTargets()
|
||||||
@@ -152,7 +154,6 @@ class PlayerState:
|
|||||||
if self.orangeSpecialLit:
|
if self.orangeSpecialLit:
|
||||||
Lamp("Special Orange").activate()
|
Lamp("Special Orange").activate()
|
||||||
|
|
||||||
|
|
||||||
def advanceRedSpecial(self):
|
def advanceRedSpecial(self):
|
||||||
self.redSpecial += 1
|
self.redSpecial += 1
|
||||||
CHAMP_LAMPS.activateNext()
|
CHAMP_LAMPS.activateNext()
|
||||||
@@ -173,7 +174,7 @@ class PlayerState:
|
|||||||
BONUS_LAMPS.activateNext()
|
BONUS_LAMPS.activateNext()
|
||||||
|
|
||||||
def advanceBonusMultiplier(self):
|
def advanceBonusMultiplier(self):
|
||||||
if self.bonusMultiplier >= 15:
|
if self.bonusMultiplier >= 50:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.bonusMultiplier == 1:
|
if self.bonusMultiplier == 1:
|
||||||
@@ -181,7 +182,7 @@ class PlayerState:
|
|||||||
elif self.bonusMultiplier == 10:
|
elif self.bonusMultiplier == 10:
|
||||||
self.bonusMultiplier = 20
|
self.bonusMultiplier = 20
|
||||||
elif self.bonusMultiplier == 20:
|
elif self.bonusMultiplier == 20:
|
||||||
self.bonusMultiplier == 50
|
self.bonusMultiplier == 50 #todo
|
||||||
|
|
||||||
BONUS_MULTIPLIER_LAMPS.activateNext()
|
BONUS_MULTIPLIER_LAMPS.activateNext()
|
||||||
|
|
||||||
@@ -189,6 +190,9 @@ class PlayerState:
|
|||||||
self.replayBall = True
|
self.replayBall = True
|
||||||
|
|
||||||
def addPoints(self, points):
|
def addPoints(self, points):
|
||||||
|
if not self.hasBallScored:
|
||||||
|
self.hasBallScored = True
|
||||||
|
|
||||||
self.points += points
|
self.points += points
|
||||||
self.display.printScore(self.points)
|
self.display.printScore(self.points)
|
||||||
|
|
||||||
@@ -221,7 +225,7 @@ class PlayerState:
|
|||||||
def updatePlayfieldTime(self):
|
def updatePlayfieldTime(self):
|
||||||
if self.upperPlayfieldTime == 0:
|
if self.upperPlayfieldTime == 0:
|
||||||
self.upperPlayfieldTimer = None
|
self.upperPlayfieldTimer = None
|
||||||
LeaveUpperPlayfieldEvent(self, )
|
LeaveUpperPlayfieldEvent(self)
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.upperPlayfieldTime in [0, 5, 10, 20]:
|
if self.upperPlayfieldTime in [0, 5, 10, 20]:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class EndBallEvent(Event):
|
|||||||
|
|
||||||
def trigger(self, target):
|
def trigger(self, target):
|
||||||
super().trigger(target)
|
super().trigger(target)
|
||||||
if self.playerState.replayBall:
|
if self.playerState.replayBall or not self.playerState.hasBallScored:
|
||||||
StartBallEvent().trigger(None)
|
StartBallEvent().trigger(None)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user