Files
nuzlocke-tracker/.beans/nuzlocke-tracker-knnc--add-staticlegendary-clause-rule.md
Julian Tabel 993ad09d9c
All checks were successful
CI / backend-lint (push) Successful in 10s
CI / actions-lint (push) Successful in 14s
CI / frontend-lint (push) Successful in 22s
Add type restriction rule (monolocke)
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>
2026-02-21 12:22:05 +01:00

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 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

  • Verify static encounter method exists in seed data; add to METHOD_CONFIG / METHOD_ORDER if missing
  • Add staticClause to NuzlockeRules interface and DEFAULT_RULES (default: true)
  • Add RuleDefinition entry under core category
  • Frontend: filter or gray out static encounters in encounter selector when staticClause is disabled
  • Backend seed data: add staticClause to DEFAULT_RULES in inject_test_data.py