using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; //主界面卡牌 public class HeroFightingCardCell : MonoBehaviour { [SerializeField] Button clickHeroBtn; [SerializeField] Image qualityBG; [SerializeField] Image heroIcon; [SerializeField] Text lvText; [SerializeField] Image countryImg; [SerializeField] Transform starRect; [SerializeField] List starsImg; [SerializeField] UIEffectPlayer fightEffect; [SerializeField] FillTween cdTween; [SerializeField] Button clickEmptyBtn; void OnEnable() { AutoFightModel.Instance.OnFightEvent += OnSkillCast; } void OnDisable() { AutoFightModel.Instance.OnFightEvent -= OnSkillCast; } string guid; public void Display(int index) { var team = TeamManager.Instance.GetTeam(TeamType.Story); var teamHero = team.GetServerHeroByIndex(index); guid = teamHero != null ? teamHero.guid : ""; if (guid == "") { clickHeroBtn.SetActive(false); clickEmptyBtn.SetActive(true); clickEmptyBtn.AddListener(ClickEmpty); return; } else { clickHeroBtn.SetActive(true); clickEmptyBtn.SetActive(false); } var hero = HeroManager.Instance.GetHero(guid); var heroID = hero.heroId; var star = hero.heroStar; clickHeroBtn.AddListener(ClickHero); var heroConfig = HeroConfig.Get(heroID); qualityBG.SetSprite("herocBG" + heroConfig.Quality); var sprite = UILoader.LoadSprite("HeroHead", HeroSkinConfig.Get(hero.SkinID).RectangleIcon); if (sprite == null) { // 内网未配置时 heroIcon.SetSprite("herohead_big_default"); } else { heroIcon.overrideSprite = sprite; } if (star == 0) { starRect.SetActive(false); } else { starRect.SetActive(true); for (int i = 0; i < starsImg.Count; i++) { if ((star - 1) % starsImg.Count >= i) { starsImg[i].SetActive(true); starsImg[i].SetSprite("herostar" + (((star - 1) / starsImg.Count) + 1) * starsImg.Count); } else { starsImg[i].SetActive(false); } } } countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country)); lvText.text = hero.heroLevel == 0 ? "" : Language.Get("L1094") + hero.heroLevel; RefreshFightIng(false); } void ClickHero() { HeroUIManager.Instance.selectHeroListJob = 0; HeroUIManager.Instance.selectHeroListCountry = 0; HeroUIManager.Instance.SortHeroList(); HeroUIManager.Instance.selectHeroGuid = guid; UIManager.Instance.OpenWindow(); } void ClickEmpty() { UIManager.Instance.OpenWindow(); } void OnSkillCast(bool isfighting) { if (isfighting && !string.IsNullOrEmpty(guid) && guid == AutoFightModel.Instance.heroGuid) { RefreshFightIng(true); } } void RefreshFightIng(bool isfighting) { if (isfighting) { fightEffect.Play(); cdTween.SetStartState(); cdTween.Play(); } else { fightEffect.Stop(); cdTween.Stop(); cdTween.SetEndState(); } } }