using System.Collections.Generic; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; using Mono.Utility; namespace Fort23.Mono { [UIBinding(prefab = "EventTipsPanel")] public partial class EventTipsPanel : UIPanel { List skipToWidgets = new List(); private CTask callBack; private bool isSkipto = false; private void Init() { isPopUi = true; isAddStack = false; } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async override CTask AsyncInit(object[] uiData) { AccountFileInfo.EventLinkData eventLinkData = uiData[0] as AccountFileInfo.EventLinkData; callBack = uiData[1] as CTask; EventConfig eventConfig = ConfigComponent.Instance.Get(eventLinkData.eventId); EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get(eventLinkData.eventLinkId); Text_EventName.text = LanguageManager.Instance.Text(eventConfig.EventName); string desc = ""; foreach (var eventConditionData in eventLinkData.eventConditions) { desc += EventHelper.GetTaskMessage(eventConditionData) + "\n"; } Text_TiaoJian.text = desc; foreach (var eventConditionData in eventLinkData.eventConditions) { EventConditionConfig eventConditionConfig = ConfigComponent.Instance.Get(eventConditionData.eventCondition); foreach (var skiptoId in eventConditionConfig.SkiptoIds) { SkipToWidget skipToWidget = await UIManager.Instance.CreateGComponent(null, Content); skipToWidget.CustonInit(skiptoId); skipToWidgets.Add(skipToWidget); skipToWidget.OnClick = OnClick; } } return await base.AsyncInit(uiData); } private void OnClick(ItemWidgetBasic obj) { SkipToWidget skipToWidget = obj as SkipToWidget; isSkipto = true; UIManager.Instance.HideUIUIPanel(this); SkiptoHelper.Skipto(skipToWidget.SkiptoConfig.ID); } public static async CTask OpenPanel(AccountFileInfo.EventLinkData eventLinkData) { CTask callBack = CTask.Create(); await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Top, uiData: new object[] { eventLinkData, callBack }); return await callBack; } public override void Close() { foreach (var skipToWidget in skipToWidgets) { UIManager.Instance.DormancyGComponent(skipToWidget); } skipToWidgets.Clear(); callBack?.SetResult(isSkipto); isSkipto = false; base.Close(); } } }