Adds allowedTypes: string[] to NuzlockeRules. When set, the encounter selector hides non-matching Pokemon and the routes endpoint filters out routes with no matching encounters, so only eligible locations appear. Type picker UI in RulesConfiguration; active restriction shown in RuleBadges. Backend accepts allowed_types query param and joins through RouteEncounter.pokemon to filter by type. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.4 KiB
title, status, type, priority, created_at, updated_at, parent
| title | status | type | priority | created_at | updated_at | parent |
|---|---|---|---|---|---|---|
| Add static encounter filter rule | completed | feature | normal | 2026-02-20T19:56:27Z | 2026-02-21T11:04:45Z | nuzlocke-tracker-49xj |
Control whether static encounters are available in the encounter selector. Static encounters already exist in the route encounter tables (e.g., Zapdos in Power Plant, Snorlax on Route 7 in X/Y). This rule acts as a display filter, not a route-lock bypass like gift clause.
Motivation
Static encounters can feel unfair in nuzlockes because they are deterministic — the player is forced to pick a specific Pokemon rather than getting the randomness that makes nuzlockes fun. Example: Snorlax blocks Route 7 in X/Y. By definition it is the first encounter, but being forced to take it reduces variety.
Some static encounters are also overpowered (legendaries), which some players want to avoid.
Design
Rule: staticClause: boolean (default: true — static encounters enabled by default). When disabled, encounters with a static encounter method are hidden or grayed out in the encounter selector, so the player skips them and gets a different first encounter.
This is NOT like gift clause. There is no dual-encounter per route. Disabling static encounters simply filters them out of the available encounter pool for a location. The player still gets one encounter per area — just not the static one.
Encounter method: The existing encounter tables already include static encounters (e.g., Zapdos in Power Plant). The static encounter method may already exist in seed data — verify before adding. If not present, add it to seed data and METHOD_CONFIG / METHOD_ORDER.
Frontend behavior:
- When
staticClauseis enabled (default): static encounters appear normally in the encounter selector - When
staticClauseis disabled: static encounters are hidden or visually grayed out in the encounter selector, preventing the player from selecting them
Checklist
- Verify
staticencounter method exists in seed data; add toMETHOD_CONFIG/METHOD_ORDERif missing - Add
staticClausetoNuzlockeRulesinterface andDEFAULT_RULES(default: true) - Add
RuleDefinitionentry undercorecategory - Frontend: filter or gray out static encounters in encounter selector when
staticClauseis disabled - Backend seed data: add
staticClausetoDEFAULT_RULESininject_test_data.py