public void GameOverTest()
 {
     for (int tests = 0; tests < 1; tests++)
     {
         for (int i = 3; i < 15; i = i + 3)
         {
             List<Player> players = TestX.GenListOfPlayers(i);
             Game game = new Game(gameSystem.GetNextGameId(), players[0]);
             for (int j = 1; j < players.Count; j++)
             {
                 game.AddPlayer(players[j]);
             }
             Assert.IsTrue(game.Start());
             while (!game.IsGameOver())
             {
                 KillNextPlayer(players);
             }
         }
     }
 }
 public void GameGenerationTest()
 {
     for (int tests = 0; tests < 100; tests++)
     {
         for (int i = 3; i < 25; i = i + 3)
         {
             List<Player> players = TestX.GenListOfPlayers(i);
             Game game = new Game(gameSystem.GetNextGameId(), players[0]);
             Assert.IsTrue(validateTeamComposition(game));
             for (int j = 1; j < players.Count; j++)
             {
                 game.AddPlayer(players[j]);
             }
             List<Type> roleTypes = gameSystem.GetRoleTypes();
             game.Start();
             Assert.IsTrue(ValidateRoleMaxPercentage(game));
             Assert.IsTrue(ValidateTeamMinPercent(game));
         }
     }
 }
 public void Start(Player player, Action action, Game game)
 {
     if (game.IsOverlord(player))
     {
         gameLog.Info("Attempting to start " + game);
         if (!game.Start())
         {
             HandleBadAction(game, player, action, "You need at least 3 players to start a game." + FlavorText.Divider + game.Status());
         }
     }
 }