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); } } } }
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); } } }