private void CreateItemButton(ShopItem.ShopItemType itemType, Sprite itemSprite, string itemName, string itemDescription, ShopItem.ItemCost itemCost) { Transform shopItemTransform = Instantiate(_shopItemTemplate, _container); shopItemTransform.SetParent(_container); shopItemTransform.Find("ItemName").GetComponent <TextMeshProUGUI>().text = itemName; shopItemTransform.Find("ItemDescription").GetComponent <TextMeshProUGUI>().text = itemDescription; shopItemTransform.Find("ItemCoinValue").GetComponent <TextMeshProUGUI>().text = itemCost.coins.ToString(); shopItemTransform.Find("ItemStarValue").GetComponent <TextMeshProUGUI>().text = itemCost.stars.ToString(); if (itemCost.stars == 0) { shopItemTransform.Find("ItemStarValue").gameObject.SetActive(false); shopItemTransform.Find("StarIcon").gameObject.SetActive(false); } if (itemCost.coins > _coins.Value || itemCost.stars > _stars.Value) { shopItemTransform.Find("ItemCoinValue").GetComponent <TextMeshProUGUI>().fontMaterial = _textMaterialRed; shopItemTransform.Find("ItemStarValue").GetComponent <TextMeshProUGUI>().fontMaterial = _textMaterialRed; shopItemTransform.Find("BuyButton").GetComponent <Button>().interactable = false; } shopItemTransform.Find("IconImage").GetComponent <Image>().sprite = itemSprite; shopItemTransform.Find("BuyButton").GetComponent <Button>().onClick.AddListener(() => { // Clicked on shop item button TryBuyItem(itemType); }); }
private void TryBuyItem(ShopItem.ShopItemType itemType) { ShopItem.ItemCost itemCost = ShopItem.GetCost(itemType); if (_coins.Value >= itemCost.coins && _stars.Value >= itemCost.stars) { BoughtItem(itemType); _coins.Value -= itemCost.coins; _stars.Value -= itemCost.stars; _changeDataGameEvent.Raise(); AudioManager.Instance.PlaySound2D(SoundLibrary.Sound.ClickButton02); } }
private void BoughtItem(ShopItem.ShopItemType itemType) { switch (itemType) { // Pickups case ShopItem.ShopItemType.Bomb: GameDataController.EnableBombAbility(); break; case ShopItem.ShopItemType.Void: GameDataController.EnableVoidPickup(); break; case ShopItem.ShopItemType.Time: GameDataController.EnableTimePickup(); break; case ShopItem.ShopItemType.Repair: GameDataController.EnableRepairPickup(); break; // Health case ShopItem.ShopItemType.Health_2: GameDataController.SetPlayerHealthLevel(2); break; case ShopItem.ShopItemType.Health_3: GameDataController.SetPlayerHealthLevel(3); break; case ShopItem.ShopItemType.Health_4: GameDataController.SetPlayerHealthLevel(4); break; // Shield case ShopItem.ShopItemType.Shield_1: GameDataController.SetPlayerShieldArmor(1); break; case ShopItem.ShopItemType.Shield_2: GameDataController.SetPlayerShieldArmor(2); break; case ShopItem.ShopItemType.Shield_3: GameDataController.SetPlayerShieldArmor(3); break; case ShopItem.ShopItemType.Shield_4: GameDataController.SetPlayerShieldArmor(4); break; // Shot case ShopItem.ShopItemType.Shot_1: GameDataController.SetShotLevel(1); break; case ShopItem.ShopItemType.Shot_2: GameDataController.SetShotLevel(2); break; case ShopItem.ShopItemType.Shot_3: GameDataController.SetShotLevel(3); break; // Speed case ShopItem.ShopItemType.Speed_1: GameDataController.SetSpeedLevel(1); break; case ShopItem.ShopItemType.Speed_2: GameDataController.SetSpeedLevel(2); break; case ShopItem.ShopItemType.Speed_3: GameDataController.SetSpeedLevel(3); break; } }