Worth mentioning the 'Distance' expression - you can get the real distance using:
distance(Orange.X, Orange.Y, Purple.X, Purple.Y)
and that's always a positive value as well. (It does the sqrt(dx^2+dy^2) formula behind the scenes)
It's worth noting the spread value/fastloop pattern is redundant in Construct - always use a For Each instead. The Turret behavior can track objects in range, but if an object enters range it will track it until it leaves range (ignoring any objects which may move closer in that time) - perhaps a 'target closest' option would be handy for Turret...
I think the difficulty with finding the closest object with multiple orange and purple boxes is you have to first identify the closest one, then pick it with a separate event. You'd also have to track the targetted object being destroyed, other objects coming closer, etc. etc. I'll give you the events if you want, but I'd recommend the Turret behavior for now.