Add: Tunnel Scores
This commit is contained in:
@@ -9,11 +9,16 @@ from lamps.Lamp import Lamp
|
|||||||
from lamps.LampGroup import CHAMP_LAMPS
|
from lamps.LampGroup import CHAMP_LAMPS
|
||||||
from lamps.LampGroup import UPPER_PLAYFIELD_TIME_LAMPS
|
from lamps.LampGroup import UPPER_PLAYFIELD_TIME_LAMPS
|
||||||
from lamps.LampGroup import TUNNEL_LAMPS
|
from lamps.LampGroup import TUNNEL_LAMPS
|
||||||
|
from lamps.LampGroup import TUNNEL_SCORE_LAMPS
|
||||||
from lamps.LampGroup import BONUS_MULTIPLIER_LAMPS
|
from lamps.LampGroup import BONUS_MULTIPLIER_LAMPS
|
||||||
from lamps.LampGroup import BONUS_LAMPS
|
from lamps.LampGroup import BONUS_LAMPS
|
||||||
|
|
||||||
from events.LeaveUpperPlayfieldEvent import LeaveUpperPlayfieldEvent
|
from events.LeaveUpperPlayfieldEvent import LeaveUpperPlayfieldEvent
|
||||||
|
|
||||||
|
TUNNEL_SCORES = [20000, 30000, 50000]
|
||||||
|
BONUS_MULTIPLIER = [1, 10, 20, 50]
|
||||||
|
UPPER_PLAYFIELD_TIME = [5, 10, 20, 30]
|
||||||
|
|
||||||
|
|
||||||
class PlayerState:
|
class PlayerState:
|
||||||
display = None
|
display = None
|
||||||
@@ -21,7 +26,10 @@ class PlayerState:
|
|||||||
id = 0
|
id = 0
|
||||||
points = 0
|
points = 0
|
||||||
bonus = 0
|
bonus = 0
|
||||||
|
bonusMultiplierIter = iter(BONUS_MULTIPLIER)
|
||||||
bonusMultiplier = 1
|
bonusMultiplier = 1
|
||||||
|
tunnelScoreIter = iter(TUNNEL_SCORES)
|
||||||
|
tunnelScore = 0
|
||||||
ballsLeft = 0
|
ballsLeft = 0
|
||||||
replayBall = False
|
replayBall = False
|
||||||
hasBallScored = False
|
hasBallScored = False
|
||||||
@@ -39,6 +47,7 @@ class PlayerState:
|
|||||||
timeAdvanceRightTimer = None
|
timeAdvanceRightTimer = None
|
||||||
|
|
||||||
upperPlayfieldTimer = None
|
upperPlayfieldTimer = None
|
||||||
|
upperPlayfieldTimeIter = iter(UPPER_PLAYFIELD_TIME)
|
||||||
upperPlayfieldTime = 0
|
upperPlayfieldTime = 0
|
||||||
|
|
||||||
def __init__(self, display, specialDisplay, id, ballsToPlay):
|
def __init__(self, display, specialDisplay, id, ballsToPlay):
|
||||||
@@ -106,7 +115,8 @@ class PlayerState:
|
|||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.upperPlayfieldTimer = None
|
self.upperPlayfieldTimer = None
|
||||||
self.upperPlayfieldTime = config.BEGINNING_UPPER_PLAYFIELD_TIME
|
self.upperPlayfieldTimeIter = iter(UPPER_PLAYFIELD_TIME)
|
||||||
|
self.upperPlayfieldTime = next(self.upperPlayfieldTimeIter)
|
||||||
self.replayBall = False
|
self.replayBall = False
|
||||||
self.hasBallScored = False
|
self.hasBallScored = False
|
||||||
|
|
||||||
@@ -115,7 +125,8 @@ class PlayerState:
|
|||||||
|
|
||||||
def resetBonus(self):
|
def resetBonus(self):
|
||||||
self.bonus = 0
|
self.bonus = 0
|
||||||
self.bonusMultiplier = 1
|
self.bonusMultiplierIter = iter(BONUS_MULTIPLIER)
|
||||||
|
self.bonusMultiplier = next(self.bonusMultiplierIter)
|
||||||
BONUS_LAMPS.deactivate()
|
BONUS_LAMPS.deactivate()
|
||||||
BONUS_MULTIPLIER_LAMPS.deactivate()
|
BONUS_MULTIPLIER_LAMPS.deactivate()
|
||||||
|
|
||||||
@@ -137,7 +148,11 @@ class PlayerState:
|
|||||||
Lamp("Special Orange").deactivate()
|
Lamp("Special Orange").deactivate()
|
||||||
|
|
||||||
def resetTunnel(self):
|
def resetTunnel(self):
|
||||||
|
self.tunnelScoreIter = iter(TUNNEL_SCORES)
|
||||||
|
self.tunnelScore = next(self.tunnelScoreIter)
|
||||||
self.tunnelLit = 0
|
self.tunnelLit = 0
|
||||||
|
TUNNEL_SCORE_LAMPS.deactivate()
|
||||||
|
TUNNEL_SCORE_LAMPS.activateNext()
|
||||||
TUNNEL_LAMPS.deactivate()
|
TUNNEL_LAMPS.deactivate()
|
||||||
|
|
||||||
def advanceRightOrangeSpecial(self):
|
def advanceRightOrangeSpecial(self):
|
||||||
@@ -165,6 +180,15 @@ class PlayerState:
|
|||||||
self.redSpecialLit = True
|
self.redSpecialLit = True
|
||||||
Lamp("Special Red").activate()
|
Lamp("Special Red").activate()
|
||||||
|
|
||||||
|
def advanceTunnelScore(self):
|
||||||
|
try:
|
||||||
|
self.tunnelScore = next(self.tunnelScoreIter)
|
||||||
|
TUNNEL_SCORE_LAMPS.deactivateCurrent()
|
||||||
|
TUNNEL_SCORE_LAMPS.currentLamp += 1 # dirty
|
||||||
|
TUNNEL_SCORE_LAMPS.activateNext()
|
||||||
|
except StopIteration:
|
||||||
|
pass
|
||||||
|
|
||||||
def advanceTunnel(self):
|
def advanceTunnel(self):
|
||||||
if self.tunnelLit >= 5:
|
if self.tunnelLit >= 5:
|
||||||
return
|
return
|
||||||
@@ -180,17 +204,12 @@ class PlayerState:
|
|||||||
BONUS_LAMPS.activateNext()
|
BONUS_LAMPS.activateNext()
|
||||||
|
|
||||||
def advanceBonusMultiplier(self):
|
def advanceBonusMultiplier(self):
|
||||||
if self.bonusMultiplier >= 50:
|
try:
|
||||||
return
|
self.bonusMultiplier = next(self.bonusMultiplierIter)
|
||||||
|
|
||||||
if self.bonusMultiplier == 1:
|
|
||||||
self.bonusMultiplier = 10
|
|
||||||
elif self.bonusMultiplier == 10:
|
|
||||||
self.bonusMultiplier = 20
|
|
||||||
elif self.bonusMultiplier == 20:
|
|
||||||
self.bonusMultiplier == 50 #todo
|
|
||||||
|
|
||||||
BONUS_MULTIPLIER_LAMPS.activateNext()
|
BONUS_MULTIPLIER_LAMPS.activateNext()
|
||||||
|
except StopIteration:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def setReplayBall(self):
|
def setReplayBall(self):
|
||||||
self.replayBall = True
|
self.replayBall = True
|
||||||
@@ -214,16 +233,11 @@ class PlayerState:
|
|||||||
self.specialDisplay.printBallsToPlay(self.ballsLeft)
|
self.specialDisplay.printBallsToPlay(self.ballsLeft)
|
||||||
|
|
||||||
def advanceUpperPlayfieldTime(self):
|
def advanceUpperPlayfieldTime(self):
|
||||||
if self.upperPlayfieldTime == 0:
|
try:
|
||||||
self.upperPlayfieldTime = 5
|
self.upperPlayfieldTime = next(self.upperPlayfieldTimeIter)
|
||||||
elif self.upperPlayfieldTime == 5:
|
|
||||||
self.upperPlayfieldTime = 10
|
|
||||||
elif self.upperPlayfieldTime == 10:
|
|
||||||
self.upperPlayfieldTime = 20
|
|
||||||
elif self.upperPlayfieldTime == 20:
|
|
||||||
self.upperPlayfieldTime = 30
|
|
||||||
|
|
||||||
UPPER_PLAYFIELD_TIME_LAMPS.activateNext()
|
UPPER_PLAYFIELD_TIME_LAMPS.activateNext()
|
||||||
|
except StopIteration:
|
||||||
|
pass
|
||||||
|
|
||||||
def startUpperPlayfieldTimer(self):
|
def startUpperPlayfieldTimer(self):
|
||||||
self.upperPlayfieldTimer = Timer(1, self.updatePlayfieldTime)
|
self.upperPlayfieldTimer = Timer(1, self.updatePlayfieldTime)
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ class LampGroup:
|
|||||||
lamp.activate()
|
lamp.activate()
|
||||||
|
|
||||||
def deactivate(self):
|
def deactivate(self):
|
||||||
|
self.currentLamp = 0
|
||||||
|
|
||||||
for lamp in self.lamps:
|
for lamp in self.lamps:
|
||||||
lamp.deactivate()
|
lamp.deactivate()
|
||||||
|
|
||||||
@@ -54,6 +56,12 @@ TUNNEL_LAMPS = LampGroup([
|
|||||||
Lamp("5th Button")
|
Lamp("5th Button")
|
||||||
])
|
])
|
||||||
|
|
||||||
|
TUNNEL_SCORE_LAMPS = LampGroup([
|
||||||
|
Lamp("Tunnel Lamp 20000 Points"),
|
||||||
|
Lamp("Tunnel Lamp 30000 Points"),
|
||||||
|
Lamp("Tunnel Lamp 50000 Points")
|
||||||
|
])
|
||||||
|
|
||||||
BONUS_MULTIPLIER_LAMPS = LampGroup([
|
BONUS_MULTIPLIER_LAMPS = LampGroup([
|
||||||
Lamp("Bonus Multiplier x10"),
|
Lamp("Bonus Multiplier x10"),
|
||||||
Lamp("Bonus Multiplier x20"),
|
Lamp("Bonus Multiplier x20"),
|
||||||
|
|||||||
Reference in New Issue
Block a user