少年修仙传客户端代码仓库
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
using vnxbqy.UI;
using UnityEngine;
using UnityEngine.UI;
 
 
public class MergeServerLimitedTimePackageItemBehaviour : ILBehaviour
{
    RectTransform m_ContainerOpen;
    RectTransform m_ContainerClose;
    Text m_MoneyClose;
    Text m_MoneyOpen;
    Image m_OpenRedpoint;
    Image m_CloseRedpoint;
    Button m_Select;
 
    MergeServerLimitedTimePackageModel model = MergeServerLimitedTimePackageModel.Instance;
 
    int selectIndex = -1;
 
    protected override void Awake()
    {
        m_ContainerOpen = proxy.GetWidgtEx<RectTransform>("Img_Open");
        m_ContainerClose = proxy.GetWidgtEx<RectTransform>("Img_Close");
        m_MoneyClose = proxy.GetWidgtEx<Text>("Txt_MoneyClose");
        m_MoneyOpen = proxy.GetWidgtEx<Text>("Txt_MoneyOpen");
        m_OpenRedpoint = proxy.GetWidgtEx<Image>("Img_RedpointOpen");
        m_CloseRedpoint = proxy.GetWidgtEx<Image>("Img_RedpointClose");
        m_Select = proxy.GetWidgtEx<Button>("Select");
        m_Select.AddListener(Select);
    }
 
    protected override void OnEnable()
    {
        model.selectUpdate += SelectUpdate;
        model.onStateUpdate += OnStateUpate;
    }
 
    protected override void OnDisable()
    {
        model.selectUpdate -= SelectUpdate;
        model.onStateUpdate -= OnStateUpate;
    }
 
    private void OnStateUpate(int obj)
    {
        DisplayRedpoint();
    }
 
 
    public void Display(int index)
    {
        selectIndex = index;
        OperationBase operationBase;
        if (OperationTimeHepler.Instance.TryGetOperationTime(model.operationType, out operationBase))
        {
            GiftPackageClass operation = operationBase as GiftPackageClass;
            GiftPackageClass.Gift_Package reward;
            if (operation.TryGetGift(TimeUtility.ServerNow, out reward))
            {
                if (index < reward.gifts.Length)
                {
                    var recharge = reward.gifts[index];
                    var showNum = UIHelper.GetMoneyFormat(reward.gifts[index].rmb * 0.01f);
                    m_MoneyClose.text = Language.Get("ArtFontMoney", showNum);
                    m_MoneyOpen.text = Language.Get("ArtFontMoney", showNum);
 
                    DisplayRedpoint();
                    DisplaySelect();
                }
            }
        }
    }
 
    void DisplaySelect()
    {
        m_ContainerOpen.SetActiveIL(model.selectIndex == selectIndex);
        m_ContainerClose.SetActiveIL(model.selectIndex != selectIndex);
    }
 
    void DisplayRedpoint()
    {
        OperationBase operationBase;
        bool satisfyGet = false;
        if (OperationTimeHepler.Instance.TryGetOperationTime(model.operationType, out operationBase))
        {
            GiftPackageClass operation = operationBase as GiftPackageClass;
            GiftPackageClass.Gift_Package reward;
            if (operation.TryGetGift(TimeUtility.ServerNow, out reward))
            {
                if (selectIndex < reward.gifts.Length && selectIndex >= 0)
                {
                    var recharge = reward.gifts[selectIndex];
                    satisfyGet = model.IsExpired(selectIndex) && model.IsOpen();
                }
            }
        }
        m_OpenRedpoint.SetActiveIL(satisfyGet);
        m_CloseRedpoint.SetActiveIL(satisfyGet);
    }
 
    private void SelectUpdate(int index)
    {
        m_ContainerOpen.SetActiveIL(index == selectIndex);
        m_ContainerClose.SetActiveIL(index != selectIndex);
    }
 
    private void Select()
    {
        if (model.selectIndex != selectIndex && selectIndex != -1)
        {
            model.selectIndex = selectIndex;
        }
    }
}