public static void insertPlayersRandomly(List <List <TournamentRound> > tree, List <TournamentPlayer> players)
        {
            List <TournamentRound> firstRow = tree[0];

            foreach (TournamentPlayer p in players.Where(p => p.getIsNPC() == false))
            {
                TournamentRound game = firstRow.OrderBy(g => g.getPlayers().Count).ToList()[0];
                game.addPlayer(p);
            }
        }
Exemplo n.º 2
0
        public void setGameOver(TournamentPlayer winner)
        {
            winner.isWinning = true;
            score.winner     = winner.info.username;
            winnerUsername   = winner.info.username;
            setState(RoundState.Over);

            if (nextRound != null)
            {
                nextRound.addPlayer(winner, nextWinGameSlotIndex);
            }
            if (nextLoserRound != null)
            {
                getLosers(winner).ForEach(p => nextLoserRound.addPlayer(p, nextLoseGameSlotIndex));
            }
        }
        public static void addBots(List <List <TournamentRound> > tree, List <TournamentPlayer> players)
        {
            List <TournamentRound> firstRow = tree[0];
            int totalPlayers = firstRow.Count * 2;
            int botsNeeded   = totalPlayers - players.Count;

            for (int i = 0; i < botsNeeded; i++)
            {
                List <TournamentRound> temp = firstRow.OrderByDescending(g => g.calcRoundsUntilPossibleBotGame()).ToList(); //Calculate round to bot battle
                temp = temp.Where(g => g.stashedRoundsUntilBotGame == temp[0].stashedRoundsUntilBotGame).ToList();          //Sort

                TournamentRound  round = temp[Random.Range(0, temp.Count)];                                                 //Pick random game
                TournamentPlayer bot   = new TournamentPlayer(true, i);
                players.Add(bot);
                round.addPlayer(bot);
            }
        }