From 7f3f783187d2ad04c8fd2353f44ee9c17e4f5f54 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 30 Jan 2011 16:38:05 +1300 Subject: [PATCH] Update cached PlayerResources when a silo is captured. --- OpenRA.Mods.RA/Render/RenderBuildingOre.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/Render/RenderBuildingOre.cs b/OpenRA.Mods.RA/Render/RenderBuildingOre.cs index 8759586a4f..1e6f97174e 100755 --- a/OpenRA.Mods.RA/Render/RenderBuildingOre.cs +++ b/OpenRA.Mods.RA/Render/RenderBuildingOre.cs @@ -17,18 +17,25 @@ namespace OpenRA.Mods.RA.Render public override object Create(ActorInitializer init) { return new RenderBuildingOre(init); } } - class RenderBuildingOre : RenderBuilding, INotifyBuildComplete + class RenderBuildingOre : RenderBuilding, INotifyBuildComplete, INotifyCapture { + PlayerResources PlayerResources; + public RenderBuildingOre( ActorInitializer init ) : base(init) { + PlayerResources = init.self.Owner.PlayerActor.Trait(); } public void BuildingComplete( Actor self ) { - var pr = self.Owner.PlayerActor.Trait(); anim.PlayFetchIndex( "idle", - () => (49 * pr.Ore) / (10*pr.OreCapacity)); + () => (49 * PlayerResources.Ore) / (10*PlayerResources.OreCapacity)); + } + + public void OnCapture (Actor self, Actor captor, Player oldOwner, Player newOwner) + { + PlayerResources = newOwner.PlayerActor.Trait(); } } }