- The log view only re-rendered when state.log.length changed, but the
log is capped at 40 entries — so once a run had logged 40+ things
(easy in a normal session), every entry after that point, including
choice-event outcomes, upgrade purchases, and location visits,
stopped appearing even though the underlying state updated. Fixed
by tracking a monotonic logSeq counter that increments on every
push regardless of the cap, and rendering off that instead of
array length. Consolidated the repeated unshift+cap logic into one
pushLog() helper so future call sites can't reintroduce the bug.
- Added a pause button (and "PAUSAD" indicator) that freezes the tick
loop without touching game state, so a hectic run can be paused to
think without it counting as a save-scummy state mutation. Manual
actions (buying upgrades, visiting locations) still work while
paused, since that's usually the point of pausing.
- The "Aktiva områden" sidebar only ever listed the 3 story-gated
core areas, while the map has 7 clickable locations — making it
look like 4 of the map pins didn't really exist. Split the panel
into "Ritualens kärnplatser" (the 3 gated ones, unlock status shown
as before) and "Övriga platser" (the 4 always-open flavor
locations), so the sidebar and map agree.
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>
Standard/kaos events can now present 2 options instead of a fixed
effect, pausing new event triggers until the player answers. Adds
4 choice events as a first batch; resources keep accruing while a
choice is pending.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Help modal (? button or keyboard shortcut): how-to-play in Swedish,
flavor text, full changelog sourced from src/data/version.ts
- src/data/version.ts: versioned changelog entries, in-universe Malmö voice
- Map zone clicks: each location on the Leaflet map is now clickable.
Unlocked cult areas give resources + log entries. Locked locations show
lore hints. 30s cooldown per location so it's a decision, not a spam button.
- Dockerfile + nginx.conf + docker-compose.yml (port 5684)
- Gitea CI workflow (identical to 2048 — derives image from repo path, needs
TKNTKN secret, pushes :latest and :sha tags)
- README.md with mechanics summary and docker instructions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 20+ new events drawing from Anders Fager, Kult, and Call of Cthulhu:
ICA cashiers who never blink, SJ trains stopping in non-existent tunnels,
Kult lictors as city officials, death servants finishing lectures, Deep Ones,
investigators dreaming about us, stars being right over Lund Observatory
- Rewrite upgrade descriptions to match the register: mundane detail,
matter-of-fact horror, no melodrama
- Add a new mid-game upgrade (Paktens Förnyelse) to smooth the progression
- Fix recruit button: was destroying DOM every 30fps tick, killing mousedown→click
events; now only rebuilds when availability/affordability actually changes
- Fix double andakt deduction in recruit effect
- Fix map growing over log (proper flex constraints)
- Add localStorage save/load with versioned key (SAVE_VERSION bump invalidates
old saves); autosaves every 10s and on upgrade purchase, clears on restart
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Idle cult management game set in Malmö, Sweden. Manage Troende,
Andakt, Dread, Hemlighet and Kaos while completing the Grand Ritual
before investigators shut you down. Lovecraftian flavour, Henderson-
tier chaos events, OSM/Leaflet map with dread spread markers across
Rosengård, Värnhemstorget, Turning Torso and Øresundsbron.
Vanilla TypeScript + Vite, no framework.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>