using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Net; public static class GameClientReconnect { private static bool _isReconnecting; public static void BackToStart() { _isReconnecting = false; 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(); } }