using IVDataFormat; using TMPro; using UnityEngine; using UnityEngine.UI; public class EScrGear : EScrCell { private RectTransform rtrfSelect; private RectTransform rtrfSet; private GoodsItem[] goodsItems; private RectTransform[] rtrfGoodsItems; private GameObject[] objBadges; private Image[] imgLocks; private Image[] imgLvBgs; private TextMeshProUGUI[] txtLvs; public override void InitCell() { Transform trfself = transform; rtrfSelect = trfself.Find("select").GetComponent(); rtrfSet = trfself.Find("set").GetComponent(); rtrfSet.GetChild(0).Find("txt").GetComponent().text = LocalizationText.GetText("all_equiping"); Transform trfbadges = trfself.Find("badges"); objBadges = new GameObject[4]; objBadges[0] = trfbadges.Find("badge0").gameObject; objBadges[1] = trfbadges.Find("badge1").gameObject; objBadges[2] = trfbadges.Find("badge2").gameObject; objBadges[3] = trfbadges.Find("badge3").gameObject; imgLocks = trfself.Find("locks").GetComponentsInChildren(true); imgLvBgs = trfself.Find("lvs").GetComponentsInChildren(true); txtLvs = trfself.Find("lvs").GetComponentsInChildren(true); goodsItems = trfself.GetComponentsInChildren(true); rtrfGoodsItems = new RectTransform[goodsItems.Length]; for (int i = 0; i < rtrfGoodsItems.Length; i++) { rtrfGoodsItems[i] = goodsItems[i].GetComponent(); } } public override void Localize() { rtrfSet.GetChild(0).Find("txt").GetComponent().text = LocalizationText.GetText("all_equiping"); } public override void RefreshCellView() { SetData(itemID); } public override void SetData(int itemid) { itemID = itemid; int iselectindex = -1; int isetindex = -1; dGear gearequip = DataHandler.GetGearEquip(iType, DataHandler.GetEquipedGear(iType)); int ilasthavekey = DataHandler.GetGearLastHaveId(iType); int iequipkey; int iequipunit; if (gearequip == null) { iequipkey = 0; iequipunit = 0; } else { iequipkey = gearequip.id; iequipunit = gearequip.rarity * 100 + gearequip.grade; } for (int i = 0; i < goodsItems.Length; i++) { int key = BagMgr.SGetGearId(iType, itemid, i); if (key < 0) { goodsItems[i].gameObject.SetActive(false); goodsItems[i].ReleaseData(); imgLvBgs[i].enabled = false; txtLvs[i].text = null; imgLocks[i].enabled = false; objBadges[i].SetActive(false); continue; } dGear data = DataHandler.GetGearEquip(iType, key); int iunit = data.rarity * 100 + data.grade; goodsItems[i].gameObject.SetActive(true); goodsItems[i].SetGoods(iType, key, data.count); imgLvBgs[i].color = Global.CLR_RarityFront[data.rarity]; imgLvBgs[i].enabled = true; txtLvs[i].text = FormatString.TextLv(data.level); imgLocks[i].enabled = !data.have; objBadges[i].SetActive(data.have && (DataHandler.IsGearNew(iType, key) || (key == ilasthavekey && iequipunit < iunit))); if (BagMgr.SIsSelectGear(key)) iselectindex = i; if (key == iequipkey) isetindex = i; } if (iselectindex >= 0) { rtrfSelect.anchoredPosition = rtrfGoodsItems[iselectindex].anchoredPosition; rtrfSelect.gameObject.SetActive(true); } else { rtrfSelect.gameObject.SetActive(false); } if (isetindex >= 0) { rtrfSet.anchoredPosition = rtrfGoodsItems[isetindex].anchoredPosition; rtrfSet.gameObject.SetActive(true); } else { rtrfSet.gameObject.SetActive(false); } } public void OnBtnSelect(int ichildindex) { if (BagMgr.GetEfcAddAuto()) { return; } SoundMgr.PlaySfx(SoundName.BtnPress); BagMgr.SSelectGear(iType, itemID, ichildindex); } }