public void Damage(int value, DamageTypes damageType) { if (!(Time.unscaledTime > _damageTimestamp + _damageCooldown)) { return; } health = Mathf.Max(0, health - value); _damageTimestamp = Time.unscaledTime; _playerEffects.Damage(damageType); if (damageType != DamageTypes.Dash) { PlayerEvents.Instance.TakeDamage(); } if (damageType == DamageTypes.Dash) { PlayerEvents.Instance.TakeDashDamage(); } if (damageType == DamageTypes.Laser) { _damageSound.Play(); } if (health <= 0 && !_isImmortal) { Die(); } }