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>();
|
}
|
});
|
}
|
}
|