/// <summary> /// Join the server represented by this serversprite /// </summary> /// <param name="s">The serversprite</param> private void JoinThisGame(ServerSprite s) { Contract.Requires(s != null && Regex.IsMatch(game.PlayerName, @"^[a-zA-Z0-9]{3,12}$")); Contract.Ensures(game.Client != null && game.PlayingGame != null && game.Host == null && game.State == GameState.InGame); var client = new PirateClient(game.PlayerName, s.Ip, 4939); var playingGame = new Game(); game.GameName = s.ServerName; game.MaxPlayers = s.MaxPlayers; game.Client = client; game.Client.NameRequested += this.OnNameRequest; game.PlayingGame = playingGame; game.Client.SetGame(playingGame); game.Client.InitConnection(); game.State = GameState.InGame; }
/// <summary> /// Helper method for the event GameFound /// </summary> /// <param name="gameInfo">The information about the game</param> private void GameFound(PirateScanner.GameInfo gameInfo) { lock(servers) { numberOfServers++; var serverSprite = new ServerSprite(gameInfo.Ip, gameInfo.GameName, gameInfo.Players, gameInfo.MaxPlayers, serversRectangle, numberOfServers); serverSprite.LoadContent(content); servers.Add(serverSprite); Serversprites = servers.AsReadOnly(); } }