stack-the-deck (#1)

Allow for redrawing or explicitly selecting a card for replacement.

Co-authored-by: Gavin McDonald <gavinmcdoh@gmail.com>
Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2025-06-13 07:38:51 -04:00
parent c4f4b09f18
commit 5444e25249
14 changed files with 376 additions and 20 deletions

View File

@@ -79,6 +79,36 @@ app.prepare().then(() => {
}
});
socket.on('redraw', ({ gameID, cardIndex }: ClientUpdate) => {
try {
//console.log(Date.now(), 'Redraw', { gameID, cardIndex });
const gameUpdate = gameStore.redraw(gameID, cardIndex);
broadcast('game-update', gameUpdate);
} catch (e) {
const error = e instanceof Error ? e.message : e;
console.error(Date.now(), 'Error[redraw]', error);
socket.emit('redraw-error', error);
}
});
socket.on('select', ({ gameID, cardIndex, cardID = '' }: ClientUpdate) => {
try {
//console.log(Date.now(), 'select', { gameID, cardIndex });
const gameUpdate = gameStore.select(gameID, cardIndex, cardID);
broadcast('game-update', gameUpdate);
} catch (e) {
const error = e instanceof Error ? e.message : e;
console.error(Date.now(), 'Error[select]', error);
socket.emit('select-error', error);
}
});
socket.on('settings', ({ gameID, gameData }: { gameID: string; gameData: GameUpdate }) => {
try {
const gameUpdate = gameStore.updateSettings(gameID, gameData.settings);