예제 #1
0
    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);
        });
    }
예제 #2
0
    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);
        }
    }
예제 #3
0
    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;
        }
    }