Spending/Upgrades/Economy/BountyUpgrade.cs
namespace PlanetMeat;

[Title( "Economy Upgrade - Bounty" )]
public sealed class BountyUpgrade : BaseComponentUpgrade<AccountBounty, float>
{
	protected override float EffectBase => TargetComponent?.GetBountyWithout() ?? 0.0f;
	protected override float GetEffectAt( int rank ) => EffectPerRank.MultiplyCapped( rank );
	protected override bool IsUnderCap => FloatEffectImprovement.TestCap( OverallEffect, EffectMax );

	protected override void OnRankChanged()
	{
		TargetComponent?.ContributeBounty( CurrentEffect );
	}

	public override string GetDisplayedEffectAt( int rank ) => PercentageEffectImprovement.GetDisplayedPercentage( GetOveralEffect( rank ), DecimalPlaces );
}