using System.Collections.Generic; using Excel2Json; using Fort23.Core; using Fort23.UTool; namespace Fort23.Mono { [UIBinding(prefab = "ComBatFrontPanel")] public partial class ComBatFrontPanel : UIPanel { private CTask result; private bool isOk; private LevelbattleConfig levelbattleConfig; private GroupConfig groupConfig; List BossInfoHeadWidgets = new List(); private void Init() { } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_Ok.onClick.AddListener(() => { isOk = true; UIManager.Instance.HideUIUIPanel(this); }); Btn_Cancel.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async override CTask AsyncInit(object[] uiData) { await CustomInit((int)uiData[0], uiData[1] as AccountFileInfo.EventList, uiData[2] as CTask); return await base.AsyncInit(uiData); } public async CTask CustomInit(int levebattleId, AccountFileInfo.EventList eventList, CTask result) { this.result = result; levelbattleConfig = ConfigComponent.Instance.Get(levebattleId); groupConfig = ConfigComponent.Instance.Get(levelbattleConfig.Group[0]); for (var i = 0; i < 1; i++) { HeroModelConfig heroModelConfig = ConfigComponent.Instance.Get(groupConfig.GroupMonster[i]); CombatHeroInfo combatHeroInfo = new CombatHeroInfo(); //玩家等级 if (groupConfig.GroupMonsterLevel == null || groupConfig.GroupMonsterLevel[i] == -1) { MonsterPowerUpConfig heroPowerUpConfig = ConfigComponent.Instance.Get(eventList.heroLevel); combatHeroInfo.InitMonster(heroModelConfig.ID, heroPowerUpConfig.ID); } else { MonsterPowerUpConfig heroPowerUpConfig = ConfigComponent.Instance.Get(groupConfig.GroupMonsterLevel[i]); combatHeroInfo.InitMonster(heroModelConfig.ID, heroPowerUpConfig.ID); } if (PlayerManager.Instance.myHero.hp > combatHeroInfo.hp) { csc.ChangeState(0); } else if (PlayerManager.Instance.myHero.hp == combatHeroInfo.hp) { csc.ChangeState(1); } else { csc.ChangeState(2); } ComBatFrontWidget bossInfoHeadWidget = await UIManager.Instance.CreateGComponent(null); bossInfoHeadWidget.CustomInit(combatHeroInfo); BossInfoHeadWidgets.Add(bossInfoHeadWidget); } ComBatFrontWidget bossInfoHeadWidget1 = await UIManager.Instance.CreateGComponent(null); bossInfoHeadWidget1.CustomInit1(); BossInfoHeadWidgets.Add(bossInfoHeadWidget1); } public async override CTask Close() { foreach (var bossInfoHeadWidget in BossInfoHeadWidgets) { UIManager.Instance.DormancyGComponent(bossInfoHeadWidget); } BossInfoHeadWidgets.Clear(); result?.SetResult(isOk); await base.Close(); } public async static CTask OpenPanel(int levebattleId, AccountFileInfo.EventList CurrentEventList) { CTask result = CTask.Create(); ComBatFrontPanel bossInfoPanel = await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Top, uiData: new object[] { levebattleId, CurrentEventList, result }, isShowBG: true); return await result; } } }