using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
public class HeroCardCell : MonoBehaviour
|
{
|
[SerializeField] Button heroCardBtn;
|
[SerializeField] Image heroCardBG;
|
[SerializeField] Material glowMaterial; // 流光效果材质
|
[SerializeField] Text lvText;
|
[SerializeField] Image countryImg;
|
[SerializeField] Image jobImg;
|
[SerializeField] UIHeroController heroModel;
|
[SerializeField] Image onStateImg;
|
[SerializeField] RedpointBehaviour redpoint;
|
[SerializeField] Image trainStateImg;
|
[SerializeField] Text nameText;
|
[SerializeField] Image awakeImg;
|
[SerializeField] Text awakeLVText;
|
[SerializeField] List<Image> starImgList;
|
|
string guid;
|
public void Display(int index)
|
{
|
guid = HeroUIManager.Instance.heroSortList[index];
|
var hero = HeroManager.Instance.GetHero(guid);
|
if (hero == null)
|
{
|
this.gameObject.SetActive(false);
|
return;
|
}
|
|
this.gameObject.SetActive(true);
|
heroCardBG.SetSprite("herocardbg" + hero.Quality);
|
if (glowMaterial != null)
|
{
|
heroCardBG.material = glowMaterial;
|
}
|
lvText.text = Language.Get("L1094") + hero.heroLevel.ToString();
|
var heroConfig = hero.heroConfig;
|
countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
|
jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
|
heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale);
|
onStateImg.SetActive(hero.IsInTeamByTeamType(TeamType.Story));
|
|
redpoint.redpointId = MainRedDot.HeroCardRedpoint * 1000 + hero.itemHero.gridIndex;
|
var funcState = hero.funcState;
|
if (funcState > 0)
|
{
|
trainStateImg.SetActive(true);
|
trainStateImg.SetSprite("herofuncstate" + hero.funcState);
|
}
|
else
|
{
|
trainStateImg.SetActive(false);
|
}
|
nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel);
|
awakeImg.SetActive(hero.awakeLevel > 0);
|
awakeLVText.text = hero.awakeLevel.ToString();
|
|
for (int i = 0; i < starImgList.Count; i++)
|
{
|
if (hero.heroStar == 0 && i == 0)
|
{
|
// 无星级 特殊处理
|
starImgList[i].SetActive(true);
|
starImgList[i].SetSprite("herostar" + hero.heroStar);
|
}
|
else if ((hero.heroStar - 1) % starImgList.Count >= i)
|
{
|
starImgList[i].SetActive(true);
|
starImgList[i].SetSprite("herostar" + (((hero.heroStar - 1) / starImgList.Count) + 1) * starImgList.Count);
|
}
|
else
|
{
|
starImgList[i].SetActive(false);
|
}
|
}
|
|
heroCardBtn.AddListener(() =>
|
{
|
HeroUIManager.Instance.selectHeroGuid = guid;
|
UIManager.Instance.OpenWindow<HeroTrainWin>();
|
});
|
}
|
}
|