public static void HandleMessage(ConfirmJoiningGame request, CommunicationServer server, Socket handler) { HandleMessage(request as PlayerMessage, server, handler); Game.IGame g = server.RegisteredGames.GetGameById((int)request.gameId); g.Players.Add(new Game.Player { Id = request.playerId }); }
public void HandleMessage(ConfirmJoiningGame message) { if (message == null) return; ConsoleDebug.Good(message.gameId.ToString()); Player.game.Id = message.playerId; Player.game.GameId = message.gameId; Player.game.Guid = message.privateGuid; Player.game.Team = message.PlayerDefinition.team; Player.game.Type = message.PlayerDefinition.type; return; }
private string MakeJoinGameResponse(int playerID, Tuple <int, MessageProject.Team, MessageProject.Role, bool> newPlayer) { if (null == newPlayer || newPlayer.Item1 < 0) { // or null // negative value as newPlayerId -> failure of player making, teams full RejectJoiningGame responseObj = new RejectJoiningGame(game.gameId); responseObj.playerID = playerID; return(MessageProject.Message.messageIntoXML(responseObj)); } else //if(newPlayer.Item1 >= 0) { ConfirmJoiningGame responseObj = new ConfirmJoiningGame(game.gameId, newPlayer.Item1, new MessageProject.Player(playerID, newPlayer.Item2, newPlayer.Item3)); return(MessageProject.Message.messageIntoXML(responseObj)); } }
public void HandleMessage_ConfirmJoiningGame() { PlayerClient player = new PlayerClient(new ConnectionMock(), new Common.Config.PlayerSettings(), new AgentCommandLineOptions(), new Player.Net.Game()); ConfirmJoiningGame message = new ConfirmJoiningGame() { gameId = 4, playerId = 2, privateGuid = "test", PlayerDefinition = new Common.Schema.Player() { team = TeamColour.red } }; player.Handler.HandleMessage(message); Assert.AreEqual((ulong)2, player.Game.Id); Assert.AreEqual((ulong)4, player.Game.GameId); Assert.AreEqual("test", player.Game.Guid); Assert.AreEqual(TeamColour.red, player.Game.Team); }
static void Main(string[] args) { JoinGame newJoin = new JoinGame(1, Role.leader, Team.red); string information = newJoin.messageIntoXML(newJoin); Console.Write(information); Console.WriteLine(); Console.WriteLine(); List <GameInfo> newList = new List <GameInfo>(); newList.Add(new GameInfo(1, 5, 5)); newList.Add(new GameInfo(2, 10, 10)); newList.Add(new GameInfo(3, 3, 3)); newList.Add(new GameInfo(4, 2, 8)); RegisteredGames reg = new RegisteredGames(newList); Console.Write(reg.messageIntoXML(reg)); Console.WriteLine(); Console.WriteLine(); Player newPlayer = new Player(23, Team.red, Role.member); ConfirmJoiningGame confirmation = new ConfirmJoiningGame(1, 23, "blablalbla", newPlayer); Console.Write(confirmation.messageIntoXML(confirmation)); Console.WriteLine(); Console.WriteLine(); Message tempMessage = xmlToMessage(information); Type typer = tempMessage.GetType(); dynamic newMessage = Convert.ChangeType(tempMessage, typer); Console.Write("Game ID: " + newMessage.gameID + " and role: " + newMessage.preferredRole + " and team: " + newMessage.preferredTeam); Console.WriteLine("Press any key to exit."); Console.ReadKey(); }
public void ConfirmGameRegistrationTest() { ConfirmJoiningGame message = new ConfirmJoiningGame(); message.playerId = 3; message.gameId = 1; message.privateGuid = "c094cab7-da7b-457f-89e5-a5c51756035f"; message.PlayerDefinition = new Player() { id = 2 }; string xml = XmlMessageConverter.ToXml(message); ConfirmJoiningGame result = (ConfirmJoiningGame)XmlMessageConverter.ToObject(xml); Assert.AreEqual((ulong)3, result.playerId); Assert.AreEqual((ulong)1, result.gameId); Assert.AreEqual("c094cab7-da7b-457f-89e5-a5c51756035f", result.privateGuid); Assert.AreEqual((ulong)2, result.PlayerDefinition.id); }
public void HandleMessage(JoinGame message, Socket handler) { lock (BoardLock) { var selectedTeam = SelectTeamForPlayer(message.preferredTeam); //both teams are full if (selectedTeam == null) { gameMaster.Connection.SendFromClient(handler, XmlMessageConverter.ToXml(new RejectJoiningGame() { gameName = message.gameName, playerId = message.playerId })); gameMaster.Connection.SendFromClient(handler, XmlMessageConverter.ToXml(new GameStarted() { gameId = this.gameId })); return; } var role = message.preferredRole; if (role == PlayerType.leader) { if (selectedTeam.HasLeader) { role = PlayerType.member; } } var guid = Utils.GenerateGuid(); var fieldForPlayer = Board.GetEmptyPositionForPlayer(selectedTeam.Color); fieldForPlayer.PlayerId = message.playerId; if (role == PlayerType.leader) { selectedTeam.AddLeader(new Wrapper.Leader(message.playerId, guid, selectedTeam, fieldForPlayer.X, fieldForPlayer.Y)); } else { selectedTeam.Players.Add(new Wrapper.Player(message.playerId, guid, selectedTeam, fieldForPlayer.X, fieldForPlayer.Y)); } var answer = new ConfirmJoiningGame(); answer.playerId = message.playerId; answer.privateGuid = guid; answer.gameId = this.gameId; answer.PlayerDefinition = new Player() { id = message.playerId, team = selectedTeam.Color, type = role }; var answerString = XmlMessageConverter.ToXml(answer); gameMaster.Connection.SendFromClient(handler, answerString); } if (IsReady) { var board = Board; var players = Players.Select(p => p.SchemaPlayer).ToArray(); foreach (var player in Players) { var startGame = new Common.Schema.Game() { Board = board.SchemaBoard, playerId = player.Id, PlayerLocation = new Location() { x = player.X, y = player.Y }, Players = players }; var gameString = XmlMessageConverter.ToXml(startGame); //ConsoleDebug.Message(gameString); gameMaster.Connection.SendFromClient(handler, gameString); //send GameStarted message to server so it won't show it as an open game var gameStarted = new GameStarted() { gameId = gameId }; var startedString = XmlMessageConverter.ToXml(gameStarted); gameMaster.Connection.SendFromClient(handler, startedString); } //place first pieces for (int i = 0; i < gameMaster.Settings.GameDefinition.InitialNumberOfPieces; i++) { PlaceNewPiece(Board.GetRandomEmptyFieldInTaskArea()); } //start infinite Piece place loop GameInProgress = true; GeneratePieces(); } }