DivineSenceRestoredPanel.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. }
  16. protected override void AddEvent()
  17. {
  18. EventManager.Instance.AddEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
  19. }
  20. protected override void DelEvent()
  21. {
  22. EventManager.Instance.RemoveEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
  23. }
  24. private void DivineSensePointChange(IEventData e)
  25. {
  26. Text_DivineSencePoint.text =
  27. $"{(int)AccountFileInfo.Instance.playerData.divineSensePoint}";
  28. }
  29. public override void AddButtonEvent()
  30. {
  31. }
  32. private float miao;
  33. public async override CTask<bool> AsyncInit(object[] uiData)
  34. {
  35. foreach (var divineSenceRestoredWidget in _divineSenceRestoredWidgets)
  36. {
  37. UIManager.Instance.DormancyGComponent(divineSenceRestoredWidget);
  38. }
  39. _divineSenceRestoredWidgets.Clear();
  40. Text_DivineSencePoint.text =
  41. $"{(int)AccountFileInfo.Instance.playerData.divineSensePoint}";
  42. DivineSenceRestoredWidget divineSenceRestoredWidget1 =
  43. await UIManager.Instance.CreateGComponentForObject<DivineSenceRestoredWidget>(
  44. DivineSenceRestoredWidget1, null, Content, isInstance: true);
  45. divineSenceRestoredWidget1.CustomInit(601);
  46. _divineSenceRestoredWidgets.Add(divineSenceRestoredWidget1);
  47. ItemConfig[] itemConfigs = ConfigComponent.Instance.GetAll<ItemConfig>();
  48. for (var i = 0; i < itemConfigs.Length; i++)
  49. {
  50. if (itemConfigs[i].itemTag == 8)
  51. {
  52. DivineSenceRestoredWidget divineSenceRestoredWidget3 =
  53. await UIManager.Instance.CreateGComponentForObject<DivineSenceRestoredWidget>(
  54. DivineSenceRestoredWidget1, null,
  55. Content, isInstance: true);
  56. divineSenceRestoredWidget3.CustomInit1(itemConfigs[i].ID);
  57. _divineSenceRestoredWidgets.Add(divineSenceRestoredWidget3);
  58. }
  59. }
  60. UpdateText();
  61. _timerEntity?.Dispose();
  62. _timerEntity = null;
  63. _timerEntity = TimerComponent.Instance.AddTimer(1000, null, int.MaxValue, () => { UpdateText(); });
  64. return await base.AsyncInit(uiData);
  65. }
  66. private void UpdateText()
  67. {
  68. HeroPowerUpConfig heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig;
  69. if (AccountFileInfo.Instance.playerData.divineSensePoint < heroPowerUpConfig.ShenshiMax)
  70. {
  71. if (AccountFileInfo.Instance.playerData.todayDivineSensePoint <
  72. PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[0])
  73. {
  74. miao = 1 / PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[1];
  75. }
  76. else
  77. {
  78. miao = 1 / PlayerManager.Instance.gameConstantConfig.shenshiPointRecSPD[1];
  79. }
  80. Text_Tips1.text =
  81. LanguageManager.Instance.Text(10332, PlayerManager.TimeToHSM((long)(miao)));
  82. int shengyuPoint =
  83. (int)(heroPowerUpConfig.ShenshiMax - AccountFileInfo.Instance.playerData.divineSensePoint);
  84. Text_Tips2.text =
  85. LanguageManager.Instance.Text(10333, PlayerManager.TimeToHSM((long)(shengyuPoint * miao)));
  86. }
  87. else
  88. {
  89. Text_Tips1.text = LanguageManager.Instance.Text(10334);
  90. Text_Tips2.text = LanguageManager.Instance.Text(10334);
  91. }
  92. }
  93. public async static CTask OpenPanel()
  94. {
  95. await UIManager.Instance.LoadAndOpenPanel<DivineSenceRestoredPanel>(null, UILayer.Top, isShowBG: true);
  96. }
  97. public override CTask Close()
  98. {
  99. foreach (var divineSenceRestoredWidget in _divineSenceRestoredWidgets)
  100. {
  101. UIManager.Instance.DormancyGComponent(divineSenceRestoredWidget);
  102. }
  103. _divineSenceRestoredWidgets.Clear();
  104. _timerEntity?.Dispose();
  105. _timerEntity = null;
  106. return base.Close();
  107. }
  108. }
  109. }