Newer
Older
TheVengeance-Project-IADE-Unity2D / Assets / Scripts / UI / Upgrades / Defense / DoDefenseUpgrades.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DoDefenseUpgrades : MonoBehaviour
{
    public GameObject noGoldText; //player has no gold but still trys to do the upgrade
    public GameObject noLevelText; //player has a lower level than what is needed but still trys to do the upgrade
    public GameObject noGoldOrLevelText; //Both previous ones
    public GameObject upgradedText;

    public float showMessageCoolDownTimer = 2f;
    public float showUpgradedcoolDownTimer = 1f;

    private DefenseUpgradesInfo defenseUpgradesInfo;
    private Toggle defensekUp1, defensekUp2, defensekUp3, defensekUp4;

    private Button doUpgradeButton;

    private PlayerGold playerGold;
    private PlayerLevel playerLevel;
    private PlayerController playerController;

    private float showMessageTimer = 0;
    private float showUpgradedMessageTimer = 0;

    private int defense1, defense2, defense3, defense4;
    private int levelUp1, levelUp2, levelUp3, levelUp4;
    private int goldUp1, goldUp2, goldUp3, goldUp4;

    [HideInInspector]public bool upgrade1, upgrade2, upgrade3, upgrade4;

    // Start is called before the first frame update
    void Start()
    {
        defenseUpgradesInfo = FindObjectOfType<DefenseUpgradesInfo>();
        playerGold = FindObjectOfType<PlayerGold>();
        playerLevel = FindObjectOfType<PlayerLevel>();
        playerController = FindObjectOfType<PlayerController>();
        doUpgradeButton = GetComponent<Button>();

        upgrade1 = false;
        upgrade2 = false;
        upgrade3 = false;
        upgrade4 = false;

        noGoldText.gameObject.SetActive(false);
        noLevelText.gameObject.SetActive(false);
        noGoldOrLevelText.gameObject.SetActive(false);

        defensekUp1 = defenseUpgradesInfo.defenseToggle1;
        defensekUp2 = defenseUpgradesInfo.defenseToggle2;
        defensekUp3 = defenseUpgradesInfo.defenseToggle3;
        defensekUp4 = defenseUpgradesInfo.defenseToggle4;

        levelUp1 = (int)defenseUpgradesInfo.defensedata.GetValue("Level1");
        levelUp2 = (int)defenseUpgradesInfo.defensedata.GetValue("Level2");
        levelUp3 = (int)defenseUpgradesInfo.defensedata.GetValue("Level3");
        levelUp4 = (int)defenseUpgradesInfo.defensedata.GetValue("Level4");

        goldUp1 = (int)defenseUpgradesInfo.defensedata.GetValue("Gold1");
        goldUp2 = (int)defenseUpgradesInfo.defensedata.GetValue("Gold2");
        goldUp3 = (int)defenseUpgradesInfo.defensedata.GetValue("Gold3");
        goldUp4 = (int)defenseUpgradesInfo.defensedata.GetValue("Gold4");

        defense1 = (int)defenseUpgradesInfo.defensedata.GetValue("Defense1");
        defense2 = (int)defenseUpgradesInfo.defensedata.GetValue("Defense2");
        defense3 = (int)defenseUpgradesInfo.defensedata.GetValue("Defense3");
        defense4 = (int)defenseUpgradesInfo.defensedata.GetValue("Defense4");
    }

    // Update is called once per frame
    void Update()
    {
        doUpgradeButton.onClick.AddListener(Upgrade);
        MessageTimer();
        UpgradedMessageTimer();
    }

    private void Upgrade()
    {
        if (defensekUp1.isOn == true )
        {
            if (playerLevel.Level >= levelUp1 && playerGold.gold >= goldUp1 && upgrade1 == false && showUpgradedMessageTimer > 0)
            {
                upgradedText.gameObject.SetActive(true);
                playerController.defensePlayer += defense1;
                playerGold.gold -= goldUp1;
                upgrade1 = true;
            }

            else if (playerLevel.Level < levelUp1 && playerGold.gold >= goldUp1 && upgrade1 == false && showMessageTimer > 0)
            {
                noLevelText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp1 && playerLevel.Level >= levelUp1 && upgrade1 == false && showMessageTimer > 0)
            {
                noGoldText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp1 && playerLevel.Level < levelUp1 && upgrade1 == false && showMessageTimer > 0)
            {
                noGoldOrLevelText.gameObject.SetActive(true);
            }
        }

        else if (defensekUp2.isOn == true)
        {
            if (playerLevel.Level >= levelUp2 && playerGold.gold >= goldUp2 && upgrade2 == false && showUpgradedMessageTimer > 0)
            {
                upgradedText.gameObject.SetActive(true);
                playerController.defensePlayer += defense2;
                playerGold.gold -= goldUp2;
                upgrade2 = true;
            }

            else if (playerLevel.Level < levelUp2 && playerGold.gold >= goldUp2 && upgrade2 == false && showMessageTimer > 0)
            {
                noLevelText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp2 && playerLevel.Level >= levelUp2 && upgrade2 == false && showMessageTimer > 0)
            {
                noGoldText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp2 && playerLevel.Level < levelUp2 && upgrade2 == false && showMessageTimer > 0)
            {
                noGoldOrLevelText.gameObject.SetActive(true);
            }
        }

        else if (defensekUp3.isOn == true)
        {
            if (playerLevel.Level >= levelUp3 && playerGold.gold >= goldUp3 && upgrade3 == false && showUpgradedMessageTimer > 0)
            {
                upgradedText.gameObject.SetActive(true);
                playerController.defensePlayer += defense3;
                playerGold.gold -= goldUp3;
                upgrade3 = true;
            }

            else if (playerLevel.Level < levelUp3 && playerGold.gold >= goldUp3 && upgrade3 == false && showMessageTimer > 0)
            {
                noLevelText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp3 && playerLevel.Level >= levelUp3 && upgrade3 == false && showMessageTimer > 0)
            {
                noGoldText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp3 && playerLevel.Level < levelUp3 && upgrade3 == false && showMessageTimer > 0)
            {
                noGoldOrLevelText.gameObject.SetActive(true);
            }
        }

        else if (defensekUp4.isOn == true)
        {
            if (playerLevel.Level >= levelUp4 && playerGold.gold >= goldUp4 && upgrade4 == false && showUpgradedMessageTimer > 0)
            {
                upgradedText.gameObject.SetActive(true);
                playerController.defensePlayer += defense4;
                playerGold.gold -= goldUp4;
                upgrade4 = true;
            }

            else if (playerLevel.Level < levelUp4 && playerGold.gold >= goldUp4 && upgrade4 == false && showMessageTimer > 0)
            {
                noLevelText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp4 && playerLevel.Level >= levelUp4 && upgrade4 == false && showMessageTimer > 0)
            {
                noGoldText.gameObject.SetActive(true);
            }

            else if (playerGold.gold < goldUp4 && playerLevel.Level < levelUp4 && upgrade4 == false && showMessageTimer > 0)
            {
                noGoldOrLevelText.gameObject.SetActive(true);
            }
        }
        showMessageTimer = showMessageCoolDownTimer;
        showUpgradedMessageTimer = showUpgradedcoolDownTimer;
    }

    private void MessageTimer()
    {
        if (showMessageTimer <= 0)
        {
            noGoldText.gameObject.SetActive(false);
            noLevelText.gameObject.SetActive(false);
            noGoldOrLevelText.gameObject.SetActive(false);
        }
        else
        {
            showMessageTimer -= Time.deltaTime;
        }
    }

    private void UpgradedMessageTimer()
    {
        if (showMessageTimer <= 0)
        {
            upgradedText.gameObject.SetActive(false);
        }
        else
        {
            showUpgradedMessageTimer -= Time.deltaTime;
        }

    }
}