diff --git a/OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs b/OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs index e01c215e77..8297b1ff68 100644 --- a/OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs +++ b/OpenRA.Mods.Common/Traits/Render/SupportPowerChargeBar.cs @@ -26,22 +26,22 @@ namespace OpenRA.Mods.Common.Traits.Render public object Create(ActorInitializer init) { return new SupportPowerChargeBar(init.Self, this); } } - class SupportPowerChargeBar : ISelectionBar + class SupportPowerChargeBar : ISelectionBar, INotifyOwnerChanged { readonly Actor self; readonly SupportPowerChargeBarInfo info; + SupportPowerManager spm; public SupportPowerChargeBar(Actor self, SupportPowerChargeBarInfo info) { this.self = self; this.info = info; + spm = self.Owner.PlayerActor.Trait(); } float ISelectionBar.GetValue() { - var spm = self.Owner.PlayerActor.Trait(); var power = spm.GetPowersForActor(self).FirstOrDefault(sp => !sp.Disabled); - if (power == null) return 0; @@ -53,5 +53,10 @@ namespace OpenRA.Mods.Common.Traits.Render } Color ISelectionBar.GetColor() { return info.Color; } + + void INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner) + { + spm = newOwner.PlayerActor.Trait(); + } } }