From 173dc5903945a95c46f23674de6826a03f76f269 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 7 Sep 2010 17:37:18 +1200 Subject: [PATCH] fix crash on engineer repair if the target building goes away --- OpenRA.Mods.RA/Activities/RepairBuilding.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OpenRA.Mods.RA/Activities/RepairBuilding.cs b/OpenRA.Mods.RA/Activities/RepairBuilding.cs index 149801cf2c..2810bc9db2 100644 --- a/OpenRA.Mods.RA/Activities/RepairBuilding.cs +++ b/OpenRA.Mods.RA/Activities/RepairBuilding.cs @@ -14,25 +14,25 @@ namespace OpenRA.Mods.RA.Activities { class RepairBuilding : IActivity { - Actor target; + Target target; - public RepairBuilding(Actor target) { this.target = target; } + public RepairBuilding(Actor target) { this.target = Target.FromActor(target); } public IActivity NextActivity { get; set; } public IActivity Tick(Actor self) { - if (target == null || target.IsDead()) return NextActivity; - var health = target.Trait(); + if (!target.IsValid) return NextActivity; + var health = target.Actor.Trait(); if (health.DamageState == DamageState.Undamaged) return NextActivity; - target.InflictDamage(self, -health.MaxHP, null); + target.Actor.InflictDamage(self, -health.MaxHP, null); self.Destroy(); return NextActivity; } - public void Cancel(Actor self) { target = null; NextActivity = null; } + public void Cancel(Actor self) { target = Target.None; NextActivity = null; } } }