public void endGame(GameEndStatus status) { if (gameAlive) { switch (status) { case GameEndStatus.win: panel_win.SetActive(true); break; case GameEndStatus.loose: panel_loose.SetActive(true); break; default: break; } //PRIMODIAL cam_mainmenu.SetActive(true); //panel_mainmenu.SetActive(true); gameAlive = false; m_tempete.moveEnabled = false; } }
private void CheckScore(PlayerHandle handle) { if (playerScores[handle] >= rules.scoreLimit) { //OnPlayerWin?.Invoke(handle); //OnPlayerWin = null; GameEndStatus endStatus = new GameEndStatus { playerScores = playerScores, winnerHandle = handle }; foreach (PlayerController player in playerControllers) { player.OnDie -= OnPlayerDie; player.OnChangeHealth -= OnHealthChange; player.OnAreaScore -= OnAreaScore; } callback(endStatus); callback = null; } foreach (PlayerController player in playerControllers) { player.hud.SetScore(playerScores[player.handle]); } }
public void EndGame(GameEndStatus status) { IsPlaying = false; if (GameEnded != null) { GameEnded(status); } }
void GameManagerOnGameEnded(GameEndStatus gameEndStatus) { if (gameEndStatus == GameEndStatus.Won) { return; } gameObject.SetActive(true); PointsText.text = string.Format("With {0} points!", _gameManager.Points); _animator.SetBool("IsShowing", true); }
void GameManagerOnGameEnded(GameEndStatus gameEndStatus) { if (gameEndStatus == GameEndStatus.Lost) { return; } gameObject.SetActive(true); PointsText.text = string.Format("With {0} points!", _gameManager.Points); TimeText.text = string.Format("{0:F2} seconds left", _gameManager.TimeLeft); _animator.SetBool("IsShowing", true); }
// destroy stuff we need to explicitly, and let scenemanager do the rest private void UnloadLevel(GameEndStatus endStatus) { for (int i = 0; i < configuration.playerCount; i++) { // hud must be explicitly destroyed because it is instantieated as child to // GameManager instance which doesn't destroy on load Destroy(players[i].hud.gameObject); Destroy(players[i].gameObject); } players = null; menuSystem.SetEndView(endStatus); SceneManager.LoadScene(menuSceneName); musicManager.PlayMenu(); }
private void EndGame(GameEndStatus endStatus) { ChangeGameState(GameState.GameIsOver); switch (endStatus) { case GameEndStatus.PlayerWins: ShowMessage("You win!", 120f); break; case GameEndStatus.OpponentWins: ShowMessage("You lose!", 120f); break; case GameEndStatus.Draw: ShowMessage("It's a draw!", 120f); break; } CardPool.Instance.ReturnAllToPool(); }
private void ContinueToNextTurn() { GameEndStatus endStatus = CheckWinnerStatus(); if (endStatus != GameEndStatus.NotOverYet) { EndGame(endStatus); return; } if (playerHasNextTurn) { playerHasNextTurn = false; ChangeGameState(GameState.PlayersTurn); } else { playerHasNextTurn = true; StartCoroutine(OpponentChooseGroupsForBattle()); } }
private IEnumerator PlayerWinRoutine(GameEndStatus endStatus) { Debug.Log("I have been called by the gods of trading horn"); judge = null; musicManager.PlayEnd(); for (int i = 0; i < configuration.playerCount; i++) { players[i].Stop(); players[i].enabled = false; if (endStatus.winnerHandle == i) { players [i].hud.SetBigText(winText, winColor); } else { players [i].hud.SetBigText(loseText, loseColor); } } yield return(new WaitForSeconds(dieRoutineDuration)); UnloadLevel(endStatus); }
// Start routine in method so we can also unsubscribe this private void StartPlayerWinRoutine(GameEndStatus endStatus) => StartCoroutine(PlayerWinRoutine(endStatus));
/////////////////////////////////////// /// End view stuff /// /////////////////////////////////////// public void SetEndView(GameEndStatus endStatus) { endWinnerNumberText.text = $"#{endStatus.winnerHandle.index + 1}"; SetView(endViewObject); eventSystem.SetSelectedGameObject(endGoToMainButton.gameObject); }