442c28e1078ffef987c82a18f7428b790518a635
Mirrors the depth pass djupet just got, but targeting this project's own actual gaps (its Kodex/lore.ts was already well-built, confirmed via survey -- left untouched): - text_language required flag: 'has_language', which no choice anywhere ever set -- a genuinely dead, unreachable event. Worse: the character Maja unlocks via unlockEventId: 'text_language', so she was unreachable too. Added language_choice (learn to speak Thörnepherian vs. only understand it) to actually set the flag, fixing both at once. - eko had exactly one spender (exert_echo, fixed 30 cost, no scaling). Added echo_network (unlock) -> call_in_echo (repeatable, scaling cost, restores fäste) plus erase_the_search, which pays off Jonna's disappearance thread (discord_erik_missing) by having the private investigator looking for her lose the trail permanently. - researcher_joins (doktorand) was a flat effect event; converted to a choice (full trust vs. arm's length) mirroring djupet's Hassan arc. - Neither new arc's flags touched the win/lose ending text -- same issue djupet had. showOverlay now picks a variant based on which flags are set, most-specific match first. - barare past nine was flavor-only (nine_masks_carved exists but no event marks outgrowing it); added barare_overflow + bigger_mill, mirroring djupet's troende>9 branch. - Campus (6 of 9 locations were flavor-only, same shape as djupet's Möllan/Universitet gap) got its first real tie: campus_regular event + campus_access upgrade. - yra pool skewed entirely heavy/unsettling with no comic-relief beat (inverse of djupet's original all-comic kaos pool) -- added two lighter entries for tonal variety. No test suite exists for this project (unlike djupet) -- verified via typecheck, build, and real browser checks against injected save state: all upgrade gating (echo_network -> call_in_echo/erase_the_search, campus_regular -> campus_access) confirmed correct, call_in_echo's cost scaling and faste restoration confirmed by inspecting state before/after two real purchases, and all five new ending variants (plus the combined doktorand+language case) render correctly with proper priority ordering. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Thön
Idle game about a small circle of "bärare" (carriers) weaving open a breach to Thön from a disused sawmill in Skellefteå, Sweden.
Inspired by the mythology, masks, and lyrics of the Swedish band Vildhjarta.
Stack
Vanilla TypeScript + Vite. No framework. Leaflet for the map.
Dev
npm install
npm run dev # localhost:5682
npm run typecheck
npm run build
Mechanics
- Sken — passive income, spend on upgrades
- Eko — network-effect resource that scales with more bärare
- Bräsch — grows as the weave deepens, unlocks areas and events
- Fäste — your grip on this side; reaches zero and you lose
- Yra — builds naturally, triggers chaotic events at 100
- Väv — reach 100 to complete the weave; unlocked via Thörnepherian
Click locations on the Skellefteå map to visit them. There is a cooldown.
Languages
TypeScript
85.7%
CSS
13.6%
HTML
0.5%
Dockerfile
0.2%