Files
flippr-game/factories/GameFactory.py
Jonas Zeunert 5e0f1a60bc id mismatch
2020-03-09 20:48:45 +01:00

50 lines
1.4 KiB
Python

from config import *
from networking.Networking 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
class GameFactory:
def __init__(self):
displayNames = Networking().getDisplays()['displays']
self.displayFactory = DisplayFactory(displayNames)
specialDisplay = self.displayFactory.createSpecialDisplay()
self.playerCount = len(displayNames) - 1
self.playerStateFactory = PlayerStateFactory(specialDisplay)
def createGame(self):
targets = TargetFactory.createAllTargets()
inputHandler = InputHandler(targets)
players = self.createPlayers()
gameState = GameState(players, self.getHighScore(), players[0].id)
eventFactory = EventFactory(targets, gameState.currentPlayer)
events = eventFactory.allEvents()
return Game(inputHandler, gameState, events)
def createPlayers(self):
players = []
for id in range(1, self.playerCount):
display = self.displayFactory.createPlayerDisplay(id)
player = self.playerStateFactory.createPlayerState(display, id)
players.append(player)
return players
def getHighScore(self): # todo
return 0