少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
namespace vnxbqy.UI
{
    public class ComposeSelectItemCell : MonoBehaviour
    {
        [SerializeField] Text nameText;
        [SerializeField] ItemCell itemCell;
        [SerializeField] Text remainTimeText;
        [SerializeField] Button selectBtn;
 
        SelectEquipModel _selectModel;
        SelectEquipModel selectModel
        {
            get { return _selectModel ?? (_selectModel = ModelCenter.Instance.GetModel<SelectEquipModel>()); }
        }
 
        ItemModel itemModel = null;
 
        private void OnEnable()
        {
            KnapsackTimeCDMgr.Instance.RefreshItemOverdueTimeAct += UpdateRemainTime;
        }
 
        private void OnDisable()
        {
            KnapsackTimeCDMgr.Instance.RefreshItemOverdueTimeAct -= UpdateRemainTime;
        }
 
        public void SetDisplay(ItemModel _itemModel)
        {
            itemModel = _itemModel;
            selectBtn.RemoveAllListeners();
            if (itemModel == null) return;
 
            itemCell.Init(itemModel);
            nameText.color = UIHelper.GetUIColor(itemModel.config.ItemColor, true);
            nameText.text = itemModel.config.ItemName;
            selectBtn.onClick.RemoveAllListeners();
            selectBtn.onClick.AddListener(() => { OnClickSelectItem(itemModel); });
            UpdateRemainTime();
        }
 
        private void UpdateRemainTime(string guid)
        {
            if (itemModel == null || guid != itemModel.guid) return;
 
 
            UpdateRemainTime();
        }
 
        private void UpdateRemainTime()
        {
            remainTimeText.SetActive(false);
            if (itemModel == null || itemModel.config.EquipPlace != (int)RoleEquipType.Guard) return;
 
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(itemModel.guid);
            bool isShow = itemModel.config.ExpireTime > 0;
            remainTimeText.SetActive(isShow);
            if (isShow)
            {
                List<int> itemEffectTime = itemModel.GetUseData((int)ItemUseDataKey.createTime);
                double remianTime = itemModel.config.ExpireTime;
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemModel.guid != "")
                {
                    remianTime = cool == null ? 0 : cool.GetRemainTime();
                }
              
                if (remianTime > 0)
                {
                    remainTimeText.text = Language.Get("Remaining_Z", SecondsToHM((int)remianTime));
                }
                else
                {
                    selectModel.UpdateSelectItems();
                }
            }
        }
 
 
        public string SecondsToHM(int _seconds)
        {
            string timeStr = string.Empty;
            int hours = _seconds / 3600;
            int mins = _seconds % 3600 / 60;
            if (hours > 0)
            {
                timeStr = StringUtility.Contact(hours, Language.Get("Hour"));
            }
            if (mins > 0)
            {
                timeStr = StringUtility.Contact(timeStr,mins, Language.Get("Minute"));
            }
            return timeStr;
        }
 
        public void OnClickSelectItem(ItemModel itemModel)
        {
            switch (selectModel.selectItem)
            {
                case SelectItemType.unfixed:
                    selectModel.AddHaveUnfixedSelectItem(itemModel.gridIndex);
                    break;
                case SelectItemType.addons:
                    selectModel.AddHaveAddSelectItem(itemModel.gridIndex);
                    break;
            }
            selectModel.UpdateSelectItem(itemModel.gridIndex);
            WindowCenter.Instance.Close<SelectItemWin>();
        }
    }
}