using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using Excel2Json; using Fort23.Core; using Fort23.UTool; using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using Utility; namespace Fort23.Mono { [UIBinding(prefab = "DaoYouInvitePanel")] public partial class DaoYouInvitePanel : UIPanel { private DaoYouWidget addDaoYouWidget; List _daoYouWidgets = new List(); List _daoYouaaFfixWidgets = new List(); private void Init() { isAddStack = true; } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_Ok.onClick.AddListener(() => { if (addDaoYouWidget == null) { return; } if (!PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(addDaoYouWidget._daoYouData.id)) { PlayerManager.Instance.myHero.heroData.ImmortalBond.Add(addDaoYouWidget._daoYouData.id); PlayerManager.Instance.myHero.ComputeHeroInfo(); AccountFileInfo.Instance.SavePlayerData(); addDaoYouWidget = null; UIManager.Instance.HideUIUIPanel(this); } }); } public async override CTask AsyncInit(object[] uiData) { int count = 0; //可以被邀请的道侣 foreach (var playerDataDaoYouData in AccountFileInfo.Instance.playerData.daoYouDatas) { if (!PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(playerDataDaoYouData.id)) { count++; DaoYouWidget daoYouWidget = await UIManager.Instance.CreateGComponent(null, Content); daoYouWidget.CustomInit(playerDataDaoYouData.id); daoYouWidget.OnClick = OnClick2; _daoYouWidgets.Add(daoYouWidget); } } Tex_Tips1.gameObject.SetActive(count <= 0); Btn_Ok.transform.Gray(); return await base.AsyncInit(uiData); } private async void OnClick2(ItemWidgetBasic obj) { DaoYouWidget daoYouWidget = obj as DaoYouWidget; if (addDaoYouWidget == daoYouWidget) return; addDaoYouWidget = daoYouWidget; Btn_Ok.transform.RecoverColor(); foreach (var daoYouaaFfixWidget in _daoYouaaFfixWidgets) { UIManager.Instance.DormancyGComponent(daoYouaaFfixWidget); } _daoYouaaFfixWidgets.Clear(); var _daoyouModelConfig = ConfigComponent.Instance.Get(addDaoYouWidget._daoYouData.id); if (_daoyouModelConfig.daolvSkillID != null) { foreach (var i in _daoyouModelConfig.daolvSkillID) { DaoYouaaFfixWidget daoYouaaFfixWidge = await UIManager.Instance.CreateGComponent(null, JiachengContent); daoYouaaFfixWidge.CustomInit(i); _daoYouaaFfixWidgets.Add(daoYouaaFfixWidge); } } } public async static CTask OpenPanel() { await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Top); } public override void Close() { foreach (var daoYouWidget in _daoYouWidgets) { UIManager.Instance.DormancyGComponent(daoYouWidget); } _daoYouWidgets.Clear(); foreach (var daoYouaaFfixWidget in _daoYouaaFfixWidgets) { UIManager.Instance.DormancyGComponent(daoYouaaFfixWidget); } _daoYouaaFfixWidgets.Clear(); addDaoYouWidget = null; base.Close(); } } }