示例#1
0
 public void NetworkGameStateObject()
 {
     var gamestate = new ServerGameState(null);
     gamestate.SeatedPlayers = new Player[10];
     var player1 = Player.GetPlayerServerSide("Sander");
     var player2 = Player.GetPlayerServerSide("Stefan");
     gamestate.SeatPlayer(player1);
     gamestate.SeatPlayer(player2);
     var obj = new NetworkGameStateObject(ServerCommands.SendGameState, gamestate);
     var decoder = new NetworkGameStateObject.GameStateObjectReader();
     var bytes = decoder.GenerateByteStream(obj);
     var generatedObj = decoder.GenerateObject(bytes, false);
     Assert.IsInstanceOfType(generatedObj, typeof(NetworkGameStateObject));
     var generatedGamestate = generatedObj as NetworkGameStateObject;
     Assert.IsTrue(generatedGamestate.GameState.PlayerCount == gamestate.PlayerCount);
     for(var i = 0; i < gamestate.SeatedPlayers.Length; i++)
     {
         if (gamestate.SeatedPlayers[i] == null)
             Assert.IsNull(generatedGamestate.GameState.SeatedPlayers[i]);
         else
         {
             Assert.IsNotNull(generatedGamestate.GameState.SeatedPlayers[i]);
             Assert.AreEqual(generatedGamestate.GameState.SeatedPlayers[i].Name, gamestate.SeatedPlayers[i].Name);
         }
     }
     CompareDefaultObject(obj, generatedGamestate);
 }
示例#2
0
 private Server(Game game, GamePanel panel, Client client)
 {
     this.game = game;
     GameState = new ServerGameState(this);
     for (var i = 1; i < 5; i++)
         GameState.SeatedPlayers[i] = Player.GetPlayerServerSide($"Temp {i}");
     ServerMessageHandler = new ServerMessageHandler(this, GameState);
 }
示例#3
0
 public DebugConsole(Server server, ServerGameState serverGameState, Client client, ClientGameState clientGameState)
     :this()
 {
     this.server = server;
     this.serverGameState = serverGameState;
     this.client = client;
     this.clientGameState = clientGameState;
     for(var i = 0; i < serverGameState.SeatedPlayers.Length; i++)
     {
         if (serverGameState.SeatedPlayers[i] == null) continue;
         playerButtons[i].Enabled = true;
         playerButtons[i].Text = serverGameState.SeatedPlayers[i].Name;
         playerButtons[i].Tag = serverGameState.SeatedPlayers[i];
     }
     for (var i = 0; i < policyButtons.Length; i++)
     {
         policyButtons[i].Tag = (byte)i;
     }
 }
 public ServerMessageHandler(Server server, ServerGameState gameState)
 {
     this.server = server;
     this.gameState = gameState;
 }
示例#5
0
 public override NetworkObject GetPresidentObject(ServerGameState gameState)
 {
     return new NetworkObject(ServerCommands.PresidentActionChoosePresident);
 }
示例#6
0
 public override NetworkObject GetPresidentObject(ServerGameState gameState)
 {
     var cards = gameState.GetPolicyCards(3);
     gameState.ReturnPolicyCards(cards);
     return new NetworkCardObject(ServerCommands.PresidentActionExamine, cards);
 }
示例#7
0
 public abstract NetworkObject GetPresidentObject(ServerGameState gameState);