darkwatch/CHANGELOG.md
2026-04-11 22:24:18 -04:00

3.9 KiB
Raw Blame History

Changelog

All notable changes to Darkwatch are documented here.

Format: Keep a Changelog Versioning: Semantic Versioning


[Unreleased]

[0.2.0] - 2026-04-11

Added

  • Public brochure site (site/) — static marketing page with feature screenshots, feature rows, publisher section, and Discord/GitHub links; Playwright script generates screenshots automatically

Changed

  • Fire effect — reworked colour ramp (dark red tips → rich orange → amber → warm yellow core); per-column height variation gives the flame a ragged, realistic silhouette; ember glow at the base; overall taller at all intensity levels
  • Rain — more translucent drops (opacity 0.150.40); speed range halved so high intensity feels heavy, not frantic; direction tilts from vertical at low intensity to 70° at high intensity (wind-driven effect)
  • Embers — smaller particles (0.82.2 px) and more numerous (50150 at full intensity)

Fixed

  • Fog overlay no longer jumps at ~3 seconds — a CSS keyframe animation was overriding the inline intensity-based opacity value when it ended; replaced with a CSS transition driven by a React mount state

[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 12 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 — shows which characters have active spell exhaustion

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