From e131963c5310f3690b8cfa3e55d935bb5b07f878 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sun, 10 Jan 2010 19:15:32 +1300 Subject: [PATCH] Repair ported --- OpenRa.Game/Traits/Activities/Repair.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/OpenRa.Game/Traits/Activities/Repair.cs b/OpenRa.Game/Traits/Activities/Repair.cs index f6fcf06b59..b343b3f506 100644 --- a/OpenRa.Game/Traits/Activities/Repair.cs +++ b/OpenRa.Game/Traits/Activities/Repair.cs @@ -16,8 +16,11 @@ namespace OpenRa.Game.Traits.Activities if (isCanceled) return NextActivity; if (remainingTicks == 0) { - var costPerHp = (Rules.General.URepairPercent * self.LegacyInfo.Cost) / self.LegacyInfo.Strength; - var hpToRepair = Math.Min(Rules.General.URepairStep, self.LegacyInfo.Strength - self.Health); + var unitCost = self.Info.Traits.Get().Cost; + var hp = self.Info.Traits.WithInterface().First().HP; + + var costPerHp = (Rules.General.URepairPercent * unitCost) / hp; + var hpToRepair = Math.Min(Rules.General.URepairStep, hp - self.Health); var cost = (int)Math.Ceiling(costPerHp * hpToRepair); if (!self.Owner.TakeCash(cost)) { @@ -26,7 +29,7 @@ namespace OpenRa.Game.Traits.Activities } self.InflictDamage(self, -hpToRepair, Rules.WarheadInfo["Super"]); - if (self.Health == self.LegacyInfo.Strength) + if (self.Health == hp) return NextActivity; var hostBuilding = Game.FindUnits(self.CenterLocation, self.CenterLocation)