Enforce Dupes Clause and Shiny Clause rules
Dupes Clause greys out Pokemon in the encounter modal whose evolution family has already been caught, preventing duplicate selections. Shiny Clause adds a dedicated Shiny Box and lets shiny catches bypass the one-per-route lock via a new is_shiny column on encounters and a /pokemon/families endpoint that computes evolution family groups. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
---
|
||||
# nuzlocke-tracker-b9oj
|
||||
title: Implement Dupes Clause & Shiny Clause Enforcement
|
||||
status: completed
|
||||
type: feature
|
||||
priority: normal
|
||||
created_at: 2026-02-07T20:03:12Z
|
||||
updated_at: 2026-02-07T20:07:50Z
|
||||
---
|
||||
|
||||
Add enforcement for duplicatesClause and shinyClause rules:
|
||||
- Dupes Clause: Grey out Pokemon in encounter modal whose evolution family is already caught
|
||||
- Shiny Clause: Dedicated Shiny Box for bonus shiny catches that bypass route locks
|
||||
|
||||
## Checklist
|
||||
- [x] Migration: Add is_shiny column to encounters table
|
||||
- [x] Backend model + schema: Add is_shiny field
|
||||
- [x] Backend: Shiny route-lock bypass in create_encounter
|
||||
- [x] Backend: Evolution families endpoint (GET /pokemon/families)
|
||||
- [x] Frontend types + API: Add isShiny fields and fetchPokemonFamilies
|
||||
- [x] Frontend: Dupes Clause greying in EncounterModal
|
||||
- [x] Frontend: ShinyEncounterModal + ShinyBox components
|
||||
- [x] Frontend: RunEncounters orchestration (split encounters, duped IDs, shiny box)
|
||||
- [x] TypeScript type check passes
|
||||
Reference in New Issue
Block a user