remove Dish of the Nation from design spec, scoring config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
## Goal
|
||||
|
||||
A web-based party companion for a group of 5-10 people watching the Eurovision Song Contest together. One host device drives a shared display (TV/projector); all other players join on their phones via a room code. Three acts guide the group through five games across the evening, with all scores feeding into one shared leaderboard.
|
||||
A web-based party companion for a group of 5-10 people watching the Eurovision Song Contest together. One host device drives a shared display (TV/projector); all other players join on their phones via a room code. Three acts guide the group through four games across the evening, with all scores feeding into one shared leaderboard.
|
||||
|
||||
---
|
||||
|
||||
@@ -106,14 +106,11 @@ JSON messages with a `type` field discriminator.
|
||||
| `reconnect` | roomCode, sessionId | Reconnecting |
|
||||
| `advance_act` | — | Host advances to next act |
|
||||
| `end_room` | — | Host ends the party |
|
||||
| `add_dish` | name, correctCountry | Host adds a dish (Act 1) |
|
||||
| `reveal_dishes` | — | Host reveals dish answers |
|
||||
| `submit_prediction` | winner, top3[], nulPoints | Player submits predictions |
|
||||
| `open_jury_vote` | countryCode | Host opens voting for a country |
|
||||
| `close_jury_vote` | — | Host closes current voting window |
|
||||
| `submit_jury_vote` | countryCode, rating (1-12) | Player rates an act |
|
||||
| `tap_bingo_square` | tropeId | Player taps a bingo square |
|
||||
| `submit_dish_guess` | dishId, guessedCountry | Player guesses a dish's country |
|
||||
| `start_quiz` | — | Host starts quiz round |
|
||||
| `next_question` | — | Host advances to next question |
|
||||
| `buzz_quiz` | — | Player buzzes in |
|
||||
@@ -134,7 +131,6 @@ JSON messages with a `type` field discriminator.
|
||||
| `jury_reveal` | "12 points go to..." data | Dramatic reveal on display |
|
||||
| `bingo_update` | playerId, square tapped | Someone taps a square |
|
||||
| `bingo_announced` | playerId, displayName | Someone got bingo |
|
||||
| `dishes_updated` | dish list | Host adds/reveals dishes |
|
||||
| `quiz_question` | question, options, difficulty | Next quiz question shown |
|
||||
| `quiz_buzz` | playerId, displayName | Someone buzzed |
|
||||
| `quiz_result` | playerId, correct, points | Answer judged |
|
||||
@@ -154,13 +150,6 @@ JSON messages with a `type` field discriminator.
|
||||
- Scores are hidden until the final leaderboard reveal in Act 3.
|
||||
- Country selection from the hardcoded ESC 2026 lineup.
|
||||
|
||||
### Dish of the Nation (lobby + Act 1)
|
||||
|
||||
- Host adds dishes via the Host tab as people arrive (name + correct country). This can start during the lobby phase and continue into Act 1.
|
||||
- Players see the list of dishes and submit a country guess per dish.
|
||||
- Host triggers reveal before Act 2 — display shows each dish with the correct country and who guessed right.
|
||||
- Low-stakes icebreaker.
|
||||
|
||||
### Live Jury Voting (Act 2)
|
||||
|
||||
- Host taps "Open Voting" after each country's performance.
|
||||
@@ -189,7 +178,7 @@ JSON messages with a `type` field discriminator.
|
||||
|
||||
### Shared Leaderboard
|
||||
|
||||
- All five games contribute to one total score per player.
|
||||
- All four games contribute to one total score per player.
|
||||
- Leaderboard visible on the display throughout the evening, updated after each scoring event.
|
||||
- Prediction scores are hidden until the final reveal — the leaderboard shows "??? pts" for predictions until Act 3 ends.
|
||||
- Final reveal: display shows a dramatic countdown/animation revealing prediction scores and the final standings.
|
||||
@@ -211,7 +200,6 @@ All values in `packages/server/data/scoring.json`, editable without code changes
|
||||
"quiz_easy": 5,
|
||||
"quiz_medium": 10,
|
||||
"quiz_hard": 15,
|
||||
"dish_correct": 5
|
||||
}
|
||||
```
|
||||
|
||||
@@ -279,19 +267,6 @@ PostgreSQL via Drizzle ORM. Lightweight — most queries are "get everything for
|
||||
- `room_id` (FK → rooms)
|
||||
- `squares` (jsonb, positionally ordered array of { tropeId, tapped } — index 0-15 maps left-to-right, top-to-bottom on the 4×4 grid)
|
||||
|
||||
**dishes**
|
||||
- `id` (uuid, PK)
|
||||
- `room_id` (FK → rooms)
|
||||
- `name` (varchar)
|
||||
- `correct_country` (varchar)
|
||||
- `revealed` (boolean)
|
||||
|
||||
**dish_guesses**
|
||||
- `id` (uuid, PK)
|
||||
- `player_id` (FK → players)
|
||||
- `dish_id` (FK → dishes)
|
||||
- `guessed_country` (varchar)
|
||||
|
||||
**quiz_rounds**
|
||||
- `id` (uuid, PK)
|
||||
- `room_id` (FK → rooms)
|
||||
|
||||
@@ -7,6 +7,5 @@
|
||||
"bingo_full_bonus": 10,
|
||||
"quiz_easy": 5,
|
||||
"quiz_medium": 10,
|
||||
"quiz_hard": 15,
|
||||
"dish_correct": 5
|
||||
"quiz_hard": 15
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user