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); } } }
void Start() { Debug.Log("storeui : " + Store.Instance.StoreItems.Count); foreach (StoreItem item in Store.Instance.StoreItems) { UIStoreItem listItem = Instantiate(itemUIPrefab, transform); listItem.Initialize(item); } }
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(); }
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); } }