diff --git a/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs index a657a14844..e923a329bb 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/PrimaryBuilding.cs @@ -94,7 +94,8 @@ namespace OpenRA.Mods.Common.Traits { // Cancel existing primaries // TODO: THIS IS SHIT - var queues = Info.ProductionQueues.Length == 0 ? self.Info.TraitInfos().SelectMany(pi => pi.Produces) : Info.ProductionQueues; + var queues = Info.ProductionQueues.Length == 0 ? self.TraitsImplementing() + .Where(t => !t.IsTraitDisabled).SelectMany(pi => pi.Info.Produces) : Info.ProductionQueues; foreach (var q in queues) { foreach (var b in self.World @@ -103,7 +104,7 @@ namespace OpenRA.Mods.Common.Traits a.Actor != self && a.Actor.Owner == self.Owner && a.Trait.IsPrimary && - a.Actor.Info.TraitInfos().Any(pi => pi.Produces.Contains(q)))) + a.Actor.TraitsImplementing().Where(p => !p.IsTraitDisabled).Any(pi => pi.Info.Produces.Contains(q)))) b.Trait.SetPrimaryProducer(b.Actor, false); }