Files
flippr-game/factories/GameFactory.py
Jonas Zeunert 050a3161e4 haha
2022-09-01 02:02:38 +02:00

53 lines
1.6 KiB
Python

import config
from __main__ import networking
from factories.PlayerStateFactory import PlayerStateFactory
from factories.DisplayFactory import DisplayFactory
from factories.TargetFactory import TargetFactory
from factories.EventFactory import EventFactory
from InputHandler import InputHandler
from GameState import GameState
from Game import Game
from lamps.LampGroup import PLAYER_LAMPS
class GameFactory:
def __init__(self):
displayNames = networking.getDisplays()['displays']
self.displayFactory = DisplayFactory(displayNames)
self.displays = self.displayFactory.createDisplays()
self.specialDisplay = self.displayFactory.createSpecialDisplay()
self.playerCount = len(displayNames)
self.targets = TargetFactory.createAllTargets()
banks = [self.targets['Left Bank'], self.targets['Right Bank'], self.targets['Top Bank']]
self.playerStateFactory = PlayerStateFactory(self.specialDisplay, banks, self.displays)
PLAYER_LAMPS.activateNext()
def getHighScore(self):
try:
with open(config.HIGHSCORE_FILE, "r") as file:
score_str = file.readline()
file.close()
except IOError:
return 0
if score_str == "":
return 0
return int(score_str)
def createGame(self):
inputHandler = InputHandler(self.targets)
gameState = GameState(self.playerStateFactory, self.getHighScore(), self.specialDisplay)
eventFactory = EventFactory(self.targets, gameState)
events = eventFactory.allEvents()
return Game(inputHandler, gameState, events)