Example #1
0
        private void SendColorAndHisTurn(User x)
        {
            string            s       = x.Player.IsHisTurn.ToString() + '|' + x.Player.DiskColor;
            MessageRoomPacket Message = new MessageRoomPacket(GameProtocol.StartGamePacketID(), ID, s);

            Othello.Server.SendPacket(x.Socket, Message.getData());
        }
Example #2
0
        private void SendPlayerTurn(User x)
        {
            string            s       = x.Player.IsHisTurn.ToString();
            MessageRoomPacket Message = new MessageRoomPacket(GameProtocol.PlayerTurnPacket(), ID, s);

            Othello.Server.SendPacket(x.Socket, Message.getData());
        }
Example #3
0
        public void SurrenderCommand()
        {
            SurrenderPanel.SetActive(false);
            MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.Surrender(), Singleton.Instance.RoomID, Singleton.Instance.Me.Username);

            Singleton.Instance.Connection.SendPacket(packet.getData());
        }
Example #4
0
        public void PlayAgain()
        {
            MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.PlayAgain(), Singleton.Instance.RoomID, Singleton.Instance.Me.Username);

            Singleton.Instance.Connection.SendPacket(packet.getData());
            PlayAgainButton.enabled = false;
            PlayAgainButton.GetComponent <Image>().color = Color.red;
            GameOverPopUpText.text = "Waiting a response from your opponent.";
        }
Example #5
0
        public void ReadyButtonAction()
        {
            ReadyButton.GetComponent <Image>().color = Color.red;
            ReadyButton.enabled = false;
            MyReadyText.text    = "You are ready! Waiting your opponent!";

            MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.PlayerReady(),
                                                             Singleton.Instance.RoomID, Singleton.Instance.Me.Username);

            Singleton.Instance.Connection.SendPacket(packet.getData());
        }
Example #6
0
 public void SendChatMessage()
 {
     if (InputField.text != "")
     {
         string s = Singleton.Instance.Me.Username + ": " + SingletonGame.Instance.MessageTyped + '\n';
         ChatBox.text += s;
         s             = Singleton.Instance.Me.Username + ": " + SingletonGame.Instance.MessageTyped + '\n';
         MessageRoomPacket MessageToSend = new MessageRoomPacket(GameProtocol.RoomChatMessagePacketID(), Singleton.Instance.RoomID, s);
         Singleton.Instance.Connection.SendPacket(MessageToSend.getData());
         InputField.text = "";
     }
 }
Example #7
0
 public void Click()
 {
     if (AbleToClick())
     {
         CellColor = SingletonGame.Instance.DiskColor;
         PlayFlipAnimation();
         GameBoard.RemoveDrawMoves();
         SingletonGame.Instance.LegalMoves.Clear();
         string            ClickMessage = Convert.ToString(this.row - 1) + ':' + Convert.ToString(this.column - 1) + '|' + SingletonGame.Instance.DiskColor.ToString();
         MessageRoomPacket TurnPacket   = new MessageRoomPacket(GameProtocol.TurnMovePacket(), Singleton.Instance.RoomID, ClickMessage);
         Singleton.Instance.Connection.SendPacket(TurnPacket.getData());
     }
 }
Example #8
0
 void OnApplicationQuit()
 {
     if (GameOverPanel.activeSelf)
     {
         MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.QuitAfterGameOver(), Singleton.Instance.RoomID, Singleton.Instance.Me.Username);
         Singleton.Instance.Connection.SendPacket(packet.getData());
         Singleton.Instance.Connection.CloseSocket();
     }
     else
     {
         MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.QuitWhileInGame(), Singleton.Instance.RoomID, Singleton.Instance.Me.Username);
         Singleton.Instance.Connection.SendPacket(packet.getData());
         Singleton.Instance.Connection.CloseSocket();
     }
 }
Example #9
0
        public void SendAllowedMoves()
        {
            if (FirstUser.Player.IsHisTurn)
            {
                List <BoardPosition> tempList = Gameboard.GetAllLegalMoves(FirstUser.Player.DiskColor);
                string tempString             = "";
                int    count = 1;
                foreach (BoardPosition aux in tempList)
                {
                    if (count == tempList.Count)
                    {
                        tempString += aux.Row.ToString() + ':' + aux.Column;

                        continue;
                    }
                    tempString += aux.Row.ToString() + ':' + aux.Column + '|';
                    count++;
                }
                MessageRoomPacket Packet = new MessageRoomPacket(GameProtocol.BoardMoves(), ID, tempString);
                Othello.Server.SendPacket(FirstUser.Socket, Packet.getData());
            }
            else if (SecondUser.Player.IsHisTurn)
            {
                List <BoardPosition> tempList = Gameboard.GetAllLegalMoves(SecondUser.Player.DiskColor);
                string tempString             = "";
                int    count = 1;
                foreach (BoardPosition aux in tempList)
                {
                    if (count == tempList.Count)
                    {
                        tempString += aux.Row.ToString() + ':' + aux.Column;

                        continue;
                    }
                    tempString += aux.Row.ToString() + ':' + aux.Column + '|';
                    count++;
                }
                MessageRoomPacket Packet = new MessageRoomPacket(GameProtocol.BoardMoves(), ID, tempString);
                Othello.Server.SendPacket(SecondUser.Socket, Packet.getData());
            }
        }
Example #10
0
        private void SendLegalMoves(User x)
        {
            if (x.Player.IsHisTurn)
            {
                List <BoardPosition> tempList = Gameboard.GetAllLegalMoves(x.Player.DiskColor);
                string tempString             = "";
                int    count = 1;
                foreach (BoardPosition aux in tempList)
                {
                    if (count == tempList.Count)
                    {
                        tempString += aux.Row.ToString() + ':' + aux.Column + '!' + Gameboard.GetNumberOfChanges(aux.Row, aux.Column, x.Player.DiskColor);

                        continue;
                    }
                    tempString += aux.Row.ToString() + ':' + aux.Column + '!' + Gameboard.GetNumberOfChanges(aux.Row, aux.Column, x.Player.DiskColor) + '|';
                    count++;
                }
                MessageRoomPacket movesPacket = new MessageRoomPacket(GameProtocol.BoardMoves(), ID, tempString);
                //DelayPacket(100);
                Othello.Server.SendPacket(x.Socket, movesPacket.getData());
            }
        }
Example #11
0
        public void backToLobby()
        {
            MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.BackToLobby(), Singleton.Instance.RoomID, Singleton.Instance.Me.Username);

            Singleton.Instance.Connection.SendPacket(packet.getData());
        }
Example #12
0
        public static void Handle(byte[] packet, Socket clientSocket)
        {
            ushort packetType   = BitConverter.ToUInt16(packet, 0);
            ushort packetLength = BitConverter.ToUInt16(packet, 2);

            switch (packetType)
            {
            case 101:     //SUCCESS LOGIN
                //LoginScript.runInMainThread(LoginScript.updatePopUpText("Success!"));
                break;

            case 102:     //FAILED LOGIN
                LoginScript.runInMainThread(LoginScript.updatePopUpText("Username and password do not match!"));
                break;

            case 103:    //USER ALREADY LOGGED
                LoginScript.runInMainThread(LoginScript.updatePopUpText("This user is already logged!"));
                break;

            case 111:     //SUCCESS REGISTER
                BasicPacket SuccessRegisterPacket = new BasicPacket(packet);
                SuccessRegisterPacket.runInMainThread(SuccessRegisterPacket.SuccessRegister());
                break;

            case 112:     //FAILED REGISTER
                BasicPacket FailedRegisterPacket = new BasicPacket(packet);
                FailedRegisterPacket.runInMainThread(FailedRegisterPacket.FailedRegister());
                break;

            case 113:     //USERNAME ALREADY USED
                BasicPacket UsernameUsedPacket = new BasicPacket(packet);
                UsernameUsedPacket.runInMainThread(UsernameUsedPacket.UsernameUsed());
                break;

            case 114:     //EMAIL ALREADY USED
                BasicPacket EmailUsedPacket = new BasicPacket(packet);
                EmailUsedPacket.runInMainThread(EmailUsedPacket.EmailUsed());
                break;

            case 120:     //USERS LIST AFTER LOGIN
                MessagePacket messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.loadMainScene());
                break;

            case 121:     //NEW USER LOGIN - ADD HIM TO LIST
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.addNewUserLoggedToList());
                break;

            case 200:     // GLOBAL CHAT MESSAGE
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.updateGlobalChat());
                break;

            case 201:     //CHAT MESSAGE
                MessageRoomPacket MessageRoomPacket = new MessageRoomPacket(packet);
                MessageRoomPacket.runInMainThread(MessageRoomPacket.doRoomChat());
                break;

            case 250:     //CHALLENGE MESSAGE
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.getChallenged());
                break;

            case 270:     //USER IGNORED THE CHALLENGE -> SET THE USER ONLINE STATUS ( PARAM 0 )
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.updateUserStatus(0));
                break;

            case 271:     //NOTIFY WITH USER WHO GOT CHALLENGED -> SET THE USER CHALLENGED STATUS ( PARAM 1 )
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.updateUserStatus(1));
                break;

            case 272:     //NOTIFY WITH USER WHO IS IN GAME -> SET THE USER IN GAME STATUS ( PARAM 2 )
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.updateUserStatus(2));
                break;

            case 257:     //CHALLENGE ACCEPTED
                messagePacket = new MessagePacket(packet);
                //TODO
                break;

            case 258:     //CHALLENGE REFUSED
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(
                    messagePacket.displayChallengeResultPanel(messagePacket.Message + " didn't accept your challenge request!"));
                break;

            case 260:     //CHALLENGE TIMEOUT
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(
                    messagePacket.displayChallengeResultPanel(messagePacket.Message +
                                                              " didn't respond in time to your challenge request"));
                break;


            case 400:     // BOARDGAME ARRAY
                BoardPacket boardPacket = new BoardPacket(packet);
                break;

            case 402:     // GET ALL LEGAL MOVES
                MessageRoomPacket = new MessageRoomPacket(packet);
                MessageRoomPacket.runInMainThread(MessageRoomPacket.DrawMoves());
                break;

            case 401:     // STARTGAME MESSAGE EX: False|R or True|B
                MessageRoomPacket = new MessageRoomPacket(packet);
                MessageRoomPacket.runInMainThread(MessageRoomPacket.turnAndDiskColor());
                break;

            case 404:    // GET MY TURN
                MessageRoomPacket = new MessageRoomPacket(packet);
                MessageRoomPacket.runInMainThread(MessageRoomPacket.getTurn());
                break;

            case 405:    //GAMEOVER PACKET
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.callGameOver());
                break;

            case 406:    //OPPONENT WANT TO PLAY AGAIN
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.updatePlayAgainPopUpText("Your opponent want to play again!"));
                break;

            case 500:    //LOAD GAMESCENE
                MessageRoomPacket = new MessageRoomPacket(packet);
                MessageRoomPacket.runInMainThread(MessageRoomPacket.loadGameScene());
                break;

            case 501:    //OPPONENT IS READY
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.opponentReady());
                break;

            case 969:    //OPPONENT BACK TO LOBBY
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.opponentBackToLobby());

                break;

            case 995:    //BACK TO LOBBY
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.backToLobby());
                break;

            case 996:     // OPPONENT QUIT AFTER GAME END
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.opponentQuitAfterGameEnd());
                break;

            case 997:     //OPPONENT QUIT WHILE GAME IS ACTIVE
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.opponentQuitWhileInGame());
                break;

            case 999:    //USER DISCONNECTED
                messagePacket = new MessagePacket(packet);
                MessagePacket.runInMainThread(messagePacket.userDisconnected());
                break;
            }
        }