using System.Collections.Generic; using Fort23.Core; using GameLogic.Hero; using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; namespace Fort23.Mono { [UIBinding(prefab = "MainHeroPanel")] public partial class MainHeroPanel : UIPanel { List btnFaBaoWidgets = new List(); private void Init() { isAddStack = true; } protected override void AddEvent() { } protected override void DelEvent() { } public override CTask GetFocus() { AppBarPanel.OpenPanel(this); return base.GetFocus(); } public override CTask LoseFocus() { // AppBarPanel.ClosePanel(); return base.LoseFocus(); } private HeroInfo heroInfo; private List HeroAttributeWidgets = new List(); public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async void CustomInit() { for (int i = 0; i < 4; i++) { BtnFaBaoWidget btnFaBaoWidget = await UIManager.Instance.CreateGComponent(null, FaBaoRoot); btnFaBaoWidget.CustomInit(i); btnFaBaoWidget.OnClick = OnClick; btnFaBaoWidgets.Add(btnFaBaoWidget); } heroInfo = PlayerManager.Instance.myHero; HeroAttributeWidget heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("生命", "", PlayerManager.Instance.myHero.hp.Value.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("攻击", "", PlayerManager.Instance.myHero.attack.Value.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("防御", "", PlayerManager.Instance.myHero.defense.Value.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("攻击速度", "", PlayerManager.Instance.myHero.attSpeed.Value.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("金灵根", "", PlayerManager.Instance.myHero.Metal_Injury.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("木灵根", "", PlayerManager.Instance.myHero.Wood_Injury.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("水灵根", "", PlayerManager.Instance.myHero.Water_Injury.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("火灵根", "", PlayerManager.Instance.myHero.Fire_Injury.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); heroAttributeWidget = await UIManager.Instance.CreateGComponentForObject(HeroAttributeWidgetGam,null, Content,isInstance:true); heroAttributeWidget.CustomInit(new HeroAttributeData("土灵根", "", PlayerManager.Instance.myHero.Earth_Injury.ToString())); HeroAttributeWidgets.Add(heroAttributeWidget); } private async void OnClick(ItemWidgetBasic obj) { BtnFaBaoWidget btnFaBaoWidget = obj as BtnFaBaoWidget; if (btnFaBaoWidget.index > PlayerManager.Instance.myHero.powerUpConfig.MaxFabaoNum - 1) { TipMessagePanel.OpenTipMessagePanel("当前位置未解锁"); return; } SelectFaBaoPanel selectFaBaoPanel = await SelectFaBaoPanel.OpenPanel(btnFaBaoWidget.index); await selectFaBaoPanel.UIClosed(); foreach (var b in btnFaBaoWidgets) { b.CustomInit(b.index); } } public async static CTask OpenPanel() { MainHeroPanel mainHeroPanel = await UIManager.Instance.LoadAndOpenPanel(null); mainHeroPanel.CustomInit(); return mainHeroPanel; } public override void Close() { foreach (var btnFaBaoWidget in btnFaBaoWidgets) { UIManager.Instance.DormancyGComponent(btnFaBaoWidget); } btnFaBaoWidgets.Clear(); foreach (var heroAttributeWidget in HeroAttributeWidgets) { UIManager.Instance.DormancyGComponent(heroAttributeWidget); } HeroAttributeWidgets.Clear(); base.Close(); } } }