From 61cde675ea5efb447634f95bd6285d9cff6a3f90 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 30 May 2011 21:26:05 +1200 Subject: [PATCH] fixed 741 -- use the correct superweapon building when more than one is available and some are disabled --- OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs b/OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs index 145fc23b3d..ebd17d62a2 100755 --- a/OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs +++ b/OpenRA.Mods.RA/SupportPowers/SupportPowerManager.cs @@ -131,12 +131,17 @@ namespace OpenRA.Mods.RA Manager = manager; Key = key; } + + static bool InstanceDisabled(SupportPower sp) + { + return sp.self.TraitsImplementing().Any(d => d.Disabled); + } bool notifiedCharging; bool notifiedReady; public void Tick() { - Active = !Disabled && Instances.Any(i => !i.self.TraitsImplementing().Any(d => d.Disabled)); + Active = !Disabled && Instances.Any(i => !InstanceDisabled(i)); if (Active) { @@ -173,7 +178,8 @@ namespace OpenRA.Mods.RA if (!Ready) return; - var power = Instances.First(); + var power = Instances.First(i => !InstanceDisabled(i)); + // Note: order.Subject is the *player* actor power.Activate(power.self, order); RemainingTime = TotalTime;