Files
nuzlocke-tracker/.beans/nuzlocke-tracker-knnc--add-staticlegendary-clause-rule.md

39 lines
2.4 KiB
Markdown
Raw Normal View History

---
# nuzlocke-tracker-knnc
title: Add static encounter filter rule
status: completed
type: feature
priority: normal
created_at: 2026-02-20T19:56:27Z
updated_at: 2026-02-21T11:04:45Z
parent: 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 `staticClause` is **enabled** (default): static encounters appear normally in the encounter selector
- When `staticClause` is **disabled**: static encounters are hidden or visually grayed out in the encounter selector, preventing the player from selecting them
## Checklist
- [x] Verify `static` encounter method exists in seed data; add to `METHOD_CONFIG` / `METHOD_ORDER` if missing
- [x] Add `staticClause` to `NuzlockeRules` interface and `DEFAULT_RULES` (default: true)
- [x] Add `RuleDefinition` entry under `core` category
- [x] Frontend: filter or gray out static encounters in encounter selector when `staticClause` is disabled
- [x] Backend seed data: add `staticClause` to `DEFAULT_RULES` in `inject_test_data.py`