public void UpdateGame() { switch (m_gameState) { case GameState.None: case GameState.AppandingToMasterClient: { break; } case GameState.Initing: { if (m_gameStartCondition.IsGameCanStart()) { StartGame(); } break; } case GameState.Running: { m_runningGameLogic.Tick(); if (m_gameOverCondition.IsGameOver(OnPlayerWin, OnPlayerLose)) { m_gameOverCondition = null; m_gameState = GameState.End; } break; } } }
private void StartGame() { if (NetworkManager.IsOffline || (!NetworkManager.IsOffline && PhotonNetwork.isMasterClient)) { List <Actor> _allActors = ActorManager.AllActors; for (int i = 0; i < _allActors.Count; i++) { if (m_otherAIObjectInstanceID.Contains(_allActors[i].gameObject.GetInstanceID())) { _allActors[i].EnableAI(true); } } m_runningGameLogic = new MainGameLogic(50f, 3f); m_gameState = GameState.Running; m_gameOverCondition = new GameOverCondition_AllActorDied(m_currentNewGameSetting.startAs); if (!NetworkManager.IsOffline) { PhotonEventSender.StartGame(); } else { SyncGameStart(); } } }
private void InitGameOverCondition() { switch (GameOverLimit) { case SeekerGame.GameOverCondition.STEPS_LIMIT: this.m_gameOverCondition = new GameOverBySteps(m_sceneData.clickCount); break; case SeekerGame.GameOverCondition.TIME_LIMIT: this.m_gameOverCondition = new GameOverByTime(1000); break; } }