Show garbage received on player elimination

- Add garbageReceived array to player objects
- Track garbage in addGarbageToPlayer() with sender name
- Include garbageReceived in getStates() output
- Update endGame() to pass garbage stats to UI
- Update showGameOver() to display garbage count per player
- Add CSS styling for eliminated players and garbage column
- Bump CSS version for cache refresh

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-21 02:44:39 +00:00
parent a1cbd27a71
commit e3f594e44e
5 changed files with 29 additions and 7 deletions
+8 -2
View File
@@ -115,7 +115,8 @@ io.on('connection', (socket) => {
eliminated: false,
ready: false,
dropCounter: 0,
dropInterval: 1000
dropInterval: 1000,
garbageReceived: []
};
lobby.players.set(socket.id, player);
@@ -479,6 +480,9 @@ function addGarbageToPlayer(player, senderName) {
garbageRow[gap] = 0;
player.board.push(garbageRow);
// Track garbage received
player.garbageReceived.push({ rows: 1, sender: senderName });
// Push current piece up by 1 row if it exists (y decreases when moving up)
if (player.currentPiece) {
const oldY = player.currentPiece.y;
@@ -519,6 +523,7 @@ function startGame() {
player.dropInterval = 1000;
player.holdPiece = null;
player.canHold = true;
player.garbageReceived = [];
lobby.playerSequenceIndex.set(player.id, 0);
}
@@ -578,7 +583,8 @@ function getStates() {
lines: p.lines,
level: p.level,
eliminated: p.eliminated,
sequenceIndex: lobby.playerSequenceIndex.get(p.id) || 0
sequenceIndex: lobby.playerSequenceIndex.get(p.id) || 0,
garbageReceived: p.garbageReceived ? JSON.parse(JSON.stringify(p.garbageReceived)) : []
}));
}