diff --git a/OpenRA.Mods.Common/AI/States/AirStates.cs b/OpenRA.Mods.Common/AI/States/AirStates.cs index 17c32f2fc3..413655ea78 100644 --- a/OpenRA.Mods.Common/AI/States/AirStates.cs +++ b/OpenRA.Mods.Common/AI/States/AirStates.cs @@ -31,17 +31,19 @@ namespace OpenRA.Mods.Common.AI var missileUnitsCount = 0; foreach (var unit in units) { - if (unit != null && unit.Info.HasTraitInfo() && !unit.Info.HasTraitInfo() - && !unit.IsDisabled()) + if (unit == null || unit.Info.HasTraitInfo()) + continue; + + var arms = unit.TraitsImplementing() + .Where(ab => !ab.IsTraitPaused && !ab.IsTraitDisabled) + .SelectMany(ab => ab.Armaments); + + foreach (var a in arms) { - var arms = unit.TraitsImplementing(); - foreach (var a in arms) + if (a.Weapon.IsValidTarget(AirTargetTypes)) { - if (a.Weapon.IsValidTarget(AirTargetTypes)) - { - missileUnitsCount++; - break; - } + missileUnitsCount++; + break; } } }