Exemple #1
0
    public void DamageHp(DamageSystem.DamageTypes damageType, int baseDamage)
    {
        int finalDamage = baseDamage;

        bool isElemental = damageType.IsElemental(), isPhysical = damageType.IsPhysical();

        if (isElemental && isPhysical)
        {
            finalDamage -= Mathf.Min(Spi, Vit);
        }
        else if (isElemental)
        {
            finalDamage -= Spi;
        }
        else if (isPhysical)
        {
            finalDamage -= Vit;
        }

        if (finalDamage < 10)
        {
            finalDamage = Random.Range(1, 10);
        }

        CurrentHp = Mathf.Max(CurrentHp - finalDamage, 0);
        if (CurrentHp == 0)
        {
            StartCoroutine(OnDeath());
        }
        else
        {
            SoundManager.PlaySound(SoundManager.Sound.DAMAGE);
        }
    }
Exemple #2
0
    public void DamageHp(DamageSystem.DamageTypes damageType, int baseDamage)
    {
        int finalDamage = baseDamage;

        CurrentHp = Mathf.Max(CurrentHp - finalDamage, 0);
        if (CurrentHp == 0)
        {
            GameManager.UnregisterForTurn(this);
            player.AddExperience(Random.Range(50, 75));
            Destroy(gameObject);
        }
    }