diff --git a/src/EventHandler.py b/src/EventHandler.py index 1f91194..e36b228 100644 --- a/src/EventHandler.py +++ b/src/EventHandler.py @@ -1,20 +1,14 @@ import asyncio from src.networking.Networking import Networking -from src.targets import * class EventHandler: - def __init__(self): + def __init__(self, targets): self.isRunning = True - self.targets = dict + self.targets = targets self.createAllTargets() - def createAllTargets(self): - glo = globals() # Save globals so the dict does not change during execution of the script - for key in glo: - target = glo[key] - if(key.endswith('Target') and type(target) == 'class'): - self.targets[key] = target() + async def handleEvents(self): self.isRunning = True diff --git a/src/GameFactory.py b/src/GameFactory.py new file mode 100644 index 0000000..413cd35 --- /dev/null +++ b/src/GameFactory.py @@ -0,0 +1,17 @@ +from src.targets import * +from src.EventHandler import EventHandler + +class GameFactory: + def createGame(self): + targets = self.createAllTargets() + eventHandler = EventHandler(targets) + pass + + def createAllTargets(self): + result = dict + glo = globals() # Save globals so the dict does not change during execution of the script + for key in glo: + target = glo[key] + if(key.endswith('Target') and type(target) == 'class'): + result[key] = target() + return result \ No newline at end of file diff --git a/src/events/BonusTimeEvent.py b/src/events/BonusTimeEvent.py new file mode 100644 index 0000000..a8eedc4 --- /dev/null +++ b/src/events/BonusTimeEvent.py @@ -0,0 +1,6 @@ +class BonusTimeEvent: + def __init__(self, playerState): + self.playerState = playerState + + def trigger(self): + self.playerState.addBonusTimeSecond() \ No newline at end of file diff --git a/src/events/EndGameEvent.py b/src/events/EndGameEvent.py new file mode 100644 index 0000000..1a175b8 --- /dev/null +++ b/src/events/EndGameEvent.py @@ -0,0 +1,6 @@ +class EndGameEvent: + def __init__(self, flipper): + self.flipper = flipper + + def trigger(self): + self.flipper.deactivate() \ No newline at end of file diff --git a/src/events/EndOfBallEvent.py b/src/events/EndOfBallEvent.py new file mode 100644 index 0000000..6b8c38b --- /dev/null +++ b/src/events/EndOfBallEvent.py @@ -0,0 +1,6 @@ +class EndOfBallEvent: + def __init__(self, playerState): + self.playerState = playerState + + def trigger(self): + self.playerState.removeBall() diff --git a/src/events/EnterUpperPlayfieldEvent.py b/src/events/EnterUpperPlayfieldEvent.py new file mode 100644 index 0000000..7918437 --- /dev/null +++ b/src/events/EnterUpperPlayfieldEvent.py @@ -0,0 +1,8 @@ +class EnterUpperPlayfieldEvent: + def __init__(self, playerState, flipper): + self.playerState = playerState + self.flipper = flipper + + def trigger(self): + self.flipper.activate() + self.playerState.startUpperPlayfieldTimer() \ No newline at end of file diff --git a/src/events/LeaveUpperPlayfieldEvent.py b/src/events/LeaveUpperPlayfieldEvent.py new file mode 100644 index 0000000..e810513 --- /dev/null +++ b/src/events/LeaveUpperPlayfieldEvent.py @@ -0,0 +1,8 @@ +class LeaveUpperPlayfieldEvent: + def __init__(self, playerState, flipper): + self.playerState = playerState + self.flipper = flipper + + def trigger(self): + self.flipper.deactivate() + self.playerState.stopUpperPlayfieldTimer() \ No newline at end of file diff --git a/src/events/PointEvent.py b/src/events/PointEvent.py new file mode 100644 index 0000000..7929500 --- /dev/null +++ b/src/events/PointEvent.py @@ -0,0 +1,6 @@ +class PointEvent: + def __init__(self, playerState): + self.playerState = playerState + + def trigger(self, target): + self.playerState.addPoints(target.points) \ No newline at end of file diff --git a/src/events/StartGameEvent.py b/src/events/StartGameEvent.py new file mode 100644 index 0000000..40b686b --- /dev/null +++ b/src/events/StartGameEvent.py @@ -0,0 +1,6 @@ +class StartGameEvent: + def __init__(self, flipper): + self.flipper = flipper + + def trigger(self): + flipper.activate() \ No newline at end of file diff --git a/src/events/UpperPlayfieldTimeEvent.py b/src/events/UpperPlayfieldTimeEvent.py new file mode 100644 index 0000000..8ec5e71 --- /dev/null +++ b/src/events/UpperPlayfieldTimeEvent.py @@ -0,0 +1,6 @@ +class UpperPlayfieldTimeEvent: + def __init__(self, playerState): + self.playerState = playerState + + def trigger(self): + self.playerState.addUpperPlayfieldTime(1) \ No newline at end of file