NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Game/Reconnnect/GameReconnect.cs

124 lines
3.1 KiB
C#
Raw Normal View History

using Framework;
2023-11-27 15:27:20 +08:00
using Gameplay;
using Gameplay.Net;
2023-11-27 15:27:20 +08:00
public static class GameClientReconnect
2023-11-27 15:27:20 +08:00
{
private static bool _isReconnecting;
2023-11-27 15:27:20 +08:00
public static void BackToStart()
{
_isReconnecting = false;
var curState = GameStateManager.Instance.GetCurState();
if (curState is not GameStateStart)
{
GameStateManager.Instance.ChangeState(new GameStateStart());
WaitingForServer.Instance.EventClear();
Actor.Instance.OnLogout();
}
Actor.Instance.SetIsReconnecting(_isReconnecting);
2023-11-27 15:27:20 +08:00
}
2024-09-09 12:04:14 +08:00
/// <summary>
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
/// <20><><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD>
/// </summary>
public static void StartReconnect()
2023-11-27 15:27:20 +08:00
{
_isReconnecting = true;
Actor.Instance.SetIsReconnecting(_isReconnecting);
2024-09-09 12:04:14 +08:00
WaitingForServer.Instance.EventWaiting(WaitingForServer.EventName.LoginRequest, false);
2023-11-27 15:27:20 +08:00
}
2024-09-09 12:04:14 +08:00
/// <summary>
/// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
/// <20><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>
/// </summary>
public static void EndReconnect()
{
_isReconnecting = false;
2024-09-09 12:04:14 +08:00
WaitingForServer.Instance.EventDone(WaitingForServer.EventName.LoginRequest);
Actor.Instance.SetIsReconnecting(_isReconnecting);
}
2024-09-09 12:04:14 +08:00
/// <summary>
/// <20><><EFBFBD><EFBFBD>ȷ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// <20><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>
/// </summary>
public static void ReconnectConfirm()
{
if (!UINetManager.Instance.IsReconnectConfirmOpening())
{
_OpenReconnectConfirmUI();
}
2024-09-09 12:04:14 +08:00
WaitingForServer.Instance.EventDone(WaitingForServer.EventName.LoginRequest);
}
2024-09-09 12:04:14 +08:00
/// <summary>
/// <20>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬽<EFBFBD><F3A3ACBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
/// <20><><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD>
/// </summary>
public static void ReconnectAgain()
{
EventManager.Instance.Send(EventManager.EventName.NetReloginAgain);
2024-09-09 12:04:14 +08:00
WaitingForServer.Instance.EventWaiting(WaitingForServer.EventName.LoginRequest, false);
}
2024-09-09 12:04:14 +08:00
/// <summary>
/// <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>
/// <20><><EFBFBD><EFBFBD><EFBFBD>޸ĵȴ<C4B5><C8B4>¼<EFBFBD><C2BC><EFBFBD>
/// </summary>
public static void CloseReconnectConfirm()
{
if (UINetManager.Instance.IsReconnectConfirmOpening())
{
_CloseReconnectConfirmUI();
}
}
public static void HideAllReconnect()
{
CloseReconnectConfirm();
_CloseReconnectNoticeUI();
_CloseReconnectingUI();
}
public static void ShowReconnectNotice(string error)
{
_OpenReconnectNoticeUI(error);
}
public static void HideReconnectNotice()
{
_CloseReconnectNoticeUI();
}
2023-11-27 15:27:20 +08:00
private static void _OpenReconnectingUI()
{
UINetManager.Instance.ShowReconnect();
}
private static void _CloseReconnectingUI()
{
UINetManager.Instance.HideReconnect();
}
private static void _OpenReconnectConfirmUI()
{
UINetManager.Instance.ShowReconnectConfirm();
}
private static void _CloseReconnectConfirmUI()
{
UINetManager.Instance.HideReconnectConfirm();
}
private static void _OpenReconnectNoticeUI(string error)
{
UINetManager.Instance.ShowReconnectNotice(error);
}
private static void _CloseReconnectNoticeUI()
{
UINetManager.Instance.HideReconnectNotice();
}
2023-11-27 15:27:20 +08:00
}