diff --git a/OpenRA.Mods.RA/AI/HackyAI.cs b/OpenRA.Mods.RA/AI/HackyAI.cs index 535d6cd5798f..599ac7d95b66 100644 --- a/OpenRA.Mods.RA/AI/HackyAI.cs +++ b/OpenRA.Mods.RA/AI/HackyAI.cs @@ -485,7 +485,7 @@ void CleanSquads() { squads.RemoveAll(s => !s.IsValid); foreach (var s in squads) - s.units.RemoveAll(a => a.Destroyed || a.IsDead()); + s.units.RemoveAll(a => a.Destroyed || a.IsDead() || a.Owner != p); } // Use of this function requires that one squad of this type. Hence it is a piece of shit @@ -508,8 +508,8 @@ Squad RegisterNewSquad(SquadType type, Actor target = null) void AssignRolesToIdleUnits(Actor self) { CleanSquads(); - activeUnits.RemoveAll(a => a.Destroyed || a.IsDead()); - unitsHangingAroundTheBase.RemoveAll(a => a.Destroyed || a.IsDead()); + activeUnits.RemoveAll(a => a.Destroyed || a.IsDead() || a.Owner != p); + unitsHangingAroundTheBase.RemoveAll(a => a.Destroyed || a.IsDead() || a.Owner != p); if (--rushTicks <= 0) {