M9: navigeringslägen, linjenät och terminal
All checks were successful
release / build-release (push) Successful in 1m34s

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>
This commit is contained in:
2026-10-24 13:07:36 +02:00
parent de61568e44
commit f762f9554e
53 changed files with 3041 additions and 122 deletions

View File

@@ -482,7 +482,7 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
- **Kvar till senare:** NPC:er som väntar på och kliver på tåget, folk som
bildar riktiga köer vid markeringarna, utrop/reklam som ljud (M12).
### M9 – Navigeringslägen: lista och skyltläge
### M9 – Navigeringslägen: lista och skyltläge ✓ (klar 2026-10-24)
- **Mål:** de två sätten att spela story.
- Listläge: nästa tåg visas.
@@ -490,6 +490,36 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
riktning / för långt bort.
- **Teknik:** `internal/nav` (graf över stationer/linjer, giltiga vägar,
riktningskontroll – ren Go).
- **Så blev det:** `internal/nav` läser `resources/data/network.json`
(76 stationer, 11 linjer: Yamanote som ringlinje, Chuo, Keihin-Tohoku,
Saikyo, Marunouchi, Hibiya, Ginza, Toyoko, Tokaido, Narita Express,
Keisei). Ett tåg bedöms från `lineId` + `terminus` (en station i
färdriktningen) mot banans `station`/`to`: **Direct** (resmålet inom 12
stationer), **WrongDirection** (linjen går dit, men åt andra hållet),
**TooFar** (nås först efter fler än 12 stationer – fel varv på ringen,
omvägen via city) eller **NoService**. `correct` skrivs inte längre i
nätkopplade banfiler utan räknas ut; 1–4 rätta tåg per bana. Tågresan
visar linjens **riktiga stationer** i färdriktningen (resmålet på rätt
plats, eller aldrig). Förlustorsakerna *Fel håll* och *För långt bort*
förklarar vad som hände. **Listläge** visar "Ta: spår 6 Yamanote-sen
(+1)" i HUD:en; **skyltläge** visar bara att man är i det och ger +50 %
på grundpoängen. Läget växlas med **N** på bankartan och sparas.
**Terminalen**: på nätkopplade banor visar biljettautomaten linjetavlan
(varje linje med tre grannstationer åt vardera hållet), läst genom ens
kunskap som en skylt. Perrongtecknen generaliserade (`P p Q q R r`).
**Bana 006 Ikebukuro** (svårighet 4): fyra perronger – Yamanote mot
Shinjuku och Saikyo mot Osaki är rätt, Saikyo mot Omiya är fel håll och
Marunouchi mot Ogikubo för långt bort. Banorna 001–005 är kopplade till
nätet (Keihin-Tohoku mot Omiya i Ueno blev därmed *fel håll*).
- **Klar när:** bedömningarna och vägarna är testade (`nav.TestJudge`,
`TestTooFarOnLongLoop`, `TestStopsRoutesAndNames`, `TestShippedNetwork`),
banor kopplas rätt (`level.TestAnnotateWithNetwork`,
`TestPlatformTilesAndShippedVerdicts`), resan använder riktiga stationer
och fel håll/för långt förlorar (`sim.TestNetworkRideUsesRealStops`,
`TestWrongDirectionLoses`, `TestTooFarLoses`), skyltläget ger bonus
(`TestSignsModeBonus`) och terminalen listar linjer (`TestTerminalLines`). ✓
- **Kvar till senare:** flera tåg i rad (byten) kommer med M10; bussar;
"terminaler" som egna rutor i stället för biljettautomaten.
### M10 – Story-innehåll och flerbytesbanor