少年修仙传客户端代码仓库
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
116
using vnxbqy.UI;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
 
class WeddingRingStarSuccessWin : ILWindow
{
    Button closeBtn;
    Text upgrateName;
    ScrollerController attrScroll;
    List<Image> stars = new List<Image>();
    float openTime = 0f;
 
    #region Built-in
    protected override void BindController()
    {
        closeBtn = proxy.GetWidgtEx<Button>("Btn_Close");
        upgrateName = proxy.GetWidgtEx<Text>("upgratetxt");
        attrScroll = proxy.GetWidgtEx<ScrollerController>("prolayout");
        for (int i = 0; i < 10; i++)
        { 
            stars.Add(proxy.GetWidgtEx<Image>("Img_Star_True" + i)); 
        }
 
 
    }
 
    protected override void AddListeners()
    {
        closeBtn.SetListener(() => {
            //打开x秒内不响应关闭
            if (Time.time - openTime < 1)
            {
                return;
            }
            WindowCenter.Instance.CloseIL<WeddingRingStarSuccessWin>();
        });
 
    }
 
    protected override void OnPreOpen()
    {
        openTime = Time.time;
        upgrateName.text = Language.Get("LoveRing3", WeddingModel.Instance.m_ClassLV, WeddingModel.Instance.m_StarLV);
        attrScroll.OnRefreshCell += OnRefreshCell;
 
    }
 
    protected override void OnPreClose()
    {
        attrScroll.OnRefreshCell -= OnRefreshCell;
    }
 
    protected override void OnAfterOpen()
    {
        CalcBeforeAttr();
        attrScroll.Refresh();
 
        var keyList = beforeAttrDict.Keys.ToList();
        for (int i = 0; i < keyList.Count; i++)
        {
            attrScroll.AddCell(ScrollerDataType.Header, keyList[i]);
        }
 
        attrScroll.Restart();
        attrScroll.m_Scorller.RefreshActiveCellViews();
 
        for (int i = 0; i < stars.Count; i++)
        {
            stars[i].SetActiveIL(i < WeddingModel.Instance.m_StarLV);
        }
    }
    #endregion
 
    Dictionary<int, int> beforeAttrDict = new Dictionary<int, int>();
    void CalcBeforeAttr()
    {
        beforeAttrDict.Clear();
        var curConfig = ILLoveRingConfig.GetRingConfigByLVStar(WeddingModel.Instance.m_ClassLV, WeddingModel.Instance.m_StarLV);
        var beforeConfig = ILLoveRingConfig.Get(ILLoveRingConfig.GetIndex(WeddingModel.Instance.m_ClassLV, WeddingModel.Instance.m_StarLV) - 1);
 
        for (int i= 0; i < beforeConfig.UpItemAttrType.Length; i++)
        {
            var attrID = beforeConfig.UpItemAttrType[i];
            beforeAttrDict[attrID] = WeddingModel.Instance.ringLVUPAttr[attrID] - beforeConfig.UpItemAttrValue[i];
        }
 
        for (int i = 0; i < curConfig.StarAttrType.Length; i++)
        {
            var attrID = curConfig.StarAttrType[i];
            beforeAttrDict[attrID] = WeddingModel.Instance.ringLVUPAttr[attrID] - curConfig.StarAttrValue[i];
        }
 
        if (WeddingModel.Instance.m_CoupleID != 0)
        { 
            for (int i = 0; i < curConfig.CoupleAttrType.Length; i++)
            {
                var attrID = curConfig.CoupleAttrType[i];
                beforeAttrDict[attrID] = WeddingModel.Instance.ringLVUPAttr[attrID] - curConfig.CoupleAttrValue[i];
            }
        }
 
    }
 
    void OnRefreshCell(ScrollerDataType type, CellView cell)
    {
        var curText = cell.FindComponentEx<Text>("Txt_Current");
        var nextText = cell.FindComponentEx<Text>("Txt_Next");
        var id = cell.index;
 
        curText.text = StringUtility.Contact(PlayerPropertyConfig.Get(id).Name, ": ", PlayerPropertyConfig.GetValueDescription(id, beforeAttrDict[id]), "  ");
        nextText.text = "  " + PlayerPropertyConfig.GetValueDescription(id, WeddingModel.Instance.ringLVUPAttr[id]);
 
    }
}