public void InitializeGame() { ICharactersManager player1 = new HumanCharactersManager(1); ICharactersManager player2 = new AICharactersManager(2); battleStateController = new BattleStateController(player1, player2); battleField = Instantiate(environment); List <ICharacter> player1Characters = player1.GetCharacters(); List <ICharacter> player2Characters = player2.GetCharacters(); GameObject emptyGameObject = new GameObject(); emptyGameObject.name = "BattleHandler"; PlayerManagerProvider player1ManagerProvider = Instantiate(playerManagerPrefab); PlayerManagerProvider player2ManagerProvider = Instantiate(enemyManagerPrefab); GameController.Instance.AddPlayer(player1, player1ManagerProvider); GameController.Instance.AddPlayer(player2, player2ManagerProvider); player1ManagerProvider.Initialize(player1, CreatePlayersCharactersView(player1Characters, playerPrefab)); player2ManagerProvider.Initialize(player2, CreatePlayersCharactersView(player2Characters, enemyPrefab)); battleProvider = emptyGameObject.AddComponent <GameViewProvider>(); battleProvider.Initialize(battleStateController, player1ManagerProvider, player2ManagerProvider); //battleProvider.AddSyncronizedObject(player1ManagerProvider); //battleProvider.AddSyncronizedObject(player2ManagerProvider); battleStateController.SetStartPlanningState(); }
public void Initialize(BattleStateController _battleStateController, PlayerManagerProvider _player1, PlayerManagerProvider _player2) { stateController = _battleStateController; player1 = _player1; player2 = _player2; AddSyncronizedObject(player1); AddSyncronizedObject(player2); stateController.changeStateDelegate += Synchronize; stateController.intermediateMessage += RecieveintermediateMessage; stateController.checkRoundResult += CheckRoundResult; stateController.roundFinishedEvent += FreezeCharacters; stateController.gameFinished += SetEndGame; }
public void AddPlayer(ICharactersManager controller, PlayerManagerProvider view) { playersView.Add(controller, view); }