100 lines
4.7 KiB
Markdown
100 lines
4.7 KiB
Markdown
# 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.4.0] - 2026-04-12
|
||
|
||
### Added
|
||
- **Death timer** — when a character drops to 0 HP they enter a dying state with a 1d4 + CON modifier round countdown (minimum 1). The character card gains a pulsing red border and shows the rounds remaining. Each party turn the timer ticks down automatically when initiative advances. The DM can roll a d20 recovery save from the initiative tracker; an 18 or higher lets the character stand at 1 HP. When the timer expires the character is marked permanently dead (greyed-out card, locked HP). A DM-only Revive button resets the character to 1 HP if story reasons bring them back.
|
||
|
||
## [0.3.0] - 2026-04-11
|
||
|
||
### Added
|
||
- **Snow atmosphere effect** — tsParticles snowfall with size variation for depth, gentle drift, and adjustable intensity (60–300 flakes). Appears in the atmosphere panel between Rain and Embers.
|
||
|
||
## [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.15–0.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.8–2.2 px) and more numerous (50–150 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 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 — 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
|