Exemple #1
0
        public void SetNickName(string nickname)
        {
            NickNamePacket nicknamePacket = new NickNamePacket(nickname);

            Send(nicknamePacket);
        }
Exemple #2
0
        private void HandlePacket(object clientObj, Packet packet)
        {
            Client client         = (Client)clientObj;
            Packet packetToHandle = packet;

            switch (packetToHandle.type)
            {
            case PacketType.CHATMESSAGE:
                ChatMessagePacket chatPack = (ChatMessagePacket)packetToHandle;
                Console.WriteLine(chatPack.message);
                int recentGuess;
                if (chatPack.message == "!HL" && !hOrLActive)
                {
                    hOrLActive = true;
                    HigherOrLower();
                    chatPack.message = "[SERVER] HIGHER OR LOWER REQUESTED GO ON PICK HIGHER OR LOWER!";
                }
                else if (!Int32.TryParse(chatPack.message, out recentGuess))
                {
                    chatPack.message = string.Format("{0:HH:mm:ss tt}", DateTime.Now) + " - [" + client.nickName + "] " + " - " + chatPack.message;
                }

                else if (hOrLActive)
                {
                    if (Int32.TryParse(chatPack.message, out recentGuess))
                    {
                        if (recentGuess < hOrLNumber)
                        {
                            chatPack.message = string.Format("{0:HH:mm:ss tt}", DateTime.Now) + " [SERVER] HIGHER! " + client.nickName + " guessed: " + recentGuess;
                        }
                        else if (recentGuess > hOrLNumber)
                        {
                            chatPack.message = string.Format("{0:HH:mm:ss tt}", DateTime.Now) + " [SERVER] LOWER! " + client.nickName + " guessed: " + recentGuess;
                        }
                        else if (recentGuess == hOrLNumber)
                        {
                            chatPack.message = string.Format("{0:HH:mm:ss tt}", DateTime.Now) + " [SERVER] CORRECT! THE CORRECT ANSWER WAS " + hOrLNumber;
                            hOrLActive       = false;
                            hOrLNumber       = 0;
                        }
                    }
                }
                for (int i = 0; i < clientsList.Count; i++)
                {
                    clientsList[i].tcpSend(chatPack);
                }
                break;

            case PacketType.NICKNAME:
                NickNamePacket nicknamePacket = (NickNamePacket)packetToHandle;
                client.nickName = nicknamePacket.nickName;
                clientNicknames.Add(client.nickName);
                PushClientList(clientObj);
                clientGameTank.Add(client.nickName, new Point(MakeRandomXNumber(), MakeRandomYNumber()));
                tankSprite.Add(client.nickName, "TankSprite.png");
                clientBomb.Add(client.nickName, new Point(MakeRandomXNumber() + 10, MakeRandomYNumber() - 40));
                bombSprie.Add(client.nickName, "MainBombSprie.png");
                PushTankGameLogic(clientObj);
                break;

            case PacketType.LOGIN:
                Console.WriteLine("Login packet Created");
                LoginPacket loginPacket = (LoginPacket)packetToHandle;
                client.UdpConnect(loginPacket.endPoint);
                tUdpClientMethod = new Thread(UDPClientMethod);
                tUdpClientMethod.Start(client);
                break;

            case PacketType.DISCONNECT:
                DisconnectPacket disconnectPack = (DisconnectPacket)packetToHandle;
                Console.WriteLine("Disconnect Client " + disconnectPack.clientDisconnect);
                if (disconnectPack.clientDisconnect)
                {
                    clientNicknames.Remove(client.nickName);
                    clientGameTank.Remove(client.nickName);
                    tankSprite.Remove(client.nickName);
                    clientBomb.Remove(client.nickName);
                    bombSprie.Remove(client.nickName);
                }
                PushClientList(clientObj);
                break;

            case PacketType.GAMEMOVE:
                GameMovePacket gameMovePack      = (GameMovePacket)packetToHandle;
                string         movementRequested = gameMovePack.gameMove;
                GameTanksMovement(clientObj, movementRequested);
                break;

            case PacketType.GAMEBOMBMOVE:
                GameBombMovePacket gameBombMovePack = (GameBombMovePacket)packetToHandle;
                string             dropBomb         = gameBombMovePack.gameBombMove;
                GameBombMovement(clientObj, dropBomb);
                break;
            }
        }
        private void SetNickName(string nickname)
        {
            NickNamePacket chatMessagePacket = new NickNamePacket(nickname);

            Send(chatMessagePacket);
        }
        public Packet HandlePacket(Packet packetReceived, Client mClient)
        {
            switch (packetReceived.type)
            {
            case PacketType.CHATMESSAGE:
                ChatMessagePacket pMessage = (ChatMessagePacket)packetReceived;
                if (pMessage.recipient == "server")
                {
                    SendMessageAll(mClient.username + " - " + pMessage.message);
                }
                else
                {
                    CreateMessage(mClient.username + " whispers to you: " +
                                  pMessage.message, pMessage.recipient);
                }
                break;

            case PacketType.NICKNAME:
                NickNamePacket pNick = (NickNamePacket)packetReceived;
                mClient.username = pNick.nickName;
                nicknameList.Add(mClient.username);
                SendClientList(nicknameList);
                break;

            case PacketType.ENDPOINT:
                LoginPacket pLogin = (LoginPacket)packetReceived;
                localEP = pLogin.endPoint;
                mClient.UDPSendLocalEP(localEP);
                Thread t = new Thread(new ParameterizedThreadStart(UDPClientMethod));
                t.Start(mClient);
                break;

            case PacketType.GAMEREQ:
                GameRequestPacket pGameReqPacket = (GameRequestPacket)packetReceived;
                int packetState = (int)pGameReqPacket.requestState;
                if (packetState == 0)
                {
                    CheckUserExists(clientList, pGameReqPacket.sender, pGameReqPacket);
                }
                else if (packetState == 1)
                {
                    if (CheckGameAccepted(Games, pGameReqPacket.sender) == false)
                    {
                        GameLogic game = new GameLogic(pGameReqPacket.recipient, pGameReqPacket.sender);
                        Games.Add(game);
                        CheckUserExists(clientList, pGameReqPacket.sender, pGameReqPacket);
                        CheckUserExists(clientList, pGameReqPacket.recipient, pGameReqPacket);
                    }
                    else
                    {
                        packetReceived = new Packet();
                    }
                }
                else if (packetState == 2)
                {
                    CheckUserExists(clientList, pGameReqPacket.sender, pGameReqPacket);
                }
                break;

            case PacketType.GAME:
                GamePacket pGamePacket = (GamePacket)packetReceived;
                int        gameNumber  = CheckGameExists(Games, pGamePacket.sender);
                if (gameNumber == -1)
                {
                    break;
                }
                else
                if (Games[gameNumber].CheckMove(pGamePacket.x, pGamePacket.y))
                {
                    //Need to send a nought and a cross together
                    if (pGamePacket.text == Games[gameNumber].Player1)
                    {
                        SendGamePacket(pGamePacket.sender, pGamePacket.recipient, pGamePacket.x, pGamePacket.y, pGamePacket.value, "X");
                        SendGamePacket(pGamePacket.recipient, pGamePacket.sender, pGamePacket.x, pGamePacket.y, pGamePacket.value, "O");
                    }
                    else if (pGamePacket.text == Games[gameNumber].Player2)
                    {
                        SendGamePacket(pGamePacket.recipient, pGamePacket.sender, pGamePacket.x, pGamePacket.y, pGamePacket.value, "O");
                        SendGamePacket(pGamePacket.sender, pGamePacket.recipient, pGamePacket.x, pGamePacket.y, pGamePacket.value, "X");
                    }
                }
                break;
            }
            return(packetReceived);
        }
Exemple #5
0
        private void HandlePacket(Packet packetFromServer)
        {
            switch (packetFromServer.type)
            {
            case PacketType.GAME:
                GamePacket pGamePacket = (GamePacket)packetFromServer;
                int        selection   = UpdateButtons(pGamePacket.x, pGamePacket.y);
                switch (selection)
                {
                case 1:
                    noughtsAndCrosses.button1.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button1.Text    = pGamePacket.text;
                        noughtsAndCrosses.button1.Enabled = false;
                    }));
                    break;

                case 2:
                    noughtsAndCrosses.button2.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button2.Text    = pGamePacket.text;
                        noughtsAndCrosses.button2.Enabled = false;
                    }));
                    break;

                case 3:
                    noughtsAndCrosses.button3.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button3.Text    = pGamePacket.text;
                        noughtsAndCrosses.button3.Enabled = false;
                    }));
                    break;

                case 4:
                    noughtsAndCrosses.button4.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button4.Text    = pGamePacket.text;
                        noughtsAndCrosses.button4.Enabled = false;
                    }));
                    break;

                case 6:
                    noughtsAndCrosses.button6.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button6.Text    = pGamePacket.text;
                        noughtsAndCrosses.button6.Enabled = false;
                    }));
                    break;

                case 7:
                    noughtsAndCrosses.button7.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button7.Text    = pGamePacket.text;
                        noughtsAndCrosses.button7.Enabled = false;
                    }));
                    break;

                case 8:
                    noughtsAndCrosses.button8.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button8.Text    = pGamePacket.text;
                        noughtsAndCrosses.button8.Enabled = false;
                    }));
                    break;

                case 9:
                    noughtsAndCrosses.button9.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button9.Text    = pGamePacket.text;
                        noughtsAndCrosses.button9.Enabled = false;
                    }));
                    break;

                case 10:
                    noughtsAndCrosses.button10.Invoke(new MethodInvoker(delegate()
                    {
                        noughtsAndCrosses.button10.Text    = pGamePacket.text;
                        noughtsAndCrosses.button10.Enabled = false;
                    }));
                    break;
                }
                break;

            case PacketType.CHATMESSAGE:
                ChatMessagePacket messagePacket = (ChatMessagePacket)packetFromServer;
                _form.UpdateChatWindow(messagePacket.message);
                break;

            case PacketType.NICKNAME:
                NickNamePacket nicknamePacket = (NickNamePacket)packetFromServer;
                _form.UpdateChatWindow(nicknamePacket.nickName);
                break;

            case PacketType.ENDPOINT:
                LoginPacket serverLogInDetails = (LoginPacket)packetFromServer;
                _udpClient.Connect((IPEndPoint)serverLogInDetails.endPoint);

                _udpReaderThread = new Thread(UDPRead);
                _udpReaderThread.Start();
                break;

            case PacketType.USERLIST:
                UserListPacket userListPacket = (UserListPacket)packetFromServer;
                nicknameList = userListPacket.userList;

                _form.UpdateClientListBox(userListPacket.userList);
                break;

            case PacketType.GAMEREQ:
                GameRequestPacket gameReqPacket = (GameRequestPacket)packetFromServer;
                int packetState = (int)gameReqPacket.requestState;
                switch (packetState)
                {
                case 0:
                    _form.UpdateChatWindow("Game was declined!");
                    break;

                case 1:
                    gameRecipient = gameReqPacket.recipient;
                    gameSender    = gameReqPacket.sender;
                    _form.UpdateChatWindow("Game accepted!");
                    RequestGame(gameReqPacket.sender, 1, gameReqPacket.recipient);
                    noughtsAndCrosses.Text = _form.clientNickName;
                    noughtsAndCrosses.ShowDialog();
                    break;

                case 2:
                    _form.CreateMessageBox(gameReqPacket.sender, gameReqPacket.recipient);
                    break;
                }
                break;
            }
        }