public override void Update()
 {
     if (DuckNetwork.status == DuckNetStatus.Disconnected && !this._attemptedConnection)
     {
         this._startedJoining = true;
         if (Profiles.active.Count == 0)
         {
             Profiles.DefaultPlayer1.team = Teams.Player1;
         }
         TeamSelect2.FillMatchmakingProfiles();
         if (this._lobbyID == 0UL)
         {
             DuckNetwork.Join("duckGameServer");
         }
         else
         {
             DuckNetwork.Join(this._lobbyID.ToString());
         }
         this._attemptedConnection = true;
     }
     else if (DuckNetwork.status == DuckNetStatus.Disconnected && this._attemptedConnection)
     {
         Level.current = (Level) new ConnectionError("|RED|CONNECTION FAILED!");
     }
     base.Update();
 }
 public void OnSessionEnded(DuckNetErrorInfo error)
 {
     if (!this.open)
     {
         return;
     }
     if (UIMatchmakingBox._state == MatchmakingState.Disconnect)
     {
         if (this._tryHostingLobby != null)
         {
             this._tries = 0;
         }
         this._tryHostingLobby = (Lobby)null;
         if (this._quit)
         {
             HUD.CloseAllCorners();
             this.Close();
             this._openOnClose.Open();
         }
         else if (this._tryConnectLobby != null)
         {
             DuckNetwork.Join(this._tryConnectLobby.id.ToString());
             this.ChangeState(MatchmakingState.Connecting);
         }
         else
         {
             this.ChangeState(MatchmakingState.SearchForLobbies);
         }
     }
     else
     {
         if (error != null)
         {
             if (error.error == DuckNetError.VersionMismatch)
             {
                 if (error.tooNew)
                 {
                     this._newStatusList.Add("|DGRED|Their version was older.");
                 }
                 else
                 {
                     this._newStatusList.Add("|DGRED|Their version was newer.");
                 }
                 if (this._tryConnectLobby != null)
                 {
                     this._permenantBlacklist.Add(new BlacklistServer()
                     {
                         lobby    = this._tryConnectLobby.id,
                         cooldown = 15f
                     });
                 }
             }
             else if (error.error == DuckNetError.FullServer)
             {
                 this._newStatusList.Add("|DGRED|Failed (FULL SERVER)");
             }
             else if (error.error == DuckNetError.ConnectionTimeout)
             {
                 this._newStatusList.Add("|DGRED|Failed (TIMEOUT)");
             }
             else if (error.error == DuckNetError.GameInProgress)
             {
                 this._newStatusList.Add("|DGRED|Failed (IN PROGRESS)");
             }
             else
             {
                 this._newStatusList.Add("|DGRED|Unknown connection error.");
                 if (this._tryConnectLobby != null)
                 {
                     this._permenantBlacklist.Add(new BlacklistServer()
                     {
                         lobby    = this._tryConnectLobby.id,
                         cooldown = 15f
                     });
                 }
             }
         }
         else
         {
             this._newStatusList.Add("|DGRED|Connection timeout.");
             if (this._tryConnectLobby != null)
             {
                 this._permenantBlacklist.Add(new BlacklistServer()
                 {
                     lobby    = this._tryConnectLobby.id,
                     cooldown = 15f
                 });
             }
         }
         if (this._tryConnectLobby != null)
         {
             this._failedAttempts.Add(new BlacklistServer()
             {
                 lobby    = this._tryConnectLobby.id,
                 cooldown = 15f
             });
         }
         DevConsole.Log("|PURPLE|MATCHMAKING |DGGREEN|Connection failure, continuing search.", Color.White);
         this._tryConnectLobby = (Lobby)null;
         this.ChangeState(MatchmakingState.SearchForLobbies);
     }
 }