DivineSenceRestoredPanel.cs 5.0 KB

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