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 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({
...game,
ballsOnTable: newBallsOnTable,
log: [...(game.log || []), { type: 'rerack', player: currentPlayer.name, ballsAdded: ballsToAdd, ballsOnTable: newBallsOnTable }],
players: updatedPlayers,
ballsOnTable: 15,
log: [...(game.log || []), {
type: 'rerack',
player: currentPlayer.name,
ballsAdded: ballsToAdd,
ballsOnTableBefore: game.ballsOnTable,
ballsOnTable: 15,
scoreIncrement,
newScore: updatedPlayers[game.currentPlayer].score
}],
});
};