Files
Light_And_Dark/light_and_dark/ROADMAP.md
T
Lena 002d1e83bf fairy stuff
fairy quest and attack mode
2026-10-05 18:19:49 +02:00

6.6 KiB
Raw Blame History

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).
  • Bosses: after the player first enters a boss's detection range (Light form), it tracks them permanently — ignoring range and Shade. The flying boss (Sky Terror, boss_02) casts a limited number of skills per slam-cycle: normal 1 (2 at ≤33% HP), Hard 2 (all 3 at ≤20% HP). Bosses drop a per-boss token that feeds the Boss Diary.
  • 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.
Flying boss + boss tokens M DONE (2026-10-05): Sky Terror (boss_02) in room_08 — 51 HP, poison-free slam, skill-cycle phases (2 at ≤33%). Drops a per-boss token feeding the Boss Diary; Hard refight (room_boss_fly_refight) starts at 2 skills/cycle and hits all 3 at ≤20% HP.
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 the euclidean aggro in Enemy.update 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)

  • Map system (current-room minimap -> world graph -> lantern fast travel) — see below
  • 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).

Map system (deferred — brainstorm, not started)

Feels huge; split into two independent features rather than one.

  1. Current-room minimap — cheap and self-contained: scale room_bounds + platform rects + a player arrow into a corner/overlay panel. No new data, no persistence. Good first slice.
  2. World map / region graph — nodes = rooms, edges = exits[] (derivable automatically from room JSON rather than hand-authored).

Design notes

  • Layout: add meta.map_x / meta.map_y (+ optional meta.region) per room and place nodes in the editor; fall back to auto-layout from exit topology if absent.
  • Discovery: persist visited_rooms and discovered_links alongside the existing lantern-only save data. Undiscovered = "?" / fog.
  • Theme hook: map clear in Light, fogged/faded in Shade, or fog dispelled by lanterns — reinforces the light/shade identity (keep it cosmetic).
  • Fairy as cartographer: she fills in rooms and comments on new ones; reuses her room-aware voice lines and mirrors the Boss Diary UI pattern.
  • Fast travel: discovered lanterns become warp nodes; overlaps with the deferred "rune stones" / "fairy bond teleport" items.
  • Edge cases: one-way exits, boss-refight rooms, the missing room_town_gloomreach.json, exits with empty to (ignore), multiple entry spawns = one node.

Phasing

  1. Current-room minimap overlay.
  2. visited_rooms + world map from auto-derived exit links (auto-positioned).
  3. Manual map_x/map_y layout in the editor.
  4. Lantern fast travel + fairy-bond teleport.

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.