DivineSenceRestoredPanel.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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}/{PlayerManager.Instance.myHero.powerUpConfig.ShenshiMax}";
  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}/{PlayerManager.Instance.myHero.powerUpConfig.ShenshiMax}";
  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. ItemConfig[] itemConfigs = ConfigComponent.Instance.GetAll<ItemConfig>();
  54. for (var i = 0; i < itemConfigs.Length; i++)
  55. {
  56. if (itemConfigs[i].itemTag == 8)
  57. {
  58. if (itemConfigs[i].ID == 1702 && PlayerManager.Instance.BagController.GetItemCount(1702) <= 0)
  59. {
  60. DivineSenceRestoredWidget divineSenceRestoredWidget1 =
  61. await UIManager.Instance.CreateGComponentForObject<DivineSenceRestoredWidget>(
  62. DivineSenceRestoredWidget1, null, Content, isInstance: true);
  63. divineSenceRestoredWidget1.CustomInit(601);
  64. _divineSenceRestoredWidgets.Add(divineSenceRestoredWidget1);
  65. continue;
  66. }
  67. DivineSenceRestoredWidget divineSenceRestoredWidget3 =
  68. await UIManager.Instance.CreateGComponentForObject<DivineSenceRestoredWidget>(
  69. DivineSenceRestoredWidget1, null,
  70. Content, isInstance: true);
  71. divineSenceRestoredWidget3.CustomInit1(itemConfigs[i].ID);
  72. _divineSenceRestoredWidgets.Add(divineSenceRestoredWidget3);
  73. }
  74. }
  75. }
  76. private void UpdateText()
  77. {
  78. HeroPowerUpConfig heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig;
  79. if (AccountFileInfo.Instance.playerData.divineSensePoint < heroPowerUpConfig.ShenshiMax)
  80. {
  81. if (!Text_Tips2.gameObject.activeInHierarchy)
  82. Text_Tips2.gameObject.SetActive(true);
  83. if (AccountFileInfo.Instance.playerData.todayDivineSensePoint <
  84. PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[0])
  85. {
  86. miao = 1 / PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[1];
  87. }
  88. else
  89. {
  90. miao = 1 / PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[1];
  91. }
  92. Text_Tips1.text =
  93. LanguageManager.Instance.Text(10332, PlayerManager.TimeToHSM((long)(miao)));
  94. int shengyuPoint =
  95. (int)(heroPowerUpConfig.ShenshiMax - AccountFileInfo.Instance.playerData.divineSensePoint);
  96. Text_Tips2.text =
  97. LanguageManager.Instance.Text(10333, PlayerManager.TimeToHSM((long)(shengyuPoint * miao)));
  98. }
  99. else
  100. {
  101. Text_Tips1.text = LanguageManager.Instance.Text(10334);
  102. Text_Tips2.gameObject.SetActive(false);
  103. }
  104. }
  105. public async static CTask<DivineSenceRestoredPanel> OpenPanel()
  106. {
  107. DivineSenceRestoredPanel divineSenceRestoredPanel =
  108. await UIManager.Instance.LoadAndOpenPanel<DivineSenceRestoredPanel>(null, UILayer.Middle,
  109. isShowBG: true);
  110. return divineSenceRestoredPanel;
  111. }
  112. public override CTask Close()
  113. {
  114. foreach (var divineSenceRestoredWidget in _divineSenceRestoredWidgets)
  115. {
  116. UIManager.Instance.DormancyGComponent(divineSenceRestoredWidget);
  117. }
  118. _divineSenceRestoredWidgets.Clear();
  119. _timerEntity?.Dispose();
  120. _timerEntity = null;
  121. return base.Close();
  122. }
  123. }
  124. }