- Map markers now show a tiny thumbnail preview in their tooltip when
art exists for that location (same missing-asset-is-fine fallback
as character portraits — onerror just removes the broken img).
- Two new locations, both free-roam from the start: Möllevångstorget
and Malmö universitet (the latter ties into the researcher
character's arc). VISITABLE_LOCATION_IDS picks them up automatically
since it's derived from the data, not a separate list.
- Sällskapet gets a second mode: "Fullständigt arkiv" shows every
character's real portrait and bio regardless of story progress
(bypassing the usedEventIds lock), and clicking any known portrait
opens a lightbox at full size instead of the cropped card thumbnail.
- All 9 character portraits are now in and wired (fixed two more
filename mismatches along the way: anneli-karin and the rest use
hyphens, not underscores, matching what was actually generated).
- More content: 2 new location-visit variants each for the two new
areas, 6 new Standard events (including a found 1930s photograph
that seems to show Lindqvist in a room nobody recognizes), 4 new
Kaos events tied to the new locations and existing ones.
- Caught and fixed a bug in my own new content before commit: an
event's requires.completedEventId pointed at an upgrade id, which
can never appear in usedEventIds — switched to a minRitual check
that actually gates on the right precondition.
Verified: 15/15 tests, clean typecheck and build, and a real
headless-browser pass — all 9 map markers present, full-archive mode
correctly bypassing locks, and the lightbox opening at full size with
a caption.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Real depth additions, not a reskin of another idle game:
- applyOfflineProgress: the cult continues while the tab is closed or
backgrounded (rAF throttles hard when hidden, so real time drifts
well past simulated time). Approximates tick()'s per-second rates
over the elapsed window, capped at 24h, with a narrative "while you
were away" log line scaled to how long that was. Can end the game
in a win or loss if the numbers would have gotten there. Re-checked
on every tab-visibility return too, not just page load.
- Tab-title haunting: document.title cycles short eerie lines
("Han väntar…", "Havet kallar…") while the tab is hidden, restores
on return.
- New late-game upgrade "Viskningen leder er" — once bought, the cult
visits map locations on its own occasionally without a click. A
small loss-of-agency horror beat, not just a QoL toggle.
- Log's newest line now types itself out, with characters
occasionally swapped for occult symbols (☿☠ψ) at a rate scaled to
current dread. Older lines stay static and legible — this never
applies retroactively.
- New "Sällskapet" character gallery: cards for every named recurring
character, locked to a silhouette + "???" until you've actually met
them (checked against usedEventIds). Portraits are optional — missing
art falls back to an initial-letter placeholder, so this works
incrementally as art gets added. First five real portraits included.
- Real bug fix: several Kaos events referenced characters (Göran,
Bengt-Åke, the Sydsvenskan journalist) as if already introduced,
but had no ordering dependency on the Standard event that actually
introduces them — so a fresh cultist could show up in the log
already "familiar" before you'd ever met them. Gated with
requires.completedEventId.
- More flavor text throughout: two new variants per location visit,
6 new Standard events, 4 new Kaos events.
Evaluated three other ideas from the same source and declined them:
a generic milestone-triggered log (Djupet's log already reacts to
real state, not arbitrary point totals), an investigator combat
minigame (hemlighet draining to zero already does this job, and
tower-defense clicking would fight the game's actual tone), and a
node-sequencing ritual minigame (real scope for a twitch mechanic
that doesn't match the rest of the game's pacing).
Verified: 15/15 tests passing, clean typecheck and production build,
and a real headless-browser pass — offline catch-up after a
simulated 5-hour gap, tab-title cycling and restore, and the
character gallery rendering real portraits alongside locked cards.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Purple downward-chevron mark matching the site's eldritch-purple accent, in the same rounded-square favicon style used across the other self-hosted projects.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Adds a full-screen intro/title screen (new 'intro' game phase) with
a moody Malmö/Turning Torso background and a "Börja ritualen"
button; the game no longer starts ticking until the player begins.
- Win and loss overlays now show matching generated artwork behind
the existing text, instead of a flat scrim.
- New "Avbryt" header button lets the player abandon a run mid-game
(with a confirm prompt) via a new 'abandoned' phase, reusing the
existing overlay/restart flow.
- Source images converted from PNG (~2.1MB each) to WebP (~120KB
each) and placed under public/img/ so Vite serves them as-is.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>