--- # nuzlocke-tracker-hm6t title: Pokemon Status Management status: completed type: task priority: normal created_at: 2026-02-04T15:44:37Z updated_at: 2026-02-05T16:47:18Z parent: nuzlocke-tracker-f5ob --- Implement the system for tracking Pokémon status (alive, dead, boxed). ## Checklist - [x] Create Pokémon card/tile component showing: - [x] Sprite, name, nickname - [x] Current status with visual indicator (green/red dot) - [x] Location caught - [x] Implement status transitions: - [x] Alive → Dead (fainted in battle) via StatusChangeModal with confirmation - [ ] Alive → Boxed (stored in PC) — deferred, no boxed tracking yet - [ ] Boxed → Alive (added to party) — deferred, no boxed tracking yet - [x] Add death recording: - [x] Optional: record cause of death (free text, max 100 chars) - [x] Optional: record level at death - [x] Create "Graveyard" view for fallen Pokémon (on RunDashboard) - [ ] Create "Box" view for stored Pokémon — deferred, no boxed tracking yet ## Implementation (death_cause feature) - Backend: Alembic migration adds `death_cause` VARCHAR(100) to encounters - Backend: Model + schemas updated with `death_cause` field - Frontend: `StatusChangeModal` for recording death with confirmation from RunDashboard - Frontend: `PokemonCard` now clickable with status indicator dot and death cause display - Frontend: `EncounterModal` includes death cause input alongside faint level - Frontend: `RunEncounters` shows death cause in route list ## Notes - Status changes should be confirmable (prevent accidental deaths) ✓ - Consider undo functionality for misclicks — not implemented (Nuzlocke rules: death is permanent)