using UnityEngine; public class LineupRecommendItem : MonoBehaviour { [SerializeField] ButtonEx btnClick; [SerializeField] ImageEx imgSquareIcon; [SerializeField] ImageEx imgHeroHead; [SerializeField] ImageEx imgCountry; [SerializeField] TextEx txtName; [SerializeField] ImageEx imgMask; [SerializeField] TextEx txtNoHave; [SerializeField] ImageEx imgMoney; [SerializeField] TextEx txtMoney; [SerializeField] Color32 colMoneyNoActivate; [SerializeField] Color32 colMoneyCanActivate; [SerializeField] TextEx txtDesc; [SerializeField] ImageEx imgRed; [SerializeField] ImageEx imgJob; LineupRecommendManager manager { get { return LineupRecommendManager.Instance; } } public void Display(int recommendID, int index) { if (!manager.TryGetHeroConfigByIndex(recommendID, index, out HeroConfig heroConfig)) return; if (!manager.TryGetMoneyInfo(recommendID, index, out int moneyType, out int moneyNeedCnt)) return; int heroID = heroConfig.HeroID; if (!manager.TryGetHeroSkinConfig(heroID, out HeroSkinConfig heroSkinConfig)) return; var sprite = UILoader.LoadSprite("HeroHead", heroSkinConfig.SquareIcon); if (sprite == null) { imgHeroHead.SetSprite("herohead_default"); } else { imgHeroHead.overrideSprite = sprite; } imgSquareIcon.SetSprite("heroheadBG" + heroConfig.Quality); imgCountry.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country)); txtName.text = heroConfig.Name; txtDesc.text = heroConfig.Desc; imgJob.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class)); LineupRecommendHeroState heroState = manager.GetHeroState(recommendID, index); imgMask.SetActive(heroState != LineupRecommendHeroState.ActivateAndHave); txtNoHave.SetActive(heroState == LineupRecommendHeroState.ActivateButNoHave); imgMoney.SetActive(heroState == LineupRecommendHeroState.NoActivate || heroState == LineupRecommendHeroState.CanActivate); txtMoney.SetActive(heroState == LineupRecommendHeroState.NoActivate || heroState == LineupRecommendHeroState.CanActivate); imgRed.SetActive(heroState == LineupRecommendHeroState.CanActivate); imgMoney.SetIconWithMoneyType(moneyType); imgMoney.gray = heroState == LineupRecommendHeroState.NoActivate; txtMoney.text = moneyNeedCnt.ToString(); txtMoney.color = heroState == LineupRecommendHeroState.NoActivate ? colMoneyNoActivate : colMoneyCanActivate; btnClick.SetListener(() => { if (heroState == LineupRecommendHeroState.CanActivate) { manager.SendGetReward(recommendID, index); } else { HeroUIManager.Instance.selectForPreviewHeroID = heroConfig.HeroID; UIManager.Instance.OpenWindow(); } }); } }