diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..67adffc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,78 @@ +# Changelog + +All notable changes to Darkwatch are documented here. + +Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html) + +--- + +## [Unreleased] + +## [0.1.0] - 2026-04-11 + +### Added + +**Auth & Access** +- Email/password authentication with JWT httpOnly cookies +- Register, login, and logout flows +- Campaign membership — DM and player roles +- Invite link system for joining campaigns +- Per-campaign role enforcement — API middleware, socket auth, and frontend gating + +**Campaign Management** +- Campaign CRUD with real-time sync via Socket.IO +- DM and player roles with distinct permissions per campaign + +**Characters** +- Full character CRUD — stats (STR, DEX, CON, INT, WIS, CHA), gear, talents, HP, XP, currency +- Auto-calculated AC and derived attacks +- Talent effects — stat bonuses, AC, attack/damage, gear slots, HP scaling +- Click-to-edit stats with view/edit mode split +- Per-character color picker +- DiceBear avatars with style picker +- Character title auto-derived from class + alignment + level +- Character creation wizard — 4-step modal: name/class/ancestry → 3d6 stat rolling → background/alignment/deity → review (HP, gold, gear slots, title all auto-derived) + +**Spellcasting** +- 34 Tier 1–2 spells (Wizard and Priest) +- 1d20 cast checks with exhaustion on failure +- Wizard mishap table (d12, auto-applied with undo) +- Priest penance mechanic +- Rest to recover spells +- Spell focus indicator on DM character cards + +**Dice Rolling** +- 3D animated dice with predetermined outcomes +- Character-colored dice +- Delayed roll log +- Advantage/disadvantage support +- Long-press for advantage/disadvantage on mobile + +**Torch Timer & Luck Tokens** +- 60-minute torch countdown, synced across all clients +- Luck token toggle per character + +**Atmosphere Effects** +- Fog overlay with intensity slider — DM-only, synced via socket +- Fire effect (Three.js particles) +- Rain and embers (tsParticles) + +**Initiative Tracker** +- Team-based Shadowdark initiative: party rolls d20 individually (system takes highest) vs DM's single d20 for enemies +- Rolling phase: each player rolls for their character, DM rolls for enemies +- Active phase: turn order display, round counter, side highlighting +- Enemy HP tracking — visible to DM only, hidden from players +- Add/remove enemies mid-combat +- Real-time sync via Socket.IO +- Combat state persisted to database (survives server restarts) + +**DM Tools** +- Compact DM character cards — 3-up grid showing HP, AC, luck, torch, and stat modifiers +- Atmosphere control panel (DM-only) + +**UI & Platform** +- Medieval visual theme — Cinzel + Alegreya fonts, parchment texture, gold filigree, dark color scheme +- Mobile layout — full-screen character sheet, roll log drawer +- Custom SelectDropdown — consistent cross-platform styling +- MariaDB 11 via Docker (replaced SQLite)