fix(14-1): correct re-rack scoring and table reset

- Player score incremented by (balls on table before re-rack + balls added - 15)
- Balls on table always set to 15 after re-rack
- Log entry includes all relevant details for traceability

Refs #26
This commit is contained in:
Frank Schwenk
2025-06-24 10:36:51 +02:00
parent 7d4cc30e97
commit f0a91724d2

View File

@@ -133,11 +133,23 @@ const GameDetail141 = ({ game, onUpdate, onUndo, onForfeit, onBack }) => {
}; };
const handleReRack = (ballsToAdd) => { const handleReRack = (ballsToAdd) => {
const newBallsOnTable = game.ballsOnTable + ballsToAdd; const scoreIncrement = game.ballsOnTable + ballsToAdd - 15;
const updatedPlayers = game.players.map((p, idx) =>
idx === game.currentPlayer ? { ...p, score: p.score + scoreIncrement } : p
);
onUpdate({ onUpdate({
...game, ...game,
ballsOnTable: newBallsOnTable, players: updatedPlayers,
log: [...(game.log || []), { type: 'rerack', player: currentPlayer.name, ballsAdded: ballsToAdd, ballsOnTable: newBallsOnTable }], ballsOnTable: 15,
log: [...(game.log || []), {
type: 'rerack',
player: currentPlayer.name,
ballsAdded: ballsToAdd,
ballsOnTableBefore: game.ballsOnTable,
ballsOnTable: 15,
scoreIncrement,
newScore: updatedPlayers[game.currentPlayer].score
}],
}); });
}; };