Index: binaries/data/mods/public/simulation/components/Formation.js =================================================================== --- binaries/data/mods/public/simulation/components/Formation.js +++ binaries/data/mods/public/simulation/components/Formation.js @@ -173,7 +173,7 @@ var closestDistance = Infinity; for (var member of this.members) { - if (filter && !filter(ent)) + if (filter && !filter(member)) continue; var cmpPosition = Engine.QueryInterface(member, IID_Position); Index: binaries/data/mods/public/simulation/components/FormationAttack.js =================================================================== --- binaries/data/mods/public/simulation/components/FormationAttack.js +++ binaries/data/mods/public/simulation/components/FormationAttack.js @@ -58,7 +58,7 @@ if (result.max >= 0) result.max += extraRange; - result.min += extraRange; + return result; }; 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 @@ -1255,6 +1255,7 @@ "enter": function(msg) { var cmpFormation = Engine.QueryInterface(this.entity, IID_Formation); cmpFormation.SetRearrange(false); + this.StopMoving(); this.StartTimer(1000, 1000); }, @@ -1277,6 +1278,8 @@ "leave": function(msg) { this.StopTimer(); + let cmpFormation = Engine.QueryInterface(this.entity, IID_Formation); + cmpFormation.MoveToMembersCenter(); }, }, },