lcy
2 天以前 ca577b96e0022e0ddaa8e106e147e53d8166df1c
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
//日常任务
public class DayMissionWin : UIBase
{
    [SerializeField] Text totalActivityText;
    [SerializeField] Image totalActivityProcessImg;
    [SerializeField] ItemCell[] itemCells;
    [SerializeField] Transform[] finishMarkImg;
    [SerializeField] Transform[] canGetAwardImg;
    [SerializeField] Text[] targetActivityText;
    [SerializeField] ScrollerController scroller;
 
    int beforeActivity; //用于显示活跃奖励
 
    protected override void OnPreOpen()
    {
        beforeActivity = DayMissionManager.Instance.activityTotal;
        scroller.OnRefreshCell += OnRefreshCell;
        DayMissionManager.Instance.OnDayMissionEvent += OnDayMissionEvent;
 
        CreateScroller();
        Display();
    }
 
    protected override void OnPreClose()
    {
        scroller.OnRefreshCell -= OnRefreshCell;
        DayMissionManager.Instance.OnDayMissionEvent -= OnDayMissionEvent;
    }
 
 
    void Display()
    {
        totalActivityText.text = DayMissionManager.Instance.activityTotal.ToString();
        var keys = DailyLivenessRewardConfig.GetKeys();
        keys.Sort();
        for (int i = 0; i < itemCells.Length; i++)
        {
            int id = keys[i];
            var config = DailyLivenessRewardConfig.Get(id);
            int itemID = config.AwardItemList[0][0];
            int itemCount = config.AwardItemList[0][1];
 
            var state = DayMissionManager.Instance.GetDayActivityState(config);
            itemCells[i].Init(new ItemCellModel(itemID, false, itemCount));
            itemCells[i].button.AddListener(() => { ShowAward(id); });
            if (state == 0)
            {
                finishMarkImg[i].SetActive(false);
                canGetAwardImg[i].SetActive(false);
            }
            else if (state == 1)
            {
                finishMarkImg[i].SetActive(false);
                canGetAwardImg[i].SetActive(true);
            }
            else if (state == 2)
            {
                finishMarkImg[i].SetActive(true);
                canGetAwardImg[i].SetActive(false);
            }
 
            targetActivityText[i].text = config.NeedLiveness.ToString();
        }
        totalActivityProcessImg.fillAmount = (float)DayMissionManager.Instance.activityTotal / 100;
    }
 
 
    void CreateScroller()
    {
        scroller.Refresh();
        DayMissionManager.Instance.SortDailyTask();
        for (int i = 0; i < DayMissionManager.Instance.dailyIDList.Count; i++)
        {
            var id = DayMissionManager.Instance.dailyIDList[i];
            scroller.AddCell(ScrollerDataType.Header, i);
        }
        scroller.Restart();
    }
 
    void OnDayMissionEvent()
    {
        DayMissionManager.Instance.SortDailyTask();
        Display();
        scroller.m_Scorller.RefreshActiveCellViews();
        if (DayMissionManager.Instance.activityTotal != beforeActivity)
        {
            List<Item> showItems = new List<Item>();
            Item tempItem = new Item(GeneralDefine.activityItemID, DayMissionManager.Instance.activityTotal - beforeActivity);
            showItems.Add(tempItem);
            ItemLogicUtility.Instance.ShowGetItem(showItems);
 
            beforeActivity = DayMissionManager.Instance.activityTotal;
        }
    }
 
    void ShowAward(int id)
    {
        var config = DailyLivenessRewardConfig.Get(id);
        var state = DayMissionManager.Instance.GetDayActivityState(config);
        if (state == 1)
        {
            var keys = DailyLivenessRewardConfig.GetKeys();
            keys.Sort();
            foreach(var id1 in keys)
            {
                var config1 = DailyLivenessRewardConfig.Get(id1);
                var state1 = DayMissionManager.Instance.GetDayActivityState(config1);
                if (state1 == 1)
                {
                    //增加一键领奖
                    var pack = new CA504_tagCMPlayerGetReward();
                    pack.RewardType = 0;
                    pack.DataEx = (uint)id1;
                    GameNetSystem.Instance.SendInfo(pack);
                }
            }
            return;
        }
        int itemID = config.AwardItemList[0][0];
        ItemTipUtility.Show(itemID);
    }
 
 
    void OnRefreshCell(ScrollerDataType type, CellView cell)
    {
        var _cell = cell as DayMissionCell;
        _cell.Display(cell.index);
    }
}