using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class HeroFatesIHItem : MonoBehaviour { [SerializeField] UIHeroController uiHeroController; [SerializeField] List 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 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(); } else { HeroUIManager.Instance.selectForPreviewHeroID = heroId; UIManager.Instance.OpenWindow(); } }); } }