少年修仙传客户端代码仓库
hch
2025-03-03 28785d6ddf9c08e49527ede9405c7b6c93c6ed32
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
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
 
namespace vnxbqy.UI
{
    public class LianQiAwardActCell : CellView
    {
        [SerializeField] ImageEx imgCorrespondItem;
        [SerializeField] ButtonEx btnCorrespondItem;
        [SerializeField] ImageEx imgProgressBarGreen;
        [SerializeField] ImageEx imgProgressBarGreen2;
        [SerializeField] ImageEx imgCanHave;
        [SerializeField] ImageEx imgHaveBG;
        [SerializeField] TextEx txtItemCount;
        [SerializeField] RectTransform transTo;
        LianQiActModel model { get { return ModelCenter.Instance.GetModel<LianQiActModel>(); } }
 
        public void Display(int index)
        {
            Dictionary<int, List<Item>> correspondingRewards = model.correspondingRewards;
            if (model.correspondingRewards == null)
                return;
 
            var arr = correspondingRewards.Keys.ToArray();
            if (arr.Length <= index)
                return;
 
            int awardLv = arr[index];
 
            HAA91_tagMCActLianqiPlayerInfo info = model.nowPlayerInfo;
            if (info == null)
                return;
 
            LianQiCompositeItemInfo itemInfo;
            if (!model.TryGetCompositeItemInfoByAwardLv(awardLv, out itemInfo) || itemInfo == null)
                return;
 
            bool isItemCountShow = awardLv >= model.MaxItemLv;
            txtItemCount.SetActive(isItemCountShow);
            if (isItemCountShow)
            {
                int itemCount = awardLv - model.MaxItemLv + 1;
                txtItemCount.text = StringUtility.Contact("X", itemCount);
            }
 
            //0 不可领取 1 可领取  2 已领取
            int state = model.GetAwardState(awardLv, (int)info.LVAwardState, (int)info.LVAwardMax);
            imgProgressBarGreen.SetActive(state != 0 && index == 0);
            imgProgressBarGreen2.SetActive(state != 0 && index != 0);
            imgHaveBG.SetActive(state == 2);
            imgCanHave.SetActive(state == 1);
            imgCorrespondItem.SetSprite(itemInfo.Icon);
            imgCorrespondItem.SetNativeSize();
            btnCorrespondItem.SetListener(() =>
            {
                if (state == 1)
                {
                    model.ClaimReward();
                }
                else
                {
                    model.OnDisplayItemInfoAction?.Invoke(awardLv, transTo.position);
                }
            });
        }
    }
}