private NotificationPanelEncounterBase GetNotificationPanelEncounter()
    {
        global::IGuiService service = Services.GetService <global::IGuiService>();

        Amplitude.Unity.Gui.GuiPanel[] array;
        if (service.TryGetGuiPanelByType(base.GuiNotificationPanelType, out array) && array != null)
        {
            return(array[0] as NotificationPanelEncounterBase);
        }
        return(null);
    }
    private IEnumerator SaveGameAsync(string title, string outputFileName)
    {
        IGameSerializationService gameSerializationService = Services.GetService <IGameSerializationService>();

        if (gameSerializationService != null)
        {
            ISessionService sessionService = Services.GetService <ISessionService>();
            Diagnostics.Assert(sessionService != null);
            global::Session session = sessionService.Session as global::Session;
            switch (session.SessionMode)
            {
            case SessionMode.Single:
                yield return(gameSerializationService.SaveGameAsync(title, outputFileName, GameSaveOptions.None));

                break;

            case SessionMode.Private:
            case SessionMode.Protected:
            case SessionMode.Public:
                if (session.GameServer != null)
                {
                    yield return(gameSerializationService.SaveGameAsync(title, outputFileName, GameSaveOptions.None));
                }
                else
                {
                    Message downloadGameMessage = new GameClientDownloadGameMessage(SaveType.OnUserRequest, title);
                    session.GameClient.SendMessageToServer(ref downloadGameMessage);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            this.Hide(true);
            global::IGuiService            guiService = Services.GetService <global::IGuiService>();
            Amplitude.Unity.Gui.GuiPanel[] panels;
            if (guiService != null && guiService.TryGetGuiPanelByType(typeof(GameWorldScreen), out panels))
            {
                panels[0].Show(new object[0]);
            }
        }
        this.saving = null;
        yield break;
    }