fixes
This commit is contained in:
@@ -157,20 +157,20 @@ export function resolveBracket(
|
||||
const away = sideFrom(a.teamId, slotLabel(rm.away, assignment, winnerGroup), teams, feed, "away", a.provisional, a.tooltip);
|
||||
|
||||
const feedWinner = winnerOf(feed);
|
||||
if (resolveWinners && !feedWinner && feed && h.teamId && a.teamId
|
||||
// Sim-Modus: Gewinner NUR aus Scores + Slot-Team-IDs ableiten.
|
||||
// feedWinner (aus feed.homeTeamId/awayTeamId) wird IGNORIERT,
|
||||
// weil matchNumber-Zuweisung (assignNumbersAndVenues) von der
|
||||
// FIFA-Nummerierung abweichen kann → feed gehört evtl. zum falschen Spiel.
|
||||
if (resolveWinners && feed && h.teamId && a.teamId
|
||||
&& feed.homeScore != null && feed.awayScore != null) {
|
||||
// Simulation: Gewinner aus Scores und aufgelösten Team-IDs ableiten
|
||||
if (feed.homeScore > feed.awayScore) {
|
||||
winners.set(rm.matchNumber, h.teamId);
|
||||
losers.set(rm.matchNumber, loserOf(feed) ?? a.teamId);
|
||||
} else if (feed.awayScore > feed.homeScore) {
|
||||
winners.set(rm.matchNumber, a.teamId);
|
||||
losers.set(rm.matchNumber, loserOf(feed) ?? h.teamId);
|
||||
} else {
|
||||
// Unentschieden → Heim gewinnt
|
||||
winners.set(rm.matchNumber, h.teamId);
|
||||
losers.set(rm.matchNumber, loserOf(feed) ?? a.teamId);
|
||||
}
|
||||
// Simulation: Gewinner aus Scores und aufgelösten Team-IDs ableiten.
|
||||
// Nutze NICHT feed.homeTeamId/awayTeamId (sind null für KO-Matches),
|
||||
// sondern die aufgelösten h.teamId / a.teamId aus resolveR32Slot.
|
||||
const homeWins = feed.homeScore > feed.awayScore;
|
||||
const awayWins = feed.awayScore > feed.homeScore;
|
||||
const winnerId = homeWins ? h.teamId : awayWins ? a.teamId : h.teamId;
|
||||
winners.set(rm.matchNumber, winnerId);
|
||||
losers.set(rm.matchNumber, loserOf(feed) ?? (homeWins ? a.teamId : awayWins ? h.teamId : a.teamId));
|
||||
} else {
|
||||
winners.set(rm.matchNumber, feedWinner);
|
||||
losers.set(rm.matchNumber, loserOf(feed));
|
||||
@@ -188,6 +188,7 @@ export function resolveBracket(
|
||||
const src = km.losers ? losers : winners;
|
||||
const homeId = src.get(km.fromHome) ?? null;
|
||||
const awayId = src.get(km.fromAway) ?? null;
|
||||
|
||||
// Ein Folgeteam ist fix, wenn das speisende Spiel beendet ist.
|
||||
const homeProv = !(decided.get(km.fromHome) ?? false);
|
||||
const awayProv = !(decided.get(km.fromAway) ?? false);
|
||||
@@ -199,18 +200,13 @@ export function resolveBracket(
|
||||
const away = sideFrom(awayId, awayLabel, teams, feed, "away", awayProv, awayTtip);
|
||||
|
||||
const feedWinner = winnerOf(feed);
|
||||
if (resolveWinners && !feedWinner && feed && homeId && awayId
|
||||
if (resolveWinners && feed && homeId && awayId
|
||||
&& feed.homeScore != null && feed.awayScore != null) {
|
||||
if (feed.homeScore > feed.awayScore) {
|
||||
winners.set(km.matchNumber, homeId);
|
||||
losers.set(km.matchNumber, loserOf(feed) ?? awayId);
|
||||
} else if (feed.awayScore > feed.homeScore) {
|
||||
winners.set(km.matchNumber, awayId);
|
||||
losers.set(km.matchNumber, loserOf(feed) ?? homeId);
|
||||
} else {
|
||||
winners.set(km.matchNumber, homeId);
|
||||
losers.set(km.matchNumber, loserOf(feed) ?? awayId);
|
||||
}
|
||||
const homeWins = feed.homeScore > feed.awayScore;
|
||||
const awayWins = feed.awayScore > feed.homeScore;
|
||||
const winnerId = homeWins ? homeId : awayWins ? awayId : homeId;
|
||||
winners.set(km.matchNumber, winnerId);
|
||||
losers.set(km.matchNumber, loserOf(feed) ?? (homeWins ? awayId : awayWins ? homeId : awayId));
|
||||
} else {
|
||||
winners.set(km.matchNumber, feedWinner);
|
||||
losers.set(km.matchNumber, loserOf(feed));
|
||||
|
||||
Reference in New Issue
Block a user