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); } } }
// Atualiza a lista de powerups adquiridos pelo jogador. public void UpdatePowerUp(PowerUp powerUp) { Transform x = powerUpsContainer.Find("PowerUpItem_" + powerUp.id.ToString()); // Caso o powerup já esteja na lista, a quandidade é incrementada com uma animação. if (x != null) { UIPowerUpItem item = x.GetComponent <UIPowerUpItem>(); item.UpdateUnits(powerUp.units); return; } // Caso o powerup não estaja na lista de powerups adquiridos, ele é inserido na tela com uma animação prefabPowerUpItem.GetComponent <UIPowerUpItem>().info = powerUp.Info; UIPowerUpItem powerUpItem = Instantiate(prefabPowerUpItem).GetComponent <UIPowerUpItem>(); powerUpItem.transform.name = "PowerUpItem_" + powerUp.Info.id.ToString(); powerUpItem.transform.SetParent(powerUpsContainer); powerUpItem.gameObject.SetActive(true); powerUpItem.SetUnitsText(powerUp.units); }