Scripts/TreeSkills/SkillTreeBootstrap.cs
using Milaine.Managers;

namespace Milaine.TreeSkills;

public sealed class SkillTreeBootstrap : Component {
  [Property, Title("IdleManager")]
  [Feature("Managers")]
  public IdleManager IdleManagerInstance { get; set; }

  protected override void OnAwake() {
    TreeSkillState.Instance.Reset();
    TreeSkillState.Instance.GetMoney = GetMoney;
    TreeSkillState.Instance.SpendMoney += SpendMoney;
  }

  protected override void OnDestroy() {
    TreeSkillState.Instance.SpendMoney -= SpendMoney;
  }

  private int GetMoney() => IdleManagerInstance.Dollars;

  private void SpendMoney(int amount) {
    IdleManagerInstance.Dollars -= amount;
    IdleManagerInstance.DollarsSpent += amount;
  }
}