lcy
2 天以前 7d25ecd8f6f380be990ece667e5422b1ac5843a0
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
117
118
119
120
121
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
 
public class ArenaAwardWin : FunctionsBaseWin
{
    [SerializeField] ButtonEx btnClose;
    [SerializeField] TextEx txtCountdown;
    [SerializeField] ScrollerController scrAward;
    [SerializeField] ArenaPlayerRankCell myRankCell;
    [HideInInspector] public string valueFormat = "{0}";
    protected override void InitComponent()
    {
        base.InitComponent();
        btnClose.SetListener(() => UIManager.Instance.CloseWindow<ArenaAwardWin>());
    }
 
    protected override void OnPreOpen()
    {
        base.OnPreOpen();
        tabButtons[functionOrder].SelectBtn(true);
        ArenaManager.Instance.OnArenaMatchListEvent += OnArenaMatchListEvent;
        ArenaManager.Instance.OnUpdateArenaPlayerInfo += OnUpdateArenaPlayerInfo;
        ArenaManager.Instance.OnUpdateGameRecInfo += OnUpdateGameRecInfo;
        RankModel.Instance.onRankRefresh -= OnRankRefresh;
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        scrAward.OnRefreshCell += OnRefreshCell;
        Display();
    }
 
    protected override void OnPreClose()
    {
        base.OnPreClose();
        ArenaManager.Instance.OnArenaMatchListEvent -= OnArenaMatchListEvent;
        ArenaManager.Instance.OnUpdateArenaPlayerInfo -= OnUpdateArenaPlayerInfo;
        ArenaManager.Instance.OnUpdateGameRecInfo -= OnUpdateGameRecInfo;
        RankModel.Instance.onRankRefresh -= OnRankRefresh;
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        scrAward.OnRefreshCell -= OnRefreshCell;
    }
 
    private void OnSecondEvent()
    {
        ArenaManager.Instance.GetCurrentSeasonDates(out DateTime seasonStartDate, out DateTime seasonEndDate);
        TimeSpan remainingTime = seasonEndDate - TimeUtility.ServerNow;
        int remainingSeconds = (int)remainingTime.TotalSeconds;
        if (remainingSeconds > 0)
        {
            string countdownText = TimeUtility.SecondsToDHMSCHS(remainingSeconds);
            txtCountdown.SetActive(true);
            txtCountdown.text = Language.Get("Arena14", countdownText);
        }
        else
        {
            txtCountdown.SetActive(false);
        }
    }
 
 
    protected override void OpenSubUIByTabIndex()
    {
        ArenaManager.Instance.nowAwardTabIndex = functionOrder;
        Display();
    }
 
    private void OnRefreshCell(ScrollerDataType type, CellView cell)
    {
        var _cell = cell.GetComponent<ArenaAwardCell>();
        _cell?.Display(cell.index, cell);
    }
 
    private void OnUpdateArenaPlayerInfo()
    {
        Display();
    }
 
    private void OnArenaMatchListEvent()
    {
        Display();
    }
 
    private void OnUpdateGameRecInfo()
    {
        Display();
    }
    void OnRankRefresh(int type)
    {
        DisplayMyRank();
    }
 
    private void Display()
    {
        CreateScroller();
        DisplayMyRank();
        OnSecondEvent();
    }
 
    private void CreateScroller()
    {
        scrAward.Refresh();
        Dictionary<int, int[][]> rewardDict = ArenaManager.Instance.GetArenaAwardDict(functionOrder);
        if (!rewardDict.IsNullOrEmpty())
        {
            var list = rewardDict.Keys.ToList();
            list.Sort();
            for (int i = 0; i < list.Count; i++)
            {
                CellInfo cellInfo = new CellInfo();
                cellInfo.infoInt1 = (int)functionOrder;
                scrAward.AddCell(ScrollerDataType.Header, i, cellInfo);
            }
        }
        scrAward.Restart();
    }
 
    private void DisplayMyRank()
    {
        myRankCell.Display(ArenaManager.Instance.rankType, 0, valueFormat);
    }
}