Esempio n. 1
0
 /// <summary>
 /// Disconnects from the server
 /// </summary>
 /// <param name="reason">Reason disconnection occurs</param>
 private void Disconnect(DisconnectReasonInside reason)
 {
     lock (this)
     {
         if (state != NetworkState.gameOver)
         {
             state = NetworkState.gameOver;
             if (Disconnected != null)
             {
                 Disconnected(reason);
             }
         }
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Handles the Disconnected event from the Connect4Client.
 /// </summary>
 /// <param name="dr">the reason for disconnecting</param>
 private void DisconnectedHandler(DisconnectReasonInside dr)
 {
     if (Disconnected != null)
     {
         // only initialized to make compiler happy
         DisconnectReason reason = DisconnectReason.serverDisconnected;
         switch (dr)
         {
             case DisconnectReasonInside.blackOutOfTime:
                 reason = (isBlack) ? DisconnectReason.youOutOfTime : DisconnectReason.opponentOutOfTime;
                 break;
             case DisconnectReasonInside.blackResigned:
                 reason = (isBlack) ? DisconnectReason.youResigned : DisconnectReason.opponentResigned;
                 break;
             case DisconnectReasonInside.blackWon:
                 reason = (isBlack) ? DisconnectReason.youWon : DisconnectReason.opponentWon;
                 break;
             case DisconnectReasonInside.draw:
                 reason = DisconnectReason.draw;
                 break;
             case DisconnectReasonInside.opponentDisconnected:
                 reason = DisconnectReason.opponentDisconnected;
                 break;
             case DisconnectReasonInside.serverDisconnected:
                 reason = DisconnectReason.serverDisconnected;
                 break;
             case DisconnectReasonInside.whiteOutOfTime:
                 reason = (isBlack) ? DisconnectReason.opponentOutOfTime : DisconnectReason.youOutOfTime;
                 break;
             case DisconnectReasonInside.whiteResigned:
                 reason = (isBlack) ? DisconnectReason.opponentResigned : DisconnectReason.youResigned;
                 break;
             case DisconnectReasonInside.whiteWon:
                 reason = (isBlack) ? DisconnectReason.opponentWon : DisconnectReason.youWon;
                 break;
             case DisconnectReasonInside.youLeft:
                 reason = DisconnectReason.youLeft;
                 break;
             default:
                 break;
         }
         Task.Factory.StartNew(() => Disconnected(reason));
     }
 }