示例#1
0
    public void UpgradeUnlocked(int index)
    {
        PlayerStatistics.Upgrade upgradeData = playerStats.upgradesList[index];
        GameObject scrollItemObj             = itemsList[index];

        UpdateUIOfItem(upgradeData, index, scrollItemObj);
    }
示例#2
0
    private void UpdateMaterial(PlayerStatistics.Upgrade currentUpgrade)
    {
        GameObject targetParticle;

        if (currentUpgrade.ApplicableOn == ObjectsDescription.Player)
        {
            targetParticle = playerSkin.transform.GetChild(0).gameObject;
        }
        else if (currentUpgrade.ApplicableOn == ObjectsDescription.PlayerLauncher)
        {
            targetParticle = playerSkin.transform.GetChild(0).gameObject;
        }
        else
        {
            targetParticle = playerSkin.transform.GetChild(0).gameObject;
        }

        GameObject newParticle = skinsAndMaterials[currentUpgrade.UpgradeCategory.ToString()];

        newParticle.SetActive(true);
        newParticle.transform.parent   = targetParticle.transform.parent;
        newParticle.transform.position = targetParticle.transform.position;

        targetParticle.transform.parent = transform;
        targetParticle.SetActive(false);
    }
示例#3
0
 private void UpdateUIOfItem(PlayerStatistics.Upgrade upgradeData, int index, GameObject scrollItemObj)
 {
     foreach (Transform child in scrollItemObj.transform)
     {
         if (upgradeData.IsUnlocked)
         {
             if (child.name == "Lock Image")
             {
                 child.gameObject.SetActive(false);
             }
             else if (child.name == "Unlock Image")
             {
                 child.gameObject.SetActive(true);
             }
         }
         else
         {
             if (child.name == "Lock Image")
             {
                 child.gameObject.SetActive(true);
             }
             else if (child.name == "Unlock Image")
             {
                 child.gameObject.SetActive(false);
             }
         }
         if (child.transform.name == "Upgrade Name")
         {
             TextMeshProUGUI upgradeName = child.gameObject.GetComponent <TextMeshProUGUI>();
             upgradeName.text = upgradeData.UpgradeName;
         }
         scrollItemObj.transform.name = index.ToString();
     }
 }
示例#4
0
    /*
     * Updating the color of the skin
     *
     */

    private void UpdatePlayerSkinColor(GameObject mat, PlayerStatistics.Upgrade currUpgrade, GameObject player)
    {
        PlayerStatistics.CustomColor mcolor = colorsData[currUpgrade.ParticlesColor.ToString()];
        player.GetComponent <SpriteRenderer>().color = mcolor.ThirdColor;

        PlayerActions pa = player.GetComponent <PlayerActions>();

        if (pa != null)
        {
            pa.SetColorForPathLines(mcolor.ThirdColor);
        }


        foreach (Transform child in mat.transform)
        {
            ParticleSystem ps = child.GetComponent <ParticleSystem>();
            if (child.transform.name == "Player Trail" || child.transform.name == "Player Particles")
            {
                //Debug.Log("Updating "+ child.transform.name + "to: " + currUpgrade.ParticlesColor.ToString());
                var col = ps.colorOverLifetime;
                col.enabled = true;
                Gradient grad = new Gradient();
                grad.SetKeys(new GradientColorKey[] { new GradientColorKey(mcolor.FirstColor, 0.0f), new GradientColorKey(mcolor.SecondColor, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 1.0f) });
                col.color = grad;
            }
            else if (child.transform.name == "Player Glow")
            {
                ParticleSystem.MinMaxGradient grad = new ParticleSystem.MinMaxGradient(mcolor.ThirdColor, mcolor.FourthColor);
                var main = ps.main;
                main.startColor = grad;
            }
        }
    }
示例#5
0
    public void BuyButtonClicked(bool fromCoin)
    {
        PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];
        if (currentUpgrade.IsUnlocked)
        {
            if (fromCoin)
            {
                PlayerStatistics.SkinColorStuff skinColorData = currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()];
                if (playerStats.playerCoins >= skinColorData.CoinCost)
                {
                    AudioSource.PlayClipAtPoint(buyUpgradesSFX, Camera.main.transform.position, playerStats.sfxVolume);
                    playerStats.playerCoins -= skinColorData.CoinCost;
                    numCoinsTMPro.text       = playerStats.playerCoins.ToString();
                    skinColorData.IsUnlocked = true;
                    currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()] = skinColorData;

                    taskHandlerClass.UpdateLevelTaskState(ObjectsDescription.Player, TaskTypes.UpdateSkin, TaskCategory.ImmediateActionTask, new List <string>()
                    {
                        skinColorData.CoinCost.ToString()
                    });
                }
            }
            else
            {
                // pay from credit card.
            }
            playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade;
        }
        else
        {
            if (fromCoin)
            {
                if (playerStats.playerCoins >= currentUpgrade.CoinCost)
                {
                    AudioSource.PlayClipAtPoint(buyUpgradesSFX, Camera.main.transform.position, playerStats.sfxVolume);

                    playerStats.playerCoins  -= currentUpgrade.CoinCost;
                    numCoinsTMPro.text        = playerStats.playerCoins.ToString();
                    currentUpgrade.IsUnlocked = true;

                    taskHandlerClass.UpdateLevelTaskState(ObjectsDescription.Player, TaskTypes.UpdateSkin, TaskCategory.ImmediateActionTask, new List <string>()
                    {
                        currentUpgrade.CoinCost.ToString()
                    });
                }
            }
            else
            {
                // pay from credit card.
            }
            playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade;
            upgradeScrollerClass.UpgradeUnlocked(selectedUpgradeIndexForPreview);
        }
        UpdateUiData(currentUpgrade);
    }
示例#6
0
 void Update()
 {
     PlayerStatistics.Upgrade activeUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];
     if (activeUpgrade.ApplicableOn == ObjectsDescription.Player && previewHasFocus)
     {
         EnablePlayerSkinPreview();
     }
     else if (activeUpgrade.ApplicableOn == ObjectsDescription.PlayerLauncher)
     {
         EnableLauncherSkinPreview();
     }
 }
示例#7
0
    void generateUpgradeItem(int index)
    {
        PlayerStatistics.Upgrade upgradeData = playerStats.upgradesList[index];
        GameObject scrollItemObj             = Instantiate(scrollItemPrefab);

        scrollItemObj.transform.parent     = scrollContent.transform;
        scrollItemObj.transform.localScale = new Vector3(1, 1, 1);

        itemsList.Add(scrollItemObj);

        UpdateUIOfItem(upgradeData, index, scrollItemObj);
    }
示例#8
0
 public void UpdateColorOfSkin(PlayerStatistics.Upgrade currentUpgrade, GameObject targetGO)
 {
     if (currentUpgrade.ApplicableOn == ObjectsDescription.Player)
     {
         GameObject mat = targetGO.transform.GetChild(0).gameObject;
         Debug.Log("Inside basic, name of upgrade: " + mat.name);
         UpdatePlayerSkinColor(mat, currentUpgrade, targetGO);
     }
     else if (currentUpgrade.ApplicableOn == ObjectsDescription.PlayerLauncher)
     {
     }
     else if (currentUpgrade.ApplicableOn == ObjectsDescription.PlayerProjectile)
     {
     }
 }
示例#9
0
 public void UpgradeClicked(int index)
 {
     selectedUpgradeIndexForPreview = index;
     PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];
     upgradeScrollerClass.UpgradeChosen(index);
     UpdateUiData(currentUpgrade);
     UpdateMaterial(currentUpgrade);
     if (currentUpgrade.ApplicableOn == ObjectsDescription.Player)
     {
         playerStats.UpdateColorOfSkin(currentUpgrade, playerSkin);
     }
     else if (currentUpgrade.ApplicableOn == ObjectsDescription.PlayerLauncher)
     {
         Debug.Log("Under Construction...");
     }
 }
示例#10
0
    void Start()
    {
        Vector3[] corners = new Vector3[4];

        uiPreviewArea.GetComponent <RectTransform>().GetWorldCorners(corners);
        for (int i = 0; i < 4; i++)
        {
            corners[i] = mainCamera.ScreenToWorldPoint(corners[i]);
        }
        SetPreviewMovementArea(corners[0].x, corners[3].x, corners[0].y, corners[1].y);

        colorSelector.GetComponent <RectTransform>().GetWorldCorners(corners);
        for (int i = 0; i < 4; i++)
        {
            corners[i] = mainCamera.ScreenToWorldPoint(corners[i]);
        }
        SetColorSelectorArea(corners[0].x, corners[3].x, corners[0].y, corners[1].y);


        playerClass = playerSkin.GetComponent <Player>();
        playerStats = FindObjectOfType <PlayerStatistics>();

        coinCostTMPro      = coinTextGO.GetComponent <TextMeshProUGUI>();
        moneyCostTMPro     = moneyTextGO.GetComponent <TextMeshProUGUI>();
        unlockButtonTMPro  = unlockTextGO.GetComponent <TextMeshProUGUI>();
        numCoinsTMPro      = numCoinsTextGO.GetComponent <TextMeshProUGUI>();
        numCoinsTMPro.text = playerStats.playerCoins.ToString();

        selectedUpgradeIndexForPreview = 0;

        taskHandlerClass = FindObjectOfType <TaskHandler>();

        upgradeScrollerClass = GetComponent <UpgradeScroller>();

        PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];

        CreateSkinsAndMaterialsDict();

        UpdateUiData(currentUpgrade);

        UpdateMaterial(currentUpgrade);

        playerStats.UpdateColorOfSkin(currentUpgrade, playerSkin);
    }
示例#11
0
 public void ShowColorsMenu()
 {
     PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];
     mainCanvas.SetActive(false);
     playerSkin.SetActive(false);
     secondaryCanvas.SetActive(true);
     previewHasFocus = false;
     foreach (Transform child in secondaryCanvasColors.transform)
     {
         if (child.gameObject.name == currentUpgrade.ParticlesColor.ToString())
         {
             child.GetChild(1).gameObject.SetActive(true);
         }
         else
         {
             child.GetChild(1).gameObject.SetActive(false);
         }
     }
 }
示例#12
0
    private void AddSkinsToLevel()
    {
        int numUpgrades = playerStats.upgradesList.Count;

        for (int i = 0; i < numUpgrades; i++)
        {
            PlayerStatistics.Upgrade currUpgrade = playerStats.upgradesList[i];
            if (currUpgrade.IsActive)
            {
                if (currUpgrade.ApplicableOn == ObjectsDescription.Player)
                {
                    skinsAndMaterials[currUpgrade.UpgradeCategory.ToString()].transform.parent   = player.transform;
                    skinsAndMaterials[currUpgrade.UpgradeCategory.ToString()].transform.position = player.transform.position;
                    skinsAndMaterials[currUpgrade.UpgradeCategory.ToString()].SetActive(true);
                    playerStats.UpdateColorOfSkin(currUpgrade, player);

                    PlayerStatistics.CustomColor mcolor = playerStats.colorsData[currUpgrade.ParticlesColor.ToString()];
                    skinColor = mcolor.ThirdColor;
                }
            }
        }
    }
示例#13
0
 public void SelectButtonClicked()
 {
     PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];
     if (currentUpgrade.IsActive)
     {
         PlayerStatistics.SkinColorStuff skinColorData = currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()];
         List <string> keys = new List <string>(currentUpgrade.ColorStuff.Keys);
         foreach (string key in keys)
         {
             PlayerStatistics.SkinColorStuff colorData = currentUpgrade.ColorStuff[key];
             if (key == currentUpgrade.ParticlesColor.ToString())
             {
                 colorData.IsActive = true;
             }
             else
             {
                 colorData.IsActive = false;
             }
             currentUpgrade.ColorStuff[key] = colorData;
         }
     }
     else
     {
         int numUpgrades = playerStats.upgradesList.Count;
         for (int i = 0; i < numUpgrades; i++)
         {
             PlayerStatistics.Upgrade tempUpgrade = playerStats.upgradesList[i];
             if (tempUpgrade.ApplicableOn == currentUpgrade.ApplicableOn)
             {
                 tempUpgrade.IsActive        = false;
                 playerStats.upgradesList[i] = tempUpgrade;
             }
         }
         currentUpgrade.IsActive = true;
     }
     playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade;
     UpdateUiData(currentUpgrade);
 }
示例#14
0
    public void SelectColor(string colorStr)
    {
        PlayerStatistics.Upgrade currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];

        if (SkinColors.Yellow.ToString() == colorStr)
        {
            currentUpgrade.ParticlesColor = SkinColors.Yellow;
        }
        else if (SkinColors.Blue.ToString() == colorStr)
        {
            currentUpgrade.ParticlesColor = SkinColors.Blue;
        }
        else if (SkinColors.Red.ToString() == colorStr)
        {
            currentUpgrade.ParticlesColor = SkinColors.Red;
        }
        else if (SkinColors.Purple.ToString() == colorStr)
        {
            currentUpgrade.ParticlesColor = SkinColors.Purple;
        }

        PlayerStatistics.CustomColor mcolor = playerStats.colorsData[currentUpgrade.ParticlesColor.ToString()];

        colorSelector.GetComponent <Image>().color = mcolor.ThirdColor;

        playerStats.upgradesList[selectedUpgradeIndexForPreview] = currentUpgrade;

        UpdateUiData(currentUpgrade);

        if (currentUpgrade.ApplicableOn == ObjectsDescription.Player)
        {
            playerStats.UpdateColorOfSkin(currentUpgrade, playerSkin);
        }
        else if (currentUpgrade.ApplicableOn == ObjectsDescription.PlayerLauncher)
        {
            Debug.Log("Under Construction...");
        }
    }
示例#15
0
    private void SetActiveBackgroundIndex()
    {
        int numUpgrades = playerStats.upgradesList.Count;

        for (int i = 0; i < numUpgrades; i++)
        {
            PlayerStatistics.Upgrade currUpgrade = playerStats.upgradesList[i];
            if (currUpgrade.IsActive)
            {
                if (currUpgrade.ApplicableOn == ObjectsDescription.Player)
                {
                    currentActiveBackgroundIndex = RetrieveBackgroundIndex(currUpgrade.ParticlesColor, currUpgrade.UpgradeCategory);
                    break;
                }
            }
        }

        GameObject backgroundInstance = gameObject.transform.GetChild(0).gameObject;

        backgroundInstance.GetComponent <MeshRenderer>().material = backgroundMaterials[currentActiveBackgroundIndex].Main;
        Debug.Log(playerStats.HexToRGB("#" + backgroundMaterials[currentActiveBackgroundIndex].hexCode));
        objectsColor.SetColor("_Color", playerStats.HexToRGB("#" + backgroundMaterials[currentActiveBackgroundIndex].hexCode));
        //objectsColor.color = playerStats.HexToRGB(backgroundMaterials[currentActiveBackgroundIndex].hexCode);
    }
示例#16
0
    private void UpdateUiData(PlayerStatistics.Upgrade currentUpgrade)
    {
        currentUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview];
        if (currentUpgrade.IsUnlocked)
        {
            uiPreviewArea.GetComponent <Image>().color = playerStats.HexToRGB("#30303030");

            unlockButtonsGO.SetActive(true);

            if (currentUpgrade.IsActive)
            {
                if (!currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()].IsUnlocked)
                {
                    unlockButtonsGO.SetActive(false);
                    lockButtonsGO.SetActive(true);
                    int coinsRequired = currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()].CoinCost;
                    if (coinsRequired > playerStats.playerCoins)
                    {
                        lockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#FF7B3B78");
                    }
                    else
                    {
                        lockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#00FFBC78");
                    }
                    moneyCostTMPro.text = coinsRequired.ToString();
                    coinCostTMPro.text  = currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()].CoinCost.ToString();
                }
                else
                {
                    lockButtonsGO.SetActive(false);
                    if (currentUpgrade.ColorStuff[currentUpgrade.ParticlesColor.ToString()].IsActive)
                    {
                        unlockButtonTMPro.text = "Selected";
                        unlockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#FF7B3B78");
                    }
                    else
                    {
                        unlockButtonTMPro.text = "Select Color";
                        unlockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#00FFBC78");
                    }
                }
                colorSelector.SetActive(true);
                colorSelector.GetComponent <Image>().color = playerStats.colorsData[currentUpgrade.ParticlesColor.ToString()].ThirdColor;
            }
            else
            {
                unlockButtonTMPro.text = "Select Skin";
                unlockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#00FFBC78");
                lockButtonsGO.SetActive(false);
                colorSelector.SetActive(false);
            }
        }
        else
        {
            uiPreviewArea.GetComponent <Image>().color = playerStats.HexToRGB("#30303082");
            unlockButtonsGO.SetActive(false);
            lockButtonsGO.SetActive(true);
            int coinsRequired = currentUpgrade.CoinCost;
            if (coinsRequired > playerStats.playerCoins)
            {
                lockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#FF7B3B78");
            }
            else
            {
                lockButtonsGO.transform.GetChild(0).GetComponent <Image>().color = playerStats.HexToRGB("#00FFBC78");
            }

            colorSelector.SetActive(false);
            moneyCostTMPro.text = currentUpgrade.MoneyCost.ToString();
            coinCostTMPro.text  = currentUpgrade.CoinCost.ToString();
        }
    }