playerstate to prop
This commit is contained in:
@@ -11,7 +11,6 @@ class BankTarget(Target):
|
||||
|
||||
self.is_hit = True
|
||||
super().hit()
|
||||
#notify Bank
|
||||
|
||||
def reset(self):
|
||||
self.is_hit = False
|
||||
6
Game.py
6
Game.py
@@ -13,11 +13,6 @@ class Game:
|
||||
signal.signal(signal.SIGINT, self.interrupt)
|
||||
self.is_running = asyncio.Condition()
|
||||
|
||||
BottomLeftBankSolenoid().trigger()
|
||||
BottomRightBankSolenoid().trigger()
|
||||
TopCentralBankSolenoid().trigger()
|
||||
pass
|
||||
|
||||
def interrupt(self):
|
||||
logging.info('Received SIGINT. Stopping Game :-)')
|
||||
self.is_running.release()
|
||||
@@ -30,4 +25,3 @@ class Game:
|
||||
await self.input_handler.handleInputs()
|
||||
|
||||
await self.is_running.wait()
|
||||
pass
|
||||
|
||||
@@ -6,10 +6,12 @@ class GameState:
|
||||
self.currentPlayerID = currentPlayerID
|
||||
self.highscore = highscore
|
||||
|
||||
@property
|
||||
def currentPlayer(self):
|
||||
return self.players[self.currentPlayerID]
|
||||
|
||||
def setCurrentPlayer(self, playerId):
|
||||
@currentPlayer.setter
|
||||
def currentPlayer(self, playerId):
|
||||
if(playerId > len(self.players)):
|
||||
pass # todo throw error
|
||||
|
||||
|
||||
@@ -61,7 +61,8 @@ class PlayerState:
|
||||
upperPlayfieldTimeIter = iter(UPPER_PLAYFIELD_TIME)
|
||||
upperPlayfieldTime = 0
|
||||
|
||||
def __init__(self, display, specialDisplay, id, ballsToPlay):
|
||||
def __init__(self, display, specialDisplay, id, ballsToPlay, banks):
|
||||
self.banks = banks
|
||||
self.display = display
|
||||
self.specialDisplay = specialDisplay
|
||||
self.id = id
|
||||
@@ -72,9 +73,11 @@ class PlayerState:
|
||||
|
||||
self.bonusTime = config.BEGINNING_BONUS_TIME
|
||||
|
||||
self.reset()
|
||||
self.specialDisplay.printScore()
|
||||
|
||||
def activate(self):
|
||||
self.reset()
|
||||
|
||||
def enableTiming(self):
|
||||
if config.BONUS_TIME_ALGORITHM == config.BONUS_TIME_ALGORITHM_OPTIONS.RANDOM:
|
||||
self.disableAdvanceTimeLeft()
|
||||
@@ -143,6 +146,7 @@ class PlayerState:
|
||||
BONUS_MULTIPLIER_LAMPS.deactivate()
|
||||
|
||||
def resetTargets(self):
|
||||
self.resetBanks()
|
||||
self.resetRedSpecial()
|
||||
self.resetOrangeSpecial()
|
||||
self.resetTunnel()
|
||||
@@ -167,6 +171,10 @@ class PlayerState:
|
||||
TUNNEL_SCORE_LAMPS.activateNext()
|
||||
TUNNEL_LAMPS.deactivate()
|
||||
|
||||
def resetBanks(self):
|
||||
for bank in self.banks:
|
||||
bank.reset()
|
||||
|
||||
def advanceRightOrangeSpecial(self):
|
||||
self.orangeSpecialRight = True
|
||||
self.setOrangeSpecialLit()
|
||||
|
||||
@@ -8,4 +8,4 @@ class BonusEvent(Event):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().advanceBonus()
|
||||
self.playerState.advanceBonus()
|
||||
|
||||
@@ -8,4 +8,4 @@ class BonusTimeEvent(Event):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().addBonusTimeSecond()
|
||||
self.playerState.addBonusTimeSecond()
|
||||
|
||||
@@ -8,6 +8,6 @@ class BottomLeftBankEvent(BankEvent):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
playerState = self.playerState()
|
||||
playerState = self.playerState
|
||||
playerState.advanceLeftOrangeSpecial()
|
||||
playerState.advanceUpperPlayfieldTime()
|
||||
|
||||
@@ -8,7 +8,7 @@ class BottomRightBankEvent(BankEvent):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
playerState = self.playerState()
|
||||
playerState = self.playerState
|
||||
playerState.advanceRightOrangeSpecial()
|
||||
if playerState.upperPlayfieldTime < 30:
|
||||
playerState.advanceUpperPlayfieldTime()
|
||||
|
||||
@@ -11,18 +11,18 @@ class EndBallEvent(Event):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if self.playerState().replayBall or not self.playerState().hasBallScored:
|
||||
if self.playerState.replayBall or not self.playerState.hasBallScored:
|
||||
StartBallEvent().trigger(None)
|
||||
return
|
||||
|
||||
self.playerState().removeBall()
|
||||
self.playerState.removeBall()
|
||||
|
||||
self.scorePoints()
|
||||
self.playerState().reset()
|
||||
self.playerState.reset()
|
||||
|
||||
if self.playerState().ballsLeft == 0:
|
||||
if self.playerState.ballsLeft == 0:
|
||||
EndGameEvent().trigger(None)
|
||||
|
||||
def scorePoints(self):
|
||||
bonus = self.playerState().bonus * self.playerState().bonusMultiplier * 1000
|
||||
self.playerState().addPoints(bonus)
|
||||
bonus = self.playerState.bonus * self.playerState.bonusMultiplier * 1000
|
||||
self.playerState.addPoints(bonus)
|
||||
|
||||
@@ -11,4 +11,4 @@ class EnterUpperPlayfieldEvent(Event):
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flipper.activate()
|
||||
self.playerState().startUpperPlayfieldTimer()
|
||||
self.playerState.startUpperPlayfieldTimer()
|
||||
|
||||
@@ -8,4 +8,4 @@ class FixedTargetEvent(Event):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().advanceTunnel()
|
||||
self.playerState.advanceTunnel()
|
||||
|
||||
@@ -10,7 +10,7 @@ class OrangeSpecialEvent(SpecialEvent):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if self.playerState().orangeSpecialLit:
|
||||
if self.playerState.orangeSpecialLit:
|
||||
config.ORANGE_SPECIAL(self)
|
||||
self.playerState().resetOrangeSpecial()
|
||||
self.playerState.resetOrangeSpecial()
|
||||
|
||||
|
||||
@@ -8,4 +8,4 @@ class PointEvent(Event):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().addPoints(target.points)
|
||||
self.playerState.addPoints(target.points)
|
||||
@@ -8,8 +8,8 @@ class RedSpecialEvent(SpecialEvent):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if self.playerState().redSpecialLit:
|
||||
if self.playerState.redSpecialLit:
|
||||
config.RED_SPECIAL(self)
|
||||
self.playerState().resetRedSpecial()
|
||||
self.playerState.resetRedSpecial()
|
||||
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ class SpecialEvent(Event):
|
||||
self.playerState = playerState
|
||||
|
||||
def replay(self):
|
||||
self.playerState().setReplayBall()
|
||||
self.playerState.setReplayBall()
|
||||
|
||||
def extra_ball(self):
|
||||
self.playerState().addBall()
|
||||
self.playerState.addBall()
|
||||
|
||||
def points(self):
|
||||
self.playerState().addPoints(self.points)
|
||||
self.playerState.addPoints(self.points)
|
||||
|
||||
def super_bonus(self):
|
||||
pass
|
||||
|
||||
@@ -17,13 +17,13 @@ class SpinnerEvent(Event):
|
||||
self.scorePoints()
|
||||
|
||||
def scorePoints(self):
|
||||
playerState = self.playerState()
|
||||
playerState = self.playerState
|
||||
timePassed = time() - self.activationTime
|
||||
if 1 <= timePassed < 1.5:
|
||||
playerState().addPoints(100000)
|
||||
playerState.addPoints(100000)
|
||||
elif 1.5 <= timePassed < 2:
|
||||
playerState().addPoints(150000)
|
||||
playerState.addPoints(150000)
|
||||
elif 2 <= timePassed < 5:
|
||||
playerState().addPoints(200000)
|
||||
playerState.addPoints(200000)
|
||||
elif timePassed >= 5:
|
||||
playerState().addPoints(500000)
|
||||
playerState.addPoints(500000)
|
||||
|
||||
@@ -8,6 +8,6 @@ class TopCentralBankEvent(BankEvent):
|
||||
|
||||
|
||||
def trigger(self, target):
|
||||
self.playerState().advanceRedSpecial()
|
||||
self.playerState.advanceRedSpecial()
|
||||
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ class TunnelEvent(Event):
|
||||
self.scoreBonusTunnelPoints()
|
||||
|
||||
def advanceBonusMultiplier(self):
|
||||
self.playerState().advanceBonusMultiplier()
|
||||
self.playerState.advanceBonusMultiplier()
|
||||
|
||||
def scoreBonusTunnelPoints(self):
|
||||
playerState = self.playerState()
|
||||
playerState = self.playerState
|
||||
if playerState.tunnelLit == 2:
|
||||
playerState.addPoints(10000)
|
||||
elif playerState.tunnelLit == 3:
|
||||
|
||||
@@ -8,4 +8,4 @@ class UpperPlayfieldTimeEvent(Event):
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().addUpperPlayfieldTime(1)
|
||||
self.playerState.addUpperPlayfieldTime(1)
|
||||
@@ -37,7 +37,7 @@ class GameFactory:
|
||||
|
||||
def createPlayers(self):
|
||||
players = []
|
||||
for id in range(1, self.playerCount + 1):
|
||||
for id in range(1, self.playerCount):
|
||||
display = self.displayFactory.createPlayerDisplay(id)
|
||||
player = self.playerStateFactory.createPlayerState(display, id)
|
||||
players.append(player)
|
||||
|
||||
Reference in New Issue
Block a user