You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
334 lines
13 KiB
334 lines
13 KiB
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<Image>();
|
|
imgIcon = transform.Find("icon").GetComponent<Image>();
|
|
imgSpirit = transform.Find("spirit").GetComponent<Image>();
|
|
imgRarity = transform.Find("rarity").GetComponent<Image>();
|
|
imgStars = transform.Find("stars").GetComponentsInChildren<Image>();
|
|
txtRarity = transform.Find("txtRarity").GetComponent<TextMeshProUGUI>();
|
|
txtCount = transform.Find("txtCount").GetComponent<TextMeshProUGUI>();
|
|
if (transform.Find("imgRarity") != null)
|
|
{
|
|
imgRarityLatter = transform.Find("imgRarity").GetComponent<Image>();
|
|
}
|
|
if (transform.Find("rarity") != null)
|
|
{
|
|
imgRarityBg = transform.Find("rarity").GetComponent<Image>();
|
|
}
|
|
|
|
btnSelf = GetComponent<ButtonIV>();
|
|
}
|
|
|
|
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);
|
|
|
|
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);
|
|
imgBg.color = Global.CLR_RarityBack[cGoods.RNone];
|
|
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;
|
|
//imgRarityLatter.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);
|
|
}
|
|
//imgBg.color = Global.CLR_RarityBack[ipetrarity];
|
|
imgSpirit.enabled = false;
|
|
//imgRarity.color = Global.CLR_RarityFront[ipetrarity];
|
|
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)
|
|
{
|
|
//imgBg.color = Global.CLR_BackPetSpirit;
|
|
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);
|
|
//imgBg.color = Global.CLR_RarityBack[ispiritrarity];
|
|
imgSpirit.enabled = true;
|
|
//imgRarity.color = Global.CLR_RarityFront[ispiritrarity];
|
|
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.color = Global.CLR_RarityFront[iskillrarity];
|
|
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 = Global.CLR_BackCos;
|
|
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;
|
|
//txtRarity.text = Global.STR_Rarity[box.rarity];
|
|
//txtRarity.enabled = true;
|
|
}
|
|
break;
|
|
case cGoods.TDgTicketGold:
|
|
case cGoods.TDgTicketEnhance:
|
|
case cGoods.TDgTicketPet:
|
|
case cGoods.TDgTicketAwaken:
|
|
case cGoods.TDgTicketRelic:
|
|
imgBg.sprite = AddressableMgr.GetGradeIcon(9);
|
|
imgIcon.enabled = true;
|
|
imgBg.type = Image.Type.Sliced;
|
|
imgBg.color = Global.CLR_RarityBack[cGoods.RNone];
|
|
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()
|
|
{
|
|
}
|
|
}
|