CombatPanel.cs 5.5 KB

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