yyl
9 天以前 bb5909bcd36b48b919366c95b4248a3754452698
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
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
 
public class HeroCollectionCardCell : MonoBehaviour
{
    [SerializeField] Button heroCardBtn;
    [SerializeField] Image heroCardBG;
    [SerializeField] UIHeroController heroModel;
    [SerializeField] List<Image> starImgList;
    [SerializeField] Image countryImg;
    [SerializeField] Image jobImg;
    [SerializeField] Text nameText;
    [SerializeField] Image trainStateImg;
    [SerializeField] RedpointBehaviour redpoint;
    [SerializeField] Button bookLVBtn;
    [SerializeField] GameObject unGetObj;
    [SerializeField] GameObject activeObj; // 可激活带流光效果材质
 
    public void Display(int index, int quality)
    {
        var heroID = HeroUIManager.Instance.heroCollectDict[quality][index];
        var heroConfig = HeroConfig.Get(heroID);
        HB122_tagSCHeroInfo.tagSCHero colData;
        HeroUIManager.Instance.TryGetHeroBookInfo(heroID, out colData);
        heroCardBG.SetSprite("herocardbg" + heroConfig.Quality);
 
        //分为0未获得、1可激活、2常规、3突破升级、4、星升级、5已满级
        int funcState = HeroUIManager.Instance.GetHeroBookState(heroID, quality);
 
        activeObj.SetActive(funcState == 1);
        bookLVBtn.SetActive(funcState > 1);
        unGetObj.SetActive(funcState == 0);
 
        countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
        jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
        heroModel.Create(heroConfig.SkinIDList[0], heroConfig.UIScale);
 
        redpoint.redpointId = MainRedDot.HeroCardCollectRedpoint * 10000000 + heroID;
 
        if (funcState == 3 || funcState == 4)
        {
            trainStateImg.SetActive(true);
            trainStateImg.SetSprite("herofuncstate2");
        }
        else
        {
            trainStateImg.SetActive(false);
        }
        nameText.text = colData.BookBreakLV == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, colData.BookBreakLV);
 
        for (int i = 0; i < starImgList.Count; i++)
        {
            if (colData.BookStarLV == 0 && i == 0)
            {
                // 无星级 特殊处理
                starImgList[i].SetActive(true);
                starImgList[i].SetSprite("herostar" + colData.BookStarLV);
            }
            else if ((colData.BookStarLV - 1) % starImgList.Count >= i)
            {
                starImgList[i].SetActive(true);
                starImgList[i].SetSprite("herostar" + (((colData.BookStarLV - 1) / starImgList.Count) + 1) * starImgList.Count);
            }
            else
            {
                starImgList[i].SetActive(false);
            }
        }
 
        heroCardBtn.AddListener(() =>
        {
            HeroUIManager.Instance.selectCollectHeroID = heroID;
            var state = HeroUIManager.Instance.GetHeroBookState(heroID, quality);
            if (state == 1 || state == 3 || state == 4)
            {
                UIManager.Instance.OpenWindow<HeroCollectionLvUpWin>();
            }
            else
            {
                HeroUIManager.Instance.selectForPreviewHeroID = heroID;
                UIManager.Instance.OpenWindow<HeroBestWin>();
            }
        });
        
        bookLVBtn.AddListener(() =>
        {
            HeroUIManager.Instance.selectCollectHeroID = heroID;
            UIManager.Instance.OpenWindow<HeroCollectionLvUpWin>();
        });
    }
}