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

117 lines
3.1 KiB
C#

using Cysharp.Threading.Tasks;
using Framework;
using Gameplay.SubSystems;
using NLDPB;
using PhxhSDK;
namespace Gameplay.LegionBattle
{
public sealed partial class LegionBattleManager : Singlenton<LegionBattleManager>, IInitable, IUpdatable
{
/// <summary>
/// 当前军团战阶段
/// </summary>
private LegionBattleStatus _curBattleStatus;
/// <summary>
/// 当前军团战报名状态
/// </summary>
private LegionBattleSignStatus _curBattleLegionBattleSignStatus;
/// <summary>
/// 军团战
/// </summary>
public LegionBattle CurLegionBattle { get; private set; }
public LegionBattleStatus CurBattleStatus
{
get
{
return _curBattleStatus;
}
set
{
_curBattleStatus = value;
}
}
public LegionBattleSignStatus CurBattleLegionBattleSignStatus
{
get
{
return _curBattleLegionBattleSignStatus;
}
set
{
_curBattleLegionBattleSignStatus = value;
}
}
public void Init()
{
InitAction();
EventManager.Instance.Register(EventManager.EventName.LegionBattleStatus, _OnBattleLegionStatus);
}
public void Update(float deltaTime)
{
if (IsLegionBattle)
CurLegionBattle?.Update(deltaTime);
}
public void Release()
{
EventManager.Instance.Unregister(EventManager.EventName.LegionBattleStatus, _OnBattleLegionStatus);
ReleaseAction();
}
/// <summary>
/// 加载军团战
/// </summary>
/// <param name="legionBattleMapId"></param>
/// <returns></returns>
public async UniTask<E_LoadingResult> LoadLegionBattle()
{
await CurLegionBattle.Load();
return E_LoadingResult.Success;
}
/// <summary>
/// 卸载军团战
/// </summary>
public async void UnloadLegionBattle()
{
if (null != CurLegionBattle)
{
await CurLegionBattle.Unload();
CurLegionBattle.Release();
CurLegionBattle = null;
}
}
public static string GetStartTimeStr(int scheduleID)
{
var startTime = CommonUtils.GetScheduleStartDateTime(scheduleID);
var timeStr = startTime.ToString("HH:mm");
return CommonUtils.GetLocalizeText("legionbattle_start_time",
startTime.Year, startTime.Month, startTime.Day, timeStr);
}
public static string GetEndTimeStr(int scheduleID)
{
var endTime = CommonUtils.GetScheduleStartDateTime(scheduleID);
var timeStr = endTime.ToString("HH:mm");
return CommonUtils.GetLocalizeText("legionbattle_start_time",
endTime.Year, endTime.Month, endTime.Day, timeStr);
}
private void _OnBattleLegionStatus()
{
}
}
}