Exemple #1
0
    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();
        }
    }