Refine genlocke epic with user flow, child features, and action items
Break down the genlocke tracking epic into 8 child beans with checklists, dependency chains, and success criteria. Add CLAUDE.md instruction for updating parent checklists on child completion. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
58
.beans/nuzlocke-tracker-p74f--genlocke-transfer-ui.md
Normal file
58
.beans/nuzlocke-tracker-p74f--genlocke-transfer-ui.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
# nuzlocke-tracker-p74f
|
||||
title: Genlocke transfer UI
|
||||
status: todo
|
||||
type: feature
|
||||
priority: normal
|
||||
created_at: 2026-02-09T07:42:33Z
|
||||
updated_at: 2026-02-09T07:46:06Z
|
||||
parent: nuzlocke-tracker-25mh
|
||||
blocking:
|
||||
- nuzlocke-tracker-lsc2
|
||||
---
|
||||
|
||||
After completing a genlocke leg, the user selects which surviving Pokemon to carry forward to the next leg. Transferred Pokemon appear as egg encounters in the next run.
|
||||
|
||||
## Flow
|
||||
|
||||
### Transfer Step (between legs)
|
||||
1. User completes a leg (beats the Champion / enters Hall of Fame)
|
||||
2. A transfer screen is shown, displaying all surviving Pokemon from the completed leg
|
||||
3. User selects which Pokemon to transfer (typically up to 6, the HoF team)
|
||||
4. Selected Pokemon are "bred" — they'll appear as level 1 eggs/starters in the next leg
|
||||
5. The transfer is recorded and the next leg's run is started
|
||||
|
||||
### Transfer Records
|
||||
- Each transfer links a source encounter (from the completed leg) to a new egg encounter (in the next leg)
|
||||
- The new encounter in the next leg should:
|
||||
- Be the base form of the evolutionary line (e.g., Charizard → Charmander egg)
|
||||
- Have a special status/flag indicating it's a genlocke transfer (not a wild encounter)
|
||||
- Optionally keep the same nickname
|
||||
- Not count against any route's first-encounter rule
|
||||
|
||||
### UI Components
|
||||
- Transfer selection screen: grid of surviving Pokemon with checkboxes
|
||||
- Show each Pokemon's sprite, nickname, species, and level
|
||||
- "Transfer Selected" button to confirm
|
||||
- Option to skip transferring (transfer none) for added challenge
|
||||
|
||||
## Backend
|
||||
- `POST /api/v1/genlockes/{id}/legs/{leg_id}/transfer` — Accept list of encounter IDs to transfer
|
||||
- Creates `GenlockeTransfer` records linking source encounters to new egg encounters
|
||||
- Auto-creates the egg encounters in the next leg's run
|
||||
|
||||
## Data Model
|
||||
- `GenlockeTransfer` table: from_leg_id, to_leg_id, from_encounter_id, to_encounter_id
|
||||
- Egg encounters need a way to be distinguished from regular encounters (possibly a flag or encounter method)
|
||||
|
||||
## Checklist
|
||||
- [ ] Create `GenlockeTransfer` SQLAlchemy model (from_leg_id, to_leg_id, from_encounter_id, to_encounter_id)
|
||||
- [ ] Create Alembic migration for the GenlockeTransfer table
|
||||
- [ ] Add logic to resolve a Pokemon's base form from its evolutionary chain (e.g., Charizard → Charmander)
|
||||
- [ ] Implement `GET /api/v1/genlockes/{id}/legs/{leg_order}/survivors` — return surviving (non-fainted) encounters from a completed leg
|
||||
- [ ] Implement `POST /api/v1/genlockes/{id}/legs/{leg_order}/transfer` — accept encounter IDs, create GenlockeTransfer records, create egg encounters in the next leg's run
|
||||
- [ ] Build the transfer selection screen: grid of surviving Pokemon with checkboxes, sprites, nicknames, and levels
|
||||
- [ ] Add a "Transfer Selected" confirmation action and a "Skip" option
|
||||
- [ ] Wire up the transfer screen to appear after leg completion (integrate with leg progression flow)
|
||||
- [ ] Ensure transferred egg encounters don't count against route first-encounter rules
|
||||
- [ ] Add TypeScript types for transfer API request/response
|
||||
Reference in New Issue
Block a user