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.
 
 
 
 
 
 

324 lines
12 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);
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()
{
}
}