Skip to content

Add word-by-word reading option for bonuses#451

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/add-bonus-reading-option
Draft

Add word-by-word reading option for bonuses#451
Copilot wants to merge 2 commits intomainfrom
copilot/add-bonus-reading-option

Conversation

Copy link
Contributor

Copilot AI commented Mar 1, 2026

In actual quizbowl matches, bonuses are read aloud word by word. This adds a toggle to read bonus leadins and parts one word at a time, with a dead time timer after each part completes before the answer period begins — matching the tossup reading UX.

Changes

  • quizbowl/BonusRoom.jsreadBonus() method mirroring readTossup() from TossupRoom.js. Reads leadin then each part word-by-word, auto-starts answer period after each part finishes. Added pauseBonus(), setReadingSpeed(), toggleReadBonuses(). State variables prefixed with bonus to avoid collision with tossup state in TossupBonusRoom.
  • client/play/BonusClient.jsupdateQuestion() handler targeting either #leadin or #bonus-part-{N} based on target field. Smart fallthrough: only handles update-question when data.target is set, so tossup word updates pass through to TossupClientMixin in combined rooms.
  • client/play/bonuses/index.html — "Read bonuses word by word" toggle, reading speed slider (hidden when off), Pause button.
  • client/play/bonuses/index.jsx — Event wiring, p keyboard shortcut for pause, localStorage persistence for new settings.
  • client/play/bonuses/SoloBonusClient.js — Settings persistence overrides.

UI

Bonus settings with new reading controls

Original prompt

This section details on the original issue you should resolve

<issue_title>Add option for bonuses to be read out like toss-ups</issue_title>
<issue_description>When one is in an actual quizbowl match, the bonuses would be read out word for word, giving a chance for the players to think. To help mimic the conditions of a quizbowl match, it would help if there was an option for the words in bonuses to be displayed one by one and for there to be a timer that starts immediately after all words have been displayed.</issue_description>

<agent_instructions>Look at the readTossup function in TossupRoom.js for how the actual logic of reading the bonuses should be implemented</agent_instructions>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Add readBonuses setting to BonusRoom that reads bonus leadin and
parts word by word (like tossup reading). After each part is fully
read, a dead time timer starts followed by the answer period.

Includes:
- Reading speed slider and toggle UI in bonus settings
- Pause button for bonus reading
- Client-side word-by-word display with proper targeting
- Settings persistence via localStorage

Co-authored-by: geoffrey-wu <42471355+geoffrey-wu@users.noreply.github.com>
Copilot AI changed the title [WIP] Add option for bonuses to be read out like toss-ups Add word-by-word reading option for bonuses Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add option for bonuses to be read out like toss-ups

2 participants