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;
|
|
public void Display(int index)
|
{
|
var hero = HeroManager.Instance.GetHero(HeroManager.Instance.heroSortList[index]);
|
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("herocountry" + heroConfig.Country);
|
jobImg.SetSprite("herojob" + heroConfig.Class);
|
heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale);
|
onStateImg.SetActive(hero.isInMainBattle);
|
|
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);
|
}
|
}
|
}
|
}
|