diff --git a/OpenRA.Mods.RA/Widgets/Logic/Ingame/IngamePowerCounterLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/Ingame/IngamePowerCounterLogic.cs index cd241e3f32..ec13966cf7 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/Ingame/IngamePowerCounterLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/Ingame/IngamePowerCounterLogic.cs @@ -8,7 +8,9 @@ */ #endregion +using System.Drawing; using OpenRA.Mods.RA.Buildings; +using OpenRA.Network; using OpenRA.Widgets; namespace OpenRA.Mods.RA.Widgets.Logic @@ -16,12 +18,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic public class IngamePowerCounterLogic { [ObjectCreator.UseCtor] - public IngamePowerCounterLogic(Widget widget, World world) + public IngamePowerCounterLogic(Widget widget, OrderManager orderManager, World world) { var powerManager = world.LocalPlayer.PlayerActor.Trait(); var power = widget.Get("POWER"); - power.GetText = () => powerManager.PowerProvided == 1000000 ? "inf" : powerManager.ExcessPower.ToString(); + power.GetText = () => powerManager.PowerProvided == 1000000 ? "inf" : powerManager.ExcessPower.ToString("+#;-#;0"); + + // Blink red when low power + power.GetColor = () => powerManager.ExcessPower < 0 && orderManager.LocalFrameNumber / 9 % 2 == 0 ? Color.Red : power.TextColor; } } }