46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
---
|
|
# nuzlocke-tracker-xbxv
|
|
title: Hall of Fame team selection
|
|
status: completed
|
|
type: feature
|
|
priority: normal
|
|
created_at: 2026-02-09T09:14:44Z
|
|
updated_at: 2026-02-09T09:20:01Z
|
|
blocking:
|
|
- nuzlocke-tracker-25mh
|
|
- nuzlocke-tracker-h3fw
|
|
---
|
|
|
|
When a nuzlocke run is completed (status → completed), prompt the player to select which Pokemon were in their Hall of Fame team — the party of up to 6 that beat the Elite Four and Champion.
|
|
|
|
This is a general nuzlocke feature (not genlocke-specific) and provides value on its own:
|
|
- Interesting stats: which Pokemon enter the HoF most often across runs
|
|
- Run summary: display the HoF team prominently on the completed run page
|
|
- Foundation for genlocke retireHoF logic (only retire HoF team, not all alive Pokemon)
|
|
|
|
## Behavior
|
|
- After marking a run as completed, show a modal/step asking the player to pick their HoF team from all alive Pokemon
|
|
- Max 6 Pokemon can be selected
|
|
- Store the selection as a list of encounter IDs on the run (or a join table)
|
|
- The HoF team should be displayed prominently on the completed run page (e.g. in the victory banner)
|
|
- Selection is optional — if skipped, all alive Pokemon are assumed to be in the HoF (backwards-compatible)
|
|
|
|
## Backend
|
|
- Add `hof_team` JSONB column (array of encounter IDs) to `nuzlocke_runs`, or a `hof_encounters` join table
|
|
- New endpoint or extend `PATCH /runs/{id}` to accept HoF team selection
|
|
- Include HoF team data in `GET /runs/{id}` response
|
|
|
|
## Frontend
|
|
- After the EndRunModal confirms "completed", show a HoF team selection step
|
|
- Display alive Pokemon as selectable cards (max 6)
|
|
- Show the selected HoF team in the victory banner on the completed run page
|
|
- Allow editing the HoF team after the fact (in case the player forgot or made a mistake)
|
|
|
|
## Checklist
|
|
- [x] Add `hof_encounter_ids` JSONB column to `nuzlocke_runs` (nullable array of ints)
|
|
- [x] Migration for the new column
|
|
- [x] Update `RunResponse` / `RunDetailResponse` schemas to include `hofEncounterIds`
|
|
- [x] Extend `PATCH /runs/{id}` to accept `hofEncounterIds` (validate they belong to the run and are alive)
|
|
- [x] Build HoF team selection modal (shown after completing a run)
|
|
- [x] Display HoF team in the victory banner on completed run pages
|
|
- [x] Allow editing HoF team selection on completed runs |