少年修仙传客户端代码仓库
hch
2025-06-12 204ef05a831c9484e2abc561d27ecbff7c797453
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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));
 
    }
 
}