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): with open(config.HIGHSCORE_FILE, "w+") as file: score_str = file.readline() file.close() if score_str == "": score_str = "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)