|
|
|
|
@ -1439,7 +1439,17 @@ defer { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let groupStages = groupStages() |
|
|
|
|
let baseRank = teamCount - groupStageSpots() + qualifiedPerGroupStage * groupStageCount + groupStageAdditionalQualified |
|
|
|
|
var baseRank = teamCount - groupStageSpots() + qualifiedPerGroupStage * groupStageCount + groupStageAdditionalQualified |
|
|
|
|
|
|
|
|
|
//TODO: RAZ ajouté une option pour choisir entre la règle officiel et la règle 'maison' |
|
|
|
|
/* |
|
|
|
|
Request by Philippe Morin 24/03/2025 |
|
|
|
|
*/ |
|
|
|
|
let defaultOption = false |
|
|
|
|
|
|
|
|
|
if defaultOption { |
|
|
|
|
baseRank += qualifiedPerGroupStage * groupStageCount + groupStageAdditionalQualified - 1 |
|
|
|
|
} |
|
|
|
|
let alreadyPlaceTeams = Array(teams.values.flatMap({ $0 })) |
|
|
|
|
groupStages.forEach { groupStage in |
|
|
|
|
let groupStageTeams = groupStage.teams(true) |
|
|
|
|
@ -1449,6 +1459,7 @@ defer { |
|
|
|
|
let groupStageWidth = max(((index == qualifiedPerGroupStage) ? groupStageCount - groupStageAdditionalQualified : groupStageCount) * (index - qualifiedPerGroupStage), 0) |
|
|
|
|
|
|
|
|
|
let _index = baseRank + groupStageWidth + 1 - (index > qualifiedPerGroupStage ? groupStageAdditionalQualified : 0) |
|
|
|
|
print("finalRanking", team.teamLabel() , _index, baseRank, groupStageWidth) |
|
|
|
|
if let existingTeams = teams[_index] { |
|
|
|
|
teams[_index] = existingTeams + [team.id] |
|
|
|
|
} else { |
|
|
|
|
@ -2951,7 +2962,7 @@ extension Tournament { |
|
|
|
|
func deadline(for type: TournamentDeadlineType) -> Date? { |
|
|
|
|
guard [.p500, .p1000, .p1500, .p2000].contains(tournamentLevel) else { return nil } |
|
|
|
|
|
|
|
|
|
var daysOffset = type.daysOffset(level: tournamentLevel) |
|
|
|
|
let daysOffset = type.daysOffset(level: tournamentLevel) |
|
|
|
|
if let date = Calendar.current.date(byAdding: .day, value: daysOffset, to: startDate) { |
|
|
|
|
let startOfDay = Calendar.current.startOfDay(for: date) |
|
|
|
|
return Calendar.current.date(byAdding: type.timeOffset, to: startOfDay) |
|
|
|
|
|