Working with events

This commit is contained in:
Jonas Zeunert
2020-02-03 23:44:25 +01:00
parent 3776724322
commit c5a250d040
10 changed files with 72 additions and 9 deletions

View File

@@ -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

17
src/GameFactory.py Normal file
View File

@@ -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

View File

@@ -0,0 +1,6 @@
class BonusTimeEvent:
def __init__(self, playerState):
self.playerState = playerState
def trigger(self):
self.playerState.addBonusTimeSecond()

View File

@@ -0,0 +1,6 @@
class EndGameEvent:
def __init__(self, flipper):
self.flipper = flipper
def trigger(self):
self.flipper.deactivate()

View File

@@ -0,0 +1,6 @@
class EndOfBallEvent:
def __init__(self, playerState):
self.playerState = playerState
def trigger(self):
self.playerState.removeBall()

View File

@@ -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()

View File

@@ -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()

6
src/events/PointEvent.py Normal file
View File

@@ -0,0 +1,6 @@
class PointEvent:
def __init__(self, playerState):
self.playerState = playerState
def trigger(self, target):
self.playerState.addPoints(target.points)

View File

@@ -0,0 +1,6 @@
class StartGameEvent:
def __init__(self, flipper):
self.flipper = flipper
def trigger(self):
flipper.activate()

View File

@@ -0,0 +1,6 @@
class UpperPlayfieldTimeEvent:
def __init__(self, playerState):
self.playerState = playerState
def trigger(self):
self.playerState.addUpperPlayfieldTime(1)