public bool UpgradeCastle(CastleUpgrade upgrade)
    {
        if (UserObject.instance.gold < upgrade.Cost() || !upgrade.CanAdditionalUpgrade())
        {
            return(false);
        }
        else
        {
            UserObject.instance.gold -= upgrade.Cost();

            if (!acquiredUpgrades.Contains(upgrade))
            {
                acquiredUpgrades.Add(upgrade);
            }
            else
            {
                upgrade.IncrementUpgradeLevel();
            }

            ApplyCastleUpgrade(upgrade);

            return(true);
        }
    }