示例#1
0
    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;
    }
示例#2
0
        private void EndCombat()
        {
            for (int i = 0; i < m_allUnits.Count; i++)
            {
                m_allUnits[i].OnDied -= OnUnitDied;
            }

            OnCombatEnded?.Invoke();
        }