diff --git a/src/components/questions/buzzer/BuzzerScoreboardButtons.vue b/src/components/questions/buzzer/BuzzerScoreboardButtons.vue index 0d591a2..5b24e9d 100644 --- a/src/components/questions/buzzer/BuzzerScoreboardButtons.vue +++ b/src/components/questions/buzzer/BuzzerScoreboardButtons.vue @@ -35,6 +35,10 @@ const props = defineProps<{ controller: IController; }>(); +const emit = defineEmits<{ + (e: 'update', correct: boolean | undefined, points: number | undefined): void; +}>(); + const audioCorrect = new Audio('sounds/answer-correct.mp3'); const audioWrong = new Audio('sounds/answer-wrong.mp3'); @@ -54,6 +58,7 @@ const onAnswerChange = (answer: boolean) => { if (answerCorrect.value === answer) { answerCorrect.value = undefined; updateScoreboard(points * -1); + emit('update', undefined, undefined); return; } @@ -67,6 +72,7 @@ const onAnswerChange = (answer: boolean) => { answerCorrect.value = answer; updateScoreboard(points); + emit('update', answer, points); playAudio(answer); }; diff --git a/src/pages/questions/BuzzerQuestionPage.vue b/src/pages/questions/BuzzerQuestionPage.vue index 1d51902..8b1a62b 100644 --- a/src/pages/questions/BuzzerQuestionPage.vue +++ b/src/pages/questions/BuzzerQuestionPage.vue @@ -24,6 +24,7 @@
@@ -299,6 +301,22 @@ const listener = (event: ButtonEvent) => { event.controller.setLight(true); }; +const onScored = (correct: boolean | undefined, points: number | undefined) => { + if (gameState.value.name !== 'answering') { + return; + } + + gameState.value = { + game: 'buzzer', + name: 'answering', + time: gameState.value.time, + controller: gameState.value.controller, + disabledControllerIds: gameState.value.disabledControllerIds, + correct, + points, + }; +}; + const continueQuestion = () => { if (gameState.value.name !== 'answering') { return;