Untitled

 avatar
unknown
csharp
2 months ago
5.4 kB
8
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class newMetaSkillUpgrader : MonoBehaviour
{
    [Header("Metaskills")]
    //public MetaSkill addHealth;
    //public MetaSkill addSpeed;
    //public MetaSkill experienceBoost;
    //public MetaSkill magnetBoost;
    //public MetaSkill attackBoost;
    //public MetaSkill projectilesAdd;

    public MetaSkill[] allMetaskills;

    [Header("Other")]
    // public TMP_Text healthText;
    // public TMP_Text healthCostText;

    //public TMP_Text speedText;


    public List  <GameObject> skillPanels;

    // Start is called before the first frame update
    void Start()
    {
        
        resetAllSkills();
        UpdateAllSkillPanels();
        //skillPanel.GetComponent<setSkillPanelText>().setSkillText("Health", 1, 1);
        //healthText.text = addHealth.MetaSkillName;

        //speedText.text =  addSpeed.MetaSkillName  ;
    }

    private void UpdateAllSkillPanels()
    {
        Debug.Log(skillPanels);
        foreach (GameObject skillPanel in skillPanels)
        {
            setSkillPanelText textUpdater = skillPanel.GetComponent<setSkillPanelText>();
            textUpdater.name.text = textUpdater.myMetaskill.MetaSkillName;
            textUpdater.level.text = textUpdater.myMetaskill.MetaSkillLevelIndex.ToString();
            textUpdater.cost.text = textUpdater.myMetaskill.myMetaSkillLevels[textUpdater.myMetaskill.MetaSkillLevelIndex].biomassCost.ToString();

            //skillPanel.GetComponent<setSkillPanelText>().name.text = skill.MetaSkillName;
            //skillPanel.GetComponent<setSkillPanelText>().level.text = skill.MetaSkillLevelIndex.ToString();
            //skillPanel.GetComponent<setSkillPanelText>().cost.text = skill.myMetaSkillLevels[addHealth.MetaSkillLevelIndex].biomassCost.ToString();
        }
    }

    private void UpdateSkillPanel(GameObject skillPanel)
    {
        
            setSkillPanelText textUpdater = skillPanel.GetComponent<setSkillPanelText>();
            textUpdater.name.text = textUpdater.myMetaskill.MetaSkillName;
            textUpdater.level.text = textUpdater.myMetaskill.MetaSkillLevelIndex.ToString();
            textUpdater.cost.text = textUpdater.myMetaskill.myMetaSkillLevels[textUpdater.myMetaskill.MetaSkillLevelIndex].biomassCost.ToString();

    }

    // Update is called once per frame
    void Update()
    {

    }
    
    /// public void upgradeHealth(GameObject skillPanel)
    //{
    //    //cost check!
    //    if (addHealth.MetaSkillLevelIndex < addHealth.myMetaSkillLevels.Count - 1)
    //    {
    //        if (addHealth.myMetaSkillLevels[addHealth.MetaSkillLevelIndex].biomassCost <= GameStats.Instance.biomass)
    //        {
    //
    //
    //            GameStats.Instance.biomass -= addHealth.myMetaSkillLevels[addHealth.MetaSkillLevelIndex].biomassCost;
    //            addHealth.MetaSkillLevelIndex++;
    //            GameStats.Instance.playerHealthLevel = addHealth.MetaSkillLevelIndex;
    //            //healthText.text = (addHealth.MetaSkillName + " / " + addHealth.MetaSkillLevelIndex + " / "
    //            //   + addHealth.myMetaSkillLevels[addHealth.MetaSkillLevelIndex].biomassCost.ToString());
    //            skillPanel.GetComponent<setSkillPanelText>().name.text = addHealth.MetaSkillName;
    //            skillPanel.GetComponent<setSkillPanelText>().level.text = addHealth.MetaSkillLevelIndex.ToString();
    //            skillPanel.GetComponent<setSkillPanelText>().cost.text = addHealth.myMetaSkillLevels[addHealth.MetaSkillLevelIndex].biomassCost.ToString();
    //            //UpdateSkillPanel();
    //        }
    //        else { Debug.Log("Not enough Biomass"); }
    //    }
    //    else { Debug.Log("Max Level for " + addHealth.MetaSkillName + " reached"); }
    //}

   public void UpgradeSkill(GameObject skillPanel)
    {
        MetaSkill metaSkill = skillPanel.GetComponent<setSkillPanelText>().myMetaskill;
        if (metaSkill.MetaSkillLevelIndex < metaSkill.myMetaSkillLevels.Count - 1)
        {
            if (metaSkill.myMetaSkillLevels[metaSkill.MetaSkillLevelIndex].biomassCost <= GameStats.Instance.biomass)
            {

                GameStats.Instance.biomass -= metaSkill.myMetaSkillLevels[metaSkill.MetaSkillLevelIndex].biomassCost;
                metaSkill.MetaSkillLevelIndex++;
                //GameStats.Instance.playerHealthLevel = metaSkill.MetaSkillLevelIndex; // ??  how to get this to work dynamically?
                // Dynamically update the corresponding skill level in GameStats
                GameStats.Instance.UpdateSkillLevel(metaSkill.MetaSkillName, metaSkill.MetaSkillLevelIndex);


                UpdateSkillPanel(skillPanel);
            }
            else { Debug.Log("Not enough Biomass"); }
        }
        else { Debug.Log("Max Level for " + metaSkill.MetaSkillName + " reached"); } 

            
    }


    public void resetAllSkills()
    {
        //addHealth.MetaSkillLevelIndex = 1;
        //addSpeed.MetaSkillLevelIndex = 1;
        //experienceBoost.MetaSkillLevelIndex = 1;

        foreach (MetaSkill metaskill in allMetaskills)
        {
            metaskill.MetaSkillLevelIndex = 1;
        }

    }
}
Editor is loading...
Leave a Comment