public virtual void SetButtonInfo()
    {
        switch (exportedButtonMode)
        {
        case b.Dmg:
            name.Text      = "Damage";
            stat.Text      = "DPS";
            image.Texture  = GD.Load <Texture>("res://assets/abilities/fire.png");
            statButtonMode = Enums.Stats.Dmg;
            break;

        case b.Def:
            name.Text      = "Defense";
            stat.Text      = "x";
            image.Texture  = GD.Load <Texture>("res://assets/abilities/health.png");
            statButtonMode = Enums.Stats.Def;
            break;

        case b.Speed:
            name.Text      = "Speed";
            stat.Text      = "KM/h";
            image.Texture  = GD.Load <Texture>("res://assets/abilities/speed.png");
            statButtonMode = Enums.Stats.Speed;
            break;

        case b.Special:
            statButtonMode = Enums.Stats.Special;

            if (!dinoInfo.HasSpecial())
            {
                Hide();
                break;
            }

            name.Text    = "Special";
            stat.Text    = "";
            statNum.Text = "";

            // get the current special ability type using the info about the current dino screen we're on (shopinfo.shopdino)
            // then get the icon using that special ability type
            var ability = DinoInfo.Instance.dinoTypesAndAbilities[ShopInfo.shopDino];
            image.Texture = DinoInfo.Instance.specialAbilityIcons[ability];

            break;
        }
        infoSet = true;

        if (statButtonMode == Enums.Stats.Special)
        {
            statNum.Text = dinoInfo.GetSpecial();
        }
        else
        {
            statNum.Text = dinoInfo.GetStat(statButtonMode).ToString();
        }


        List <int> cost = dinoInfo.GetNextUpgradeCost(statButtonMode);

        goldCost = cost[0];
        geneCost = cost[1];
    }