CombatPanel.cs 6.6 KB

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