public void OnPlayerDied(PlayerGameplay player) { uint?stocks = player.GetRemainingStocks(); int arrayId = (int)(player.playerEnum); if (null != stocks && null != PlayerArray[arrayId].Player) { PlayerArray[arrayId].UiPercentage.text = 0.ToString("D3") + "%"; if (3 < stocks) { PlayerArray[arrayId].UiTextStockX.text = ((int)(stocks)).ToString("D2"); } else if (2 < stocks) // 3+ -> 3 = only panel 3 images { PlayerArray[arrayId].UiPanelStockX.SetActive(false); PlayerArray[arrayId].UiPanelStock3.SetActive(true); } else if (1 < stocks) // 3 -> 2 = only panel 3 images { PlayerArray[arrayId].UiPanelStock3.GetComponent <StockDisplay>().Image3.enabled = false; } else if (0 < stocks) // 2 -> 1, can be 3/2 { if (PlayerArray[arrayId].UiPanelStock3.activeInHierarchy) { PlayerArray[arrayId].UiPanelStock3.GetComponent <StockDisplay>().Image2.enabled = false; } else { PlayerArray[arrayId].UiPanelStock2.GetComponent <StockDisplay>().Image2.enabled = false; } } else { bFinished = true; foreach (PlayerUI playerUI in PlayerArray) { if (null != playerUI.Player) { playerUI.UiPanelStock3.SetActive(false); playerUI.UiPanelStock2.SetActive(false); playerUI.UiPanelStock1.SetActive(false); } } } if (!bFinished) { Transform newPose = Spawner.GetSpawnLocation(); PlayerArray[arrayId].Player.SetNextSpawnLocation(newPose); } } }
// Update is called once per frame void Update() { // // Inputs if (Input.GetKeyUp(KeyCode.Escape)) { if (EInGameState.paused == eInGameState) { eInGameState = EInGameState.playing; } else { eInGameState = EInGameState.paused; } } switch (eInGameState) { case EInGameState.countdown: { eInGameState = EInGameState.playing; break; } case EInGameState.playing: { // // Check time if (EInGameEndRules.time == Rules || EInGameEndRules.stock_and_time == Rules) { fRemainingTime = Mathf.Max(fRemainingTime - Time.deltaTime, 0.0f); int iMinutesNb = (int)(fRemainingTime / 60); int iSecondsNb = (int)(fRemainingTime - iMinutesNb * 60.0f); UiTime.text = iMinutesNb.ToString("D2") + ":" + iSecondsNb.ToString("D2"); if (fRemainingTime == 0.0f) { bFinished |= true; } } if (bFinished) { eInGameState = EInGameState.finished; } break; } case EInGameState.paused: { break; } case EInGameState.finished: { UiPanelVictory.SetActive(true); if (0 == Player1.GetRemainingStocks()) { UiTextWinner.text = "P2"; } else if (0 == Player2.GetRemainingStocks()) { UiTextWinner.text = "P1"; } else { if (Player1.GetRemainingStocks() == Player2.GetRemainingStocks()) { if (Player1.GetPercentage() > Player2.GetPercentage()) { UiTextWinner.text = "P2"; } else { UiTextWinner.text = "P1"; } } else { if (Player1.GetRemainingStocks() > Player2.GetRemainingStocks()) { UiTextWinner.text = "P1"; } else { UiTextWinner.text = "P2"; } } } break; } } }
// Update is called once per frame void Update() { // // Inputs if (Input.GetKeyUp(KeyCode.Escape)) { if (EInGameState.paused == eInGameState) { eInGameState = EInGameState.playing; } else { eInGameState = EInGameState.paused; // // Disable spawning spawnerManager.DisableSpawning(); } } if (Debug.isDebugBuild) { if (Input.GetKey(KeyCode.R)) { // Go on victory screen eInGameState = EInGameState.finished; fRemainingTime = 0.0f; } } switch (eInGameState) { case EInGameState.countdown: { eInGameState = EInGameState.playing; // // Enable spawning spawnerManager.EnableSpawning(); break; } case EInGameState.playing: { // // Check time if (EInGameEndRules.time == Rules || EInGameEndRules.stock_and_time == Rules) { fRemainingTime = Mathf.Max(fRemainingTime - Time.deltaTime, 0.0f); int iMinutesNb = (int)(fRemainingTime / 60); int iSecondsNb = (int)(fRemainingTime - iMinutesNb * 60.0f); UiTime.text = iMinutesNb.ToString("D2") + ":" + iSecondsNb.ToString("D2"); if (fRemainingTime == 0.0f) { bFinished |= true; } } if (bFinished) { eInGameState = EInGameState.finished; fRemainingTime = 0.0f; // // Disable spawning spawnerManager.DisableSpawning(); } break; } case EInGameState.paused: { break; } case EInGameState.finished: { if (fRemainingTime == 0.0f) { UiPanelVictory.SetActive(true); if (0 == Player1.GetRemainingStocks()) { UiTextWinner.text = "P2"; } else if (0 == Player2.GetRemainingStocks()) { UiTextWinner.text = "P1"; } else { if (Player1.GetRemainingStocks() == Player2.GetRemainingStocks()) { if (Player1.GetPercentage() > Player2.GetPercentage()) { UiTextWinner.text = "P2"; } else { UiTextWinner.text = "P1"; } } else { if (Player1.GetRemainingStocks() > Player2.GetRemainingStocks()) { UiTextWinner.text = "P1"; } else { UiTextWinner.text = "P2"; } } } } fRemainingTime += Time.deltaTime; if (fRemainingTime >= 2.0f && (Input.GetKeyUp(KeyCode.Keypad0) || Input.GetKeyUp(KeyCode.Space))) { // Return to champ select SceneManager.LoadScene("ChampSelect", LoadSceneMode.Single); } break; } } }