using Common.Utility.CombatEvent; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Hero; using UnityEngine.UI; namespace Fort23.Mono { [UIBinding(prefab = "HeroDetailPanel" )] public partial class HeroDetailPanel : UIPanel { private HeroInfo heroInfo; private void Init() { // InitHeroDetailPanel(); } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { btnBack.onClick.AddListener(OnClickClose); btnUpgrade.onClick.AddListener(OnClickUpgrade); btnPromote.onClick.AddListener(OnClickPromote); } private void OnClickPromote() { if (PlayerManager.Instance.gameConstantConfig.maxStar <= heroInfo.star.Value) { LogTool.Log("已到达最高星级:" + PlayerManager.Instance.gameConstantConfig.maxStar); return; } heroInfo.Promote(); UpdateAttributeUI(); HeroUITools.SetStarShow(stars, heroInfo.star.Value); SendEvent(HeroUpType.Promote); } private void OnClickUpgrade() { if (PlayerManager.Instance.gameConstantConfig.maxLv <= heroInfo.level.Value) { LogTool.Log("已到达最高等级:" + PlayerManager.Instance.gameConstantConfig.maxLv); return; } heroInfo.Upgrade(); UpdateAttributeUI(); SendEvent(HeroUpType.Level); } /// /// 发送英雄提升的事件 /// /// 提升类型:升级、升星等. private void SendEvent(HeroUpType upType) { HeroPowerUpEventData data = new HeroPowerUpEventData(); data.heroModelID = heroInfo.modelID; data.upType = upType; PlayerManager.Instance.lastHeroInfo = heroInfo; EventManager.Instance.Dispatch(CustomEventType.HeroPowerUp, data); if (upType == HeroUpType.Level) { EventManager.Instance.Dispatch(CustomEventType.HeroLvUp, data); } else if (upType == HeroUpType.Promote) { EventManager.Instance.Dispatch(CustomEventType.HeroPromote, data); } } private void OnClickClose() { UIManager.Instance.HideUIUIPanel(this); } public void InitHeroDetailPanel(HeroInfo heroInfo) { this.heroInfo = heroInfo; iconZhiYe.icon_name = heroInfo.iconZhiYe; heroName.text = LanguageManager.Instance.Text(heroInfo.modelConfig.name); HeroUITools.SetStarShow(stars, heroInfo.star.Value); switch (heroInfo.modelConfig.rarity) { case 1: heroRarity.text = LanguageManager.Instance.Text(32); break; case 2: heroRarity.text = LanguageManager.Instance.Text(31); break; case 3: heroRarity.text = LanguageManager.Instance.Text(30); break; default: LogTool.Error("找不到hero的稀有度:" + heroInfo.modelConfig.ID); break; } UpdateAttributeUI(); } public void UpdateAttributeUI() { txtHP.text = heroInfo.hp.Value.ToString(); txtATK.text = heroInfo.attack.Value.ToString(); txtDEF.text = heroInfo.defense.Value.ToString(); txtSHANBI.text = heroInfo.shanbi.Value.ToString(); txtLv.text = heroInfo.level.Value.ToString(); txtExpGain.text = heroInfo.expGain.Value.ToString(); } } }