CombatDrive.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using Fort23.Core;
  3. using Fort23.Mono;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.CombatType;
  6. using GameLogic.CombatScenesTool;
  7. using UnityEngine;
  8. using Utility;
  9. namespace GameLogic.Combat
  10. {
  11. public class CombatDrive : Singleton<CombatDrive>
  12. {
  13. public CombatController CombatController;
  14. public async CTask Init()
  15. {
  16. string name = "CombatRoot.prefab";
  17. AssetHandle assetHandle = await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>(name);
  18. assetHandle.AssetObject<GameObject>().SetActive(true);
  19. //
  20. }
  21. public void AddCombatController(CombatController combatController)
  22. {
  23. this.CombatController = combatController;
  24. }
  25. public async CTask StartCombat(StartCombatInfo startCombatInfo)
  26. {
  27. CombatEquipFallManager.Instance.Dispose();
  28. CombatEquipFallManager.Instance.Init();
  29. CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
  30. cTaskAwaitBuffer.AddTask(CombatHPPanel.OpenCombatHPPanel());
  31. cTaskAwaitBuffer.AddTask(ShowTextPanel.OpenShowTextPanel());
  32. CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer);
  33. cTaskAwaitBuffer.AddTask(ShowItemMoveToTargetPanel.OpenShowItemMoveToTargetPanel());
  34. await cTaskAwaitBuffer.WaitAll();
  35. await CombatController.InitCombat(startCombatInfo);
  36. StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
  37. }
  38. public void Update()
  39. {
  40. CombatController.Update(Time.deltaTime);
  41. }
  42. public void Dispose()
  43. {
  44. StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
  45. }
  46. }
  47. }