using System; using Fort23.Core; using Fort23.Mono; using GameLogic.Combat.CombatTool; using GameLogic.CombatScenesTool; using UnityEngine; using Utility; namespace GameLogic.Combat { public class CombatDrive : Singleton { public CombatController CombatController; public async CTask AddCombatController(CombatController combatController) { CombatEquipFallManager.Instance.Dispose(); CombatEquipFallManager.Instance.Init(); CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer(); cTaskAwaitBuffer.AddTask(CombatHPPanel.OpenCombatHPPanel()); cTaskAwaitBuffer.AddTask(ShowTextPanel.OpenShowTextPanel()); CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer); cTaskAwaitBuffer.AddTask(ShowItemMoveToTargetPanel.OpenShowItemMoveToTargetPanel()); await cTaskAwaitBuffer.WaitAll(); this.CombatController = combatController; await CombatController.InitCombat(); StaticUpdater.Instance.AddRenderUpdateCallBack(Update); } public void Update() { CombatController.Update(Time.deltaTime); } public void Dispose() { StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update); } } }