diff --git a/OpenRA.Mods.RA/HackyAI.cs b/OpenRA.Mods.RA/HackyAI.cs index 8d15f326a3..15de638588 100644 --- a/OpenRA.Mods.RA/HackyAI.cs +++ b/OpenRA.Mods.RA/HackyAI.cs @@ -422,17 +422,18 @@ namespace OpenRA.Mods.RA BotDebug("AI: Can't find the MCV."); } + internal IEnumerable FindQueues(string category) + { + return world.ActorsWithTrait() + .Where(a => a.Actor.Owner == p && a.Trait.Info.Type == category) + .Select(a => a.Trait); + } + //Build a random unit of the given type. Not going to be needed once there is actual AI... void BuildRandom(string category) { // Pick a free queue - var queue = world.ActorsWithTrait() - .Where(a => a.Actor.Owner == p && - a.Trait.Info.Type == category && - a.Trait.CurrentItem() == null) - .Select(a => a.Trait) - .FirstOrDefault(); - + var queue = FindQueues( category ).FirstOrDefault( q => q.CurrentItem() == null ); if (queue == null) return; @@ -459,11 +460,7 @@ namespace OpenRA.Mods.RA public void Tick() { // Pick a free queue - var queue = ai.world.ActorsWithTrait() - .Where(a => a.Actor.Owner == ai.p && a.Trait.Info.Type == category) - .Select(a => a.Trait) - .FirstOrDefault(); - + var queue = ai.FindQueues( category ).FirstOrDefault(); if (queue == null) return;