using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
[XLua.Hotfix]
|
public class GatherSoulMatItem : MonoBehaviour
|
{
|
[SerializeField] RectTransform m_Container;
|
[SerializeField] Image m_ItemBottom;
|
[SerializeField] Image m_Icon;
|
[SerializeField] Text m_ItemName;
|
[SerializeField] Text m_Count;
|
[SerializeField] Button m_Func;
|
|
private void Awake()
|
{
|
m_Func.AddListener(OnFunc);
|
}
|
|
int moneyType = 0;
|
int require = 0;
|
|
private void OnEnable()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshInfoEvent;
|
}
|
|
private void OnDisable()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent;
|
}
|
|
private void PlayerDataRefreshInfoEvent(PlayerDataType refreshType)
|
{
|
if (refreshType == PlayerDataType.CDBPlayerRefresh_SoulCore
|
|| refreshType == PlayerDataType.CDBPlayerRefresh_SoulDust
|
|| refreshType == PlayerDataType.CDBPlayerRefresh_SoulSplinters)
|
{
|
if (this.moneyType != 0)
|
{
|
Display(moneyType, this.require);
|
}
|
}
|
}
|
|
public void Display(int moneyType, int require = 0)
|
{
|
this.moneyType = moneyType;
|
this.require = require;
|
Display();
|
}
|
|
public void Display()
|
{
|
m_Container.gameObject.SetActive(true);
|
var count = UIHelper.GetMoneyCnt(moneyType);
|
var displayId = GeneralDefine.moneyDisplayIds.ContainsKey(moneyType) ? GeneralDefine.moneyDisplayIds[moneyType] : 0;
|
if (require == 0)
|
{
|
m_Count.text = count.ToString();
|
m_Count.color = UIHelper.GetUIColor(TextColType.LightYellow);
|
}
|
else
|
{
|
m_Count.text = StringUtility.Contact(
|
UIHelper.AppendColor(count >= (ulong)require ? TextColType.LightYellow : TextColType.Red, count.ToString())
|
, "/", require.ToString());
|
}
|
if (displayId != 0)
|
{
|
var config = ItemConfig.Get(displayId);
|
m_ItemName.text = config.ItemName;
|
m_ItemBottom.SetItemBackGround(config.ItemColor);
|
m_Icon.SetSprite(config.IconKey);
|
}
|
}
|
|
public void DisplayEmpty()
|
{
|
m_Container.gameObject.SetActive(false);
|
}
|
|
private void OnFunc()
|
{
|
var displayId = GeneralDefine.moneyDisplayIds.ContainsKey(moneyType) ? GeneralDefine.moneyDisplayIds[moneyType] : 0;
|
if (displayId != 0)
|
{
|
ItemTipUtility.Show(displayId);
|
}
|
}
|
}
|
}
|
|