using vnxbqy.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class WorldBossCell : MonoBehaviour { [SerializeField] Text m_InfoText; [SerializeField] ItemCell m_ItemCell; [SerializeField] Button m_UseBtn; [SerializeField] GameObject m_TipGO; private int m_ItemID; private PackModel m_PackModel { get { return ModelCenter.Instance.GetModel(); } } private WorldBossModel m_WorldBossModel { get { return ModelCenter.Instance.GetModel(); } } public void Init(int itemID, bool bIsShowTip) { m_ItemID = itemID; m_ItemCell.Init(new ItemCellModel(m_ItemID)); m_ItemCell.button.RemoveAllListeners(); m_ItemCell.button.AddListener(() => ItemTipUtility.Show(m_ItemID)); m_ItemCell.countText.SetActive(true); m_TipGO.SetActive(bIsShowTip); m_UseBtn.onClick.AddListener(OnUseBtnDown); } public void RefreshUIByItemID(int itemID) { if(itemID == m_ItemID) { RefreshUI(); } } public void RefreshUI() { int maxCount = ItemConfig.Get(m_ItemID).MaxSkillCnt; int remainCount = maxCount - m_PackModel.GetItemUsedTimesToday(m_ItemID); string countInfo = string.Format(" {0}/{1}", UIHelper.AppendColor(remainCount > 0 ? TextColType.DarkGreen : TextColType.Red, remainCount.ToString()), maxCount); m_InfoText.text = StringUtility.Contact(Language.Get("WorldBossCountWin_Text_4", ItemConfig.Get(m_ItemID).ItemName).Replace("\\n","\n"), countInfo); int itemCount = m_PackModel.GetItemCountByID(PackType.Item, m_ItemID); string itemCountInfo = string.Format("{0}/{1}", UIHelper.AppendColor(itemCount > 0 ? TextColType.DarkGreen : TextColType.Red, itemCount.ToString()), 1); m_ItemCell.countText.text = itemCountInfo; } public void OnUseBtnDown() { int remainWoldBossCount = m_WorldBossModel.GetWorldBossRemainCount(); int remainItemCount = ItemConfig.Get(m_ItemID).MaxSkillCnt - m_PackModel.GetItemTotalUsedTimes(m_ItemID); bool bIsBossCountFull = remainWoldBossCount == m_WorldBossModel.WorldBossMaxCount; bool bIsItemNone = m_PackModel.GetItemCountByID(PackType.Item, m_ItemID) == 0; bool bIsItemUseOut = remainItemCount == 0; if(bIsItemUseOut) { SysNotifyMgr.Instance.ShowTip("WorldBossTime1"); return; } if(bIsItemNone) { ItemTipUtility.Show(new ItemTipUtility.ItemViewInfo() { itemId = m_ItemID, unfoldGetWay = true }); return; } if(bIsBossCountFull) { SysNotifyMgr.Instance.ShowTip("WorldBossTime2"); return; } ItemOperateUtility.Instance.UseItem(m_PackModel.GetItemGUIDByID(m_ItemID)); } }