using IVDataFormat; using System.Numerics; using TMPro; using UnityEngine; using UnityEngine.UI; public class GoodsItem : MonoBehaviour { #region UI protected Image imgBg; protected Image imgIcon; protected Image imgSpirit; protected Image imgRarity; protected Image[] imgStars; protected Image imgRarityLatter; protected Image imgRarityBg; protected TextMeshProUGUI txtRarity; protected TextMeshProUGUI txtCount; protected ButtonIV btnSelf; #endregion UI protected virtual void Init() { imgBg = GetComponent(); imgIcon = transform.Find("icon").GetComponent(); imgSpirit = transform.Find("spirit").GetComponent(); imgRarity = transform.Find("rarity").GetComponent(); imgStars = transform.Find("stars").GetComponentsInChildren(); txtRarity = transform.Find("txtRarity").GetComponent(); txtCount = transform.Find("txtCount").GetComponent(); if (transform.Find("imgRarity") != null) { imgRarityLatter = transform.Find("imgRarity").GetComponent(); } if (transform.Find("rarity") != null) { imgRarityBg = transform.Find("rarity").GetComponent(); } btnSelf = GetComponent(); } public virtual void ReleaseData() { if (imgIcon == null) Init(); imgIcon.sprite = null; txtCount.text = null; imgIcon.enabled = false; //imgBg.color = Global.CLR_RarityBack[cGoods.RNone]; imgRarity.enabled = false; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; } public virtual void SetGoods(int itype, int icode, BigInteger icount, bool bpvp = false) { if (imgIcon == null) Init(); if (icount < 0L) txtCount.text = null; else txtCount.text = FormatString.BigIntString1(icount);//.ToString(); imgIcon.sprite = AddressableMgr.GetIcon(itype, icode); imgIcon.transform.localScale = new UnityEngine.Vector2(1f, 1f); txtCount.gameObject.SetActive(true); imgBg.color = Color.white; switch (itype) { case cGoods.TAdsRemove: imgIcon.enabled = true; imgBg.sprite = AddressableMgr.GetGradeIcon(9); imgBg.color = Global.CLR_RarityBack[cGoods.RNone]; txtCount.gameObject.SetActive(false); imgRarity.enabled = false; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; break; case cGoods.TCurrency: case cGoods.TExp: imgBg.sprite = AddressableMgr.GetGradeIcon(9); imgIcon.enabled = true; imgSpirit.enabled = false; imgRarity.enabled = false; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; if (imgRarityLatter != null) imgRarityLatter.enabled = false; if (imgRarityBg != null) imgRarityBg.enabled = false; break; case cGoods.TBagTreasure: imgIcon.enabled = true; imgBg.color = Global.CLR_RarityBack[cGoods.RNone]; imgSpirit.enabled = false; imgRarity.enabled = false; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; break; case cGoods.TBagWeapon: case cGoods.TBagArmorCape: case cGoods.TBagArmorHat: case cGoods.TBagArmorShoes: case cGoods.TBagAcceEar: case cGoods.TBagAcceNeck: case cGoods.TBagAcceRing: dGear gear = DataHandler.GetGearEquip(itype, icode); imgIcon.enabled = true; imgBg.enabled = true; imgBg.sprite = AddressableMgr.GetGradeIcon(gear.rarity);// Global.CLR_RarityBack[]; if (imgRarityLatter != null) { imgRarityLatter.sprite = AddressableMgr.GetGradeLatterIcon(gear.rarity); } if (imgRarityBg != null) { imgRarityBg.sprite = AddressableMgr.GetGradeLatterIcon(gear.rarity); } imgBg.color = new Color(1f, 1f, 1f); imgSpirit.enabled = false; imgRarity.enabled = true; imgRarityBg.enabled = true; imgRarity.color = new Color(1f, 1f, 1f); imgRarity.sprite = AddressableMgr.GetGradeLatterIcon(gear.rarity); for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = i < gear.grade; txtRarity.text = Global.STR_Rarity[gear.rarity]; txtRarity.enabled = true; break; case cGoods.TPet: imgIcon.enabled = true; int ipetrarity = DataHandler.GetPetRarity(icode); imgBg.sprite = AddressableMgr.GetGradeIcon(ipetrarity); if (imgRarityLatter != null) { imgRarityLatter.sprite = AddressableMgr.GetGradeLatterIcon(ipetrarity); } if (imgRarityBg != null) { imgRarityBg.sprite = AddressableMgr.GetGradeLatterIcon(ipetrarity); } imgSpirit.enabled = false; imgRarity.enabled = true; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.text = Global.STR_Rarity[ipetrarity]; txtRarity.enabled = true; break; case cGoods.TPetSpirit: imgIcon.enabled = true; if (icode < 0) { imgSpirit.enabled = false; imgRarity.enabled = false; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; imgRarityLatter.enabled = false; imgBg.enabled = false; } else { int ispiritrarity = DataHandler.GetPetRarity(icode); imgSpirit.enabled = true; imgRarity.enabled = true; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.text = Global.STR_Rarity[ispiritrarity]; txtRarity.enabled = true; imgBg.sprite = AddressableMgr.GetGradeIcon(ispiritrarity); if (imgRarityLatter != null) { imgRarityLatter.sprite = AddressableMgr.GetGradeLatterIcon(ispiritrarity); } if (imgRarityBg != null) { imgRarityBg.sprite = AddressableMgr.GetGradeLatterIcon(ispiritrarity); } } break; case cGoods.TSkillActive: case cGoods.TSkillPassive: imgIcon.enabled = true; int iskillrarity = DataHandler.GetSkillRarity(itype, icode); imgRarityLatter.sprite = AddressableMgr.GetGradeLatterIcon(iskillrarity); imgBg.sprite = AddressableMgr.GetGradeIcon(iskillrarity + 100); imgSpirit.enabled = false; imgRarity.enabled = true; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.text = Global.STR_Rarity[iskillrarity]; txtRarity.enabled = true; break; case cGoods.TCosCloth: case cGoods.TCosWeapon: imgIcon.enabled = true; imgBg.color = new Color(1f, 1f, 1f); imgBg.sprite = AddressableMgr.GetGradeIcon(10); imgSpirit.enabled = false; imgRarity.enabled = false; if (imgRarityLatter != null) { imgRarityLatter.enabled = false; } for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; break; case cGoods.TBox: dBox box = DataHandler.SysBoxes[icode]; imgIcon.enabled = true; imgBg.color = new Color(1f, 1f, 1f); imgSpirit.enabled = false; imgIcon.transform.localScale = new UnityEngine.Vector2(0.9f, 0.9f); // 희귀도 없음. if (box.rarity <= cGoods.RNone) { imgRarity.enabled = false; if (imgRarityLatter != null) { imgRarityLatter.enabled = false; } for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; if (imgRarityLatter != null) { imgRarityLatter.enabled = false; } imgBg.sprite = AddressableMgr.GetGradeIcon(9); imgBg.color = Global.CLR_RarityBack[cGoods.RNone]; } else { imgRarity.color = new Color(1f, 1f, 1f); imgRarity.sprite = AddressableMgr.GetGradeLatterIcon(box.rarity); if (imgRarityLatter != null) { imgRarityLatter.enabled = true; imgRarityLatter.sprite = AddressableMgr.GetGradeLatterIcon(box.rarity); } imgBg.sprite = AddressableMgr.GetGradeIcon(box.rarity); imgRarity.enabled = true; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = i < box.grade; } break; case cGoods.TRedTicket: case cGoods.TPurpleTicket: case cGoods.TBlueTicket: case cGoods.TSkyblueTicket: case cGoods.TGoldKey: imgBg.sprite = AddressableMgr.GetGradeIcon(9); imgIcon.enabled = true; imgBg.type = Image.Type.Sliced; imgSpirit.enabled = false; imgRarity.enabled = false; if (imgRarityLatter != null) { imgRarityLatter.enabled = false; } for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; break; default: imgIcon.enabled = true; imgBg.color = Global.CLR_RarityBack[cGoods.RNone]; imgBg.sprite = AddressableMgr.GetGradeIcon(9); if (imgRarityLatter != null) { imgRarityLatter.enabled = false; } imgSpirit.enabled = false; imgRarity.enabled = false; for (int i = 0; i < imgStars.Length; i++) imgStars[i].enabled = false; txtRarity.enabled = false; break; } if (bpvp) imgBg.color = Color.clear; } public void SetActiveContent(bool bg = true, bool icon = true, bool star = true, bool rarity = true, bool count = true) { imgBg.enabled = bg; imgIcon.enabled = icon; for(int i = 0; i < imgStars.Length; i++) { imgStars[i].enabled = star; } imgRarityLatter .enabled = rarity; txtCount.enabled = count; } public void SetData(nGoods goods) { if (goods == null) return; SetGoods(goods.propertyType, goods.propertyId, goods.propertyCount); } public void BtnPress() { } }