Replace the accordion with a pager: the sidebar is now a tab list and
exactly one section renders at a time as its own page - no more single
long scroll. Adds Prev/Next buttons labelled with the neighbouring
page names, arrow-key paging, last-open-page persistence, and search
that dims non-matching tabs with Enter jumping to the first match
(Escape clears). All trackers, clue ticks and notes unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The nat-01/00 home rule (shipped v2.0.2) only hooked DGPercentileRoll's
toChat; lethality rolls are d100 tests too and now trigger it as well.
Verified live with forced rolls: nat 01 posts the PROVIDENCE card, nat 00
posts CALAMITY, d6 table result + styling + variant flags all correct.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every part is now a collapsible card - all closed on load, click a header
or nav entry to open (state persists per section). Search auto-opens
matching sections; Open/Close-all buttons added.
Content substantially expanded throughout: Provost phone-call read-aloud
with Q&A, road/diner beats, cold-exposure clock, cruiser/compound detail,
d6 dread beats, tiered console work with the uplink dilemma, Agnes
dialogue lines, round-by-round Congregation script, pond/Baptism rules,
Vance's 5-segment wiring-clock (with tracker), backward-manual lines,
concrete generator/transformer procedures, implosion escape, expanded
cover-up tasks with a d6 complications table, player-questions Q&A, an
Improv Toolkit (name/sensory/static banks), tonight's environmental
rules, and a tickable half-hour Dawn Clock (21:00-06:30).
HP-bar animation moved from width to transform:scaleX.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The legacy SVG path (still referenced by packs compiled before the PNG
switch) now displays the same generated artwork, so older imported
copies of journal (8) show the correct climax image without a pack swap.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Single self-contained HTML file (documentation/false-alarm-gm-screen.html):
sidebar navigation across the whole scenario (briefing, all scenes incl.
the Congregation midpoint, climax, cover-up, NPC stat blocks, the truth,
world/timeline, SAN quick-ref), full-text search (/), per-section GM
notes, clue checklists, NPC HP trackers, and an editable agent/cell
tracker - all persisted in localStorage with JSON export/import for
moving between computers. No dependencies, works offline, print-safe.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Journal (8) THE TEAR's reveal page now shows the generated pencil artwork
(handout-entity.png, full resolution) instead of the fractal SVG.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The three original FALSE ALARM NPCs now match the Congregation set:
Deputy Vance (Changed), Dr. Rostova, and the Tear (rendered as a suited
figure with a receding non-Euclidean void for a head - 'almost done
learning our shape'). Pure asset swap at the existing token paths.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Agnes Corliss, the Returned Petrie brothers and the Called now use the
black-and-white pencil portraits (768px PNG) in place of the stylized
placeholders. Pure asset swap - pack document paths unchanged. SVG
sources retained alongside.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New Scene 2.5 at Cold Cauldron Crossing (Ridge Road mile 9): the town
comes up the mountain. Adds:
- 4 NPCs built to challenge 4 Agents: Agnes Corliss the Switchboard Widow
(the Chorus SAN drain through the Agents' own radios, Stand Still action
denial, Speak the Names; weakness = her dead husband's handset), the
Returned Petrie brothers (armor 3, numbing grasp, pond Baptism drag,
fire-vulnerable), and the Called x5 (restraining civilian wall - killing
one is 1/1D8 SAN and a cover-up disaster).
- New battle map (blueprint style, 4400x3200 2x PNG) with 8 placed tokens,
new gear item (Elias Corliss's Ham Handset), 4-page GM journal 13 with
read-aloud, tactics, non-massacre outs and aftermath, plus a Scene 2.5
pointer in the scene guide.
- Scene coordinate fix: padding 0 on all adventure scenes and centered
token placement (tokens previously offset by the 0.25-padding origin).
Verified by fresh import in isolated Foundry: 7 actors, 13 journals,
4 scenes, 8 tokens on the crossing map at correct positions.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Root cause of the toggle cycle bug: the theme set display:flex on
#pause.dg2-pause unconditionally, out-specificity-ing core's hidden
(unpaused) state. After unpausing, the pause element stayed visible and
showed Foundry's default GAME PAUSED markup (the overlay injector
correctly skips unpaused renders). Scope the flex layout to
#pause.dg2-pause.paused and explicitly hide :not(.paused).
Verified three full pause/unpause cycles: paused = radar scope visible,
unpaused = element hidden. (Earlier tests misread visibility via
offsetParent, which is always null for position:fixed elements.)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The v2.0.3 pauseGame-hook re-injection raced Foundry's own pause re-render:
on slower clients the default GAME PAUSED markup landed after our overlay,
so pressing Space after an unpause showed the stock screen. Register a
DG2GamePause subclass (CONFIG.ui.pause) that applies the radar-scope
overlay inside _onRender - part of every render, no timing window. Hook
fallbacks retained (with retries) for cores lacking the AppV2 GamePause.
Verified with five rapid unpause/pause cycles at 150ms settle.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The radar-scope pause overlay only applied via the renderGamePause hook,
which does not fire on every pause toggle path — pressing Space after an
unpause could show Foundry's default GAME PAUSED. The overlay injector is
now idempotent and wired to renderGamePause AND pauseGame (plus a ready
check), so the scope applies on every toggle; verified across repeated
unpause/pause cycles.
Also rasterize the three FALSE ALARM NPC tokens (Rostova, Changed Vance,
the Tear) to 1024px PNGs, matching the map fix in v2.0.1.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pause: replace the stock spinner with an animated DG2 radar scope (centre-
swept beam, phosphor trail, range rings, glinting blips) captioned MISSION
PAUSED / ALL STATIONS HOLD.
Home rule (criticalEvents automation setting, default on): when an Agent
rolls a natural 01 on a percentile test, roll 1d6 on the PROVIDENCE table
(1 = recover 1D4 SAN ... 6 = the whole cell gains +20%/1 WP); a natural 00
rolls on the CALAMITY table (1 = equipment failure ... 6 = everyone in the
scene loses SAN as something notices the cell). Events post as dramatic
gold/red dossier chat cards with the d6 attached (themed 3D dice); the
Handler applies effects. Verified both paths end-to-end in isolated Foundry.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Foundry rasterizes SVG scene backgrounds into a fixed texture, so the
vector maps looked low-res when zoomed in. Render the three battle maps to
native-resolution PNGs via headless Chrome (compound 5200x3600, server
3600x2800, dome 4000x4000) and point the scenes at them at grid 200 px/
5-ft square (same 26x18 / 20x20 layout, 1:1 with the texture). Tokens
repositioned to the 2x coordinate space. Journal handouts stay SVG (they
render as crisp vector <img> in journals). Bump to v2.0.1.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Grow the adventure from 7 to 12 journals with a player intelligence packet
and deep setting material:
- 6 new document handouts (SVG, classified-file style): A-Cell operational
memo, FAA site fact sheet (ME-07 Sable Ridge), regional map (Corliss
Notch / ridge road / Cold Cauldron Pond), a full local newspaper front
page, a years-to-hours activity timeline, and Vance/Rostova dossiers.
- New setting journals: the site, the town of Corliss Notch and the North
Woods (with local legend), the recent-activity escalation, persons of
interest, and a GM 'The Truth' journal tying folklore -> the hum ->
phantom returns -> the deaths -> Rostova -> Vance into one arc.
- Renumbered journals 1-12; briefing now leads with the memo handout.
Verified importing in isolated Foundry: 4 folders, 12 journals, all 8
handout image pages fetch 200.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A complete, importable 3-4 hour Delta Green scenario (packs/false-alarm,
Adventure type). Importing creates four 'Operation FALSE ALARM' folders and:
- 3 actors: Dr. Rostova (npc, frozen), Deputy Vance Changed (unnatural),
The Tear (unnatural, firearms-immune, 1D6/1D20 SAN).
- 6 items: service pistol (3 rounds missing), pipe wrench, corrupted data
drive, keycard, thermite, cold-weather kit.
- 7 journals: player briefing + 3 image handouts (radar log, static
waveform, the tear) + 3 GM guides (scenes/clues, NPCs/threat, cover-up).
- 3 scenes with blueprint white-on-black maps and placed NPC tokens:
the compound, the server room, the radar dome.
All art is hand-authored SVG in the classified-dossier house style
(assets/adventures/false-alarm). Verified importing cleanly in an isolated
Foundry: folders, actors, journals and mapped scenes all materialise.
Also drop an invalid prototypeToken.sight override from the agent build.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add the eight black-and-white pencil bust portraits (PNG, 768px) to
assets/tokens and point each agent's img and prototypeToken at its portrait.
Build script now resolves .png. sips on the target Mac cannot emit WebP,
so PNG is used.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Eight ready-to-play agents spanning the combat spectrum, each with stats,
skills, a bio, employer/education, two bonds, and appropriate firearms:
- SITKA (Special Operator, elite) ... MERCER (Forensic Scientist, support).
All are combat-capable (firearms 40-80). Registered as packs/field-agents.
Portraits: agents use a neutral placeholder token; build/gen-field-agents.mjs
auto-wires per-agent pencil portraits from assets/tokens/<name>.webp once
present (see assets/tokens/README.md for filenames). Build script committed
for reproducibility.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Chat rework:
- Roll cards are now dark 'Eyes Only' dossier cards with a classification
strip (FIELD OPERATION / THE UNNATURAL / LETHAL FORCE), roll name, and a
target chip. Message frame is colour-accented per roll variant via a
deltagreen2.variant flag set in DGRoll.toMessage and styled on
renderChatMessageHTML. Flavor lines dropped in favour of the card header.
Field Equipment compendium:
- New packs/field-equipment with 60 modern DG gear items across
surveillance, counter-surveillance, forensics, hazmat/protective,
breaching/restraint, non-lethal, and support. Each uses a bundled
white-on-black icon, carries flavourful descriptions with mechanical
bonus notes, and an Agent's Handbook expense tier. Registered in the
Delta Green pack folder.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Registers three Delta Green 2 colorsets with Dice So Nice and applies them
per roll type so the dice match the moment:
- dg2-agency (olive drab, metal, cloudy, bone numerals) -> skill/stat/luck
/weapon checks; set as the table default appearance.
- dg2-lethality (black + blood red, fire texture) -> damage and lethality.
- dg2-unnatural (void violet glass, astral texture, green glow) -> SAN
checks, rituals, and sanity damage.
Dice are tagged in each toChat() via tagRollDice(); registration runs on
the diceSoNiceReady hook and degrades silently when DSN is absent.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- New characterSheetStyle option 'tactical' (default), css/dg2-tactical.css.
- Dark federal-dossier design: charcoal surfaces, olive accent, Public
Sans throughout, uppercase letterspaced name plate and section headers.
- Color-coded HP (olive) / WP (steel) / SAN (red) resource cards.
- Modern underline tab navigation; skill rows as hoverable panels with
dimmed untrained skills and olive value badges; restyled item lists,
inputs, and buttons.
- Item sheets (AppV1) carry the theme class and get matching dark styling.
- Fix: CSS selectors still targeted .deltagreen after the system-id
rename, leaving most stock sheet styling dead - renamed to .deltagreen2.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Percentile roll cards: outcome banners (crit/success/failure) with icons
and margin-of-success text instead of color-only inline styles.
- Damage and lethality cards: Apply Damage / Apply Lethality buttons that
hit targeted or selected tokens, auto-subtracting equipped armor
protection reduced by the weapon's armor-piercing value.
- Sanity damage cards: apply buttons for success/failure loss with GM
whispers for temporary insanity (5+), breaking point crossings, and 0 SAN.
- Ammo: weapon ammo is now numeric with a magazine capacity; attack rolls
expend a round (ammoTracking setting, default on), gear tab shows an
ammo column with a reload control, compendium weapons carry capacities.
- CSS: drop live Google Fonts imports (offline reliability); DG2 styles
with dark-theme support.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rename system id, template/asset paths, settings namespace, and pack
references; repack compendia with corrected asset paths; point manifest
at slaguru666/DeltaGreen2. game.deltagreen API namespace kept for macro
compatibility.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>