public void dealDamage(DamageEffect damage, GameObject cause = null) { EntityView.SetHealth(EntityView.GetHealth() - damage.damageTaken); EntityView.SetShields(EntityView.GetShields() - damage.shieldBlocked); if (damage.damageTaken > 0) { GameObject go = Instantiate(damageCounterPrefab); go.transform.position = new Vector3(transform.position.x, transform.position.y + 15, transform.position.z); DamageCounter counter = go.GetComponent <DamageCounter>(); counter.Damage = damage.damageTaken; } if (shields != null && damage.shieldBlocked > 0) { shields.ShieldHit(damage); } }