var candidate0RangeSquared = EFFECT_RADIUS*EFFECT_RADIUS
    var candidate1RangeSquared = EFFECT_RADIUS*EFFECT_RADIUS
    forUnitsInRange(targetPos, radius, (unit iter) -> begin
        if iter.isEnemy(casterOwner) and iter.isAlive() and not iter == target
            let rangeSquared = vec2(iter.getX(), iter.getY()).distToVecSquared(targetPos)
            if candidate0 == null or (candidate0RangeSquared > rangeSquared)
                candidate1 = candidate0
                candidate1RangeSquared = candidate0RangeSquared
                candidate0 = iter
                candidate0RangeSquared = rangeSquared
            else if candidate1 == null or (candidate1RangeSquared > rangeSquared)
                candidate1 = iter
                candidate1RangeSquared = rangeSquared

goto line:
Compare with:
text copy window edit this code post new code