fix: Schocken - Auswertung korrigiert (Augensumme, Scheiben vom Gewinner)
This commit is contained in:
@@ -74,8 +74,8 @@ function compareResults(a, b) {
|
||||
|
||||
// Gleicher Typ — Detailvergleich
|
||||
if (a.result.type === 'normal') {
|
||||
// Niedrigere Summe ist schlechter — aber beide haben immer 1 Scheibe, kein Unterschied im Typ
|
||||
// Tatsächlich keine Hierarchie bei normalen Würfen außer Scheiben=1
|
||||
// Niedrigere Augensumme = schlechter
|
||||
if (a.result.value !== b.result.value) return a.result.value < b.result.value ? -1 : 1;
|
||||
return 0;
|
||||
}
|
||||
if (a.result.type === 'strasse') {
|
||||
@@ -345,14 +345,16 @@ router.post('/:id/evaluate', authenticate, (req, res) => {
|
||||
results.sort((a, b) => {
|
||||
const cmp = compareResults(a, b);
|
||||
if (cmp !== 0) return cmp; // -1 wenn a schlechter
|
||||
// Gleicher Typ: mehr Würfe = schlechter
|
||||
if (a.rolls !== b.rolls) return b.rolls - a.rolls; // mehr Würfe = schlechter (hinten)
|
||||
// Nachleger: später in Reihenfolge = schlechter
|
||||
return activePlayers.indexOf(b.player) - activePlayers.indexOf(a.player);
|
||||
// Gleicher Typ: mehr Würfe = schlechter (vorne in der Liste = Index 0 = Verlierer)
|
||||
if (a.rolls !== b.rolls) return a.rolls - b.rolls; // mehr Würfe = schlechter (vorne)
|
||||
// Nachleger: später in Reihenfolge = schlechter (vorne)
|
||||
return activePlayers.indexOf(a.player) - activePlayers.indexOf(b.player);
|
||||
});
|
||||
|
||||
const loser = results[0]; // schlechtestes Ergebnis
|
||||
const scheiben = loser.result.scheiben;
|
||||
const loser = results[0]; // schlechtestes Ergebnis (Index 0 nach sort)
|
||||
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
|
||||
let fromStock = 0;
|
||||
|
||||
Reference in New Issue
Block a user