From 9d7ecdbc2c453b903c40feae327d78770b5b22d8 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sat, 14 Dec 2019 17:30:54 +0100 Subject: [PATCH] Disable SupportPowerInstances when player lost Fixes bots using player actor powers after defeat. --- .../Traits/SupportPowers/SupportPowerManager.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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; } }