@@ -32,6 +32,7 @@ namespace OpenRA.Mods.RA.Buildings
|
|||||||
|
|
||||||
Health Health;
|
Health Health;
|
||||||
RepairableBuildingInfo Info;
|
RepairableBuildingInfo Info;
|
||||||
|
public bool RepairActive = true;
|
||||||
|
|
||||||
public RepairableBuilding(Actor self, RepairableBuildingInfo info)
|
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 hpToRepair = Math.Min(Info.RepairStep, Health.MaxHP - Health.HP);
|
||||||
var cost = Math.Max(1, (hpToRepair * Info.RepairPercent * buildingValue) / (Health.MaxHP * 100));
|
var cost = Math.Max(1, (hpToRepair * Info.RepairPercent * buildingValue) / (Health.MaxHP * 100));
|
||||||
if (!Repairer.PlayerActor.Trait<PlayerResources>().TakeCash(cost))
|
RepairActive = Repairer.PlayerActor.Trait<PlayerResources>().TakeCash(cost);
|
||||||
|
if (!RepairActive)
|
||||||
{
|
{
|
||||||
remainingTicks = 1;
|
remainingTicks = 1;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
|
|
||||||
rb = building.TraitOrDefault<RepairableBuilding>();
|
rb = building.TraitOrDefault<RepairableBuilding>();
|
||||||
anim = new Animation(building.World, "allyrepair");
|
anim = new Animation(building.World, "allyrepair");
|
||||||
|
anim.Paused = () => !rb.RepairActive;
|
||||||
anim.PlayRepeating("repair");
|
anim.PlayRepeating("repair");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user