using IVDataFormat; using TMPro; using UnityEngine; using UnityEngine.UI; public class EScrShopCos : EScrCell { private GameObject[] goItems; private GameObject[] goCloses; private ButtonIV[] btnPrices; private Image[] imgItems; private Image[] imgBg; private TextMeshProUGUI[] txtNames; private TextMeshProUGUI[] txtLimits; private TextMeshProUGUI[] txtCloses; private TextMeshProUGUI[] txtPrices; private TextMeshProUGUI[] txtEfcs; public override void InitCell() { Transform trfself = transform; int ilen = trfself.childCount; goItems = new GameObject[ilen]; goCloses = new GameObject[ilen]; btnPrices = new ButtonIV[ilen]; imgItems = new Image[ilen]; imgBg = new Image[ilen]; txtNames = new TextMeshProUGUI[ilen]; txtLimits = new TextMeshProUGUI[ilen]; txtCloses = new TextMeshProUGUI[ilen]; txtPrices = new TextMeshProUGUI[ilen]; txtEfcs = new TextMeshProUGUI[ilen]; for (int i = 0; i < ilen; i++) { Transform trfitem = trfself.GetChild(i); goItems[i] = trfitem.gameObject; goCloses[i] = trfitem.Find("goClose").gameObject; btnPrices[i] = trfitem.Find("btnBuy").GetComponent(); imgItems[i] = trfitem.Find("img").GetComponent(); imgBg[i] = trfitem.Find("imgBg").GetComponent(); txtNames[i] = trfitem.Find("txtName").GetComponent(); txtLimits[i] = trfitem.Find("txtLimit").GetComponent(); txtCloses[i] = goCloses[i].transform.Find("txt").GetComponent(); txtPrices[i] = trfitem.Find("btnBuy").Find("txt").GetComponent(); txtEfcs[i] = trfitem.Find("Effect").Find("txt").GetComponent(); trfself.GetChild(i).Find("Effect").Find("txtT").GetComponent().text = LocalizationText.GetText("own_effect_title"); } } public override void Localize() { Transform trfself = transform; int ilen = trfself.childCount; for (int i = 0; i < ilen; i++) { trfself.GetChild(i).Find("Effect").Find("txtT").GetComponent().text = LocalizationText.GetText("own_effect_title"); } } public override void RefreshCellView() { SetData(itemID); } public override void SetData(int itemid) { itemID = itemid; for (int i = 0; i < goCloses.Length; i++) { int key = ShopMgr.SSGetCosKey(itemid, i); if (key < 0) { goItems[i].SetActive(false); return; } goItems[i].SetActive(true); dShop data = DataHandler.GetShop(key); // 상품 이름, 이미지 표시. int irewtype = data.rewards[0].rewardType; int irewid = data.rewards[0].rewardId; txtNames[i].text = FormatString.GetGoodsName(irewtype, irewid); imgItems[i].sprite = AddressableMgr.GetIcon(irewtype, irewid); if(irewtype== cGoods.TCosCloth) { imgItems[i].sprite = AddressableMgr.GetIcon(cGoods.TProfileIcon, irewid); imgBg[i].gameObject.SetActive(false); } else if (irewtype == cGoods.TCosWeapon) { //imgItems[i].sprite = AddressableMgr.GetWeaponIcon(irewid); imgBg[i].gameObject.SetActive(true); } // 상품 효과 표시. dCostume costume = data.rewards[0].rewardType == cGoods.TCosCloth ? DataHandler.GetCosCloth(irewid) : DataHandler.GetCosWeapon(irewid); txtEfcs[i].text = FormatString.TextEffectTitleValuesBreakline(costume.abilityType1, costume.abilityValue1, costume.abilityType2, costume.abilityValue2); // 구매 제한 텍스트 표시. if (data.refreshType == eRefreshType.None) { txtLimits[i].enabled = false; } else { txtLimits[i].enabled = true; txtLimits[i].text = FormatString.TextShopLimit(data.refreshType, data.refreshValue, data.limitCnt - data.buyCnt, data.limitCnt); } // 가격 표시. txtPrices[i].text = DataHandler.GetShopPrice(key, 1); btnPrices[i].interactable = DataHandler.Goods.Dia >= data.buyingCnt; if (btnPrices[i].interactable) txtPrices[i].color = Global.CLR_White; else txtPrices[i].color = Global.CLR_TextRed; // 안 열림. if (!DataHandler.IsClearStage(data.openStage)) { txtCloses[i].fontSizeMax = 22f; txtCloses[i].color = Global.CLR_TextYellow; txtCloses[i].text = FormatString.TextCondition(eCondition.StageClear, data.openStage); goCloses[i].SetActive(true); } // 구매 완료. else if (data.refreshType != eRefreshType.None && data.buyCnt >= data.limitCnt) { txtCloses[i].fontSizeMax = 26f; txtCloses[i].color = Global.CLR_White; txtCloses[i].text = LocalizationText.GetText("all_buycomp"); goCloses[i].SetActive(true); } // 열림. else { goCloses[i].SetActive(false); } } } public void OnBtnBuy(int irow) { if (goCloses[irow].activeSelf) return; SoundMgr.PlaySfx(SoundName.BtnPress); ShopMgr.STryBuy(ShopMgr.SSGetCosKey(itemID, irow)); } }