예제 #1
0
 public void OnLostConnection(bool suppressMessage = false)
 {
     lock (stateLock)
     {
         if (state == AppSate.LoadLevel || state == AppSate.ClientLoadLevel || state == AppSate.ServerLoadLevel || state == AppSate.ClientLoadLobby || state == AppSate.ServerLoadLobby)
         {
             if (NetGame.netlog)
             {
                 UnityEngine.Debug.Log("Queueing lostConnection");
             }
             queueAfterLevelLoad = delegate
             {
                 OnLostConnection(suppressMessage);
             };
         }
         else
         {
             RatingMenu.instance.LevelOver();
             MultiplayerSelectLobbyMenu multiplayerSelectLobbyMenu = MenuSystem.instance.activeMenu as MultiplayerSelectLobbyMenu;
             if (multiplayerSelectLobbyMenu != null)
             {
                 multiplayerSelectLobbyMenu.OnBack();
             }
             else
             {
                 NetGame.instance.LeaveGame();
                 if (state == AppSate.PlayLevel || state == AppSate.ClientPlayLevel || state == AppSate.ServerPlayLevel || state == AppSate.ClientWaitServerLoad)
                 {
                     ExitGame();
                 }
                 EnterMenu();
             }
             if (RatingMenu.instance.ShowRatingMenu())
             {
                 RatingMenu.RatingDestination destination = RatingMenu.RatingDestination.kMainMenu;
                 if (!suppressMessage)
                 {
                     destination = RatingMenu.RatingDestination.kLostConnection;
                 }
                 GotoRatingsMenu(destination, showLoading: false);
             }
             else
             {
                 NetGame.isNetStarting = false;
                 if (suppressMessage)
                 {
                     MenuSystem.instance.ShowMainMenu();
                 }
                 else
                 {
                     Dialogs.ConnectionLost(delegate
                     {
                         MenuSystem.instance.ShowMainMenu();
                     });
                 }
             }
         }
     }
 }
예제 #2
0
 private void GotoRatingsMenu(RatingMenu.RatingDestination destination, bool showLoading)
 {
     MenuCameraEffects.FadeInPauseMenu();
     RatingMenu.instance.SetDestination(destination);
     if (showLoading)
     {
         SubtitleManager.instance.SetProgress(ScriptLocalization.TUTORIAL.LOADING, 1f, 1f);
     }
     MenuSystem.instance.ShowMainMenu <RatingMenu>();
 }