示例#1
0
    void Awake()
    {
        powerUpDict = new Dictionary <PowerUpId, PowerUp>();

        foreach (PowerUpInfo info in powerUps)
        {
            PowerUp powerUp = DataManager.GetPowerUpData(info.id);
            powerUp.Info = info;
            powerUpDict.Add(powerUp.id, powerUp);

            // Adiciona o botão para comprar o powerup
            UIStoreItem storeItem = Instantiate(prefabStoreItem).GetComponent <UIStoreItem>();
            storeItem.transform.name = "StoreItem_" + info.id.ToString();
            storeItem.transform.SetParent(storeItemContainer);
            Navigation nav = storeItem.GetComponent <Button>().navigation;
            nav.mode = Navigation.Mode.None;
            storeItem.GetComponent <Button>().navigation = nav;
            storeItem.gameObject.SetActive(true);
            storeItem.Info = info;
            storeItem.UpdateState(powerUp);
            storeItem.buttonBuy.onClick.AddListener(() => BuyPowerUp(info));

            // Adiciona o botão na lista de power ups adquiridos, caso haja algum
            if (powerUp.units > 0)
            {
                prefabPowerUpItem.GetComponent <UIPowerUpItem>().info = info;
                UIPowerUpItem powerUpItem = Instantiate(prefabPowerUpItem).GetComponent <UIPowerUpItem>();
                powerUpItem.transform.name = "PowerUpItem_" + info.id.ToString();
                powerUpItem.transform.SetParent(powerUpsContainer);
                powerUpItem.gameObject.SetActive(true);
                powerUpItem.SetUnitsText(powerUp.units);
            }
        }
    }
示例#2
0
 void Start()
 {
     Debug.Log("storeui : " + Store.Instance.StoreItems.Count);
     foreach (StoreItem item in Store.Instance.StoreItems)
     {
         UIStoreItem listItem = Instantiate(itemUIPrefab, transform);
         listItem.Initialize(item);
     }
 }
示例#3
0
 void Start()
 {
     foreach (StoreItem item in storeItems)
     {
         UIStoreItem newStoreItem = Instantiate(storeItemPrefab);
         newStoreItem.transform.SetParent(transform);
         newStoreItem.SetData(item);
     }
 }
        private void PopulateStore()
        {
            var availableItems = viewModel.AvailableStoreItems;

            UIStoreItem previousUiItem = null;

            foreach (var item in availableItems)
            {
                var uiItem = NGUITools
                             .AddChild(storeScrollView.gameObject, storeItemTemplate)
                             .GetComponentOrThrow <UIStoreItem>();

                uiItem.ImageSprite.spriteName = item.SpriteName;
                uiItem.ItemTitle.text         = item.Name;

                // Capture index for the anonimous delegate closure
                var capturedId = item.Id;
                UIEventListener.Get(uiItem.BuyButton.gameObject).onClick += (obj) =>
                {
                    Game_BuyItemButtonClicked(capturedId);
                };

                uiItem.ContainerSprite.topAnchor.target   = storeScrollView.transform;
                uiItem.ContainerSprite.topAnchor.absolute = 0;

                uiItem.ContainerSprite.bottomAnchor.target = storeScrollView.transform;
                uiItem.ContainerSprite.topAnchor.absolute  = 0;

                if (previousUiItem == null)
                {
                    // If the first store item
                }
                else
                {
                    uiItem.ContainerSprite.leftAnchor.target   = previousUiItem.transform;
                    uiItem.ContainerSprite.leftAnchor.absolute = uiItem.GapBetweenItems;
                    uiItem.ContainerSprite.leftAnchor.relative = 1f;
                }

                uiItem.ContainerSprite.updateAnchors = UIRect.AnchorUpdate.OnUpdate;

                uiItem.ContainerSprite.ResetAndUpdateAnchors();

                previousUiItem = uiItem;
            }

            storeScrollView.ResetPosition();
        }
示例#5
0
    public void BuyPowerUp(PowerUpInfo info)
    {
        PowerUp powerUp = powerUpDict[info.id];

        // Verificar se tem moedas suficiente e exibir mensagem caso não possua
        if (DataManager.Coins >= powerUp.Info.price)
        {
            // Toca som
            SoundEffects.Instance.Play(SoundEffects.Instance.sfxCash);

            // Remover valor do preço das moedas
            coinPanel.RemoveCoins(powerUp.Info.price);
            DataManager.Coins -= powerUp.Info.price;

            // Ativar power up (se for escudo, o ativa. Se for ímã, adiciona mais itens do mesmo)
            if (powerUp.Info.isAccumulative)
            {
                powerUp.units += powerUp.Info.units;
            }
            else
            {
                powerUp.units = 1;
            }

            DataManager.SetPowerUpData(powerUp);

            // Atualizar o botão da lista
            UIStoreItem clickedItem = EventSystem.current.currentSelectedGameObject.transform.parent.GetComponent <UIStoreItem>();
            clickedItem.UpdateState(powerUp);

            // Atualiza os powerups ativos
            UpdatePowerUp(powerUp);
        }
        else
        {
            // Exibir janela informando que não há moedas suficiente
            panelNoCoins.SetActive(true);
        }
    }