using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
public class HeroCollectionCardCell : MonoBehaviour
|
{
|
[SerializeField] Button heroCardBtn;
|
[SerializeField] Image heroCardBG;
|
[SerializeField] UIHeroController heroModel;
|
[SerializeField] List<Image> starImgList;
|
[SerializeField] Image countryImg;
|
[SerializeField] Image jobImg;
|
[SerializeField] Text nameText;
|
[SerializeField] Image trainStateImg;
|
[SerializeField] RedpointBehaviour redpoint;
|
[SerializeField] Button bookLVBtn;
|
[SerializeField] GameObject unGetObj;
|
[SerializeField] GameObject activeObj; // 可激活带流光效果材质
|
|
public void Display(int index, int quality)
|
{
|
var heroID = HeroUIManager.Instance.heroCollectDict[quality][index];
|
var heroConfig = HeroConfig.Get(heroID);
|
HB122_tagSCHeroInfo.tagSCHero colData;
|
HeroUIManager.Instance.TryGetHeroBookInfo(heroID, out colData);
|
heroCardBG.SetSprite("herocardbg" + heroConfig.Quality);
|
|
//分为0未获得、1可激活、2常规、3突破升级、4、星升级、5已满级
|
int funcState = HeroUIManager.Instance.GetHeroBookState(heroID, quality);
|
|
activeObj.SetActive(funcState == 1);
|
bookLVBtn.SetActive(funcState > 1);
|
unGetObj.SetActive(funcState == 0);
|
|
countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
|
jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
|
heroModel.Create(heroConfig.SkinIDList[0], heroConfig.UIScale);
|
|
redpoint.redpointId = MainRedDot.HeroCardCollectRedpoint * 10000000 + heroID;
|
|
if (funcState == 3 || funcState == 4)
|
{
|
trainStateImg.SetActive(true);
|
trainStateImg.SetSprite("herofuncstate2");
|
}
|
else
|
{
|
trainStateImg.SetActive(false);
|
}
|
nameText.text = colData.BookBreakLV == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, colData.BookBreakLV);
|
|
for (int i = 0; i < starImgList.Count; i++)
|
{
|
if (colData.BookStarLV == 0 && i == 0)
|
{
|
// 无星级 特殊处理
|
starImgList[i].SetActive(true);
|
starImgList[i].SetSprite("herostar" + colData.BookStarLV);
|
}
|
else if ((colData.BookStarLV - 1) % starImgList.Count >= i)
|
{
|
starImgList[i].SetActive(true);
|
starImgList[i].SetSprite("herostar" + (((colData.BookStarLV - 1) / starImgList.Count) + 1) * starImgList.Count);
|
}
|
else
|
{
|
starImgList[i].SetActive(false);
|
}
|
}
|
|
heroCardBtn.AddListener(() =>
|
{
|
HeroUIManager.Instance.selectCollectHeroID = heroID;
|
var state = HeroUIManager.Instance.GetHeroBookState(heroID, quality);
|
if (state == 1 || state == 3 || state == 4)
|
{
|
UIManager.Instance.OpenWindow<HeroCollectionLvUpWin>();
|
}
|
else
|
{
|
HeroUIManager.Instance.selectForPreviewHeroID = heroID;
|
UIManager.Instance.OpenWindow<HeroBestWin>();
|
}
|
});
|
|
bookLVBtn.AddListener(() =>
|
{
|
HeroUIManager.Instance.selectCollectHeroID = heroID;
|
UIManager.Instance.OpenWindow<HeroCollectionLvUpWin>();
|
});
|
}
|
}
|