예제 #1
0
    private void DamageSystem_OnDeathPlayer(CreatureStats c, IDamage damage)
    {
        _allPlayers.Remove(c);

        c.gameObject.tag   = "DeathPlayer";
        c.gameObject.layer = 2;
        c.GetComponent <CharacterController>().enabled = false;

        //Удаляем все состояния
        ICharacterState[] states = c.GetComponents <ICharacterState>();
        foreach (var state in states)
        {
            Destroy(state);
        }

        if (_currentPlayer == c)
        {
            ChangePlayer();
        }

        //Заплатк адля конца
        if (_allPlayers.FirstOrDefault(x => x.team == 1) == null)
        {
            endPoint.SetActive(true);
        }
    }
예제 #2
0
    private void StatesExecute(CreatureStats creature)
    {
        ICharacterState[] states = creature.GetComponents <ICharacterState>();
        Debug.LogFormat("Нашли {0} состояний у {1}", states.Length, creature.creatureName);

        foreach (ICharacterState state in states)
        {
            state.Run();
        }
    }