fix: Schocken - Auswertung korrigiert (Augensumme, Scheiben vom Gewinner)

This commit is contained in:
2026-07-05 01:07:42 +02:00
parent cb287585f2
commit 49270d800f

View File

@@ -74,8 +74,8 @@ function compareResults(a, b) {
// Gleicher Typ — Detailvergleich // Gleicher Typ — Detailvergleich
if (a.result.type === 'normal') { if (a.result.type === 'normal') {
// Niedrigere Summe ist schlechter — aber beide haben immer 1 Scheibe, kein Unterschied im Typ // Niedrigere Augensumme = schlechter
// Tatsächlich keine Hierarchie bei normalen Würfen außer Scheiben=1 if (a.result.value !== b.result.value) return a.result.value < b.result.value ? -1 : 1;
return 0; return 0;
} }
if (a.result.type === 'strasse') { if (a.result.type === 'strasse') {
@@ -345,14 +345,16 @@ router.post('/:id/evaluate', authenticate, (req, res) => {
results.sort((a, b) => { results.sort((a, b) => {
const cmp = compareResults(a, b); const cmp = compareResults(a, b);
if (cmp !== 0) return cmp; // -1 wenn a schlechter if (cmp !== 0) return cmp; // -1 wenn a schlechter
// Gleicher Typ: mehr Würfe = schlechter // Gleicher Typ: mehr Würfe = schlechter (vorne in der Liste = Index 0 = Verlierer)
if (a.rolls !== b.rolls) return b.rolls - a.rolls; // mehr Würfe = schlechter (hinten) if (a.rolls !== b.rolls) return a.rolls - b.rolls; // mehr Würfe = schlechter (vorne)
// Nachleger: später in Reihenfolge = schlechter // Nachleger: später in Reihenfolge = schlechter (vorne)
return activePlayers.indexOf(b.player) - activePlayers.indexOf(a.player); return activePlayers.indexOf(a.player) - activePlayers.indexOf(b.player);
}); });
const loser = results[0]; // schlechtestes Ergebnis const loser = results[0]; // schlechtestes Ergebnis (Index 0 nach sort)
const scheiben = loser.result.scheiben; const winner = results[results.length - 1]; // bestes Ergebnis
// Scheiben die verteilt werden = Wert des BESTEN Ergebnisses der Runde
const scheiben = winner.result.scheiben;
// Scheiben verteilen // Scheiben verteilen
let fromStock = 0; let fromStock = 0;