QiankundaiPanel.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. using System.Collections.Generic;
  2. using Excel2Json;
  3. using Fort23.Core;
  4. using GameLogic.Bag;
  5. using GameLogic.Player;
  6. using Utility;
  7. namespace Fort23.Mono
  8. {
  9. [UIBinding(prefab = "QiankundaiPanel")]
  10. public partial class QiankundaiPanel : UIPanel
  11. {
  12. List<WidgetItem> items = new List<WidgetItem>();
  13. private void Init()
  14. {
  15. isPopUi = true;
  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_LingQu.onClick.AddListener(() =>
  27. {
  28. List<ItemInfo> itemInfos = new List<ItemInfo>();
  29. //固定时间掉落奖励
  30. foreach (var playerDataQiankundaiItemData in AccountFileInfo.Instance.playerData.QiankundaiItemDatas)
  31. {
  32. ItemInfo itemInfo = new ItemInfo(playerDataQiankundaiItemData);
  33. PlayerManager.Instance.BagController.AddItem(itemInfo);
  34. itemInfos.Add(itemInfo);
  35. }
  36. //可以掉落每日刷新奖励
  37. if (TimeHelper.ClientNow() >= AccountFileInfo.Instance.playerData.QiankundaiLingQuDailyDropTime)
  38. {
  39. List<QiankundaiConfig> qiankundaiConfigs = PlayerManager.Instance.GetFixedTimeQiankundaiConfigs();
  40. foreach (var qiankundaiConfig in qiankundaiConfigs)
  41. {
  42. for (var i = 0; i < qiankundaiConfig.ChoukaID.Length; i++)
  43. {
  44. List<ItemInfo> itemInfo = DropManager.Instance.Drop(qiankundaiConfig.ChoukaID[i], qiankundaiConfig.DropCount[i]);
  45. foreach (var info in itemInfo)
  46. {
  47. PlayerManager.Instance.BagController.AddItem(info);
  48. itemInfos.Add(info);
  49. }
  50. }
  51. }
  52. }
  53. if (itemInfos.Count <= 0)
  54. {
  55. return;
  56. }
  57. AccountFileInfo.Instance.playerData.QiankundaiDropTimer = 0;
  58. AccountFileInfo.Instance.playerData.QiankundaiItemDatas.Clear();
  59. AccountFileInfo.Instance.playerData.QiankundaiLingQuDailyDropTime = TimeHelper.GetBaseRefreshTime(TimeHelper.ClientNow());
  60. AccountFileInfo.Instance.SavePlayerData();
  61. RewardsPanel.OpenPanel(itemInfos);
  62. CustomInit();
  63. });
  64. Btn_XiangQing.onClick.AddListener(() => { QiankundaiInfoPanel.OpenPanel(); });
  65. }
  66. public async override CTask<bool> AsyncInit(object[] uiData)
  67. {
  68. await CustomInit();
  69. return await base.AsyncInit(uiData);
  70. }
  71. public async CTask CustomInit()
  72. {
  73. foreach (var widgetItem in items)
  74. {
  75. UIManager.Instance.DormancyGComponent(widgetItem);
  76. }
  77. items.Clear();
  78. Text_Desc.text = $"挂机时间:{UtilTools.TimeToHSM(AccountFileInfo.Instance.playerData.QiankundaiDropTimer)}/{UtilTools.TimeToHSM(PlayerManager.Instance.gameConstantConfig.qiankundaiMaxTime)}";
  79. foreach (var playerDataQiankundaiItemData in AccountFileInfo.Instance.playerData.QiankundaiItemDatas)
  80. {
  81. WidgetItem widgetItem = await UIManager.Instance.CreateGComponent<WidgetItem>(null, Content);
  82. widgetItem.InitWidget(new ItemInfo(playerDataQiankundaiItemData));
  83. items.Add(widgetItem);
  84. }
  85. }
  86. public static async CTask OpenPanel()
  87. {
  88. await UIManager.Instance.LoadAndOpenPanel<QiankundaiPanel>(null, UILayer.Top);
  89. }
  90. public override void Close()
  91. {
  92. foreach (var widgetItem in items)
  93. {
  94. UIManager.Instance.DormancyGComponent(widgetItem);
  95. }
  96. items.Clear();
  97. base.Close();
  98. }
  99. }
  100. }