Spending/Upgrades/Targetable/HPTargetableUpgrade.cs
using System;

namespace PlanetMeat;

[Title( "Target Upgrade - Max HP" )]
public sealed class HPTargetableUpgrade : IntAggregateUpgrade<Targetable>
{
	protected override ValueAggregator<int> FindAggregate => TargetComponent?.AggregateMaxHp;

	protected override void OnRankChanged()
	{
		var frac = (float)TargetComponent.CurrentHp / TargetComponent.MaxHp;
		base.OnRankChanged();
		TargetComponent?.CurrentHp = (int)Math.Ceiling(frac * TargetComponent.MaxHp);
	}
}