Add: Bonus Event

This commit is contained in:
Jonas Zeunert
2022-02-21 23:18:33 +01:00
parent 011ff20365
commit 05c26080ab
5 changed files with 58 additions and 6 deletions

View File

@@ -8,11 +8,13 @@ import config
from lamps.Lamp import Lamp 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 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
class PlayerState: class PlayerState:
display = None display = None
specialDisplay = None specialDisplay = None
@@ -136,6 +138,7 @@ class PlayerState:
def resetTunnel(self): def resetTunnel(self):
self.tunnelLit = 0 self.tunnelLit = 0
TUNNEL_LAMPS.deactivate()
def advanceRightOrangeSpecial(self): def advanceRightOrangeSpecial(self):
self.orangeSpecialRight = True self.orangeSpecialRight = True
@@ -163,8 +166,11 @@ class PlayerState:
Lamp("Special Red").activate() Lamp("Special Red").activate()
def advanceTunnel(self): def advanceTunnel(self):
if self.tunnelLit <= 5: if self.tunnelLit >= 5:
self.tunnelLit += 1 return
self.tunnelLit += 1
TUNNEL_LAMPS.activateNext()
def advanceBonus(self): def advanceBonus(self):
if self.bonus >= 20: if self.bonus >= 20:

View File

@@ -10,7 +10,3 @@ class BankEvent(Event):
def trigger(self, target): def trigger(self, target):
super().trigger(target) super().trigger(target)
self.bankSolenoid.trigger() self.bankSolenoid.trigger()
self.advanceBonus()
def advanceBonus(self):
self.playerState().advanceBonus()

11
events/BonusEvent.py Normal file
View File

@@ -0,0 +1,11 @@
from Event import Event
class BonusEvent(Event):
def __init__(self, playerState):
self.playerState = playerState
super().__init__("Bonus Event")
def trigger(self, target):
super().trigger(target)
self.playerState.advanceBonus()

View File

@@ -18,7 +18,30 @@ from events.RedSpecialEvent import RedSpecialEvent
from events.OrangeSpecialEvent import OrangeSpecialEvent from events.OrangeSpecialEvent import OrangeSpecialEvent
from events.SpinnerEvent import SpinnerEvent from events.SpinnerEvent import SpinnerEvent
from events.FixedTargetEvent import FixedTargetEvent from events.FixedTargetEvent import FixedTargetEvent
from events.BonusEvent import BonusEvent
BONUS_EVENT_TARGETS = [
"Left Inlane",
"Right Inlane",
"Right Outlane Kicker",
"Canal Button Bottom",
"Canal Button Middle Bottom",
"Canal Button Middle Top",
"Canal Button Top",
"Fixed Target 1",
"Fixed Target 2",
"Fixed Target 3",
"Fixed Target 4",
"Fixed Target 5",
"Left Bank Left",
"Left Bank Middle Left",
"Left Bank Middle Right",
"Left Bank Right",
"Right Bank Left",
"Right Bank Middle",
"Right Bank Right",
]
class EventFactory: class EventFactory:
def __init__(self, targets, currentPlayer): def __init__(self, targets, currentPlayer):
self.targets = targets self.targets = targets
@@ -123,5 +146,13 @@ class EventFactory:
self.__registerEventToTarget(event, self.targets["Fixed Target 5"]) self.__registerEventToTarget(event, self.targets["Fixed Target 5"])
return event return event
def createBonusEvent(self):
event = BonusEvent(self.currentPlayer)
self.__registerEventToTargets(event, BONUS_EVENT_TARGETS)
def __registerEventToTargets(self, event, targetNames):
for targetName in targetNames:
self.__registerEventToTarget(event, self.targets[targetName])
def __registerEventToTarget(self, event, target): def __registerEventToTarget(self, event, target):
target.on(target.hit_key, event.trigger) target.on(target.hit_key, event.trigger)

View File

@@ -46,6 +46,14 @@ UPPER_PLAYFIELD_TIME_LAMPS = LampGroup([
Lamp("Lamp 30 Sec") Lamp("Lamp 30 Sec")
]) ])
TUNNEL_LAMPS = LampGroup([
Lamp("1st Button"),
Lamp("2nd Button"),
Lamp("3rd Button"),
Lamp("4th Button"),
Lamp("5th Button")
])
BONUS_MULTIPLIER_LAMPS = LampGroup([ BONUS_MULTIPLIER_LAMPS = LampGroup([
Lamp("Bonus Multiplier x10"), Lamp("Bonus Multiplier x10"),
Lamp("Bonus Multiplier x20"), Lamp("Bonus Multiplier x20"),