MainPanel.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System.Collections.Generic;
  2. using Excel2Json;
  3. using Fort23.Core;
  4. using GameLogic.Combat.CombatTool;
  5. using UnityEngine;
  6. namespace Fort23.Mono
  7. {
  8. [UIBinding(prefab = "MainPanel")]
  9. public partial class MainPanel : UIPanel
  10. {
  11. private void Init()
  12. {
  13. }
  14. protected override void AddEvent()
  15. {
  16. EventManager.Instance.AddEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
  17. EventManager.Instance.AddEventListener(CustomEventType.CompleteEvent, CompleteEvent);
  18. }
  19. private void CompleteEvent(IEventData e)
  20. {
  21. CreatShengShiEvent();
  22. }
  23. private void DivineSensePointChange(IEventData e)
  24. {
  25. Text_divineSensePoint.text = $"{AccountFileInfo.Instance.playerData.divineSensePoint}/{PlayerManager.Instance.gameConstantConfig.DetectEventCount}";
  26. }
  27. protected override void DelEvent()
  28. {
  29. EventManager.Instance.RemoveEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
  30. EventManager.Instance.RemoveEventListener(CustomEventType.CompleteEvent, CompleteEvent);
  31. }
  32. public override void AddButtonEvent()
  33. {
  34. bnt_shengShi.onClick.AddListener(Bnt_shengShi_onClick);
  35. }
  36. public override CTask<bool> AsyncInit(object[] uiData)
  37. {
  38. Text_divineSensePoint.text = $"{AccountFileInfo.Instance.playerData.divineSensePoint}/{PlayerManager.Instance.gameConstantConfig.DetectEventCount}";
  39. CreatShengShiEvent();
  40. return base.AsyncInit(uiData);
  41. }
  42. private async void Bnt_shengShi_onClick()
  43. {
  44. // EventSystemManager.Instance.DetectRandomEvents();
  45. if (AccountFileInfo.Instance.playerData.divineSensePoint < PlayerManager.Instance.gameConstantConfig.DetectEventCount)
  46. {
  47. TipMessagePanel.OpenTipMessagePanel("神识值不够!");
  48. return;
  49. }
  50. CombatController.currActiveCombat.CombatSenceController.StartPayShengShi(CombatController.currActiveCombat
  51. .CombatHeroController.playerHeroEntity.GameObject.transform);
  52. List<AccountFileInfo.EventList> eventLists = EventSystemManager.Instance.UseDivinesense(1);
  53. if (eventLists == null || eventLists.Count == 0)
  54. return;
  55. AccountFileInfo.Instance.playerData.eventList.AddRange(eventLists);
  56. CreatShengShiEvent();
  57. }
  58. public async void CreatShengShiEvent()
  59. {
  60. UIManager.Instance.DormancyAllGComponent<ShengShiEventWidget>();
  61. for (var i = 0; i < AccountFileInfo.Instance.playerData.eventList.Count; i++)
  62. {
  63. ShengShiEventWidget shengShiEventWidget =
  64. await UIManager.Instance.CreateGComponentForObject<ShengShiEventWidget>(ShengShiEventWidget, null,
  65. DynamicEvent,
  66. isInstance: true);
  67. shengShiEventWidget.InitShengShiEventWidget(AccountFileInfo.Instance.playerData.eventList[i]);
  68. }
  69. }
  70. [CustomMethod(CustomMethodType.Update)]
  71. public void Update()
  72. {
  73. if (Input.GetKeyDown(KeyCode.Y))
  74. {
  75. EventSystemManager.Instance.DetectRandomEvents();
  76. }
  77. }
  78. public async static CTask OpenPanel()
  79. {
  80. await UIManager.Instance.LoadAndOpenPanel<MainPanel>(null);
  81. }
  82. }
  83. }