private bool CreateNextRound() { if (CurrentRound != null) { CurrentRound.CheckResults(); } if (Teams.Count == 0 && Competition.ParticipantNumber == Competition.Participations.Count) { foreach (Participation part in Competition.Participations) { AddPlayer(part.Bot); } } Manager.Reset(); Manager.LoadState(Teams, Rounds); TournamentRound rd = Manager.CreateNextRound(null); // Finals if (rd == null || rd.Pairings[0].TeamScores.Count == 1) { CurrentRound = null; return(false); } else { Round round = null; CreateRound(rd, ref round); RoundInstance ri = new RoundInstance(Competition, rd, round, this); ExecutedRounds.Add(CurrentRound); CurrentRound = ri; Rounds.Add(CurrentRound.CurrentRound); return(true); } }