| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 | 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<DaoYouaaFfixWidget> _daoLvSkillWidgets = new List<DaoYouaaFfixWidget>();        private void Init()        {            isAddStack = true;        }        public override CTask GetFocus()        {            AppBarPanel.OpenPanel(this);            TitlePanel.ClosePanel();            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<bool> 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<DaoYouWidget>();            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<DaoYouWidget>(null, Content1);                daoYouWidget.CustomInit(i);                // daoYouWidget.OnClick = OnClick1;            }            foreach (var i in PlayerManager.Instance.myHero.daolvBl)            {                DaoYouaaFfixWidget daoLvSkillWidget =                    await UIManager.Instance.CreateGComponent<DaoYouaaFfixWidget>(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<int> ImmortalBond = PlayerManager.Instance.myHero.heroData.ImmortalBond.ToList();        //         ImmortalBond.Remove(removeDaoYouWidget._daoYouData.id);        //        //         Map<int, float> 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<DaoLvSkillWidget>(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<RectTransform>().anchoredPosition = pos;        //     Btn_Add.gameObject.SetActive(true);        //        //        //     if (!PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(addDaoYouWidget._daoYouData.id))        //     {        //         List<int> ImmortalBond = PlayerManager.Instance.myHero.heroData.ImmortalBond.ToList();        //         ImmortalBond.Add(addDaoYouWidget._daoYouData.id);        //        //         Map<int, float> 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<DaoLvSkillWidget>(null, JiachengContent);        //                 daoLvSkillWidget1.CustomInit(keyValuePair.Key, 0);        //                 _daoLvSkillWidgets.Add(daoLvSkillWidget1);        //                 daoLvSkillWidget1.UpdateBl(daolvBlMap);        //             }        //         }        //     }        // }        public Map<int, float> GetDaoLvBl(List<int> ImmortalBond)        {            Map<int, float> daolvBlMap = new Map<int, float>();            foreach (var i in ImmortalBond)            {                DaoyouModelConfig daoyouModelConfig = ConfigComponent.Instance.Get<DaoyouModelConfig>(i);                foreach (var i1 in daoyouModelConfig.daolvSkillID)                {                    daolvSkill daolvSkill = ConfigComponent.Instance.Get<daolvSkill>(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<ImmortalBondPanel>(null);        }        public async override CTask Close()        {            foreach (var daoLvSkillWidget in _daoLvSkillWidgets)            {                UIManager.Instance.DormancyGComponent(daoLvSkillWidget);            }            _daoLvSkillWidgets.Clear();            UIManager.Instance.DormancyAllGComponent<DaoYouWidget>();            await base.Close();        }    }}
 |