| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | using System;using Fort23.Core;using Fort23.Mono;using GameLogic.Combat.CombatTool;using GameLogic.Combat.CombatType;using GameLogic.CombatScenesTool;using UnityEngine;using Utility;namespace GameLogic.Combat{    public class CombatDrive : Singleton<CombatDrive>    {        public CombatController CombatController;        public async CTask Init()        {            string name = "CombatRoot.prefab";            AssetHandle assetHandle = await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>(name);            assetHandle.AssetObject<GameObject>().SetActive(true);        }        public void AddCombatController(CombatController combatController)        {            this.CombatController = combatController;        }        public async CTask StartCombat(StartCombatInfo startCombatInfo)        {            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();            await CombatController.InitCombat(startCombatInfo);            StaticUpdater.Instance.AddRenderUpdateCallBack(Update);        }        public void Update()        {            CombatController.Update(Time.deltaTime);        }        public void Dispose()        {            StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);        }    }}
 |