# Light & Dark — Roadmap Destination: **polished vertical slice** — Regions 1–2, save system, skill upgrades. Proves the core loop is fun before scaling to the full vision. ## Design decisions (locked) - **Death penalty**: on death, coins drop into a **corpse** (faded player model) at the death spot; touch it to reclaim them. Dying again without reclaiming keeps only 50% (a new corpse appears, the old one vanishes). Butterfly jars are lost for good on death. Void deaths (falling out of the world) leave no corpse. - **Skill upgrades**: - **Vendor** (smith/trainer) gives direct linear power upgrades. Upgrades one selected spell; changing selection costs coins. - **Gems / rings** give alternate behaviors / sidegrades. - **Ranged identity**: keep the bolt, add upgrades (no charge-up / homing rework). - **Fairy (in slice)**: guide + ambient light source (bonus flow regen near player). Scout mode, teleport, fairy holes deferred to regions 3+. - **Ascended armor**: cut for now. Awakened is good enough at the start; less balancing needed. ## Milestones ### M0 — Foundation (the game remembers) | Item | Effort | Notes | |---|---|---| | ~~Save/persistence system~~ | L | **DONE (2026-09-28)**: JSON save to `saves/`, save via pause menu. Stores player state, room, coins, equipment, inventory, quests, tokens, boss diary, defeated bosses, broken doors. | | Charge -> Flow rename | S | Code + UI + configs. | | ~~Main menu~~ | M | **DONE (2026-09-28)**: Select Game (greyed with no saves), New Game (name entry), Settings (rebinding), Quit. Wipe-all-saves button (bottom right) with confirmation dialog. | | ~~Lantern save points~~ | M | **DONE (2026-09-29)**: Lanterns are explicit save points — walk up and press F to save; you respawn at your last lantern. Visible radius removed. | ### M1 — Region 1 complete loop | Item | Effort | Notes | |---|---|---| | ~~Death penalty (drop coins, reclaim at death spot; fairy marks it; lose on 2nd death)~~ | M | **DONE (2026-09-29)**: corpse at death spot holds 100% of coins; a repeat death before reclaiming keeps only 50% and the old corpse vanishes. Butterfly jars are lost for good on death. | | ~~Fairy companion (guide + ambient light source -> bonus flow regen)~~ | M | **DONE (2026-09-29)**: fairy follows behind the player's head; flips with facing. | | More quests (repeatable + one-time; system exists) | S | Just content. | | Lore dialogue for fairy / NPCs | S | Needs written copy. | ### M2 — Skill upgrades | Item | Effort | Notes | |---|---|---| | Vendor (smith/trainer) NPC | M | Reuses NPC + coin systems. | | Vendor upgrades (linear): Dash = lower cooldown, Ranged = more damage, Tether = longer bind/fear | S | Data + UI. | | Ring slot + gems (sidegrades): Dash = speed-stacks / refund-on-kill / afterimage taunt; Ranged = pierce (light) / aoe (shade) / kill-stacks; Tether = boss effects / higher threshold | L | New slot, new item type, build UI. | ### M3 — Region 2: shade matters | Item | Effort | Notes | |---|---|---| | Shade-gated interactions (doors, an NPC, an area) | S-M | Room JSON + existing toggle. | | New enemy behaviors (patrol, dodge-and-leap, burrow-shooter) | M | Enemy system supports it. | | Enemy line-of-sight detection (radius -> raycast) | S-M | Replace/augment euclidean aggro (`main.py:4329`) with a `Rect.clipline` raycast against solid platforms so walls block vision. Per-type `"detection": radius/los` config in `enemy_types.json` + editor toggle. Edge cases: skip the enemy's own support platform, sample player center+feet for tolerance, apply LOS to boss slam `trigger_close/far`. | | ~~Quick recharge pickup~~ | S | **DONE (2026-09-29)**: butterfly jars — collect up to 3, press G to instantly refill Charge. Lost on death; respawn at their points after saving at a lantern in a different room or reloading. | | Ability tweaks: ranged upgrades, ground-slam knockback/iframe, light-step buffs | M | Picks up remaining notes ideas. | | Region-2 boss + ability pacing | M | Re-align pacing (Ranged already exists). | ### Stretch / core (post-slice, in order) - Fast travel (rune stones) - Fairy scout + bond teleport + fairy holes - Regions 3-5 per pacing notes - World-change weapon (stretch-end, decide variant) ### Cut - Ascended armor (removed). ## Dependencies - Save is the keystone: death penalty, main menu, and any progress feature hang off it. - Fairy and Flow rename can run in parallel with M0.