using System.Collections.Generic; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Bag; using GameLogic.Player; namespace Fort23.Mono { [UIBinding(prefab = "TaskInfoPanel")] public partial class TaskInfoPanel : UIPanel { List widgetItems = new List(); private void Init() { isAddStack = false; } protected override void AddEvent() { } protected override void DelEvent() { } public override void AddButtonEvent() { Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); }); } public async void CustomInit(int taskId, string title) { TaskConfig taskConfig = ConfigComponent.Instance.Get(taskId); Text_Title.text = title; Text_Name.text = LanguageManager.Instance.Text(taskConfig.taskName); Text_desc.text = LanguageManager.Instance.Text(taskConfig.Description); if (taskConfig.awardItemId != null) { List itemInfos = new List(); for (var i = 0; i < taskConfig.awardItemId.Length; i++) { DropConfig dropConfig = ConfigComponent.Instance.Get(taskConfig.awardItemId[i]); if (dropConfig.dropType == 3) { ItemInfo itemInfo = new ItemInfo(dropConfig.dropGroupID[0], taskConfig.awardItemCount[i]); itemInfos.Add(itemInfo); } else { List items = DropManager.Instance.DropItem(taskConfig.awardItemCount[i]); itemInfos.AddRange(items); } } foreach (var itemInfo in itemInfos) { WidgetItem widgetItem = await UIManager.Instance.CreateGComponent(null, root: ItemRoot); widgetItem.InitWidget(itemInfo); widgetItems.Add(widgetItem); } } } public async static CTask OpenPanel(int taskId,string title) { TaskInfoPanel taskInfoPanel = await UIManager.Instance.LoadAndOpenPanel(null,UILayer.Top); taskInfoPanel.CustomInit(taskId, title); return taskInfoPanel; } public override void Close() { foreach (var widgetItem in widgetItems) { UIManager.Instance.DormancyGComponent(widgetItem); } widgetItems.Clear(); base.Close(); } } }