CombatDrive.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using Fort23.Core;
  3. using Fort23.Mono;
  4. using GameLogic.Combat.CombatTool;
  5. using UnityEngine;
  6. using Utility;
  7. namespace GameLogic.Combat
  8. {
  9. public class CombatDrive : Singleton<CombatDrive>
  10. {
  11. public CombatController CombatController;
  12. public async CTask AddCombatController(CombatController combatController)
  13. {
  14. CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
  15. cTaskAwaitBuffer.AddTask(CombatHPPanel.OpenCombatHPPanel());
  16. cTaskAwaitBuffer.AddTask(ShowTextPanel.OpenShowTextPanel());
  17. CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer);
  18. cTaskAwaitBuffer.AddTask(ShowItemMoveToTargetPanel.OpenShowItemMoveToTargetPanel());
  19. await cTaskAwaitBuffer.WaitAll();
  20. this.CombatController = combatController;
  21. await CombatController.InitCombat();
  22. StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
  23. }
  24. public void Update()
  25. {
  26. CombatController.Update(Time.deltaTime);
  27. }
  28. public void Dispose()
  29. {
  30. StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
  31. }
  32. }
  33. }