public void applyToPlayer(player p) { bool blocked = false; if (p.defensiveWeapon != null && !isTurretDamage) { print ("Defensive weapon detected!"); blocked = p.defensiveWeapon.blockDamage(damageAmount,weaponFired); } if (!blocked) { p.takeDamage (damageAmount); if (push != Vector2.zero) { p.addMomentum (push); } if (!isTurretDamage) { weaponFired.hitPlayer (type, p); } } else { // The defensive weapon will take care of dealing damage itself if (!isTurretDamage) { weaponFired.hitPlayerBlocked (type, p); } } }