Example #1
0
        private void InitializeGame(Scene scene)
        {
            GameManager.Get().SetTeamInfo(TeamInfo);
            GameManager.Get().SetGameInfo(GameInfo);

            SpawnObject("ApplicationSingletonsNetId");
            var gameSceneSingletons = SpawnObject("GameSceneSingletons");

            gameSceneSingletons.SetActive(true);
            //var cameraMan = gameSceneSingletons.GetComponent<CameraManager>();
            //if (cameraMan != null)
            //{
            //    GameObject.Destroy(cameraMan);
            //}
            //else
            //{
            //    Log.Info("CameraManager is null");
            //}
            var SharedEffectBarrierManager = SpawnObject("SharedEffectBarrierManager");
            var SharedActionBufferObject   = SpawnObject("SharedActionBuffer");

            SharedActionBuffer = SharedActionBufferObject.GetComponent <SharedActionBuffer>();
            SharedActionBuffer.Networkm_actionPhase = ActionBufferPhase.Done;

            foreach (GameObject sceneObject in scene.GetRootGameObjects())
            {
                if (sceneObject.GetComponent <NetworkIdentity>() != null && !sceneObject.activeSelf)
                {
                    Log.Info($"Activating scene object '{sceneObject.name}'");
                    sceneObject.SetActive(true);
                    NetworkServer.Spawn(sceneObject);
                }
            }

            GameFlowData.Get().gameState = GameState.SpawningPlayers;

            bool destroyVisualsLoader = false;

            if (destroyVisualsLoader)
            {
                GameObject visualsLoader = GameObject.Find("VisualsLoader");
                if (visualsLoader != null)
                {
                    Log.Info("Trying to destroy VisualsLoader");
                    GameObject.Destroy(visualsLoader);
                }
            }

            Log.Info("Board is " + Board.Get());

            List <LobbyPlayerInfo> playerInfoList = GameManager.Get().TeamInfo.TeamPlayerInfo;

            IsMapLoaded = true;
            for (int i = 0; i < playerInfoList.Count; i++)
            {
                LobbyPlayerInfo playerInfo = playerInfoList[i];
                AddCharacterActor(playerInfo);
            }

            GameFlowData.Get().Networkm_currentTurn = 0;
            GameFlowData.Get().gameState            = GameState.StartingGame;

            // Show what objects are present in the current scene
            UnityUtils.DumpSceneObjects();

            WebsocketManager.ReportGameReady(); // Not sure where exactly it is supposed to happen
        }