NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/LegionBattle/LegionBattleManager.cs

62 lines
1.5 KiB
C#

using Cysharp.Threading.Tasks;
using Gameplay.SubSystems;
using PhxhSDK;
using TGS;
namespace Gameplay.LegionBattle
{
public sealed partial class LegionBattleManager : Singlenton<LegionBattleManager>, IInitable, IUpdatable
{
/// <summary>
/// 军团战
/// </summary>
public LegionBattle CurLegionBattle { get; private set; }
/// <summary>
/// 网格系统
/// </summary>
public TerrainGridSystem TGS { get { return CurLegionBattle?.Map.TerrainGridSystem; } }
public void Init()
{
InitAction();
}
public void Update(float deltaTime)
{
if (IsLegionBattle)
CurLegionBattle?.Update(deltaTime);
}
public void Release()
{
ReleaseAction();
}
/// <summary>
/// 加载军团战
/// </summary>
/// <param name="legionBattleMapId"></param>
/// <returns></returns>
public async UniTask<E_LoadingResult> LoadLegionBattle()
{
CurLegionBattle = new LegionBattle(MapId);
await CurLegionBattle.Load();
return E_LoadingResult.Success;
}
/// <summary>
/// 卸载军团战
/// </summary>
public async void UnloadLegionBattle()
{
if (null != CurLegionBattle)
{
await CurLegionBattle.Unload();
CurLegionBattle.Release();
CurLegionBattle = null;
}
}
}
}