diff --git a/client/play/TossupClient.js b/client/play/TossupClient.js index f3e2311ed..bbe626a04 100644 --- a/client/play/TossupClient.js +++ b/client/play/TossupClient.js @@ -92,7 +92,7 @@ export const TossupClientMixin = (ClientClass) => class extends ClientClass { } updateQuestion ({ word }) { - if (word === '(*)' || word === '[*]') { return; } + if (word === '(*)' || word === '[*]' || word === '(+)') { return; } document.getElementById('question').innerHTML += word + ' '; } }; diff --git a/client/play/mp/MultiplayerTossupBonusClient.js b/client/play/mp/MultiplayerTossupBonusClient.js index cd53eee31..1cb5b9dbd 100644 --- a/client/play/mp/MultiplayerTossupBonusClient.js +++ b/client/play/mp/MultiplayerTossupBonusClient.js @@ -338,7 +338,9 @@ export const MultiplayerClientMixin = (ClientClass) => class extends ClientClass document.getElementById('buzz').disabled = !document.getElementById('toggle-rebuzz').checked && userId === this.USER_ID; } - if (score > 10) { + if (score === 20) { + this.room.players[userId].superpowers++; + } else if (score === 15) { this.room.players[userId].powers++; } else if (score === 10) { this.room.players[userId].tens++; diff --git a/client/play/tossups/SoloTossupClient.js b/client/play/tossups/SoloTossupClient.js index 1f8ee763a..9a19fc058 100644 --- a/client/play/tossups/SoloTossupClient.js +++ b/client/play/tossups/SoloTossupClient.js @@ -46,7 +46,9 @@ export default class SoloTossupClient extends TossupClient { super.endCurrentTossup({ starred, tossup }); if (!isSkip && this.room.previousTossup.userId === this.USER_ID && (this.room.mode !== MODE_ENUM.LOCAL)) { const previous = this.room.previousTossup; - const pointValue = previous.isCorrect ? (previous.inPower ? previous.powerValue : 10) : (previous.endOfQuestion ? 0 : previous.negValue); + const pointValue = previous.isCorrect + ? (previous.inSuperpower ? previous.superpowerValue : (previous.inPower ? previous.powerValue : 10)) + : (previous.endOfQuestion ? 0 : previous.negValue); questionStats.recordTossup({ _id: previous.tossup._id, celerity: previous.celerity, @@ -203,12 +205,12 @@ export default class SoloTossupClient extends TossupClient { } /** - * Updates the displayed stat line. - */ - updateStatDisplay ({ powers, tens, negs, tuh, points, celerity }) { + * Updates the displayed stat line. + */ + updateStatDisplay ({ superpowers, powers, tens, negs, tuh, points, celerity }) { const averageCelerity = celerity.correct.average.toFixed(3); const plural = (tuh === 1) ? '' : 's'; - document.getElementById('statline').innerHTML = `${powers}/${tens}/${negs} with ${tuh} tossup${plural} seen (${points} pts, celerity: ${averageCelerity})`; + document.getElementById('statline').innerHTML = `${superpowers}/${powers}/${tens}/${negs} with ${tuh} tossup${plural} seen (${points} pts, celerity: ${averageCelerity})`; // disable clear stats button if no stats document.getElementById('clear-stats').disabled = (tuh === 0); diff --git a/client/play/tossups/SoloTossupRoom.js b/client/play/tossups/SoloTossupRoom.js index 43c82d30e..9270b96cc 100644 --- a/client/play/tossups/SoloTossupRoom.js +++ b/client/play/tossups/SoloTossupRoom.js @@ -88,7 +88,10 @@ export default class SoloTossupRoom extends TossupRoom { this.previousTossup.isCorrect = correct; const multiplier = correct ? 1 : -1; - if (this.previousTossup.inPower) { + if (this.previousTossup.inSuperpower) { + this.players[userId].superpowers += multiplier * 1; + this.players[userId].points += multiplier * this.previousTossup.superpowerValue; + } else if (this.previousTossup.inPower) { this.players[userId].powers += multiplier * 1; this.players[userId].points += multiplier * this.previousTossup.powerValue; } else { @@ -103,8 +106,9 @@ export default class SoloTossupRoom extends TossupRoom { this.players[userId].points += multiplier * -this.previousTossup.negValue; } + const correctBuzzes = this.players[userId].superpowers + this.players[userId].powers + this.players[userId].tens; this.players[userId].celerity.correct.total += multiplier * this.previousTossup.celerity; - this.players[userId].celerity.correct.average = this.players[userId].celerity.correct.total / (this.players[userId].powers + this.players[userId].tens); + this.players[userId].celerity.correct.average = this.players[userId].celerity.correct.total / correctBuzzes; this.emitMessage({ type: 'toggle-correct', correct, userId }); } diff --git a/client/play/upsert-player-item.js b/client/play/upsert-player-item.js index fa89df35a..2b645f679 100644 --- a/client/play/upsert-player-item.js +++ b/client/play/upsert-player-item.js @@ -32,7 +32,7 @@ export default function upsertPlayerItem (player, multiplayerOptions = {}) { player.userId = escapeHTML(player.userId); player.username = escapeHTML(player.username); - const { userId, username, powers = 0, tens = 0, negs = 0, tuh = 0, points = 0, online } = player; + const { userId, username, superpowers = 0, powers = 0, tens = 0, negs = 0, tuh = 0, points = 0, online } = player; const celerity = player?.celerity?.correct?.average ?? player?.celerity ?? 0; const { bonusStats = { 0: 0, 10: 0, 20: 0, 30: 0 } } = team; @@ -75,6 +75,7 @@ export default function upsertPlayerItem (player, multiplayerOptions = {}) { playerItem.setAttribute('data-bs-title', username); playerItem.setAttribute('data-bs-content', `