using Fort23.Core; using UnityEngine; namespace Fort23.Mono { [UIBinding(prefab = "ImmortalBondPanel")] public partial class ImmortalBondPanel : UIPanel { private DaoYouWidget addDaoYouWidget; private DaoYouWidget removeDaoYouWidget; private void Init() { isAddStack = true; } public override CTask GetFocus() { // AppBarPanel.OpenPanel(this); AppBarPanel.ClosePanel(); return base.GetFocus(); } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Add.onClick.AddListener(() => { if (addDaoYouWidget == null) { Btn_Add.gameObject.SetActive(false); return; } if (!PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(addDaoYouWidget._daoYouData.id)) { PlayerManager.Instance.myHero.heroData.ImmortalBond.Add(addDaoYouWidget._daoYouData.id); AccountFileInfo.Instance.SavePlayerData(); addDaoYouWidget = null; Btn_Add.gameObject.SetActive(false); UpdateUi(); } }); Btn_Remove.onClick.AddListener(() => { if (removeDaoYouWidget == null) { Btn_Remove.gameObject.SetActive(false); return; } if (PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(removeDaoYouWidget._daoYouData.id)) { PlayerManager.Instance.myHero.heroData.ImmortalBond.Remove(removeDaoYouWidget._daoYouData.id); AccountFileInfo.Instance.SavePlayerData(); removeDaoYouWidget = null; Btn_Remove.gameObject.SetActive(false); UpdateUi(); } }); Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async override CTask AsyncInit(object[] uiData) { UpdateUi(); return await base.AsyncInit(uiData); } private async CTask UpdateUi() { UIManager.Instance.DormancyAllGComponent(); //已经邀请的道侣 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 playerDataDaoYouData in AccountFileInfo.Instance.playerData.daoYouDatas) { if (!PlayerManager.Instance.myHero.heroData.ImmortalBond.Contains(playerDataDaoYouData.id)) { DaoYouWidget daoYouWidget = await UIManager.Instance.CreateGComponent(null, Content2); daoYouWidget.CustomInit(playerDataDaoYouData.id); daoYouWidget.OnClick = OnClick2; } } } private void OnClick1(ItemWidgetBasic obj) { DaoYouWidget daoYouWidget = obj as DaoYouWidget; removeDaoYouWidget = daoYouWidget; Vector3 pos = transform.InverseTransformPoint(daoYouWidget.transform.position); pos.y -= 180; Btn_Remove.gameObject.GetComponent().anchoredPosition = pos; Btn_Remove.gameObject.SetActive(true); } private 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); // UIManager.Instance.DormancyGComponent(); } public async static CTask OpenPanel() { await UIManager.Instance.LoadAndOpenPanel(null); } public override void Close() { UIManager.Instance.DormancyAllGComponent(); Btn_Add.gameObject.SetActive(true); Btn_Remove.gameObject.SetActive(true); base.Close(); } } }