diff --git a/OpenRA.Mods.Common/Traits/Harvester.cs b/OpenRA.Mods.Common/Traits/Harvester.cs index 589c268708..d64dc13094 100644 --- a/OpenRA.Mods.Common/Traits/Harvester.cs +++ b/OpenRA.Mods.Common/Traits/Harvester.cs @@ -158,11 +158,13 @@ namespace OpenRA.Mods.Common.Traits public Actor ClosestProc(Actor self, Actor ignore) { // Find all refineries and their occupancy count: - var refs = ( - from r in self.World.ActorsWithTrait() - where r.Actor != ignore && r.Actor.Owner == self.Owner && IsAcceptableProcType(r.Actor) - let linkedHarvs = self.World.ActorsWithTrait().Count(a => a.Trait.LinkedProc == r.Actor) - select new { Location = r.Actor.Location + r.Trait.DeliveryOffset, Actor = r.Actor, Occupancy = linkedHarvs }).ToDictionary(r => r.Location); + var refs = self.World.ActorsWithTrait() + .Where(r => r.Actor != ignore && r.Actor.Owner == self.Owner && IsAcceptableProcType(r.Actor)) + .Select(r => new { + Location = r.Actor.Location + r.Trait.DeliveryOffset, + Actor = r.Actor, + Occupancy = self.World.ActorsWithTrait().Count(a => a.Trait.LinkedProc == r.Actor) }) + .ToDictionary(r => r.Location); // Start a search from each refinery's delivery location: var mi = self.Info.Traits.Get();