public void UpgradeUnlocked(int index) { PlayerStatistics.Upgrade upgradeData = playerStats.upgradesList[index]; GameObject scrollItemObj = itemsList[index]; UpdateUIOfItem(upgradeData, index, scrollItemObj); }
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); }
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(); } }
/* * 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; } } }
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); }
void Update() { PlayerStatistics.Upgrade activeUpgrade = playerStats.upgradesList[selectedUpgradeIndexForPreview]; if (activeUpgrade.ApplicableOn == ObjectsDescription.Player && previewHasFocus) { EnablePlayerSkinPreview(); } else if (activeUpgrade.ApplicableOn == ObjectsDescription.PlayerLauncher) { EnableLauncherSkinPreview(); } }
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); }
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) { } }
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..."); } }
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); }
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); } } }
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; } } } }
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); }
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..."); } }
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); }
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(); } }