Index: binaries/data/mods/public/simulation/components/UnitAI.js =================================================================== --- binaries/data/mods/public/simulation/components/UnitAI.js +++ binaries/data/mods/public/simulation/components/UnitAI.js @@ -1634,8 +1634,10 @@ "MovementUpdate": function(msg) { // If it looks like the path is failing, and we are close enough stop anyways. // This avoids pathing for an unreachable goal and reduces lag considerably. - if (msg.likelyFailure || msg.obstructed && this.RelaxedMaxRangeCheck(this.order.data, this.DefaultRelaxedMaxRange) || - this.CheckRange(this.order.data)) + if (msg.likelyFailure || + (msg.veryObstructed || msg.obstructed && this.orderQueue.length > 1) && + this.RelaxedMaxRangeCheck(this.order.data, this.DefaultRelaxedMaxRange) || + this.CheckRange(this.order.data)) this.FinishOrder(); }, }, @@ -1667,8 +1669,10 @@ "MovementUpdate": function(msg) { // If it looks like the path is failing, and we are close enough stop anyways. // This avoids pathing for an unreachable goal and reduces lag considerably. - if (msg.likelyFailure || msg.obstructed && this.RelaxedMaxRangeCheck(this.order.data, this.DefaultRelaxedMaxRange) || - this.CheckRange(this.order.data)) + if (msg.likelyFailure || + (msg.veryObstructed || msg.obstructed && this.orderQueue.length > 1) && + this.RelaxedMaxRangeCheck(this.order.data, this.DefaultRelaxedMaxRange) || + this.CheckRange(this.order.data)) this.FinishOrder(); }, },