117 lines
3.1 KiB
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|
|
} |