public void EndCombat(bool isRunning) { // Simply just reset the combat state if (combatPlayer == null && !InCombat) { _fightPanel.SetActive(false); return; } StopCoroutine(CombatUpdate()); _winPanel.SetActive(true); _diceAnimator.gameObject.SetActive(false); if (!isRunning) { if (playerLives <= 0) { GameManager.Instance.RemoveAllItems(combatPlayer); combatPlayer.transform.position = _spawnPostion; } if (enemyLives <= 0) { GameManager.Instance.RemoveAllItems(combatOpponent); combatOpponent.transform.position = _spawnPostion; AI ai = combatOpponent.GetComponent<AI>(); ai.SetState(new SearchingState(ai)); } } GameManager.Instance.NextTurn(combatPlayer); combatPlayer = null; combatOpponent = null; if (OnCombatEnded != null) { OnCombatEnded.Invoke(); } InCombat = false; }
private void EndCombat() { for (int i = 0; i < m_allUnits.Count; i++) { m_allUnits[i].OnDied -= OnUnitDied; } OnCombatEnded?.Invoke(); }