Add Pinwheel Clause support for zone-based encounters in route groups

Allows each sub-zone within a route group to have its own independent
encounter when the Pinwheel Clause rule is enabled (default on), instead
of the entire group sharing a single encounter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-07 20:22:36 +01:00
parent 0b874a6816
commit 4fb6d43305
16 changed files with 233 additions and 22 deletions

View File

@@ -0,0 +1,25 @@
---
# nuzlocke-tracker-i08l
title: Implement Pinwheel Clause support
status: completed
type: feature
priority: normal
created_at: 2026-02-07T19:18:34Z
updated_at: 2026-02-07T19:21:45Z
---
Add pinwheel_zone column to routes, pinwheelClause toggle to NuzlockeRules, zone-aware encounter locking on frontend and backend.
## Checklist
- [x] Alembic migration for pinwheel_zone column
- [x] SQLAlchemy model update
- [x] Pydantic schema updates
- [x] Route list API helper update
- [x] Encounter creation API zone-aware sibling check
- [x] Seed loader update
- [x] Seed data for Pinwheel Forest zones
- [x] NuzlockeRules per-run toggle
- [x] Frontend types (game.ts, admin.ts)
- [x] Admin route form pinwheelZone input
- [x] Encounter page zone-aware locking, counts, and filtering
- [x] getZoneEncounters helper