Implement Retire HoF (Gauntlet) rule enforcement for genlockes

When retireHoF is enabled, surviving HoF Pokemon and their evolutionary
families are retired at leg advancement and treated as duplicates in all
subsequent legs — both in the encounter modal and bulk randomize.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Julian Tabel
2026-02-09 10:05:03 +01:00
parent 3ff132f284
commit 48b56f9360
12 changed files with 218 additions and 40 deletions

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-8w9s
title: Gauntlet rule option for genlockes
status: todo
status: in-progress
type: feature
priority: normal
created_at: 2026-02-08T19:15:43Z
updated_at: 2026-02-09T07:46:32Z
updated_at: 2026-02-09T08:56:55Z
parent: nuzlocke-tracker-25mh
---
@@ -31,10 +31,10 @@ Add the **Retire HoF** (aka Gauntlet) rule as a genlocke-specific rule option. W
- The dupe list should be visible somewhere in the genlocke dashboard so the player knows which families are off-limits
## Checklist
- [ ] Add a `retireHoF` boolean (or equivalent) to the genlocke rules JSONB schema
- [ ] On leg completion with Retire HoF enabled: resolve the full evolutionary families of all surviving HoF Pokemon
- [ ] Store the cumulative retired families list (could be a JSONB field on the Genlocke, or derived from completed legs)
- [ ] Implement `GET /api/v1/genlockes/{id}/retired-families` — return the list of retired evolutionary families with which leg they were retired in
- [ ] Integrate with the encounter system's duplicates clause: when logging an encounter in a genlocke leg, check the cumulative retired list and flag duplicates
- [x] Add a `retireHoF` boolean (or equivalent) to the genlocke rules JSONB schema
- [x] On leg completion with Retire HoF enabled: resolve the full evolutionary families of all surviving HoF Pokemon
- [x] Store the cumulative retired families list (could be a JSONB field on the Genlocke, or derived from completed legs)
- [x] Implement `GET /api/v1/genlockes/{id}/retired-families` — return the list of retired evolutionary families with which leg they were retired in
- [x] Integrate with the encounter system's duplicates clause: when logging an encounter in a genlocke leg, check the cumulative retired list and flag duplicates
- [ ] Build a "Retired Families" display on the genlocke overview page showing all off-limits Pokemon with their sprites
- [ ] Ensure the creation wizard's genlocke rules step correctly toggles between Keep HoF and Retire HoF
- [x] Ensure the creation wizard's genlocke rules step correctly toggles between Keep HoF and Retire HoF

View File

@@ -55,5 +55,6 @@ A dedicated dashboard page for a genlocke, showing progress, configuration, and
- [ ] Build the configuration section: display genlocke rules and nuzlocke rules
- [ ] Build the cumulative stats section: aggregate encounters, deaths, and completions across legs
- [ ] Add quick action links (active leg, graveyard, lineage — placeholder links for unimplemented features)
- [ ] Build "Retired Families" section: when retireHoF is enabled, display cumulative retired Pokemon with sprites grouped by leg (data available via `GET /api/v1/genlockes/{id}/retired-families`)
- [ ] Add "Genlockes" navigation item to the app nav bar
- [ ] Add `/genlockes` and `/genlockes/:genlockeId` routes to the React Router config