using Excel2Json; using Fort23.Core; using Fort23.UTool; using UnityEngine; namespace Fort23.Mono { [UIBinding(prefab = "DivineSenceEventPreviewPanel")] public partial class DivineSenceEventPreviewPanel : UIPanel, IScrollListContent { private void Init() { } protected override void AddEvent() { EventManager.Instance.AddEventListener(CustomEventType.RemoveEvent, RemoveEvent); } protected override void DelEvent() { EventManager.Instance.RemoveEventListener(CustomEventType.RemoveEvent, RemoveEvent); } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } private void RemoveEvent(IEventData e) { UIManager.Instance.DormancyAllGComponent(); Content.Init(this, AccountFileInfo.Instance.playerData.eventList.Count); } public override CTask AsyncInit(object[] uiData) { Content.Init(this, AccountFileInfo.Instance.playerData.eventList.Count); return base.AsyncInit(uiData); } public async CTask GetIScorllListWidget(int index, RectTransform root) { if (index < 0 || index >= AccountFileInfo.Instance.playerData.eventList.Count) { return null; } EventConfig eventConfig = ConfigComponent.Instance.Get(AccountFileInfo.Instance.playerData.eventList[index].eventID); if (eventConfig.EventType == 2) { ShengShiEventWidgetType3 shengShiEventWidgetType2 = await UIManager.Instance.CreateGComponent(null, ContentRoot); shengShiEventWidgetType2.CustomInit(AccountFileInfo.Instance.playerData.eventList[index]); shengShiEventWidgetType2.onClick = ShengShiEventWidgetType3OnClick; return shengShiEventWidgetType2; } else { ShengShiEventWidgetType2 shengShiEventWidgetType2 = await UIManager.Instance.CreateGComponent(null, ContentRoot); shengShiEventWidgetType2.CustomInit(AccountFileInfo.Instance.playerData.eventList[index]); shengShiEventWidgetType2.onClick = OnClick; return shengShiEventWidgetType2; } } private void ShengShiEventWidgetType3OnClick(ItemWidgetBasic obj) { ShengShiEventWidgetType3 shengShiEventWidgetType2 = obj as ShengShiEventWidgetType3; if (EventSystemManager.Instance.isTriggerEvent) return; this.GObjectPoolInterface.SetActive(false); EventSystemManager.Instance.isOpenUi = false; EventSystemManager.Instance.TriggerEvent(shengShiEventWidgetType2.eventList, () => { Content.Init(this, AccountFileInfo.Instance.playerData.eventList.Count); this.GObjectPoolInterface.SetActive(true); EventSystemManager.Instance.isOpenUi = true; }); } private void OnClick(ItemWidgetBasic obj) { ShengShiEventWidgetType2 shengShiEventWidgetType2 = obj as ShengShiEventWidgetType2; if (EventSystemManager.Instance.isTriggerEvent) return; this.GObjectPoolInterface.SetActive(false); EventSystemManager.Instance.isOpenUi = false; EventSystemManager.Instance.TriggerEvent(shengShiEventWidgetType2.eventList, () => { Content.Init(this, AccountFileInfo.Instance.playerData.eventList.Count); this.GObjectPoolInterface.SetActive(true); EventSystemManager.Instance.isOpenUi = true; }); } public void HindIScorllListWidget(IScorllListWidget widget) { UIManager.Instance.DormancyGComponent(widget as UIComponent); } public async static CTask OpenPanel() { DivineSenceEventPreviewPanel divineSenceEventPreviewPanel = await UIManager.Instance.LoadAndOpenPanel(null); return divineSenceEventPreviewPanel; } public override void Close() { UIManager.Instance.DormancyAllGComponent(); EventSystemManager.Instance.isOpenUi = false; base.Close(); } } }