2023-11-28 14:58:19 +08:00
|
|
|
|
using Framework;
|
2023-11-27 15:27:20 +08:00
|
|
|
|
using Gameplay;
|
2023-11-28 14:58:19 +08:00
|
|
|
|
using Gameplay.Net;
|
2023-11-27 15:27:20 +08:00
|
|
|
|
|
2023-12-04 15:56:00 +08:00
|
|
|
|
public static class GameClientReconnect
|
2023-11-27 15:27:20 +08:00
|
|
|
|
{
|
2023-11-28 14:58:19 +08:00
|
|
|
|
private static bool _isReconnecting;
|
2023-11-27 15:27:20 +08:00
|
|
|
|
public static void BackToStart()
|
|
|
|
|
|
{
|
2023-11-28 14:58:19 +08:00
|
|
|
|
_isReconnecting = false;
|
2024-04-12 18:28:34 +08:00
|
|
|
|
var curState = GameStateManager.Instance.GetCurState();
|
|
|
|
|
|
if (curState is not GameStateStart)
|
|
|
|
|
|
{
|
|
|
|
|
|
GameStateManager.Instance.ChangeState(new GameStateStart());
|
2024-09-09 14:38:47 +08:00
|
|
|
|
WaitingForServer.Instance.EventClear();
|
2024-04-12 18:28:34 +08:00
|
|
|
|
Actor.Instance.OnLogout();
|
|
|
|
|
|
}
|
2023-11-28 14:58:19 +08:00
|
|
|
|
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>
|
2023-11-28 14:58:19 +08:00
|
|
|
|
public static void StartReconnect()
|
2023-11-27 15:27:20 +08:00
|
|
|
|
{
|
2023-11-28 14:58:19 +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>
|
2023-11-28 14:58:19 +08:00
|
|
|
|
public static void EndReconnect()
|
|
|
|
|
|
{
|
|
|
|
|
|
_isReconnecting = false;
|
2024-09-09 12:04:14 +08:00
|
|
|
|
WaitingForServer.Instance.EventDone(WaitingForServer.EventName.LoginRequest);
|
2023-11-28 14:58:19 +08:00
|
|
|
|
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>
|
2023-11-28 14:58:19 +08:00
|
|
|
|
public static void ReconnectConfirm()
|
|
|
|
|
|
{
|
2023-12-04 15:56:00 +08:00
|
|
|
|
if (!UINetManager.Instance.IsReconnectConfirmOpening())
|
|
|
|
|
|
{
|
|
|
|
|
|
_OpenReconnectConfirmUI();
|
|
|
|
|
|
}
|
2024-09-09 12:04:14 +08:00
|
|
|
|
WaitingForServer.Instance.EventDone(WaitingForServer.EventName.LoginRequest);
|
2023-11-28 14:58:19 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
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>
|
2023-11-28 14:58:19 +08:00
|
|
|
|
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);
|
2023-11-28 14:58:19 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
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>
|
2023-12-04 15:56:00 +08:00
|
|
|
|
public static void CloseReconnectConfirm()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (UINetManager.Instance.IsReconnectConfirmOpening())
|
|
|
|
|
|
{
|
|
|
|
|
|
_CloseReconnectConfirmUI();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-12-04 16:25:01 +08:00
|
|
|
|
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();
|
|
|
|
|
|
}
|
2023-11-28 14:58:19 +08:00
|
|
|
|
|
|
|
|
|
|
private static void _OpenReconnectConfirmUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
UINetManager.Instance.ShowReconnectConfirm();
|
|
|
|
|
|
}
|
2023-12-04 15:56:00 +08:00
|
|
|
|
|
|
|
|
|
|
private static void _CloseReconnectConfirmUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
UINetManager.Instance.HideReconnectConfirm();
|
|
|
|
|
|
}
|
2023-12-04 16:25:01 +08:00
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|