From ca1084fac06a4a7036e1847cb1906ccd52c35c4b Mon Sep 17 00:00:00 2001 From: claude Date: Sat, 24 Oct 2026 12:22:06 +0200 Subject: [PATCH] M9b: folk, filer, reklam, sorl och vagnval --- Home.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index f30943d..f6c0165 100644 --- a/Home.md +++ b/Home.md @@ -16,7 +16,7 @@ till rätt resmål. | [`doc/roadmap.md`](https://gitea.brasse-pc.eu/brasse/metro-puzzle-jp/src/branch/master/doc/roadmap.md) | Teknikval, katalogstruktur, milstolpar M0–M12 | | [`doc/mal-och-tester.md`](https://gitea.brasse-pc.eu/brasse/metro-puzzle-jp/src/branch/master/doc/mal-och-tester.md) | Projektmål, teststrategi, checklistor | -## Så fungerar spelet (läget efter M9a) +## Så fungerar spelet (läget efter M9b) **Bankartan** är ett spelbräde: huvudbanorna på en linje från flygplatsen, sidospåren som avstickare ovanför. Låsta banor är grå, klarade visar sina @@ -184,6 +184,28 @@ den våning du är på. Tokyo station (bana 004) börjar under mark. ![Tokyo station, 1F](https://gitea.brasse-pc.eu/brasse/metro-puzzle-jp/raw/branch/master/doc/img/floors-1f.png) +**Stationen lever.** På banor med `crowd` går det folk i gångarna: de +vandrar mellan kiosker, toaletter, skyltar och perronger, kliver av tågen när +dörrarna öppnas och går mot utgången. De tar plats – du kan inte gå in i +någon ("Ursäkta…") utan måste runda dem eller vänta. I breda gångar finns +**filer** med pilar: håll till den sida pilarna visar, annars möter du +strömmen och bromsas. `clutter` sätter **affischer** på väggarna (en av +dem liknar en riktig skylt), `noise` lägger på **sorl** som dämpar +melodierna. + +![Folk och reklam](https://gitea.brasse-pc.eu/brasse/metro-puzzle-jp/raw/branch/master/doc/img/crowd.png) + +**Vagnarna.** När tåget står inne väljer du vagn. Först kliver folk av – tryck +inte för tidigt, det kostar. Varje vagn visar hur mycket folk den har och +kömarkeringarna var du ställer dig. Lite folk ger bonus; en full vagn gör +det svårare att tränga sig på, ger kortare tid per station och passagerare +som vill förbi (tryck ← för att kliva åt sidan), och kan göra dig svettig. +**Kvinnovagnen** är rosa och märkt 女性専用, ibland bara under rusningstid som +står på skyltarna – har du en man i sällskapet och går på den blir det grova +minus. + +![Vagnval](https://gitea.brasse-pc.eu/brasse/metro-puzzle-jp/raw/branch/master/doc/img/cars.png) + **Sparfilen** ligger i `~/.config/metro-puzzle-jp/save.json` (Linux) eller `%AppData%\metro-puzzle-jp\` (Windows) och sparas automatiskt vid banstart (med seeden), efter varje bana och vid köp. Den har ett versionsfält så att @@ -212,7 +234,7 @@ repot gör det. Nya vyer: lägg till i listan i `tools/shots/main.go`. ``` cmd/metro-puzzle-jp programstart, flaggor internal/game Ebitengine: scener (meny → bana → resultat), rendering, input -internal/sim ren spellogik: rörelse, kollision, kamera, banomgång (tåg, spärrar, plånbok, hjälp, stjärnor, minispel), sällskap, dimma/minikarta +internal/sim ren spellogik: rörelse, kollision, kamera, banomgång (tåg, spärrar, plånbok, hjälp, stjärnor, minispel), sällskap, dimma/minikarta, folk (NPC) internal/minigame påfyllning, biljettköp, trängsel, tågresa – seedade tillståndsmaskiner internal/progress XP, skillträd, items, banresultat, upplåsning av bankartan internal/save sparfil: versionerad JSON, migrering, atomisk skrivning @@ -257,6 +279,13 @@ resources/ sprites/ sound/ text/ data/ – skeppas bredvid binäre gemensamt gränssnitt (Update/Done/Success) och all slump från del-seeds. Därför kan hela bana 002 – fel biljett, rätt biljett, spärr, trängsel, resa – spelas igenom i ett vanligt `go test`. +- **Folk går igenom varandra men inte spelaren.** NPC:er blockerar + spelarens rutor men ignorerar varandra och spelaren när de själva går – + då kan ingen deadlocka någon, och spelaren känner trängseln som det enda + hindret. +- **Vagnvalet är ett minispel före trängsel och resa**, så att vagnens + trängsel kan styra båda. Kvinnovagnens tidsfönster är bantid i sekunder, + vilket skyltarna beskriver i klartext. - **Våningar är en koordinat, inte en ny värld.** `Point` fick `Z`, varje våning är ett eget rutnät av samma storlek och trappor är rutor som pekar på samma x,y en våning upp/ner. Grannfunktionen inkluderar trappans andra