CombatPanel.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System;
  2. using System.Collections.Generic;
  3. using Common.Utility.CombatEvent;
  4. using Excel2Json;
  5. using Fort23.Core;
  6. using GameLogic.Combat.CombatTool;
  7. using UnityEngine;
  8. namespace Fort23.Mono
  9. {
  10. [UIBinding(prefab = "CombatPanel")]
  11. public partial class CombatPanel : UIPanel,DialogueMono
  12. {
  13. public override CTask<bool> AsyncInit(object[] uiData)
  14. {
  15. DialogueManager.Instance.CustomInit(this);
  16. return base.AsyncInit(uiData);
  17. }
  18. public static void OpenCombatPanel(CTaskAwaitBuffer cTaskAwaitBuffer)
  19. {
  20. cTaskAwaitBuffer.AddTask(UIManager.Instance.LoadAndOpenPanel<CombatPanel>(null, UILayer.Middle));
  21. // cTaskAwaitBuffer.AddTask(AssetBundleLoadManager.Instance.LoadAssetAsyncTask<Font>("hd_0.fontsettings",
  22. // delegate(AssetHandle handle) { huiFuFont = handle.AssetObject<Font>(); }));
  23. //
  24. // cTaskAwaitBuffer.AddTask(AssetBundleLoadManager.Instance.LoadAssetAsyncTask<Font>("Zhanli_0.fontsettings",
  25. // delegate(AssetHandle handle) { shangHai = handle.AssetObject<Font>(); }));
  26. }
  27. private void Init()
  28. {
  29. }
  30. protected override void AddEvent()
  31. {
  32. CombatEventManager.Instance.AddEventListener(CombatEventType.AddRandomEvent, AddRandomEventEventData);
  33. CombatEventManager.Instance.AddEventListener(CombatEventType.GameStart, GameStart);
  34. CombatEventManager.Instance.AddEventListener(CombatEventType.AddMagicWeaponHeroEntity,
  35. AddMagicWeaponHeroEntity);
  36. StaticUpdater.Instance.AddLateUpdateCallBack(Update);
  37. CameraSelect.value = 0.7f;
  38. }
  39. private async void AddMagicWeaponHeroEntity(IEventData ieveData)
  40. {
  41. AddMagicWeaponHeroEntityEventData eventData = ieveData as AddMagicWeaponHeroEntityEventData;
  42. MagicWeaponWidget shengShiEventWidget =
  43. await UIManager.Instance.CreateGComponentForObject<MagicWeaponWidget>(MagicWeaponWidget, null,
  44. MagicWeapon,
  45. isInstance: true);
  46. shengShiEventWidget.InitWidget(eventData.CombatMagicWeaponEntity);
  47. // shengShiEventWidget.InitShengShiEventWidget(configId);
  48. }
  49. private async void AddRandomEventEventData(IEventData ieveData)
  50. {
  51. AddRandomEventEventData eventData = ieveData as AddRandomEventEventData;
  52. int configId = eventData.randomEventID;
  53. ShengShiEventWidget shengShiEventWidget =
  54. await UIManager.Instance.CreateGComponentForObject<ShengShiEventWidget>(ShengShiEventWidget, null,
  55. DynamicEvent,
  56. isInstance: true);
  57. shengShiEventWidget.InitShengShiEventWidget(configId);
  58. }
  59. private async void GameStart(IEventData ieveData)
  60. {
  61. HeroHpWidget heroHpWidget =
  62. await UIManager.Instance.CreateGComponentForObject<HeroHpWidget>(PlayerHpWidget, null);
  63. heroHpWidget.size = 250;
  64. heroHpWidget.shieldSize = 100;
  65. heroHpWidget.isFollowTarget = false;
  66. heroHpWidget.Init(CombatController.currActiveCombat.CombatHeroController.playerHeroEntity);
  67. }
  68. protected override void DelEvent()
  69. {
  70. CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddRandomEvent, AddRandomEventEventData);
  71. CombatEventManager.Instance.RemoveEventListener(CombatEventType.GameStart, GameStart);
  72. CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddMagicWeaponHeroEntity,
  73. AddMagicWeaponHeroEntity);
  74. StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
  75. }
  76. public override void AddButtonEvent()
  77. {
  78. bnt_shengShi.onClick.AddListener(Bnt_shengShi_onClick);
  79. CameraSelect.onValueChanged.AddListener(CameraSelect_onValueChanged);
  80. AutoUse.onValueChanged.AddListener((x) =>
  81. {
  82. CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.MagicWeaponControl.isAutoUse =
  83. x;
  84. });
  85. }
  86. private async void Bnt_shengShi_onClick()
  87. {
  88. UIManager.Instance.DormancyAllGComponent<ShengShiEventWidget>();
  89. CombatController.currActiveCombat.CombatSenceController.StartPayShengShi(CombatController.currActiveCombat
  90. .CombatHeroController.playerHeroEntity.GameObject.transform);
  91. List<EventConfig> eventConfigs = EventSystemManager.Instance.DetectEvents(1);
  92. if(eventConfigs == null || eventConfigs.Count == 0)
  93. return;
  94. for (var i = 0; i < eventConfigs.Count; i++)
  95. {
  96. ShengShiEventWidget shengShiEventWidget =
  97. await UIManager.Instance.CreateGComponentForObject<ShengShiEventWidget>(ShengShiEventWidget, null,
  98. DynamicEvent,
  99. isInstance: true);
  100. shengShiEventWidget.InitShengShiEventWidget(eventConfigs[i].ID);
  101. }
  102. //
  103. // CombatController.currActiveCombat.RandomEventController.StartRandomEvent(CombatController.currActiveCombat
  104. // .CombatHeroController.playerHeroEntity.GameObject.transform);
  105. }
  106. private void CameraSelect_onValueChanged(float value)
  107. {
  108. if (CombatController.currActiveCombat == null ||
  109. CombatController.currActiveCombat.CombatCameraControllder == null)
  110. {
  111. return;
  112. }
  113. CombatController.currActiveCombat.CombatCameraControllder.CameraSelect_onValueChanged(value);
  114. }
  115. public void Update()
  116. {
  117. }
  118. public void OpenDialoguePanel(int id, string[] icon, ShowDialogueEventData.MessageShowType messageShowType, Action<int?> finish)
  119. {
  120. DialoguePanel.OpenDialoguePanel(id, icon,messageShowType,finish);
  121. }
  122. }
  123. }