using System; using System.Collections; using System.Collections.Generic; using TableConfig; 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.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; } private void OnDisable() { PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent; } private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType) { if (refreshType == PlayerDataRefresh.CDBPlayerRefresh_SoulCore || refreshType == PlayerDataRefresh.CDBPlayerRefresh_SoulDust || refreshType == PlayerDataRefresh.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.AppendStringColor(count >= (ulong)require ? TextColType.LightYellow : TextColType.Red, count.ToString()) , "/", require.ToString()); } if (displayId != 0) { var config = Config.Instance.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 itemPathModel = ModelCenter.Instance.GetModel(); var displayId = GeneralDefine.moneyDisplayIds.ContainsKey(moneyType) ? GeneralDefine.moneyDisplayIds[moneyType] : 0; if (displayId != 0) { itemPathModel.SetChinItemModel(displayId); } } } }