Exemplo n.º 1
0
    private void ContactLogic(GameObject contactObject)
    {
        SpellTrigger collisionSpell = contactObject.GetComponent <SpellTrigger>();

        if (collisionSpell != null)
        {
            foreach (var item in thisSpell.counters)
            {
                if (item.Equals(collisionSpell.thisSpell))
                {
                    OnCounter?.Invoke();
                }
            }
        }
        else
        {
            IDamagable damageable = contactObject.GetComponent <IDamagable>();
            if (damageable != null)
            {
                damageable.TakeDamage(Mathf.RoundToInt(thisSpell.GetDmg() * dmgModifier));
                dmgModifier = 1f;
                if (destroyAfterAplliedDamage)
                {
                    Destroy(gameObject);
                }
            }
        }
    }
Exemplo n.º 2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        SpellTrigger spell = collision.gameObject.GetComponent <SpellTrigger>();

        if (spell != null)
        {
            if (Array.Exists(spell.thisSpell.GetCombo(), x => x == protectionFrom.type))
            {
                spell.Counter();
            }
            else
            {
                Destroy(gameObject);
            }
        }
    }