Björns feedback efter v0.1.0. Titelskärm med premissen i text och menyn
Fortsätt/Starta, Tutorial, Inställningar, Avsluta (Enter två gånger);
språkval första gången spelet startar. Tutorial i fem sidor med riktiga
sprites och en exempelskylt där resmålet markeras och resten tonas ned,
plus nyckeln 番線/方面/改札 och biljettipset. Kontextuella tips i spelet
tills första banan är klarad, och resmålets tecken markeras på skyltar
och avgångstavlor under tiden. Esc i en bana öppnar en pausmeny
(Fortsätt, Lämna banan, Inställningar, Avsluta spelet) i stället för att
lämna banan; Esc på bankartan går till titeln. Kortare lägestexter så att
bankartans rader ryms på svenska. Test för markeringen, docs, wiki och
skärmdumpar.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/gensound syntetiserar 21 ljud: fyra stationsmelodier i klockklang
(en per station via melody-fältet eller banans id), ankomstjingel,
ding-dong vid inrullning, dörrsignal vid avgång, spärrens pip och
nekande, kiosk, toalett, lärt ord, bekräfta/varning, byte, personal,
vinst, förlust, flygplan, sorl och menymusik. sfx.go spelar effekter
utifrån vad som hänt i sim.Run sedan förra bildrutan. Ljudlagret har
huvudvolym × effekter/musik och byter inte slinga i onödan.
Inställningar (S på bankartan, sparas): volymer, språk sv/en som laddas
om direkt, fönsterskala, fullskärm (F11 överallt) och tangentöversikt.
Fönsterikon från genart. CHANGELOG.md. Tester för ljudfiler, melodival
och inställningar. Docs, wiki och skärmdumpar uppdaterade.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
internal/endless lottar mål ur en seed: en av storyns nätkopplade
stationer (aldrig samma två gånger i rad) med ett resmål som minst ett
tåg går rakt till men inte alla; banan kopieras, bedöms om mot nätet,
sällskapet växer var tredje mål och tidsgränsen krymper. O på bankartan
(eller -endless) startar en omgång; klarade mål ger poäng och XP, Enter
ger nästa mål, förlust eller Esc avslutar och omgången hamnar i
sparfilens poänglista (fem bästa). G två gånger startar New Game+: items,
banresultat, pengar och debuffar nollställs, skills, XP och japanskan
behålls, sällskapet är en person större per varv. Docs, wiki, tester och
skärmdumpar uppdaterade.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Björns tillägg 2026-10-24. Generatorn har nu ett betalt område per perrong
(paidDepth) och toilets inside/outside/both: 005 Ueno och 008b Nippori har
toalett bara innanför, 007b Ueno på båda sidor. Perrongceller görs till
återvändsgränder (bara passagen mot starten behålls, labyrinten repareras)
och det betalda området krymper om det skulle bli genomfart; regeln att
varje perrong nås utan att passera ett annat betalt område testas i
level och levelcheck. level.PathOutside används av testbotar och shots.
Alla genererade banor utom 003 omgjorda, skärmdumpar omtagna.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Resor med byten: en bana kan ha next som pekar på en delbana (kind leg,
syns inte på bankartan). När man klivit av rätt tåg fortsätter samma
omgång på nästa station med klocka, plånbok, sällskap och räknare;
par-tiden adderas, dimma och folk är nya, en Byte!-banner visas och
HUD:en visar resmålet via bytesstationen. Tidsgräns och missade tåg
gäller hela resan. level.ValidateChains kräver sammanhängande kedjor.
Nya resor: 007 Akihabara -> Ueno -> Asakusa och finalen 008 Tokyo (två
våningar) -> Nippori -> Narita flygplats. Slutscen när sista huvudbanan
klaras första gången: planet lyfter, resan summeras, eftertexter;
Progress.StoryCleared sparas; flaggan -ending. tools/levelcheck ritar
banorna och rapporterar problem. HUD-nivån kortas när mätarna tar plats;
poängraden radbryts. Skärmdumpar och docs uppdaterade.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
internal/nav med resources/data/network.json (76 stationer, 11 linjer,
Yamanote som ringlinje). Tåg bedöms från lineId + terminus mot banans
station/to: rätt, fel håll, för långt bort (fler än 12 stationer) eller
ingen trafik; correct räknas ut för nätkopplade banor, 1-4 rätta tåg.
Tågresan visar linjens riktiga stationer. Nya förlustorsaker "Fel håll"
och "För långt bort". Listläge (nästa tåg nere till vänster) och
skyltläge (+50 % poäng) växlas med N på bankartan och sparas; -mode.
Terminalen: biljettautomaten visar linjetavlan på nätbanor. Perronger
P p Q q R r. Bana 006 Ikebukuro med fyra perronger. Banorna 001-005
kopplade till nätet. Skript: waitover och pick calm; poängraden
radbryts; skärmdumpar uppdaterade.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Folk på stationen (NPC:er som vandrar, kliver av tåg och går mot
utgången, blockerar spelaren men inte varandra), vänster-/högerfiler
som bromsar på fel sida, bredare gångar, reklamaffischer (clutter),
japanskt sorl i loop (noise), vagnval med kvinnovagn (stort avdrag med
man i sällskapet, tidsstyrd), kömarkeringar på perrongen, trängsel per
vagn (bonus för tom vagn, svettig-debuff och svårare resa i full vagn,
släpp förbi passagerare) och att folk kliver av innan man får gå på.
Ny bana 005 Ueno. Skärmdumpsverktyget kan filtrera på bana/skript.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- level: Point har Z; banor kan ha floors (lika stora rutnät med namn),
gamla grid-banor läses som en våning; trappor U/D på samma x,y en våning
upp/ner valideras parvis; Neighbors ger grannar över våningar så att
Path, lösbarhet, spärregel och Unreachable fungerar; skyltar har z
- sim: att kliva på en trappa flyttar spelaren till andra änden
(FloorChanges); dimman är per våning och avslöjar trappans andra ände;
tåg hörs/syns bara på egen våning
- game: bara spelarens våning ritas (följare på andra våningar döljs),
HUD och minikarta visar våningens namn, trappgrafik i genart och färg på
minikartan
- bana 004 Tokyo (svårighet 3, tre i sällskapet): start under mark på B1,
trappa upp till 1F med perronger; generatorn gör våningar med trappor
som flaskhalsar; ordboken utökad
- testbotar och tools/shots förstår trappor; två våningsbilder
- docs/README/wiki uppdaterade
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- tools/shots/headless.go: startar en egen headless Wayfire (wlroots
headless-backend + Xwayland) och kör spelet där, så att inga fönster syns
eller tar fokus från det man gör på datorn; snäll avstängning och
städning av sockets; METRO_HEADLESS=0 använder skärmen
- skriptläget ritar scenen synkront vid shot så att bilden alltid speglar
exakt den uppdateringen oavsett FPS (två körningar ger identiska PNG:er)
- README/roadmap: hur den osynliga skärmen fungerar och används manuellt
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- internal/progress: katalog (skills.json 12 noder, items.json 25 items)
med validering; XP/nivåer (150·n(n+1)/2) och skillpoäng; skillträd med
krav och kostnad; items per plats med buffar, genvägar (JR Pass, kartor,
powerbank) och färgton; banresultat och upplåsning (huvudbanor i ordning,
sidospår efter föräldern); 33 %-regeln som test
- internal/save: versionerad JSON med kunskap, plånbok, debuffar,
progression och pågående bana + seed; atomisk skrivning; migrering;
~/.config/metro-puzzle-jp/save.json resp. %AppData%
- sim: RunOptions får Extra/FogRadius/Landmarks/FreeGates/RevealAll/
InfiniteBattery; luck påverkar trängselzonen; Fog.RevealAll och extra
landmärken
- game: bankarta i spelbrädesstil ersätter menyn (⟳ återupptar med sparad
seed), skillträd (T), garderob (I), butik i kiosken (B), XP/nivå/items/
upplåsningar på resultatet, spelaren tonas av skins; autospar vid banstart,
efter banan och vid köp; flaggor -save/-nosave
- level: kind/order/parent/rewards/shop; ny sidobana 002b Kabukicho som
belönar skinnet Kimono; 001 belönar Salaryman-skinnet; butikssortiment
på 002/003
- tools/shots: demo-sparfil (build/, aldrig den riktiga), bilder av karta,
skills, garderob och butik; alla körningar med -nosave
- docs/README/wiki uppdaterade
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>