diff --git a/OpenRA.Mods.RA/Buildings/PowerManager.cs b/OpenRA.Mods.RA/Buildings/PowerManager.cs index e37c81bc0e..226c974ba2 100755 --- a/OpenRA.Mods.RA/Buildings/PowerManager.cs +++ b/OpenRA.Mods.RA/Buildings/PowerManager.cs @@ -28,10 +28,12 @@ namespace OpenRA.Mods.RA.Buildings Dictionary PowerDrain = new Dictionary(); [Sync] int totalProvided; public int PowerProvided { get { return totalProvided; } } - + [Sync] int totalDrained; public int PowerDrained { get { return totalDrained; } } - + + public int ExcessPower { get { return totalProvided - totalDrained; } } + public PowerManager(ActorInitializer init, PowerManagerInfo info) { Info = info; diff --git a/OpenRA.Mods.RA/HackyAI.cs b/OpenRA.Mods.RA/HackyAI.cs index f1814caa7a..28b3fd129f 100644 --- a/OpenRA.Mods.RA/HackyAI.cs +++ b/OpenRA.Mods.RA/HackyAI.cs @@ -145,7 +145,8 @@ namespace OpenRA.Mods.RA foreach (var frac in Info.BuildingFractions) if (buildableThings.Any(b => b.Name == frac.Key)) - if (myBuildings.Count(a => a == frac.Key) < frac.Value * myBuildings.Length) + if (myBuildings.Count(a => a == frac.Key) < frac.Value * myBuildings.Length && + playerPower.ExcessPower >= Rules.Info[frac.Key].Traits.Get().Power) return Rules.Info[frac.Key]; return null;