Commit graph

32 commits

Author SHA1 Message Date
Aaron Wood
768c55c6b9 fix: dice overlay no longer blocks clicks, fog alpha wired to intensity, title auto-updates from class/alignment/level
- DiceTray: remove pointer-events:auto from .active so UI remains clickable during dice animation
- FogOverlay: accept intensity prop, map 0-100 to 0.15-1.0 opacity
- CampaignView: pass fog intensity to FogOverlay
- InfoPanel: auto-derive Shadowdark title when class/alignment/level changes
- Add shadowdark-titles.ts utility with full title lookup table from Player Quickstart
- Add CLAUDE.md with project instructions and pre-approved permissions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 03:53:00 -04:00
Aaron Wood
f62e0077d7 feat: rename app title to Darkwatch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:47:06 -04:00
Aaron Wood
47215b48f1 feat: add DM/player role separation — atmosphere, invite, and edit controls gated by role
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:44:27 -04:00
Aaron Wood
e2548ad660 feat: add Login, Register, and Join campaign pages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:38:45 -04:00
Aaron Wood
075a9c5505 feat: add AuthContext, RequireAuth guard, and Darkwatch app routing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:36:38 -04:00
Aaron Wood
11714ecbe4 feat: add credentials:include to all API calls and withCredentials to socket
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:35:01 -04:00
Aaron Wood
e2ce57527f feat: replace particle fire with Three.js FBM shader overlay
Switch fire effect from tsParticles to a full-screen Three.js WebGL
shader using layered FBM noise for volumetric-style flames rising from
the bottom of the screen. Also fix rain/embers canvas banding by
switching them to tsParticles fullScreen mode.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 22:17:36 -04:00
Aaron Wood
bcf118093b fix: tune particle configs — smaller fire, fast circles for rain, better embers
- Fire: 1-5px (was 4-12, balloons), count 60-200, speed 4-10
- Rain: drop line shape (invisible in slim), use fast circles 200-600 at 15-30
  speed so motion reads as streaks
- Embers: 1.5-4px, count 20-80, speed 0.5-2 — clearly slower/dimmer than fire

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 20:01:40 -04:00
Aaron Wood
ecbc696918 fix: rework particle configs for visibility and distinct looks
- Fire: remove broken emitter (not in slim bundle), bigger particles (4-12px),
  more count (80-300), outModes "out" so particles respawn continuously
- Rain: switch to line shape (in slim), size 10-20px for visible streaks,
  higher opacity and speed
- Embers: bump min size to 2-5px, increase count (30-120) for visibility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 19:55:48 -04:00
Aaron Wood
0b626601ac fix: use named handler for atmosphere:update socket.off
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 19:47:46 -04:00
Aaron Wood
c953b8c79c fix: move socket interfaces to module scope, fix CSSProperties import 2026-04-10 19:38:34 -04:00
Aaron Wood
10ba151b6e feat: wire AtmospherePanel and ParticleOverlay into CampaignView 2026-04-10 19:30:51 -04:00
Aaron Wood
55e9019fa9 feat: add AtmospherePanel component with toggles and intensity sliders 2026-04-10 19:29:00 -04:00
Aaron Wood
8da9ac2cf6 feat: add AtmospherePanel CSS module 2026-04-10 19:27:07 -04:00
Aaron Wood
e947e8e127 feat: add ParticleOverlay component for tsParticles effects 2026-04-10 19:25:03 -04:00
Aaron Wood
a6e3ca6066 feat: add tsParticles configs for fire, rain, embers 2026-04-10 19:22:08 -04:00
Aaron Wood
be14a14708 feat: install tsParticles and add atmosphere types 2026-04-10 19:13:39 -04:00
Aaron Wood
33032bcd07 Add torch timer, fog atmosphere, DM card redesign, and avatars
- Torch timer: 60min countdown per character, visual warnings at 10m/5m/1m
- Fog overlay: CSS radial gradient layers with seamless infinite drift
- Fog synced across all clients via socket, adapts to light/dark themes
- DM card redesign: compact layout with HP/AC/luck/torch + modifier row
- Grid changed to 3-up (from 4) with larger fonts
- DiceBear avatars on cards and character sheets with style picker
- Campaign name shown in header
- Server: JSON.stringify fix for object fields in PATCH handler

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:41:22 -04:00
Aaron Wood
9b12482921 Replace native select elements with custom themed SelectDropdown
- New SelectDropdown component with themed styling matching item/talent pickers
- Replaced all 6 native <select> elements (InfoPanel, CampaignView, GearList)
- Consistent appearance across Linux, Mac, and all browsers
- Alegreya font, gold hover highlights, proper theme colors

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 00:32:12 -04:00
Aaron Wood
fbdd9c49ee Fix d100 multi-roll, Linux select styling, and color-scheme support
- d100 rolls now show correct number of percentile + d10 pairs (e.g. 3d100 = 6 dice)
- Add color-scheme: dark/light per theme for native browser controls
- Style select option elements explicitly for Linux Chrome compatibility

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 00:23:25 -04:00
Aaron Wood
98a3054b93 Mobile layout, campaign name, dropdown theme fix, and z-index fixes
- Mobile: full-screen character sheet, stacked banner, compact header
- Mobile: roll log with 3 states (hidden/peek/half-screen), cycle button
- Mobile: long-press dice buttons for advantage/disadvantage popup
- Show actual campaign name instead of hardcoded "Campaign"
- Fix item/talent picker dropdowns using hardcoded dark backgrounds
- Fix z-index: dice tray (10001) > character sheet (10000) > header (9999)
- Compact app header on mobile

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:32:21 -04:00
Aaron Wood
b88fa0cb3e Add luck token toggle, color picker, and click-to-edit ability scores
- Luck token: star toggle (filled/empty) in header, always clickable
- Color picker: input[type=color] next to name in edit mode
- Ability scores: InlineNumber click-to-edit replaces +/- buttons
- Server: added color and luck_token to allowed update fields
- DB: luck_token column migration (default 1)
- Fix dice color for hex color values (was only handling HSL)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:35:49 -04:00
Aaron Wood
51ffb0033a Add 3D dice rolling with predetermined outcomes and character colors
- dice-box-threejs for physics-based 3D dice with @ notation for forced values
- Server rolls dice, all clients animate 3D dice landing on exact values
- Dice color matches rolling character's color (darkened HSL as die body)
- Roll log entry delayed until dice animation completes for suspense
- Red pulsing crit glow on damage buttons (visible on all themes)
- Nat 20 roll entries use proper theme background
- Themed scrollbar on main content area
- Stone texture + metal material with white numbers/outlines

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:01:05 -04:00
Aaron Wood
ff9203f754 Medieval visual theme with 4 switchable color schemes
- Cinzel + Alegreya fonts for old-tome D&D book feel
- Dark parchment (default), light parchment, white, and abyss themes
- CSS custom properties system for all colors, borders, shadows
- Generated PNG textures for parchment grain, speckle, and wood grain
- Ornamental gold gradient separators and decorative header lines
- Deep dramatic shadows and gold-tinted borders on all panels
- ThemeToggle component with localStorage persistence
- Embossed gold buttons with gradient and inner shadow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 17:06:50 -04:00
Aaron Wood
f552a475c1 Wire up talent HP bonus with per-level scaling (e.g. Grit +2 HP and +1/level)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 14:19:18 -04:00
Aaron Wood
0bd83e5f92 Wire up talent effects: stat bonuses, AC bonus, attack/damage bonuses, gear slot bonuses 2026-04-09 13:53:06 -04:00
Aaron Wood
859ac64868 Fix crit glow: only the weapon that scored nat 20 shows crit indicator, not all weapons 2026-04-09 13:46:41 -04:00
Aaron Wood
b0fa709767 Color bars on roll entries, auto-crit damage on nat 20, pulsing crit indicator on damage button 2026-04-09 12:52:54 -04:00
Aaron Wood
3e2e43ca95 Split attack/damage dice buttons, nat 20 highlighting, crit damage, character colors 2026-04-09 12:27:25 -04:00
Aaron Wood
9b1a0df8a5 Fix mobile layout, roll log visibility with character sheet, ngrok host allowlist, misc UI polish 2026-04-09 01:49:23 -04:00
Aaron Wood
20a1778cbd Add dice rolling: server-side engine, roll log panel, DiceButton on stats/attacks, advantage/disadvantage, real-time sync 2026-04-09 01:25:29 -04:00
Aaron Wood
2c73dd9ec4 Initial commit: Shadowdark character sheet manager with item/talent databases, view/edit modes, real-time sync 2026-04-09 01:03:40 -04:00