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<PackModel>(); } }
|
private WorldBossModel m_WorldBossModel { get { return ModelCenter.Instance.GetModel<WorldBossModel>(); } }
|
|
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));
|
|
}
|
|
}
|