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

104 lines
2.5 KiB
C#

using Cysharp.Threading.Tasks;
using Framework;
using Gameplay;
using Gameplay.Net;
using LC.Google.Protobuf.WellKnownTypes;
public static class GameClientReconnect
{
private static bool _isReconnecting;
public static void BackToStart()
{
_isReconnecting = false;
var curState = GameStateManager.Instance.GetCurState();
if (curState is not GameStateStart)
{
GameStateManager.Instance.ChangeState(new GameStateStart());
Actor.Instance.OnLogout();
}
Actor.Instance.SetIsReconnecting(_isReconnecting);
}
public static void StartReconnect()
{
_isReconnecting = true;
Actor.Instance.SetIsReconnecting(_isReconnecting);
_OpenReconnectingUI();
}
public static void EndReconnect()
{
_isReconnecting = false;
_CloseReconnectingUI();
Actor.Instance.SetIsReconnecting(_isReconnecting);
}
public static void ReconnectConfirm()
{
if (!UINetManager.Instance.IsReconnectConfirmOpening())
{
_OpenReconnectConfirmUI();
}
_CloseReconnectingUI();
}
public static void ReconnectAgain()
{
EventManager.Instance.Send(EventManager.EventName.NetReloginAgain);
}
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();
}
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();
}
}