using asap.core; if (!UnityEngine.Application.isPlaying) return "Refused: not playing"; var user = GContext.container.Resolve(); var api = GContext.container.Resolve(); var button = UnityEngine.GameObject.Find("PFLoginAct(Clone)/reconnectDialog/Dialog/notice_reconnected/btn_retry/btn_green"); if (user.IsAuthorized || button == null || user.CustomId != "not-an-id" || api.ApiBaseUri.AbsoluteUri != "http://s101.local:18080/") return "Refused: wrong failure dialog state"; var oldRetryClick = button.GetComponent().onClick; var lifetime = user.LoginLifetime; game.QuitStage.Logout = true; await GContext.container.Resolve().SwitchStageAsync("QuitStage"); await System.Threading.Tasks.Task.Delay(4500); oldRetryClick.Invoke(); oldRetryClick.Invoke(); await System.Threading.Tasks.Task.Delay(3000); var current = GContext.container.Resolve(); return $"Scenario=old-retry; OldCancelled={lifetime.IsCancellationRequested}; OldAuthorized={user.IsAuthorized}; OldInternalId={user.InternalId}; OldCookieCount={api.Cookie.Count}; CurrentAuthorized={current?.IsAuthorized}; Scene={UnityEngine.SceneManagement.SceneManager.GetActiveScene().name}; OldRetryEventInvokedTwice=True";