M10: byten, hemresan och levelcheck
All checks were successful
release / build-release (push) Successful in 1m37s

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>
This commit is contained in:
2026-10-24 13:37:48 +02:00
parent f762f9554e
commit 4ae6a1d24c
36 changed files with 1681 additions and 74 deletions

View File

@@ -10,17 +10,14 @@ Storyn följer några polare på semester i Japan, från landningen på
flygplatsen till avresan. Efter storyn låses ett oändligt läge och New Game+
upp. Hela speldesignen finns i [doc/spelbeskrivning.md](doc/spelbeskrivning.md).
**Status:** M9 klar (2026-10-24) – sju banor på en bankarta i
spelbrädesstil, med sidospår och flera våningar. Japanska skyltar och
ordinlärning, lämmeltåget, minikarta, tågkort, biljetter och minispel,
svårighet med tidsgräns, poäng och debuffar, tåg som rullar in till
avgångsmelodin, progression med XP, skillträd, items och sparfil, folk,
filer, reklam, sorl och vagnval. Och nu ett riktigt linjenät: tågen bedöms
efter var de faktiskt går, resan visar linjens riktiga stationer, och man
väljer **listläge** (nästa tåg visas) eller **skyltläge** (lista ut det
själv med skyltar och terminalen, +50 % poäng – åk åt fel håll eller för
långt bort och banan är förlorad). Nästa är M10: story-innehåll och
flerbytesbanor. Se
**Status:** M10 klar (2026-10-24) – hela storyn från flygplats till
flygplats: åtta huvudbanor och ett sidospår på en bankarta i spelbrädesstil,
med flera våningar, folk, reklam, sorl, vagnval och ett riktigt linjenät med
list- och skyltläge. De två sista resorna har **byten**: man kliver av på en
mellanstation och fortsätter i samma omgång, med klockan, plånboken och
sällskapet i behåll. Klarar man finalen (Tokyo → Nippori → Narita) visas
**hemresan**: planet lyfter, resan summeras och eftertexterna rullar. Nästa
är M10b (bussar) eller M11 (oändligt läge och New Game+). Se
[doc/roadmap.md](doc/roadmap.md).
![Bankartan](doc/img/map.png)
@@ -74,6 +71,13 @@ fyra rätt, ett går åt fel håll och ett tar omvägen via city.
![Terminalen i skyltläge](doc/img/terminal.png)
Resorna med byten fortsätter på nästa station när du klivit av: nytt
labyrintgolv, samma klocka och samma hungriga sällskap.
![Byte i Ueno](doc/img/transfer.png)
![Hemresan](doc/img/ending.png)
På de svåraste banorna har alla i sällskapet egna kort som måste ha saldo,
alla behöver biljett, och när biljetten är köpt ska sällskapet placeras i
vagnen efter sina önskemål: fönster eller gång, vänster eller höger sida,
@@ -173,6 +177,7 @@ metro-puzzle-jp -mute # inget ljud
metro-puzzle-jp -save /sökväg/save.json # annan sparfil (standard ~/.config/metro-puzzle-jp/save.json)
metro-puzzle-jp -nosave # läs sparfilen men skriv aldrig (tester/skärmdumpar)
metro-puzzle-jp -mode signs # navigeringsläge från start: list eller signs (annars sparfilens; N på bankartan växlar)
metro-puzzle-jp -ending # öppna slutscenen (hemresan) direkt (tester/skärmdumpar)
metro-puzzle-jp -script "move right 4; shot bild.png; quit" # skriptläge, se internal/game/script.go
metro-puzzle-jp -version
```
@@ -193,7 +198,8 @@ Y = hjälp, X = ordlista, Back/Select = karta.
| Kommando | Gör |
|----------|-----|
| `go run ./tools/build …` | bygger (se ovan) |
| `go run ./tools/genart` | genererar placeholder-grafiken `resources/sprites/tiles.png` och `player.png` |
| `go run ./tools/genart` | genererar placeholder-grafiken `resources/sprites/tiles.png`, `player.png` och `plane.png` |
| `go run ./tools/levelcheck [ord…]` | ritar varje bana (per våning) som PNG i `build/levelcheck/` och rapporterar lösbarhet, onåbara rutor, perronger utanför spärrar, tågens bedömning i linjenätet och resornas byten; avslutar med fel om något är trasigt |
| `go run ./tools/gensound` | genererar placeholder-ljuden `resources/sound/*.wav` (avgångsmelodi, dörrsignal) |
| `go run ./tools/shots [ord…]` | tar dokumentationens skärmdumpar till `doc/img/` – **kör efter varje grafik-/UI-ändring och committa bilderna**. Med argument körs bara skott vars bana eller skript innehåller något av orden (t.ex. `go run ./tools/shots 005 ride.png`). På Linux körs spelet på en osynlig skärm (headless Wayfire + Xwayland) så att inget fönster syns eller tar fokus; `METRO_HEADLESS=0` använder skärmen |