コード例 #1
0
ファイル: CreateGame.cs プロジェクト: webrokeit/PirateSpades
 /// <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;
     }
 }
コード例 #2
0
ファイル: JoinGame.cs プロジェクト: webrokeit/PirateSpades
 /// <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;
 }
コード例 #3
0
ファイル: InGame.cs プロジェクト: webrokeit/PirateSpades
 /// <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;
     }
 }
コード例 #4
0
ファイル: InGame.cs プロジェクト: webrokeit/PirateSpades
 /// <summary>
 /// Helper method for the event RoundFinished
 /// </summary>
 /// <param name="g">The game</param>
 private void OnRoundFinished(Game g)
 {
     betBox.Locked = false;
 }
コード例 #5
0
ファイル: InGame.cs プロジェクト: webrokeit/PirateSpades
 /// <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;
     }
 }