diff --git a/OpenRA.Mods.RA/Buildings/RepairableBuilding.cs b/OpenRA.Mods.RA/Buildings/RepairableBuilding.cs index 3e7fb264eb..d5394b9bad 100755 --- a/OpenRA.Mods.RA/Buildings/RepairableBuilding.cs +++ b/OpenRA.Mods.RA/Buildings/RepairableBuilding.cs @@ -32,6 +32,7 @@ namespace OpenRA.Mods.RA.Buildings Health Health; RepairableBuildingInfo Info; + public bool RepairActive = true; public RepairableBuilding(Actor self, RepairableBuildingInfo info) { @@ -81,7 +82,8 @@ namespace OpenRA.Mods.RA.Buildings var hpToRepair = Math.Min(Info.RepairStep, Health.MaxHP - Health.HP); var cost = Math.Max(1, (hpToRepair * Info.RepairPercent * buildingValue) / (Health.MaxHP * 100)); - if (!Repairer.PlayerActor.Trait().TakeCash(cost)) + RepairActive = Repairer.PlayerActor.Trait().TakeCash(cost); + if (!RepairActive) { remainingTicks = 1; return; diff --git a/OpenRA.Mods.RA/Effects/RepairIndicator.cs b/OpenRA.Mods.RA/Effects/RepairIndicator.cs index a37e99e567..ea114e1b12 100755 --- a/OpenRA.Mods.RA/Effects/RepairIndicator.cs +++ b/OpenRA.Mods.RA/Effects/RepairIndicator.cs @@ -32,6 +32,7 @@ namespace OpenRA.Mods.RA.Effects rb = building.TraitOrDefault(); anim = new Animation(building.World, "allyrepair"); + anim.Paused = () => !rb.RepairActive; anim.PlayRepeating("repair"); }