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/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 | | [`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, **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 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) ![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 **Sparfilen** ligger i `~/.config/metro-puzzle-jp/save.json` (Linux) eller
`%AppData%\metro-puzzle-jp\` (Windows) och sparas automatiskt vid banstart `%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 (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 cmd/metro-puzzle-jp programstart, flaggor
internal/game Ebitengine: scener (meny → bana → resultat), rendering, input 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/minigame påfyllning, biljettköp, trängsel, tågresa – seedade tillståndsmaskiner
internal/progress XP, skillträd, items, banresultat, upplåsning av bankartan internal/progress XP, skillträd, items, banresultat, upplåsning av bankartan
internal/save sparfil: versionerad JSON, migrering, atomisk skrivning 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. 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, Därför kan hela bana 002 – fel biljett, rätt biljett, spärr, trängsel,
resa – spelas igenom i ett vanligt `go test`. 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å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 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 på samma x,y en våning upp/ner. Grannfunktionen inkluderar trappans andra