/// <summary> /// Helper method for taking action upon a button press /// </summary> /// <param name="b">The button that has been pressed</param> private void ButtonAction(Button b) { Contract.Requires(b != null); Contract.Ensures( game.State == GameState.StartUp || (PirateHost.IsValidGameName(serverName.Text) ? (game.Host != null && game.Client != null && game.PlayingGame != null && game.State == GameState.InGame) : game.State == GameState.CreateGame)); var str = b.Name; switch(str) { case "creategame": if(serverName.Text == "" || !PirateHost.IsValidGameName(serverName.Text)) { return; } var players = numberOfPlayers.ParseInput(); var sName = serverName.Text; var host = new PirateHost(4939); host.Start(sName, players); var client = new PirateClient(game.PlayerName, host.Ip, 4939); PirateClientCommands.SendPlayerInfo(client); var playingGame = new Game(); game.GameName = sName; game.MaxPlayers = players; game.Host = host; game.Client = client; client.SetGame(playingGame); game.PlayingGame = playingGame; game.State = GameState.InGame; break; case "cancelcg": game.State = GameState.StartUp; break; } }
/// <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 GameStarted /// </summary> /// <param name="g">The game</param> private void OnGameStarted(Game g) { Contract.Ensures(g.Started ? playing : !playing); if(g.Started) { playing = true; } }
/// <summary> /// Helper method for the event RoundFinished /// </summary> /// <param name="g">The game</param> private void OnRoundFinished(Game g) { betBox.Locked = false; }
/// <summary> /// Helper method for the event GameFinished /// </summary> /// <param name="g">The game</param> private void OnGameFinished(Game g) { Contract.Ensures(g.Finished ? finished && showScoreboard : !finished && !showScoreboard); if(g.Finished) { showScoreboard = true; finished = true; } }