diff --git a/.gitignore b/.gitignore index 11a110f..7fda135 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__ venv .pyc +env \ No newline at end of file diff --git a/Event.py b/Event.py index 7d5f37d..5fccc11 100644 --- a/Event.py +++ b/Event.py @@ -5,5 +5,5 @@ class Event: self.name = name logging.info("Created " + self.name) - def trigger(self): + def trigger(self, target): logging.info('Event ' + self.name + ' triggered!') diff --git a/PlayerState.py b/PlayerState.py index eec38ce..2c8c5b2 100644 --- a/PlayerState.py +++ b/PlayerState.py @@ -1,5 +1,6 @@ from threading import Timer import time +import config class PlayerState: def __init__(self, display, specialDisplay, id, ballsToPlay, upperPlayfieldTime = 5, bonusTime = 0): @@ -8,10 +9,68 @@ class PlayerState: self.id = id self.points = 0 self.ballsLeft = ballsToPlay - self.upperPlayfieldTime = upperPlayfieldTime - self.bonusTime = bonusTime + + self.bonusTime = config.BEGINNING_BONUS_TIME + + self.reset() + + def reset(self): + self.bonus = 0 + self.bonusMultiplier = 1 self.timer = None self.timerStartTime = None + self.replayBall = False + self.upperPlayfieldTime = config.BEGINNING_UPPER_PLAYFIELD_TIME + + self.resetTargets() + + def resetTargets(self): + self.resetRedSpecial() + self.resetOrangeSpecial() + self.tunnelLit = 0 + + def resetRedSpecial(self): + self.redSpecial = 0 + self.redSpecialLit = False + + def resetOrangeSpecial(self): + self.orangeSpecialLeft = False + self.orangeSpecialRight = False + self.orangeSpecialLit = False + + def advanceRightOrangeSpecial(self): + self.orangeSpecialRight = True + self.setOrangeSpecialLit() + + def advanceLeftOrangeSpecial(self): + self.orangeSpecialLeft = True + self.setOrangeSpecialLit() + + def setOrangeSpecialLit(self): + if config.ORANGE_SPECIAL_BANK_OPTIONS == config.ORANGE_SPECIAL_BANK_OPTIONS.ONE: + self.orangeSpecialLit = self.orangeSpecialRight or self.orangeSpecialLeft + elif config.ORANGE_SPECIAL_BANK == config.ORANGE_SPECIAL_BANK_OPTIONS.BOTH: + self.orangeSpecialLit = self.orangeSpecialRight and self.orangeSpecialLeft + + + def advanceRedSpecial(self): + self.redSpecial += 1 + + if(self.redSpecial == config.RED_SPECIAL_TIMES): + self.redSpecialLit = True + + def advanceBonusMultiplier(self): + if self.bonusMultiplier >= 15: + return + + if self.bonusMultiplier == 1: + self.bonusMultiplier = 5 + return + + self.bonusMultiplier *= 2 + + def setReplayBall(self): + self.replayBall = True def addPoints(self, points): self.points += points diff --git a/config.py b/config.py index ce29550..e5346fa 100644 --- a/config.py +++ b/config.py @@ -1,4 +1,8 @@ import os +from events.SpecialEvent import SpecialEvent +from enum import Enum + +ORANGE_SPECIAL_BANK_OPTIONS = Enum("BOTH", "ONE") # Game Config ## Network Config @@ -8,4 +12,9 @@ OUTPUT_SOCKET_NAME = "/S.flippR_driver.out" ## Player State config BALLS_PER_GAME = 3 BEGINNING_UPPER_PLAYFIELD_TIME = 5 -BEGINNING_BONUS_TIME = 0 \ No newline at end of file +BEGINNING_BONUS_TIME = 0 +## Special config +RED_SPECIAL = SpecialEvent.replay +RED_SPECIAL_TIMES = 1 +ORANGE_SPECIAL = SpecialEvent.points +ORANGE_SPECIAL_BANK = ORANGE_SPECIAL_BANK_OPTIONS.BOTH diff --git a/events/BankEvent.py b/events/BankEvent.py index 2b97668..c8aaeb5 100644 --- a/events/BankEvent.py +++ b/events/BankEvent.py @@ -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() \ No newline at end of file diff --git a/events/BonusTimeEvent.py b/events/BonusTimeEvent.py index d0cc7e6..7c596dc 100644 --- a/events/BonusTimeEvent.py +++ b/events/BonusTimeEvent.py @@ -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() diff --git a/events/BottomLeftBankEvent.py b/events/BottomLeftBankEvent.py index 5c49ff1..fc8a802 100644 --- a/events/BottomLeftBankEvent.py +++ b/events/BottomLeftBankEvent.py @@ -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) diff --git a/events/BottomRightBankEvent.py b/events/BottomRightBankEvent.py index a2581d5..8301a41 100644 --- a/events/BottomRightBankEvent.py +++ b/events/BottomRightBankEvent.py @@ -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) diff --git a/events/EndBallEvent.py b/events/EndBallEvent.py new file mode 100644 index 0000000..c6731cc --- /dev/null +++ b/events/EndBallEvent.py @@ -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) diff --git a/events/EndGameEvent.py b/events/EndGameEvent.py index 2278d06..dd14264 100644 --- a/events/EndGameEvent.py +++ b/events/EndGameEvent.py @@ -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) \ No newline at end of file diff --git a/events/EndOfBallEvent.py b/events/EndOfBallEvent.py deleted file mode 100644 index 657e951..0000000 --- a/events/EndOfBallEvent.py +++ /dev/null @@ -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() diff --git a/events/EnterUpperPlayfieldEvent.py b/events/EnterUpperPlayfieldEvent.py index 7967d1e..006cb11 100644 --- a/events/EnterUpperPlayfieldEvent.py +++ b/events/EnterUpperPlayfieldEvent.py @@ -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() \ No newline at end of file + self.playerState().startUpperPlayfieldTimer() diff --git a/events/FlapEvent.py b/events/FlapEvent.py index 15c89e2..fee039e 100644 --- a/events/FlapEvent.py +++ b/events/FlapEvent.py @@ -6,6 +6,6 @@ class FlapEvent(Event): self.flapSolenoid = flapSolenoid super().__init__(name) - def trigger(self, _): - super().trigger() - self.flapSolenoid.trigger() \ No newline at end of file + def trigger(self, target): + super().trigger(target) + self.flapSolenoid.trigger() diff --git a/events/LeaveUpperPlayfieldEvent.py b/events/LeaveUpperPlayfieldEvent.py index a553650..80786dd 100644 --- a/events/LeaveUpperPlayfieldEvent.py +++ b/events/LeaveUpperPlayfieldEvent.py @@ -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() \ No newline at end of file diff --git a/events/OrangeSpecialEvent.py b/events/OrangeSpecialEvent.py new file mode 100644 index 0000000..444a27a --- /dev/null +++ b/events/OrangeSpecialEvent.py @@ -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() + diff --git a/events/PointEvent.py b/events/PointEvent.py index 87f991f..ee19b15 100644 --- a/events/PointEvent.py +++ b/events/PointEvent.py @@ -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) \ No newline at end of file diff --git a/events/PopEvent.py b/events/PopEvent.py index d3bddc8..fa7d147 100644 --- a/events/PopEvent.py +++ b/events/PopEvent.py @@ -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() \ No newline at end of file diff --git a/events/RedSpecialEvent.py b/events/RedSpecialEvent.py new file mode 100644 index 0000000..02204d7 --- /dev/null +++ b/events/RedSpecialEvent.py @@ -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() + + diff --git a/events/RightKickerEvent.py b/events/RightKickerEvent.py index 419eba3..aa7e62f 100644 --- a/events/RightKickerEvent.py +++ b/events/RightKickerEvent.py @@ -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() \ No newline at end of file diff --git a/events/SpecialEvent.py b/events/SpecialEvent.py new file mode 100644 index 0000000..2e833fd --- /dev/null +++ b/events/SpecialEvent.py @@ -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 diff --git a/events/SpinnerEvent.py b/events/SpinnerEvent.py new file mode 100644 index 0000000..6d42b67 --- /dev/null +++ b/events/SpinnerEvent.py @@ -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) diff --git a/events/StartBallEvent.py b/events/StartBallEvent.py new file mode 100644 index 0000000..14886d8 --- /dev/null +++ b/events/StartBallEvent.py @@ -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() \ No newline at end of file diff --git a/events/StartGameEvent.py b/events/StartGameEvent.py index 09be82c..2c48205 100644 --- a/events/StartGameEvent.py +++ b/events/StartGameEvent.py @@ -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() \ No newline at end of file diff --git a/events/TopCentralBankEvent.py b/events/TopCentralBankEvent.py index 1403099..0da1322 100644 --- a/events/TopCentralBankEvent.py +++ b/events/TopCentralBankEvent.py @@ -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() + diff --git a/events/TunnelEvent.py b/events/TunnelEvent.py new file mode 100644 index 0000000..578debe --- /dev/null +++ b/events/TunnelEvent.py @@ -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) diff --git a/events/UpperPlayfieldTimeEvent.py b/events/UpperPlayfieldTimeEvent.py index 142955f..c339098 100644 --- a/events/UpperPlayfieldTimeEvent.py +++ b/events/UpperPlayfieldTimeEvent.py @@ -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) \ No newline at end of file diff --git a/events/__pycache__/EndOfBallEvent.cpython-38.pyc b/events/__pycache__/EndOfBallEvent.cpython-38.pyc deleted file mode 100644 index 5595cd7..0000000 Binary files a/events/__pycache__/EndOfBallEvent.cpython-38.pyc and /dev/null differ diff --git a/factories/EventFactory.py b/factories/EventFactory.py index 05bc42a..681cb66 100644 --- a/factories/EventFactory.py +++ b/factories/EventFactory.py @@ -1,7 +1,7 @@ import inspect from events.PointEvent import PointEvent -from events.EndOfBallEvent import EndOfBallEvent +from events.EndBallEvent import EndBallEvent from events.RightFlapEvent import RightFlapEvent from events.LeftFlapEvent import LeftFlapEvent from events.RightKickerEvent import RightKickerEvent @@ -13,7 +13,10 @@ from events.BottomLeftBankEvent import BottomLeftBankEvent from events.TopCentralBankEvent import TopCentralBankEvent from events.BottomRightPopEvent import BottomRightPopEvent from events.TopLeftPopEvent import TopLeftPopEvent - +from events.TunnelEvent import TunnelEvent +from events.RedSpecialEvent import RedSpecialEvent +from events.OrangeSpecialEvent import OrangeSpecialEvent +from events.SpinnerEvent import SpinnerEvent class EventFactory: def __init__(self, targets, currentPlayer): @@ -36,7 +39,7 @@ class EventFactory: return event def createEndOfBallEvent(self): - event = EndOfBallEvent(self.currentPlayer) + event = EndBallEvent(self.currentPlayer) self.__registerEventToTarget(event, self.targets['Outhole']) return event @@ -66,24 +69,49 @@ class EventFactory: return event def createBottomLeftBankEvent(self): - event = BottomLeftBankEvent() + event = BottomLeftBankEvent(self.currentPlayer) self.__registerEventToTarget(event, self.targets["Left Bank"]) + return event def createBottomRightBankEvent(self): - event = BottomRightBankEvent() + event = BottomRightBankEvent(self.currentPlayer) self.__registerEventToTarget(event, self.targets["Right Bank"]) + return event def createTopCentralBankEvent(self): - event = TopCentralBankEvent() + event = TopCentralBankEvent(self.currentPlayer) self.__registerEventToTarget(event, self.targets["Top Bank"]) + return event def createTopLeftPopEvent(self): event = TopLeftPopEvent() self.__registerEventToTarget(event, self.targets["Left Pop"]) + return event def createBottomRightPopEvent(self): event = BottomRightPopEvent() self.__registerEventToTarget(event, self.targets["Right Pop"]) - + return event + + def createTunnelEvent(self): + event = TunnelEvent(self.currentPlayer) + self.__registerEventToTarget(event, self.targets["Canal Button Bottom"]) + return event + + def createRedSpecialEvent(self): + event = RedSpecialEvent(self.currentPlayer) + self.__registerEventToTarget(event, self.targets["Special Red"]) + return event + + def createOrangeSpecialEvent(self): + event = OrangeSpecialEvent(self.currentPlayer) + self.__registerEventToTarget(event, self.targets["Special Orange"]) + return event + + def createSpinnerEvent(self): + event = SpinnerEvent(self.currentPlayer) + self.__registerEventToTarget(event, self.targets["Spinner"]) + return event + def __registerEventToTarget(self, event, target): target.on(target.hit_key, event.trigger) diff --git a/targets/bottom_lanes/LeftInlaneTarget.py b/targets/bottom_lanes/LeftInlaneTarget.py index 31387dd..3ff538b 100644 --- a/targets/bottom_lanes/LeftInlaneTarget.py +++ b/targets/bottom_lanes/LeftInlaneTarget.py @@ -2,7 +2,7 @@ from Target import Target class LeftInlaneTarget(Target): def __init__(self): - super().__init__(100, 'Left Inlane') + super().__init__(3000, 'Left Inlane') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/bottom_lanes/LeftOutlaneTarget.py b/targets/bottom_lanes/LeftOutlaneTarget.py index 1686d85..781f6af 100644 --- a/targets/bottom_lanes/LeftOutlaneTarget.py +++ b/targets/bottom_lanes/LeftOutlaneTarget.py @@ -2,7 +2,7 @@ from Target import Target class LeftOutlaneTarget(Target): def __init__(self): - super().__init__(100, 'Left Outlane') + super().__init__(100000, 'Left Outlane') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/bottom_lanes/RightInlaneTarget.py b/targets/bottom_lanes/RightInlaneTarget.py index ebf0cca..fb95822 100644 --- a/targets/bottom_lanes/RightInlaneTarget.py +++ b/targets/bottom_lanes/RightInlaneTarget.py @@ -3,7 +3,7 @@ from Target import Target class RightInlaneTarget(Target): def __init__(self): - super().__init__(100, 'Right Inlane') + super().__init__(30000, 'Right Inlane') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/fixed_targets/FixedTarget1.py b/targets/fixed_targets/FixedTarget1.py index 5b1a2d4..242d5b6 100644 --- a/targets/fixed_targets/FixedTarget1.py +++ b/targets/fixed_targets/FixedTarget1.py @@ -3,7 +3,7 @@ from Target import Target class FixedTarget1(Target): def __init__(self): - super().__init__(0, "Fixed Target 1") + super().__init__(30000, "Fixed Target 1") def hit(self): super().hit() \ No newline at end of file diff --git a/targets/fixed_targets/FixedTarget2.py b/targets/fixed_targets/FixedTarget2.py index 7a71944..e26a65a 100644 --- a/targets/fixed_targets/FixedTarget2.py +++ b/targets/fixed_targets/FixedTarget2.py @@ -3,7 +3,7 @@ from Target import Target class FixedTarget2(Target): def __init__(self): - super().__init__(0, "Fixed Target 2") + super().__init__(30000, "Fixed Target 2") def hit(self): super().hit() \ No newline at end of file diff --git a/targets/fixed_targets/FixedTarget3.py b/targets/fixed_targets/FixedTarget3.py index 93e717c..a7a7825 100644 --- a/targets/fixed_targets/FixedTarget3.py +++ b/targets/fixed_targets/FixedTarget3.py @@ -2,7 +2,7 @@ from Target import Target class FixedTarget3(Target): def __init__(self): - super().__init__(100, 'Fixed Target 3') + super().__init__(30000, 'Fixed Target 3') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/fixed_targets/FixedTarget4.py b/targets/fixed_targets/FixedTarget4.py index a1fbe5b..06d6ded 100644 --- a/targets/fixed_targets/FixedTarget4.py +++ b/targets/fixed_targets/FixedTarget4.py @@ -3,7 +3,7 @@ from Target import Target class FixedTarget4(Target): def __init__(self): - super().__init__(100, 'Fixed Target 4') + super().__init__(30000, 'Fixed Target 4') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/fixed_targets/FixedTarget5.py b/targets/fixed_targets/FixedTarget5.py index 9fd82dc..af3ff58 100644 --- a/targets/fixed_targets/FixedTarget5.py +++ b/targets/fixed_targets/FixedTarget5.py @@ -3,7 +3,7 @@ from Target import Target class FixedTarget5(Target): def __init__(self): - super().__init__(100, 'Fixed Target 5') + super().__init__(30000, 'Fixed Target 5') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/left_bank/LeftBankLeftTarget.py b/targets/left_bank/LeftBankLeftTarget.py index 5842022..11dc23f 100644 --- a/targets/left_bank/LeftBankLeftTarget.py +++ b/targets/left_bank/LeftBankLeftTarget.py @@ -3,7 +3,7 @@ from BankTarget import BankTarget class LeftBankLeftTarget(BankTarget): def __init__(self): - super().__init__(100, 'Left Bank Left') + super().__init__(30000, 'Left Bank Left') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/left_bank/LeftBankMiddleLeftTarget.py b/targets/left_bank/LeftBankMiddleLeftTarget.py index 4835600..d26f02e 100644 --- a/targets/left_bank/LeftBankMiddleLeftTarget.py +++ b/targets/left_bank/LeftBankMiddleLeftTarget.py @@ -3,7 +3,7 @@ from BankTarget import BankTarget class LeftBankMiddleLeftTarget(BankTarget): def __init__(self): - super().__init__(100, 'Left Bank Middle Left') + super().__init__(30000, 'Left Bank Middle Left') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/left_bank/LeftBankMiddleRightTarget.py b/targets/left_bank/LeftBankMiddleRightTarget.py index 3aa6d17..c3ce976 100644 --- a/targets/left_bank/LeftBankMiddleRightTarget.py +++ b/targets/left_bank/LeftBankMiddleRightTarget.py @@ -3,7 +3,7 @@ from BankTarget import BankTarget class LeftBankMiddleRightTarget(BankTarget): def __init__(self): - super().__init__(100, 'Left Bank Middle Right') + super().__init__(30000, 'Left Bank Middle Right') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/left_bank/LeftBankRightTarget.py b/targets/left_bank/LeftBankRightTarget.py index 4d7817e..2e82be8 100644 --- a/targets/left_bank/LeftBankRightTarget.py +++ b/targets/left_bank/LeftBankRightTarget.py @@ -3,7 +3,7 @@ from Target import Target class LeftBankRightTarget(Target): def __init__(self): - super().__init__(100, 'Left Bank Right') + super().__init__(30000, 'Left Bank Right') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/pop_bumpers/LeftPopTarget.py b/targets/pop_bumpers/LeftPopTarget.py index c44235c..9226893 100644 --- a/targets/pop_bumpers/LeftPopTarget.py +++ b/targets/pop_bumpers/LeftPopTarget.py @@ -3,7 +3,7 @@ from Target import Target class LeftPopTarget(Target): def __init__(self): - super().__init__(0, "Left Pop") + super().__init__(5000, "Left Pop") def hit(self): super().hit() \ No newline at end of file diff --git a/targets/pop_bumpers/RightPopTarget.py b/targets/pop_bumpers/RightPopTarget.py index c200952..f49c1ff 100644 --- a/targets/pop_bumpers/RightPopTarget.py +++ b/targets/pop_bumpers/RightPopTarget.py @@ -3,7 +3,7 @@ from Target import Target class RightPopTarget(Target): def __init__(self): - super().__init__(100, 'Right Pop') + super().__init__(5000, 'Right Pop') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/right_bank/RightBankLeftTarget.py b/targets/right_bank/RightBankLeftTarget.py index e23869a..757865e 100644 --- a/targets/right_bank/RightBankLeftTarget.py +++ b/targets/right_bank/RightBankLeftTarget.py @@ -3,7 +3,7 @@ from BankTarget import BankTarget class RightBankLeftTarget(BankTarget): def __init__(self): - super().__init__(100, "Right Bank Left") + super().__init__(30000, "Right Bank Left") def hit(self): super().hit() \ No newline at end of file diff --git a/targets/right_bank/RightBankMiddleTarget.py b/targets/right_bank/RightBankMiddleTarget.py index 02420cb..0c6692e 100644 --- a/targets/right_bank/RightBankMiddleTarget.py +++ b/targets/right_bank/RightBankMiddleTarget.py @@ -3,7 +3,7 @@ from BankTarget import BankTarget class RightBankMiddleTarget(BankTarget): def __init__(self): - super().__init__(100, 'Right Bank Middle') + super().__init__(30000, 'Right Bank Middle') def hit(self): super().hit() \ No newline at end of file diff --git a/targets/right_bank/RightBankRightTarget.py b/targets/right_bank/RightBankRightTarget.py index eb7037d..995f49b 100644 --- a/targets/right_bank/RightBankRightTarget.py +++ b/targets/right_bank/RightBankRightTarget.py @@ -3,7 +3,7 @@ from BankTarget import BankTarget class RightBankRightTarget(BankTarget): def __init__(self): - super().__init__(100, "Right Bank Right") + super().__init__(30000, "Right Bank Right") def hit(self): super().hit() \ No newline at end of file diff --git a/targets/technical/OutholeTarget.py b/targets/technical/OutholeTarget.py index 04814b3..a025d81 100644 --- a/targets/technical/OutholeTarget.py +++ b/targets/technical/OutholeTarget.py @@ -2,7 +2,7 @@ from Target import Target class OutholeTarget(Target): def __init__(self): - super().__init__(100, 'Outhole') + super().__init__(0, 'Outhole') def hit(self): super().hit() diff --git a/test.py b/test.py index 68191fa..71efde3 100644 --- a/test.py +++ b/test.py @@ -1,8 +1,23 @@ -from utils.Singleton import Singleton -class A(metaclass=Singleton): +class A: def __init__(self, a): self.a = a def printa(self): print(self.a) + def test2(self, _): + print(34) + def test3(self): + print(5) +class B(A): + def test(self, fun): + fun(self) + def test3(self, a): + super().test3() + print(a) + +class C: + def __init__(self): + self.foo() + def foo(self): + self.a = 10