using System.Collections.Generic; using System.Linq; using Core.Language; using Excel2Json; using Fort23.Core; using UnityEngine; using UnityEngine.UI; namespace Fort23.Mono { [UIBinding(prefab = "EventLogWidget")] public partial class EventLogWidget : ItemWidgetBasic { private XianTuLogConfig _xianTuLogConfig; List eventMinLogWidgets = new List(); public XianTuData XianTuData; private void Init() { } public override void AddEvent() { } public override void DelEvent() { } public override void AddButtonEvent() { base.AddButtonEvent(); Btn_HuiGu.onClick.AddListener(() => { XianTuLogInfoPanel.OpenPanel(2, _xianTuLogConfig.ID); }); } public async CTask CustomInit(XianTuData xianTuData, List places) { XianTuData = xianTuData; _xianTuLogConfig = xianTuData.xianTuLogConfig; Text_Title.text = LanguageManager.Instance.Text(_xianTuLogConfig.Title); bool isUlock = false; if (EventSystemManager.Instance.eventConfigsMap.ContainsKey(_xianTuLogConfig.ID)) { var configs = EventSystemManager.Instance.eventConfigsMap[_xianTuLogConfig.ID]; foreach (var eventConfig in configs) { AccountFileInfo.EventList eventList = AccountFileInfo.Instance.playerData.completeEvents.FirstOrDefault(cl => cl.eventID == eventConfig.ID); if (eventList == null) { eventList = AccountFileInfo.Instance.playerData.eventList.FirstOrDefault(cl => cl.eventID == eventConfig.ID); } if (eventList != null && eventList.isCompleted) { isUlock = true; } EventMinLogWidget eventMinLogWidget = await UIManager.Instance.CreateGComponent(null, Connect); eventMinLogWidget.CustomInit(eventConfig.ID, eventList, places); eventMinLogWidgets.Add(eventMinLogWidget); } } if (isUlock) { Text_Desc.text = LanguageManager.Instance.Text(_xianTuLogConfig.Desc); } else { Text_Desc.text = "?????????????????"; } LayoutRebuilder.ForceRebuildLayoutImmediate(Connect); LayoutRebuilder.ForceRebuildLayoutImmediate(Connect.transform.parent.GetComponent()); } public override void DormancyObj() { foreach (var eventMinLogWidget in eventMinLogWidgets) { UIManager.Instance.DormancyGComponent(eventMinLogWidget); } eventMinLogWidgets.Clear(); XianTuData = null; base.DormancyObj(); } } }