少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-13 033958214c0b16d7e7b93cc821b018c295251867
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
using System;
using System.Collections;
using System.Collections.Generic;
 
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.playerDataRefreshEvent += PlayerDataRefreshInfoEvent;
        }
 
        private void OnDisable()
        {
            PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshInfoEvent;
        }
 
        private void PlayerDataRefreshInfoEvent(PlayerDataType refreshType)
        {
            if (refreshType == PlayerDataType.CDBPlayerRefresh_SoulCore
                || refreshType == PlayerDataType.CDBPlayerRefresh_SoulDust
                || refreshType == PlayerDataType.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.AppendColor(count >= (ulong)require ? TextColType.LightYellow : TextColType.Red, count.ToString())
                    , "/", require.ToString());
            }
            if (displayId != 0)
            {
                var config = ItemConfig.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 displayId = GeneralDefine.moneyDisplayIds.ContainsKey(moneyType) ? GeneralDefine.moneyDisplayIds[moneyType] : 0;
            if (displayId != 0)
            {
               ItemTipUtility.Show(displayId);
            }
        }
    }
}