Files
nuzlocke-tracker/.beans/nuzlocke-tracker-49xj--overhaul-nuzlocke-rules-system.md
Julian Tabel e25d1cf24c
All checks were successful
CI / backend-lint (push) Successful in 9s
CI / actions-lint (push) Successful in 15s
CI / frontend-lint (push) Successful in 21s
Remove unused nuzlocke rules, reorganize into core and playstyle
Remove firstEncounterOnly, permadeath, nicknameRequired, and
postGameCompletion from the rules system — they are either implicit
(it's a nuzlocke tracker) or not enforced. Move levelCaps to core
(it's displayed in the sticky bar). Create a new "playstyle" category
for hardcoreMode and setModeOnly — informational rules useful for
stats but not enforced by the tracker. Remove the completion category
entirely. Add sub-task beans for the rules overhaul epic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:20:23 +01:00

53 lines
2.6 KiB
Markdown

---
# nuzlocke-tracker-49xj
title: Overhaul Nuzlocke Rules System
status: todo
type: epic
priority: normal
created_at: 2026-02-20T13:22:23Z
updated_at: 2026-02-20T13:27:58Z
---
Audit and overhaul the nuzlocke rules configuration. The current rules are a flat collection of boolean settings, some of which don't meaningfully affect tracker behavior. This epic cleans up existing rules and adds new rules for popular variants with actual tracker logic.
## Scope
### Rules to REMOVE (5)
These rules either define what a nuzlocke is (always true) or don't affect tracker behavior at all:
- `firstEncounterOnly` — implicit; it's a nuzlocke tracker
- `permadeath` — implicit; it's a nuzlocke tracker
- `nicknameRequired` — not enforced or tracked
- `setModeOnly` — not enforced or tracked
- `postGameCompletion` — not enforced or tracked
### Rules to KEEP (5)
These actively affect tracker logic:
- `duplicatesClause` — used in encounter creation and bulk randomization
- `shinyClause` — used in encounter creation (bypass route-lock)
- `pinwheelClause` — used for zone-based encounter logic
- `hardcoreMode` — used in BossDefeatModal (auto-win, 1 attempt)
- `levelCaps` — displayed in sticky bar on encounters page
### New rules to ADD (4)
These are boolean flags with real tracker logic:
- `egglocke` — all caught Pokemon are replaced with traded eggs. When enabled, encounter Pokemon selection should allow picking from ALL Pokemon (not just the game's regional dex), similar to the admin panel encounter creation / boss team creation flow.
- `wonderlocke` — all caught Pokemon are Wonder Traded away. Same as egglocke: encounter Pokemon selection allows picking from ALL Pokemon.
- `randomizer` — the run uses a randomized ROM. Same behavior: encounter Pokemon selection allows picking from ALL Pokemon since the dex is randomized.
- `giftClause` — in-game gift Pokemon are free and do not count against the area's encounter limit. When enabled, gift-origin encounters should bypass the route-lock check (similar to how shinyClause bypasses it for shinies).
### Complex rules (need design work)
These need more complex logic and are tracked as draft sub-tasks:
- Type Restrictions (Monolocke) — bs0y
- Team Size Limit — fv7w
- Static/Legendary Clause — knnc
## Children
Work is tracked in sub-tasks:
- **o7r8** — Remove unused nuzlocke rules
- **fitk** — Add egglocke, wonderlocke, and randomizer rules
- **sij8** — Add gift clause rule
- **bs0y** — Add type restriction rules (monolocke) *(draft)*
- **fv7w** — Add team size limit rule *(draft)*
- **knnc** — Add static/legendary clause rule *(draft)*