public IEnumerator EffectsTimer(string code, float time, float value) { yield return(new WaitForSeconds(time)); if (!IsDead) { switch (code) { // Выключаем эффект "оглушения" case "Stunned": IsStunned = false; // Указываем что юнит не "оглушён" unit_manager.animator.SetBool("stunned", false); // Отключаем анимацию "оглушения" unit_manager.stun_particles.SetActive(false); // Выключаем частицы стана break; // Наносим урон от "кровотечения" case "Bleeding": // Если "кровотечение" включено if (IsBleeding > 0) { IsBleeding--; // Отнимаем один тик unit_manager.Health -= value; // Наносим урон StartCoroutine(EffectsTimer(code, time, value)); // Запускаем новый тик // Создаём частицы крови unit_manager.particles_manager.SpawnParticles("Blood", transform.position.x + Random.Range(-0.2f, 0.2f), transform.position.y + Random.Range(-0.1f, 0.22f)); } else { IsBleeding = 0; } break; // Наносим урон от "отравления" case "Poisoned": // Если "отравление" включено if (IsPoisoned > 0) { IsPoisoned--; // Отнимаем один тик unit_manager.Health -= value; // Наносим урон StartCoroutine(EffectsTimer(code, time, value)); // Запускаем новый тик // Создаём частицы яда unit_manager.particles_manager.SpawnParticles("Poison", transform.position.x + Random.Range(-0.23f, 0.21f), transform.position.y + Random.Range(-0.1f, 0.27f)); } else { IsPoisoned = 0; } break; // Замедление скорости атаки/передвижения case "Freezing": unit_manager.ChangeColor(""); // Возвращаем стандартный цвет break; // Отключаем вирус "Зомби" / "Гигантского паука" case "Virus": unit_manager.VirusType = 0; unit_manager.ChangeColor(""); // Возвращаем стандартный цвет break; // Лечение юнита Паладина case "Paladin Heal": unit_manager.Health += unit_manager.MaxHealth * value; StartCoroutine(EffectsTimer(code, time, value)); break; } } }