Exemplo n.º 1
0
 public void TakeDamageOverTime(int damage, AttackEffect.DamageSource damageSource, Spell source)
 {
     if (!damageOverTimeSpellsInEffect.Contains(source))
     {
         damageOverTimeSpellsInEffect.Add(source);
         GetHit(damage, 0f, Vector3.zero, damageSource);
         StartCoroutine(RemoveDamageOverTimeSource(source));
     }
 }
Exemplo n.º 2
0
    public void GetHit(int damage, float knockBackForce, Vector3 knockBackDirection, AttackEffect.DamageSource damageSource = AttackEffect.DamageSource.Physical)
    {
        if (!isInvulnerable)
        {
            HP -= damage;

            Vector3 knockBackTo = (transform.position - knockBackDirection + Vector3.up * 0.5f).normalized * knockBackForce;
            knockBackTo.z = 0;
            rb.AddForce(knockBackTo, ForceMode.Impulse);
            CancelInvoke("ResetVelocity");
            Invoke("ResetVelocity", 0.3f);
            StartCoroutine("AnimateHurt");
        }
    }