Very much done
This commit is contained in:
@@ -2,10 +2,11 @@ from Event import Event
|
||||
|
||||
|
||||
class BankEvent(Event):
|
||||
def __init__(self, bankSolenoid, name):
|
||||
def __init__(self, bankSolenoid, name, playerState):
|
||||
self.bankSolenoid = bankSolenoid
|
||||
super().__init__(name)
|
||||
self.playerState = playerState
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.bankSolenoid.trigger()
|
||||
@@ -6,6 +6,6 @@ class BonusTimeEvent(Event):
|
||||
self.playerState = playerState
|
||||
super().__init__("Bonus Time Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().addBonusTimeSecond()
|
||||
|
||||
@@ -3,6 +3,12 @@ from solenoids.BottomLeftBankSolenoid import BottomLeftBankSolenoid
|
||||
|
||||
|
||||
class BottomLeftBankEvent(BankEvent):
|
||||
def __init__(self):
|
||||
super().__init__(BottomLeftBankSolenoid(), "Bottom Left Bank Event")
|
||||
def __init__(self, playerState):
|
||||
super().__init__(BottomLeftBankSolenoid(), "Bottom Left Bank Event", playerState)
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
playerState = self.playerState()
|
||||
playerState.advanceLeftOrangeSpecial()
|
||||
if playerState.upperPlayfieldTime < 30:
|
||||
playerState.addUpperPlayfieldTime(5)
|
||||
|
||||
@@ -3,6 +3,12 @@ from solenoids.BottomRightBankSolenoid import BottomRightBankSolenoid
|
||||
|
||||
|
||||
class BottomRightBankEvent(BankEvent):
|
||||
def __init__(self):
|
||||
super().__init__(BottomRightBankSolenoid(), "Bottom Right Bank Event")
|
||||
def __init__(self, playerState):
|
||||
super().__init__(BottomRightBankSolenoid(), "Bottom Right Bank Event", playerState)
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
playerState = self.playerState()
|
||||
playerState.advanceRightOrangeSpecial()
|
||||
if playerState.upperPlayfieldTime < 30:
|
||||
playerState.addUpperPlayfieldTime(5)
|
||||
|
||||
28
events/EndBallEvent.py
Normal file
28
events/EndBallEvent.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from Event import Event
|
||||
|
||||
from events.EndGameEvent import EndGameEvent
|
||||
from events.StartBallEvent import StartBallEvent
|
||||
|
||||
|
||||
class EndBallEvent(Event):
|
||||
def __init__(self, playerState):
|
||||
self.playerState = playerState
|
||||
super().__init__("End Of Ball Event")
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if self.playerState.replayBall:
|
||||
StartBallEvent().trigger(None)
|
||||
return
|
||||
|
||||
self.playerState().removeBall()
|
||||
|
||||
self.scorePoints()
|
||||
self.playerState().reset()
|
||||
|
||||
if self.playerState().ballsLeft == 0:
|
||||
EndGameEvent().trigger(None)
|
||||
|
||||
def scorePoints(self):
|
||||
bonus = self.playerState().bonus * self.playerState().bonusMultiplier * 1000
|
||||
self.playerState().addPoints(bonus)
|
||||
@@ -9,7 +9,7 @@ class EndGameEvent(Event):
|
||||
def __init__(self):
|
||||
super().__init__("End Game Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flipper.deactivate()
|
||||
sys.exit(0)
|
||||
@@ -1,15 +0,0 @@
|
||||
from Event import Event
|
||||
|
||||
from events.EndGameEvent import EndGameEvent
|
||||
|
||||
class EndOfBallEvent(Event):
|
||||
def __init__(self, playerState):
|
||||
self.playerState = playerState
|
||||
super().__init__("End Of Ball Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
self.playerState().removeBall()
|
||||
|
||||
if self.playerState().ballsLeft == 0:
|
||||
EndGameEvent().trigger()
|
||||
@@ -8,7 +8,7 @@ class EnterUpperPlayfieldEvent(Event):
|
||||
self.flipper = TopFlipper()
|
||||
super().__init__("Enter Upper Playfield Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flipper.activate()
|
||||
self.playerState().startUpperPlayfieldTimer()
|
||||
self.playerState().startUpperPlayfieldTimer()
|
||||
|
||||
@@ -6,6 +6,6 @@ class FlapEvent(Event):
|
||||
self.flapSolenoid = flapSolenoid
|
||||
super().__init__(name)
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
self.flapSolenoid.trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flapSolenoid.trigger()
|
||||
|
||||
@@ -7,7 +7,7 @@ class LeaveUpperPlayfieldEvent(Event):
|
||||
self.flipper = flipper
|
||||
super().__init__("Leave Upper Playfield Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flipper.deactivate()
|
||||
self.playerState().stopUpperPlayfieldTimer()
|
||||
16
events/OrangeSpecialEvent.py
Normal file
16
events/OrangeSpecialEvent.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from events.SpecialEvent import SpecialEvent
|
||||
|
||||
import config
|
||||
|
||||
|
||||
class OrangeSpecialEvent(SpecialEvent):
|
||||
def __init__(self, playerState):
|
||||
super().__init__("Orange Special Event", playerState)
|
||||
self.points = 200000
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if self.playerState().orangeSpecialLit:
|
||||
config.ORANGE_SPECIAL(self)
|
||||
self.playerState().resetOrangeSpecial()
|
||||
|
||||
@@ -4,8 +4,8 @@ from Event import Event
|
||||
class PointEvent(Event):
|
||||
def __init__(self, playerState):
|
||||
self.playerState = playerState
|
||||
super().__init__("Point Event Event")
|
||||
super().__init__("Point Event")
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger()
|
||||
super().trigger(target)
|
||||
self.playerState().addPoints(target.points)
|
||||
@@ -6,6 +6,6 @@ class PopEvent(Event):
|
||||
self.popSolenoid = popSolenoid
|
||||
super().__init__(name)
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.popSolenoid.trigger()
|
||||
15
events/RedSpecialEvent.py
Normal file
15
events/RedSpecialEvent.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from events.SpecialEvent import SpecialEvent
|
||||
import config
|
||||
|
||||
class RedSpecialEvent(SpecialEvent):
|
||||
def __init__(self, playerState):
|
||||
super().__init__("Red Special Event", playerState)
|
||||
self.points = 990000
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if self.playerState().redSpecialLit:
|
||||
config.RED_SPECIAL(self)
|
||||
self.playerState().resetRedSpecial()
|
||||
|
||||
|
||||
@@ -7,6 +7,6 @@ class RightKickerEvent(Event):
|
||||
self.rightKickerSolenoid = RightKickerSolenoid()
|
||||
super().__init__("Right Kicker Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.rightKickerSolenoid.trigger()
|
||||
19
events/SpecialEvent.py
Normal file
19
events/SpecialEvent.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from Event import Event
|
||||
|
||||
|
||||
class SpecialEvent(Event):
|
||||
def __init__(self, name, playerState):
|
||||
super().init(name)
|
||||
self.playerState = playerState
|
||||
|
||||
def replay(self):
|
||||
self.playerState.setReplayBall()
|
||||
|
||||
def extra_ball(self):
|
||||
self.playerState.addBall()
|
||||
|
||||
def points(self):
|
||||
self.playerState.addPoints(self.points)
|
||||
|
||||
def super_bonus(self):
|
||||
pass
|
||||
29
events/SpinnerEvent.py
Normal file
29
events/SpinnerEvent.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from Event import Event
|
||||
from time import time
|
||||
|
||||
|
||||
class SpinnerEvent(Event):
|
||||
def __init__(self, playerState):
|
||||
super().__init__("Spinner Event")
|
||||
self.playerState = playerState
|
||||
self.activationTime = time()
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
if time() - self.activationTime > 10:
|
||||
self.activationTime = time()
|
||||
return
|
||||
|
||||
self.scorePoints()
|
||||
|
||||
def scorePoints(self):
|
||||
playerState = self.playerState()
|
||||
timePassed = time() - self.activationTime
|
||||
if 1 <= timePassed < 1.5:
|
||||
playerState.addPoints(100000)
|
||||
elif 1.5 <= timePassed < 2:
|
||||
playerState.addPoints(150000)
|
||||
elif 2 <= timePassed < 5:
|
||||
playerState.addPoints(200000)
|
||||
elif timePassed >= 5:
|
||||
playerState.addPoints(500000)
|
||||
15
events/StartBallEvent.py
Normal file
15
events/StartBallEvent.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from Event import Event
|
||||
from solenoids.OutHoleSolenoid import OutHoleSolenoid
|
||||
from solenoids.MainFlipper import MainFlipper
|
||||
|
||||
|
||||
class StartBallEvent(Event):
|
||||
def __init__(self):
|
||||
self.flipper = MainFlipper()
|
||||
self.outHoleSolenoid = OutHoleSolenoid()
|
||||
super().__init__("Start Ball Event")
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flipper.activate()
|
||||
self.outHoleSolenoid.trigger()
|
||||
@@ -9,7 +9,7 @@ class StartGameEvent(Event):
|
||||
self.outHoleSolenoid = OutHoleSolenoid()
|
||||
super().__init__("Start Game Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.flipper.activate()
|
||||
self.outHoleSolenoid.trigger()
|
||||
@@ -3,6 +3,11 @@ from solenoids.TopCentralBankSolenoid import TopCentralBankSolenoid
|
||||
|
||||
|
||||
class TopCentralBankEvent(BankEvent):
|
||||
def __init__(self):
|
||||
super().__init__(TopCentralBankSolenoid(), "Top Central Bank Event")
|
||||
def __init__(self, playerState):
|
||||
super().__init__(TopCentralBankSolenoid(), "Top Central Bank Event", playerState)
|
||||
|
||||
|
||||
def trigger(self, target):
|
||||
self.playerState().advanceRedSpecial()
|
||||
|
||||
|
||||
|
||||
25
events/TunnelEvent.py
Normal file
25
events/TunnelEvent.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from Event import Event
|
||||
|
||||
class TunnelEvent(Event):
|
||||
def __init__(self, playerState):
|
||||
super().__init__("Tunnel Event")
|
||||
self.playerState = playerState
|
||||
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.advanceBonusMultiplier()
|
||||
self.scoreBonusTunnelPoints()
|
||||
|
||||
def advanceBonusMultiplier(self):
|
||||
self.playerState().advanceBonusMultiplier()
|
||||
|
||||
def scoreBonusTunnelPoints(self):
|
||||
playerState = self.playerState()
|
||||
if playerState.tunnelLit == 2:
|
||||
playerState.addPoints(10000)
|
||||
elif playerState.tunnelLit == 3:
|
||||
playerState.addPoints(20000)
|
||||
elif playerState.tunnelLit == 4:
|
||||
playerState.addPoints(40000)
|
||||
elif playerState.tunnelLit == 5:
|
||||
playerState.addPoints(190000)
|
||||
@@ -6,6 +6,6 @@ class UpperPlayfieldTimeEvent(Event):
|
||||
self.playerState = playerState
|
||||
super().__init__("Upper Playfield Time Event")
|
||||
|
||||
def trigger(self, _):
|
||||
super().trigger()
|
||||
def trigger(self, target):
|
||||
super().trigger(target)
|
||||
self.playerState().addUpperPlayfieldTime(1)
|
||||
Binary file not shown.
Reference in New Issue
Block a user