M9b: folk, filer, reklam, sorl och vagnval

2026-10-24 12:22:06 +02:00
parent 8ee0aa1339
commit ca1084fac0

33
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