From 1aa80e03771fb339d505717de93fe644c26c4bf0 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 15 Aug 2011 14:23:54 +1200 Subject: [PATCH] fix #960 -- HackyAI shouldn't put itself in low power so much. --- OpenRA.Mods.RA/Buildings/PowerManager.cs | 6 ++++-- OpenRA.Mods.RA/HackyAI.cs | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) 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;