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
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class HeroFatesIHItem : MonoBehaviour
{
    [SerializeField] UIHeroController uiHeroController;
    [SerializeField] List<Image> starImgList;
    [SerializeField] ImageEx imgHeroNameBg;
    [SerializeField] TextEx txtHeroName;
    [SerializeField] ButtonEx btnClick;
    [SerializeField] float lhSize = 0.8f;
    HeroFatesManager manager { get { return HeroFatesManager.Instance; } }
    public void Display(int[] heroIDList, int index, Dictionary<int, HeroInfo> nowMaxStarHeroDict)
    {
        if (heroIDList.IsNullOrEmpty() || index >= heroIDList.Length || index < 0)
            return;
        int heroId = heroIDList[index];
        if (!manager.TryGetHeroAndSkinConfigByHeroID(heroId, out HeroConfig heroConfig, out HeroSkinConfig heroSkinConfig))
            return;
 
 
 
        uiHeroController.Create(heroSkinConfig.SkinID, lhSize);
        bool isHasHero = HeroManager.Instance.HasHero(heroId);
        if (isHasHero)
        {
            uiHeroController.SetMaterialNone();
 
            int starCnt = !nowMaxStarHeroDict.IsNullOrEmpty() && nowMaxStarHeroDict.ContainsKey(heroId) ? nowMaxStarHeroDict[heroId].heroStar : 0;
            manager.DisplayStars(starImgList, starCnt);
        }
        else
        {
            uiHeroController.SetGray();
            manager.DisplayStars(starImgList, -1);
        }
 
        imgHeroNameBg.SetSprite(manager.GetHeroFatesNameBGByFatesQuality(heroConfig.Quality));
        txtHeroName.text = heroConfig.Name;
        btnClick.SetListener(() =>
        {
            if (isHasHero)
            {
                if (nowMaxStarHeroDict.IsNullOrEmpty() || !nowMaxStarHeroDict.ContainsKey(heroId))
                {
                    return;
                }
                HeroInfo heroInfo = nowMaxStarHeroDict[heroId];
                HeroUIManager.Instance.selectHeroGuid = heroInfo.itemHero.guid;
                UIManager.Instance.OpenWindow<HeroTrainWin>();
            }
            else
            {
                HeroUIManager.Instance.selectForPreviewHeroID = heroId;
                UIManager.Instance.OpenWindow<HeroBestWin>();
            }
        });
    }
}