using System.Collections.Generic; using System.Linq; using Excel2Json; using Fort23.Core; using Fort23.UTool; using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; using UnityEngine; using Utility; namespace Fort23.Mono { [UIBinding(prefab = "ImmortalBondPanel")] public partial class ImmortalBondPanel : UIPanel { private DaoYouWidget addDaoYouWidget; private DaoYouWidget removeDaoYouWidget; List _daoLvSkillWidgets = new List(); private void Init() { isAddStack = true; } public override CTask GetFocus() { AppBarPanel.OpenPanel(this); return base.GetFocus(); } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); Btn_YaoQing.onClick.AddListener(() => { DaoYouInvitePanel.OpenPanel(); }); } public async override CTask AsyncInit(object[] uiData) { return await base.AsyncInit(uiData); } public override CTask Show() { UpdateUi(); return base.Show(); } private async CTask UpdateUi() { foreach (var daoLvSkillWidget in _daoLvSkillWidgets) { UIManager.Instance.DormancyGComponent(daoLvSkillWidget); } _daoLvSkillWidgets.Clear(); UIManager.Instance.DormancyAllGComponent(); Tex_Tips1.gameObject.SetActive(PlayerManager.Instance.myHero.heroData.ImmortalBond.Count <= 0); Tex_Tips2.gameObject.SetActive(PlayerManager.Instance.myHero.daolvBl.Count <= 0); //已经邀请的道侣 foreach (var i in PlayerManager.Instance.myHero.heroData.ImmortalBond) { DaoYouWidget daoYouWidget = await UIManager.Instance.CreateGComponent(null, Content1); daoYouWidget.CustomInit(i); // daoYouWidget.OnClick = OnClick1; } foreach (var i in PlayerManager.Instance.myHero.daolvBl) { DaoYouaaFfixWidget daoLvSkillWidget = await UIManager.Instance.CreateGComponent(null, JiachengContent); daoLvSkillWidget.CustomInit(i); _daoLvSkillWidgets.Add(daoLvSkillWidget); } } // private async void OnClick1(ItemWidgetBasic obj) // { // DaoYouWidget daoYouWidget = obj as DaoYouWidget; // removeDaoYouWidget = daoYouWidget; // Vector3 pos = transform.InverseTransformPoint(removeDaoYouWidget.transform.position); // pos.y -= 180; // // // if (PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(removeDaoYouWidget._daoYouData.id)) // { // List ImmortalBond = PlayerManager.Instance.myHero.heroData.ImmortalBond.ToList(); // ImmortalBond.Remove(removeDaoYouWidget._daoYouData.id); // // Map daolvBlMap = GetDaoLvBl(ImmortalBond); // foreach (var daoLvSkillWidget in _daoLvSkillWidgets) // { // daoLvSkillWidget.UpdateBl(daolvBlMap); // } // // foreach (var keyValuePair in daolvBlMap) // { // DaoLvSkillWidget daoLvSkillWidget = _daoLvSkillWidgets.FirstOrDefault(ds => ds._daolvSkill.ID == keyValuePair.Key); // if (daoLvSkillWidget == null) // { // DaoLvSkillWidget daoLvSkillWidget1 = await UIManager.Instance.CreateGComponent(null, JiachengContent); // daoLvSkillWidget1.CustomInit(keyValuePair.Key, 0); // _daoLvSkillWidgets.Add(daoLvSkillWidget1); // daoLvSkillWidget1.UpdateBl(daolvBlMap); // } // } // } // } // private async void OnClick2(ItemWidgetBasic obj) // { // DaoYouWidget daoYouWidget = obj as DaoYouWidget; // addDaoYouWidget = daoYouWidget; // Vector3 pos = transform.InverseTransformPoint(daoYouWidget.transform.position); // pos.y -= 180; // Btn_Add.gameObject.GetComponent().anchoredPosition = pos; // Btn_Add.gameObject.SetActive(true); // // // if (!PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(addDaoYouWidget._daoYouData.id)) // { // List ImmortalBond = PlayerManager.Instance.myHero.heroData.ImmortalBond.ToList(); // ImmortalBond.Add(addDaoYouWidget._daoYouData.id); // // Map daolvBlMap = GetDaoLvBl(ImmortalBond); // foreach (var daoLvSkillWidget in _daoLvSkillWidgets) // { // daoLvSkillWidget.UpdateBl(daolvBlMap); // } // // foreach (var keyValuePair in daolvBlMap) // { // DaoLvSkillWidget daoLvSkillWidget = _daoLvSkillWidgets.FirstOrDefault(ds => ds._daolvSkill.ID == keyValuePair.Key); // if (daoLvSkillWidget == null) // { // DaoLvSkillWidget daoLvSkillWidget1 = await UIManager.Instance.CreateGComponent(null, JiachengContent); // daoLvSkillWidget1.CustomInit(keyValuePair.Key, 0); // _daoLvSkillWidgets.Add(daoLvSkillWidget1); // daoLvSkillWidget1.UpdateBl(daolvBlMap); // } // } // } // } public Map GetDaoLvBl(List ImmortalBond) { Map daolvBlMap = new Map(); foreach (var i in ImmortalBond) { DaoyouModelConfig daoyouModelConfig = ConfigComponent.Instance.Get(i); foreach (var i1 in daoyouModelConfig.daolvSkillID) { daolvSkill daolvSkill = ConfigComponent.Instance.Get(i1); //唯一只加一次 if (daolvSkill.type == 1) { if (!daolvBlMap.ContainsKey(i1)) { daolvBlMap.Add(i1, daolvSkill.para[0]); } } else { if (!daolvBlMap.ContainsKey(i1)) { daolvBlMap.Add(i1, daolvSkill.para[0]); } else { daolvBlMap[i1] += daolvSkill.para[0]; } } } } return daolvBlMap; } public async static CTask OpenPanel() { await UIManager.Instance.LoadAndOpenPanel(null); } public override void Close() { foreach (var daoLvSkillWidget in _daoLvSkillWidgets) { UIManager.Instance.DormancyGComponent(daoLvSkillWidget); } _daoLvSkillWidgets.Clear(); UIManager.Instance.DormancyAllGComponent(); base.Close(); } } }