Spending/Upgrades/Targetable/RepairTargetableUpgrade.cs
using System;
namespace PlanetMeat;
[Title( "Target Upgrade - Repair" )]
public sealed class RepairTargetableUpgrade : BaseUpgrade
{
const int HP_PER_RANK = 10;
private Targetable Targetable => field ??= this.FindNearestUpwards<Targetable>();
public override bool Purchaseable => Targetable.CurrentHp < Targetable.MaxHp;
public override double NextCost => Math.Round( Agenda.Current.RoundNum + Progressions.StairSlow( Rank ) );
private int RepairResult => Math.Min( Targetable.CurrentHp + HP_PER_RANK, Targetable.MaxHp );
protected override void OnRankChanged()
{
Targetable?.CurrentHp = RepairResult;
}
public override string GetDisplayedEffectAt( int rank )
{
if ( rank == Rank )
return Targetable.CurrentHp.ToString();
return RepairResult.ToString();
}
}