DaoYouGuaJiAwardPanel.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System.Collections.Generic;
  2. using Excel2Json;
  3. using Fort23.Core;
  4. using Fort23.UTool;
  5. using GameLogic.Bag;
  6. namespace Fort23.Mono
  7. {
  8. [UIBinding(prefab = "DaoYouGuaJiAwardPanel")]
  9. public partial class DaoYouGuaJiAwardPanel : UIPanel
  10. {
  11. List<DaoYouGuaJiAwardWidget> _daoYouGuaJiAwardWidgets = new List<DaoYouGuaJiAwardWidget>();
  12. private void Init()
  13. {
  14. isAddStack = true;
  15. IsShowAppBar = false;
  16. }
  17. protected override void AddEvent()
  18. {
  19. }
  20. protected override void DelEvent()
  21. {
  22. }
  23. public override void AddButtonEvent()
  24. {
  25. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  26. Btn_Award.onClick.AddListener(async () =>
  27. {
  28. List<ItemInfo> items = new List<ItemInfo>();
  29. foreach (var playerDataDaoYouGuaiJiData in AccountFileInfo.Instance.playerData.daoYouGuaiJiDatas)
  30. {
  31. if (playerDataDaoYouGuaiJiData.isLeave && playerDataDaoYouGuaiJiData.items.Count > 0)
  32. {
  33. foreach (var itemData in playerDataDaoYouGuaiJiData.items)
  34. {
  35. items.Add(new ItemInfo(itemData));
  36. }
  37. }
  38. }
  39. if (items.Count <= 0)
  40. {
  41. return;
  42. }
  43. AccountFileInfo.Instance.playerData.daoYouGuaiJiDatas.RemoveAll(p => p.isLeave);
  44. AccountFileInfo.Instance.SavePlayerData();
  45. EventManager.Instance.Dispatch(CustomEventType.DaoYouCounUpdate, null);
  46. RewardsPanel rewardsPanel = await RewardsPanel.OpenPanel(items);
  47. await rewardsPanel.UIClosed();
  48. UIManager.Instance.HideUIUIPanel(this);
  49. });
  50. }
  51. public async override CTask<bool> AsyncInit(object[] uiData)
  52. {
  53. foreach (var playerDataDaoYouGuaiJiData in AccountFileInfo.Instance.playerData.daoYouGuaiJiDatas)
  54. {
  55. if (playerDataDaoYouGuaiJiData.isLeave && playerDataDaoYouGuaiJiData.items.Count > 0)
  56. {
  57. DaoYouGuaJiAwardWidget daoYouGuaJiAwardWidget = await UIManager.Instance.CreateGComponent<DaoYouGuaJiAwardWidget>(null, Content);
  58. daoYouGuaJiAwardWidget.CustomInit(playerDataDaoYouGuaiJiData);
  59. _daoYouGuaJiAwardWidgets.Add(daoYouGuaJiAwardWidget);
  60. }
  61. }
  62. return await base.AsyncInit(uiData);
  63. }
  64. public static async CTask OpenPanel()
  65. {
  66. await UIManager.Instance.LoadAndOpenPanel<DaoYouGuaJiAwardPanel>(null);
  67. }
  68. public override void Close()
  69. {
  70. foreach (var daoYouGuaJiAwardWidget in _daoYouGuaJiAwardWidgets)
  71. {
  72. UIManager.Instance.DormancyGComponent(daoYouGuaJiAwardWidget);
  73. }
  74. _daoYouGuaJiAwardWidgets.Clear();
  75. base.Close();
  76. }
  77. }
  78. }