diff --git a/OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs index 30e0909ae1..1b8d7a0723 100644 --- a/OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs +++ b/OpenRA.Mods.Common/Traits/SupportPowers/SupportPowerManager.cs @@ -109,7 +109,7 @@ namespace OpenRA.Mods.Common.Traits public IEnumerable GetPowersForActor(Actor a) { - if (a.Owner != Self.Owner || !a.Info.HasTraitInfo()) + if (Powers.Count == 0 || a.Owner != Self.Owner || !a.Info.HasTraitInfo()) return NoInstances; return a.TraitsImplementing() @@ -151,7 +151,16 @@ namespace OpenRA.Mods.Common.Traits protected int remainingSubTicks; public int RemainingTicks { get { return remainingSubTicks / 100; } } public bool Active { get; private set; } - public bool Disabled { get { return (!prereqsAvailable && !Manager.DevMode.AllTech) || !instancesEnabled || oneShotFired; } } + public bool Disabled + { + get + { + return Manager.Self.Owner.WinState == WinState.Lost || + (!prereqsAvailable && !Manager.DevMode.AllTech) || + !instancesEnabled || + oneShotFired; + } + } public SupportPowerInfo Info { get { return Instances.Select(i => i.Info).FirstOrDefault(); } } public bool Ready { get { return Active && RemainingTicks == 0; } }