少年修仙传客户端代码仓库
hch
2 天以前 600733c8f592cb9e65f2b7a3e110ac1d686e6bfe
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
using vnxbqy.UI;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using LitJson;
 
public class ILAchievementActivityAwardCell : ILBehaviour
{
    IntensifySmoothSlider slider;
    Text successProcess;
    Text title;
    List<ItemCell> items = new List<ItemCell>();
    ButtonEx awardBtn;
    Image getImg;
 
    int moneyID = 590;
 
    AchievementModel model { get { return ModelCenter.Instance.GetModelEx<AchievementModel>(); } }
    protected override void Awake() 
    {
 
        slider = proxy.GetWidgtEx<IntensifySmoothSlider>("ExpSlider");
        successProcess = proxy.GetWidgtEx<Text>("process");
        title = proxy.GetWidgtEx<Text>("title");
        for (int i = 0; i < 4; i++)
        {
            items.Add(proxy.GetWidgtEx<ItemCell>("itemCell" + i));
        }
 
        awardBtn = proxy.GetWidgtEx<ButtonEx>("getButton");
        getImg = proxy.GetWidgtEx<Image>("getImageEx");
 
    }
 
    public void Display(int successID)
    {
        Achievement achievement;
        if (!model.TryGetAchievement(successID, out achievement))
        {
            return;
        }
        var config = SuccessConfig.Get(successID);
 
        title.text = AchievementModel.ParseAchievementDescription(successID);
        int process = Mathf.Min(achievement.progress, config.NeedCnt);
        if (achievement.completed)
        {
            //已领取完成的 服务端不通知,则根据领取算满值
            process = config.NeedCnt;
        }
 
        slider.value = (float)process / config.NeedCnt;
        successProcess.text = process + "/" + config.NeedCnt;
        int lastIndex = -1;
        for (int i = 0; i < items.Count; i++)
        {
            if (i < achievement.rewardItem.Length)
            {
                items[i].SetActive(true);
                var _item = achievement.rewardItem[i];
                ItemCellModel _ItemData = new ItemCellModel(_item.id, true, (ulong)_item.count);
                items[i].Init(_ItemData);
                items[i].button.RemoveAllListeners();
                items[i].button.AddListener(() =>
                {
                    ItemTipUtility.Show(_item.id);
                });
                lastIndex = i;
            }
            else
            {
                items[i].SetActive(false);
            }
        }
        int moneyIndex = lastIndex + 1;
        if (moneyIndex < items.Count)
        {
            items[moneyIndex].SetActiveIL(true);
            var json = JsonMapper.ToObject(config.Money);
            items[moneyIndex].Init(new ItemCellModel(moneyID, false, ulong.Parse(json["39"].ToJson())));
            items[moneyIndex].button.AddListener(() =>
            {
                ItemTipUtility.Show(moneyID);
            });
        }
 
        getImg.SetActiveIL(achievement.completed);
        awardBtn.SetActiveIL(!achievement.completed);
        awardBtn.interactable = process >= config.NeedCnt;
        awardBtn.SetListener(()=> {
            ILAchievementModel.Instance.GetAchievementReward(successID);
        });
    }
 
 
}