DivineSenceRestoredPanel.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. namespace Fort23.Mono
  7. {
  8. [UIBinding(prefab = "DivineSenceRestoredPanel")]
  9. public partial class DivineSenceRestoredPanel : UIPanel
  10. {
  11. List<DivineSenceRestoredWidget> _divineSenceRestoredWidgets = new List<DivineSenceRestoredWidget>();
  12. private TimerEntity _timerEntity;
  13. private void Init()
  14. {
  15. isAddStack = true;
  16. IsShowAppBar = false;
  17. }
  18. protected override void AddEvent()
  19. {
  20. EventManager.Instance.AddEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
  21. }
  22. protected override void DelEvent()
  23. {
  24. EventManager.Instance.RemoveEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
  25. }
  26. private void DivineSensePointChange(IEventData e)
  27. {
  28. Text_DivineSencePoint.text =
  29. $"{(int)AccountFileInfo.Instance.playerData.divineSensePoint}";
  30. }
  31. public override void AddButtonEvent()
  32. {
  33. }
  34. private float miao;
  35. public async override CTask<bool> AsyncInit(object[] uiData)
  36. {
  37. Text_DivineSencePoint.text =
  38. $"{(int)AccountFileInfo.Instance.playerData.divineSensePoint}";
  39. await CreatWidget();
  40. UpdateText();
  41. _timerEntity?.Dispose();
  42. _timerEntity = null;
  43. _timerEntity = TimerComponent.Instance.AddTimer(1000, null, int.MaxValue, () => { UpdateText(); });
  44. return await base.AsyncInit(uiData);
  45. }
  46. public async CTask CreatWidget()
  47. {
  48. foreach (var divineSenceRestoredWidget in _divineSenceRestoredWidgets)
  49. {
  50. UIManager.Instance.DormancyGComponent(divineSenceRestoredWidget);
  51. }
  52. _divineSenceRestoredWidgets.Clear();
  53. if (PlayerManager.Instance.BagController.GetItemCount(1702) <= 0)
  54. {
  55. DivineSenceRestoredWidget divineSenceRestoredWidget1 =
  56. await UIManager.Instance.CreateGComponentForObject<DivineSenceRestoredWidget>(
  57. DivineSenceRestoredWidget1, null, Content, isInstance: true);
  58. divineSenceRestoredWidget1.CustomInit(601);
  59. _divineSenceRestoredWidgets.Add(divineSenceRestoredWidget1);
  60. }
  61. ItemConfig[] itemConfigs = ConfigComponent.Instance.GetAll<ItemConfig>();
  62. for (var i = 0; i < itemConfigs.Length; i++)
  63. {
  64. if (itemConfigs[i].itemTag == 8)
  65. {
  66. if (itemConfigs[i].ID == 1702 && PlayerManager.Instance.BagController.GetItemCount(1702) <= 0)
  67. {
  68. continue;
  69. }
  70. DivineSenceRestoredWidget divineSenceRestoredWidget3 =
  71. await UIManager.Instance.CreateGComponentForObject<DivineSenceRestoredWidget>(
  72. DivineSenceRestoredWidget1, null,
  73. Content, isInstance: true);
  74. divineSenceRestoredWidget3.CustomInit1(itemConfigs[i].ID);
  75. _divineSenceRestoredWidgets.Add(divineSenceRestoredWidget3);
  76. }
  77. }
  78. }
  79. private void UpdateText()
  80. {
  81. HeroPowerUpConfig heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig;
  82. if (AccountFileInfo.Instance.playerData.divineSensePoint < heroPowerUpConfig.ShenshiMax)
  83. {
  84. if (AccountFileInfo.Instance.playerData.todayDivineSensePoint <
  85. PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[0])
  86. {
  87. miao = 1 / PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[1];
  88. }
  89. else
  90. {
  91. miao = 1 / PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[1];
  92. }
  93. Text_Tips1.text =
  94. LanguageManager.Instance.Text(10332, PlayerManager.TimeToHSM((long)(miao)));
  95. int shengyuPoint =
  96. (int)(heroPowerUpConfig.ShenshiMax - AccountFileInfo.Instance.playerData.divineSensePoint);
  97. Text_Tips2.text =
  98. LanguageManager.Instance.Text(10333, PlayerManager.TimeToHSM((long)(shengyuPoint * miao)));
  99. }
  100. else
  101. {
  102. Text_Tips1.text = LanguageManager.Instance.Text(10334);
  103. Text_Tips2.text = LanguageManager.Instance.Text(10334);
  104. }
  105. }
  106. public async static CTask<DivineSenceRestoredPanel> OpenPanel()
  107. {
  108. DivineSenceRestoredPanel divineSenceRestoredPanel =
  109. await UIManager.Instance.LoadAndOpenPanel<DivineSenceRestoredPanel>(null, UILayer.Middle,
  110. isShowBG: true);
  111. return divineSenceRestoredPanel;
  112. }
  113. public override CTask Close()
  114. {
  115. foreach (var divineSenceRestoredWidget in _divineSenceRestoredWidgets)
  116. {
  117. UIManager.Instance.DormancyGComponent(divineSenceRestoredWidget);
  118. }
  119. _divineSenceRestoredWidgets.Clear();
  120. _timerEntity?.Dispose();
  121. _timerEntity = null;
  122. return base.Close();
  123. }
  124. }
  125. }