hch
4 天以前 91f6a3eb7961367d942b232ed3ea8810a6bf488a
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
using System;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
 
 
public class WeekBattlePassCell : CellView
{
    [SerializeField] ItemCell baseAward;
    [SerializeField] Transform baseGotRect;
    [SerializeField] Transform baseCanGetAwardRect;
    [SerializeField] Transform upProcssBGRect;
    [SerializeField] Transform upProcessRect;
    [SerializeField] Transform downProcssBGRect;
    [SerializeField] Transform downProcessRect;
    [SerializeField] Text valueText;
    [SerializeField] Image valueBGImg;
    [SerializeField] ItemCell[] betterAwards;
    [SerializeField] Transform[] betterGotRects;
    [SerializeField] Transform[] betterCanGetAwardRects;
    [SerializeField] Transform[] betterLockRects;
 
    [SerializeField] Transform mask;
 
 
    public void Display(int id, BattlePassData battlePassData)
    {
        var config = ZhanlingConfig.Get(id);
        int freeItemID = config.FreeRewardItemList[0][0];
        baseAward.Init(new ItemCellModel(freeItemID, false, config.FreeRewardItemList[0][1]));
        var baseAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, (int)battlePassData.value1, config.NeedValue, 0);
        baseAward.button.AddListener(() =>
        {
            GetAward(battlePassData, baseAwardState, freeItemID);
        });
 
 
        baseGotRect.SetActive(baseAwardState == 2);
        baseCanGetAwardRect.SetActive(baseAwardState == 1);
        mask.SetActive(baseAwardState == 0);
 
        var ids = ZhanlingConfig.GetTypeToIDDict(BattlePassManager.WeekBattlePassType).Values.ToList();
        ids.Sort();
        upProcssBGRect.SetActive(ids[0] != id);
        upProcessRect.SetActive(baseAwardState != 0);
 
        downProcssBGRect.SetActive(ids[ids.Count - 1] != id);
        var nextConfig = ZhanlingConfig.Get(id + 1);
        if (nextConfig != null)
        {
            downProcessRect.SetActive((int)battlePassData.value1 >= nextConfig.NeedValue);
        }
        else
        {
            downProcessRect.SetActive(false);
        }
 
        valueText.text = config.NeedValue.ToString();
        valueBGImg.SetOrgSprite(baseAwardState == 0 ? "DayMission_img_99" : "DayMission_img_100", "DayMission");
 
        var betterAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, (int)battlePassData.value1, config.NeedValue, 1);
        for (int i = 0; i < betterAwards.Length; i++)
        {
            int itemID = config.ZLRewardItemList[i][0];
            betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1]));
            betterAwards[i].button.AddListener(() =>
            {
                GetAward(battlePassData, betterAwardState, itemID);
            });
            betterGotRects[i].SetActive(betterAwardState == 2);
            betterCanGetAwardRects[i].SetActive(betterAwardState == 1);
            betterLockRects[i].SetActive(battlePassData.isActivite == 0);
        }
    }
 
    void GetAward(BattlePassData battlePassData, int awardState, int itemID)
    {
        if (awardState != 1)
        {
            ItemTipUtility.Show(itemID);
            return;
        }
 
        BattlePassManager.Instance.GetAllAward(battlePassData, BattlePassManager.WeekBattlePassType, (int)battlePassData.value1);
    }
}