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()); }
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()); }
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()); }
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."; }
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()); }
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 = ""; } }
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()); } }
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(); } }
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()); } }
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()); } }
public void backToLobby() { MessageRoomPacket packet = new MessageRoomPacket(GameProtocol.BackToLobby(), Singleton.Instance.RoomID, Singleton.Instance.Me.Username); Singleton.Instance.Connection.SendPacket(packet.getData()); }
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; } }