123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using System.Threading.Tasks;
- using Common.Utility.CombatEvent;
- using Core.Utility;
- using Fort23.Core;
- using Fort23.UTool;
- using GameLogic.Hero;
- using UnityEngine;
- using UnityEngine.UI;
- using Utility;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "WidgetHero")]
- public partial class WidgetHero : UIComponent
- {
- private void Init()
- {
- SetMoreBtnActive(false);
- }
- public override void AddEvent()
- {
- }
- public override void DelEvent()
- {
- }
- public override void AddButtonEvent()
- {
- LogTool.Log("添加英雄点击事件");
- btnHero.onClick.AddListener(OnHeroClick);
- btnUpgrade.onClick.AddListener(OnUpgradeClick);
- btnHeroPanel.onClick.AddListener(OnHeroPanelClick);
- }
- private void OnUpgradeClick()
- {
- // throw new System.NotImplementedException();
- PlayerManager.Instance.heroController.UpgradeHeroLogic(heroInfo);
- if (PlayerManager.Instance.heroController.CanUpgrade(heroInfo) == HeroUpResultType.Success)
- {
- txtUpgrade.color = Color.white;
- }
- else
- {
- txtUpgrade.color = Color.red;
- }
- }
-
- private async void OnHeroPanelClick()
- {
- // throw new System.NotImplementedException();
- await OpenHeroDetailPanel();
- }
- public void SetMoreBtnActive(bool isActive)
- {
- btnUpgrade.gameObject.SetActive(isActive);
- btnHeroPanel.gameObject.SetActive(isActive);
- }
- private async void OnHeroClick()
- {
- LogTool.Log("点击英雄");
- HeroClickEventData heroClickEventData = HeroClickEventData.Create();
- heroClickEventData.heroId = heroInfo.modelID;
- EventManager.Instance.Dispatch(CustomEventType.HeroClick, heroClickEventData);
- // OffsetPos();
- await OpenHeroDetailPanel();
- }
- private void OffsetPos()
- {
- Vector3 curPos = transform.parent.localPosition;
- Vector3 newPos;
- if (curPos.y == 0)
- {
- newPos = new Vector3(curPos.x, curPos.y + GlobalParam.Hero_Pos_Offset, curPos.z);
- SetMoreBtnActive(true);
- txtUpgrade.text = heroInfo.powerUpConfig.levelUpExp.ToStringEx();
- if (PlayerManager.Instance.heroController.CanUpgrade(heroInfo) == HeroUpResultType.Success)
- {
- txtUpgrade.color = Color.white;
- }
- else
- {
- txtUpgrade.color = Color.red;
- }
-
- }
- else
- {
- newPos = new Vector3(curPos.x, curPos.y - GlobalParam.Hero_Pos_Offset, curPos.z);
- SetMoreBtnActive(false);
- }
- transform.parent.localPosition = newPos;
- MainSceneController.Instance.mainUI?.RestWidgetHeroPos(this);
- }
- private async Task OpenHeroDetailPanel()
- {
- // HeroDetailPanel heroDetailPanel = UIManager.Instance.GetComponent<HeroDetailPanel>();
- // if (heroDetailPanel == null)
- // {
- // heroDetailPanel = await UIManager.Instance.LoadAndOpenPanel<HeroDetailPanel>(Callback);
- // }
- HeroDetailPanel heroDetailPanel = await UIManager.Instance.LoadAndOpenPanel<HeroDetailPanel>(Callback,UILayer.Top,isFullUI:true);
- heroDetailPanel.InitHeroDetailPanel(heroInfo);
- }
- private void Callback(HeroDetailPanel obj)
- {
- LogTool.Log("HeroDetailPanel 加载完成");
- }
- public HeroInfo heroInfo;
-
- /// <summary>
- ///
- /// </summary>
- /// <param name="heroInfo"></param>
- public void InitHero(HeroInfo heroInfo)
- {
- this.heroInfo = heroInfo;
- // lv.text = heroInfo.level.Value.ToString();
- iconHero.icon_name = heroInfo.modelConfig.headicon;
- // iconHero.SetNativeSize();
- iconZhiYe.icon_name = heroInfo.iconZhiYe;
-
- // HeroUITools.SetStarShow(stars, heroInfo.star.Value);
- SetDynamicData();
- }
- public void UpdateWidgetUI(HeroInfo heroInfo)
- {
- this.heroInfo = heroInfo;
- SetDynamicData();
- }
- public void SetDynamicData()
- {
- lv.text = heroInfo.level.Value.ToString();
- HeroUITools.SetStarShow(stars, heroInfo.star.Value);
- }
-
- }
- }
|