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); } }
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(); } }