TaskInfoPanel.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using GameLogic.Bag;
  7. using GameLogic.Player;
  8. namespace Fort23.Mono
  9. {
  10. [UIBinding(prefab = "TaskInfoPanel")]
  11. public partial class TaskInfoPanel : UIPanel
  12. {
  13. List<WidgetItem> widgetItems = new List<WidgetItem>();
  14. private void Init()
  15. {
  16. isAddStack = false;
  17. }
  18. protected override void AddEvent()
  19. {
  20. }
  21. protected override void DelEvent()
  22. {
  23. }
  24. public override void AddButtonEvent()
  25. {
  26. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  27. }
  28. public async void CustomInit(int taskId, string title)
  29. {
  30. TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskId);
  31. Text_Title.text = title;
  32. Text_Name.text = LanguageManager.Instance.Text(taskConfig.taskName);
  33. Text_desc.text = LanguageManager.Instance.Text(taskConfig.Description);
  34. if (taskConfig.awardItemId != null)
  35. {
  36. List<ItemInfo> itemInfos = new List<ItemInfo>();
  37. for (var i = 0; i < taskConfig.awardItemId.Length; i++)
  38. {
  39. DropConfig dropConfig = ConfigComponent.Instance.Get<DropConfig>(taskConfig.awardItemId[i]);
  40. if (dropConfig.dropType == 3)
  41. {
  42. ItemInfo itemInfo = new ItemInfo(dropConfig.dropGroupID[0], taskConfig.awardItemCount[i]);
  43. itemInfos.Add(itemInfo);
  44. }
  45. else
  46. {
  47. List<ItemInfo> items = DropManager.Instance.DropItem(taskConfig.awardItemCount[i]);
  48. itemInfos.AddRange(items);
  49. }
  50. }
  51. foreach (var itemInfo in itemInfos)
  52. {
  53. WidgetItem widgetItem = await UIManager.Instance.CreateGComponent<WidgetItem>(null, root: ItemRoot);
  54. widgetItem.InitWidget(itemInfo);
  55. widgetItems.Add(widgetItem);
  56. }
  57. }
  58. }
  59. public async static CTask<TaskInfoPanel> OpenPanel(int taskId,string title)
  60. {
  61. TaskInfoPanel taskInfoPanel = await UIManager.Instance.LoadAndOpenPanel<TaskInfoPanel>(null,UILayer.Top);
  62. taskInfoPanel.CustomInit(taskId, title);
  63. return taskInfoPanel;
  64. }
  65. public override void Close()
  66. {
  67. foreach (var widgetItem in widgetItems)
  68. {
  69. UIManager.Instance.DormancyGComponent(widgetItem);
  70. }
  71. widgetItems.Clear();
  72. base.Close();
  73. }
  74. }
  75. }