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; }