diff --git a/OpenRA.Mods.RA/Missions/Allies04Script.cs b/OpenRA.Mods.RA/Missions/Allies04Script.cs index dbe480c86b..e66a5335fd 100644 --- a/OpenRA.Mods.RA/Missions/Allies04Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies04Script.cs @@ -150,7 +150,7 @@ namespace OpenRA.Mods.RA.Missions var enemies = world.Actors.Where(u => u.Owner == creeps && u.HasTrait() && ((u.HasTrait() && !u.HasTrait() && !u.HasTrait()) || u.HasTrait()) && !u.IsDead() && u.IsInWorld); - var enemy = enemies.OrderBy(u => (attacker.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault(); + var enemy = enemies.ClosestTo(attacker); if (enemy != null) attacker.QueueActivity(new AttackMove.AttackMoveActivity(attacker, new Attack(Target.FromActor(enemy), WRange.FromCells(3)))); else diff --git a/OpenRA.Mods.RA/Missions/FortLonestarScript.cs b/OpenRA.Mods.RA/Missions/FortLonestarScript.cs index 4134054f37..bc4360879a 100644 --- a/OpenRA.Mods.RA/Missions/FortLonestarScript.cs +++ b/OpenRA.Mods.RA/Missions/FortLonestarScript.cs @@ -79,11 +79,10 @@ namespace OpenRA.Mods.RA.Missions { var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == multi0) && ((u.HasTrait() && !u.HasTrait()))); - var targetEnemy = enemies.OrderBy(u => (self.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault(); + + var targetEnemy = enemies.ClosestTo(self); if (targetEnemy != null) - { self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), WRange.FromCells(6)))); - } } void SendVehicles() diff --git a/OpenRA.Mods.RA/Missions/MissionUtils.cs b/OpenRA.Mods.RA/Missions/MissionUtils.cs index e397de1dad..e5976235a5 100644 --- a/OpenRA.Mods.RA/Missions/MissionUtils.cs +++ b/OpenRA.Mods.RA/Missions/MissionUtils.cs @@ -212,7 +212,7 @@ namespace OpenRA.Mods.RA.Missions var enemies = self.World.Actors.Where(u => u.AppearsHostileTo(self) && u.Owner == enemyPlayer && ((u.HasTrait() && !u.HasTrait()) || (u.HasTrait() && !u.HasTrait())) && u.IsInWorld && !u.IsDead()); - var enemy = enemies.OrderBy(u => (self.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault(); + var enemy = enemies.ClosestTo(self); if (enemy != null) self.QueueActivity(queued, new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(enemy), WRange.FromCells(3)))); } diff --git a/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs b/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs index 7971850508..b910b948e9 100644 --- a/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs +++ b/OpenRA.Mods.RA/Missions/Soviet01ClassicScript.cs @@ -126,8 +126,7 @@ namespace OpenRA.Mods.RA.Missions { var bridge = world.Actors .Where(a => a.HasTrait() && !a.IsDead()) - .OrderBy(a => (startJeep.CenterPosition - a.CenterPosition).LengthSquared) - .First(); + .ClosestTo(startJeep); Combat.DoExplosion(bridge, "Demolish", bridge.CenterPosition); world.WorldActor.Trait().AddEffect(15, bridge.CenterPosition, 6); bridge.Kill(bridge); diff --git a/OpenRA.Mods.RA/Missions/Survival01Script.cs b/OpenRA.Mods.RA/Missions/Survival01Script.cs index 7b37bf0fdc..9ca1de8e66 100644 --- a/OpenRA.Mods.RA/Missions/Survival01Script.cs +++ b/OpenRA.Mods.RA/Missions/Survival01Script.cs @@ -211,11 +211,10 @@ namespace OpenRA.Mods.RA.Missions { var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == allies) && ((u.HasTrait() && !u.HasTrait()) || u.HasTrait())); - var targetEnemy = enemies.OrderBy(u => (self.CenterPosition - u.CenterPosition).LengthSquared).FirstOrDefault(); + + var targetEnemy = enemies.ClosestTo(self); if (targetEnemy != null) - { self.QueueActivity(new AttackMove.AttackMoveActivity(self, new Attack(Target.FromActor(targetEnemy), WRange.FromCells(3)))); - } } void ManageSovietUnits()