Before checking if the entity hitbox intersects the shockwave shell, we
do a basic check that the entity is close enough to be hit, considering
its radius.
This fixes the unlimited vertical range problem, since the distance is
measured in 3D.
This keeps the arrow velocity from changing, which is what was causing
the ProjectileHit outcome to be pushed multiple times for the same
arrow, since the outcome checks if the arrow velocity is above a given
threshold.