From f0a91724d24a9331d2facd5a24d20c2a8d3cf5a2 Mon Sep 17 00:00:00 2001 From: Frank Schwenk Date: Tue, 24 Jun 2025 10:36:51 +0200 Subject: [PATCH] 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 --- src/components/GameDetail141.jsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/components/GameDetail141.jsx b/src/components/GameDetail141.jsx index e445346..e91aa34 100644 --- a/src/components/GameDetail141.jsx +++ b/src/components/GameDetail141.jsx @@ -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 + }], }); };