diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 5a630e5..2207511 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -8,39 +8,19 @@ A living document tracking planned features, improvements, and ideas. Items move ## In Progress / Next Up -### Bugs & Quick Fixes -- [ ] **Dice overlay blocks interaction** — 3D dice canvas captures all pointer events; non-covered areas should remain interactive while dice are rolling -- [ ] **Fog slider alpha not wired** — AtmospherePanel intensity slider not connected to fog CSS opacity - -### Spellcasting System *(major feature)* -Shadowdark uses no spell slots — spells are cast with a check (1d20 + INT/WIS vs DC 10 + tier). Failure exhausts the spell until rest. Full mechanics from the Player Quickstart: - -- [ ] Spell database (Tier 1–2 complete from quickstart; extensible to Tier 3–5) -- [ ] Spellcasting check mechanic with success/fail/crit tracking -- [ ] Per-spell "exhausted until rest" state on failure -- [ ] Focus spell tracking — active focus indicator, maintenance check prompts -- [ ] Wizard mishap table on crit fail (d12, tier-dependent) -- [ ] Priest penance tracking on crit fail (spell locked until penance paid; cost by tier) - -### Character Creation Improvements -- [ ] Stat rolling UI — 3d6 per stat with individual reroll buttons -- [ ] Background selection/roll — d20 table (Urchin, Soldier, Acolyte, etc.) -- [ ] HP calculation from class HD + CON on create and level up -- [ ] Starting gold display — 2d6 × 5 gp shown during creation - ### Leveling & Progression -- [ ] XP threshold fix — next level = current level × 10 (10 XP for lvl 2, 20 for lvl 3, etc.) -- [ ] Talent roll UI on level up — 2d6 on class table, with stacking support -- [ ] Title auto-update from class + alignment + level lookup table +- [ ] **Talent roll UI on level up** — 2d6 on class table, with stacking support; currently talents are added manually + +### Gameplay Tools +- [ ] **Initiative tracker** — turn order display, DM-managed, synced via socket +- [ ] **Death timer** — dying state: 1d4 + CON rounds, d20 each turn to rise at 1 HP +- [ ] **Conditions / status effects** — poisoned, stunned, dying, etc. shown on character cards (DB tables exist from spellcasting work) --- ## Planned ### Gameplay Tools -- [ ] **Initiative tracker** — turn order display, DM-managed, synced via socket -- [ ] **Conditions / status effects** — poisoned, stunned, dying, etc. shown on character cards -- [ ] **Death timer** — dying state: 1d4 + CON rounds, d20 each turn to rise at 1 HP - [ ] **Party loot / shared inventory** — campaign-level shared pool, DM-managed ### Metrics & Analytics *(Prometheus + Grafana)* @@ -79,6 +59,13 @@ Stack: Prometheus (metrics collection) + Grafana (dashboards). Server emits metr --- ## Completed +- [x] Dice overlay fix — canvas no longer blocks pointer events during animation +- [x] Fog intensity slider — wired to CSS opacity +- [x] Title auto-update — derived from class + alignment + level on every change +- [x] Spellcasting system — 34 Tier 1-2 spells, 1d20 cast checks, exhaustion, Wizard mishap table (d12 auto-apply with undo), Priest penance, rest to recover, focus indicator on DM cards +- [x] Character creation wizard — 4-step modal: name/class/ancestry → 3d6 stat rolling → background/alignment/deity → review (HP, gold, gear slots, title all derived) + +## Completed (older) - [x] Campaign CRUD with real-time sync (Socket.IO) - [x] Character CRUD — stats, gear, talents, HP, XP, currency - [x] Auto-calculated AC and derived attacks