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