M13: titelskärm, språkval, tutorial, tips och pausmeny
All checks were successful
release / build-release (push) Successful in 1m40s

Björns feedback efter v0.1.0. Titelskärm med premissen i text och menyn
Fortsätt/Starta, Tutorial, Inställningar, Avsluta (Enter två gånger);
språkval första gången spelet startar. Tutorial i fem sidor med riktiga
sprites och en exempelskylt där resmålet markeras och resten tonas ned,
plus nyckeln 番線/方面/改札 och biljettipset. Kontextuella tips i spelet
tills första banan är klarad, och resmålets tecken markeras på skyltar
och avgångstavlor under tiden. Esc i en bana öppnar en pausmeny
(Fortsätt, Lämna banan, Inställningar, Avsluta spelet) i stället för att
lämna banan; Esc på bankartan går till titeln. Kortare lägestexter så att
bankartans rader ryms på svenska. Test för markeringen, docs, wiki och
skärmdumpar.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-25 17:13:32 +01:00
parent 86f8130735
commit f0a0bc1522
26 changed files with 622 additions and 32 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
doc/img/lang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
doc/img/pause.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
doc/img/tips-sign.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
doc/img/tips.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
doc/img/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
doc/img/tutorial.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -139,6 +139,7 @@ att bygga på Linux som på Windows.
| `internal/endless` | `TestPlanIsDeterministicAndValid`, `TestDestinationsNeedTrapAndRoute` | **M11:** samma seed → samma följd, annan seed → annan; varje mål har 1–4 rätta tåg och en fälla, nytt resmål, inga byten, aldrig samma station två gånger i rad; sällskapet växer och tidsgränsen krymper |
| `internal/progress` | `TestNewGamePlusKeepsSkillsResetsItems` | **M11:** NG+ behåller skills, XP, skillpoäng och klarad story; nollställer items, utrustning och banresultat |
| `internal/save` | `TestEndlessRecords` | **M11:** poänglistan sorterad, kapad till fem, "ny bästa" bara när toppen slås |
| `internal/game` | `TestHighlightDestination` | **M13:** resmålets tecken får markeringsfärg, resten nedtonas, flera träffar, ingen träff |
| `internal/game` | `TestAllSoundsDecode`, `TestMelodyForIsStableAndKnown` | **M12:** alla ljud i `AllSounds` finns, avkodas och är minst 50 ms; melodin per bana är stabil och känd; ljudlagret är nil-säkert |
| `internal/save` | `TestSettingsDefaultsAndNormalize` | **M12:** standardinställningar, klampning av volymer/skala, okänt språk blir sv, saknade inställningar fylls i |
| `internal/level` | `TestToiletSides` | **M10d:** 005 och 008b har toaletter bara innanför, 007b på båda sidor, 007 och 008 bara utanför; innanför bara på banor med spärrar utan återvändo |
@@ -167,6 +168,7 @@ att bygga på Linux som på Windows.
| ~~M10 Story-innehåll~~ ✓ | Kedjorna valideras, byten hänger ihop, storyn börjar och slutar på flygplatsen, bytet för med sig tid/plånbok/sällskap – finns, se tabellen ovan; `tools/levelcheck` som manuell kontroll |
| ~~M10c Vem betalar, spärrar utan återvändo~~ ✓ | Väljaren betalar från rätt källa och nekar den utan pengar; spärren håller kvar, personalen låser upp, ny inpassering kostar – finns, se tabellen ovan |
| ~~M10d Toaletter innanför/utanför~~ ✓ | Toaletterna ligger på rätt sida av spärrarna per bana – finns, se tabellen ovan |
| ~~M13 Titel, tutorial, trygghet~~ ✓ | Markeringen av resmålet i skylttext (`game.TestHighlightDestination`); titel/språkval/paus/tutorial/tips med skärmdumpar; karttexter ryms |
| M10b Bussar och vägar | Bussar följer tidtabell och vägrutor; hållplatser bedöms som perronger; överstimulerande UI-reglaget påverkar bara presentationen |
| ~~M11 Oändligt läge & NG+~~ ✓ | Målsekvens deterministisk per seed, giltiga mål med fälla, NG+ behåller skills men nollställer items, poänglista – finns, se tabellen ovan |
| ~~M12 Ljud & polish~~ ✓ | Alla ljudfiler som refereras finns och går att avkoda, stationsmelodi per bana, inställningar normaliseras – finns, se tabellen ovan; Windows-binär startar (manuellt, kvar) |
@@ -182,7 +184,9 @@ En milstolpe är klar när:
### Manuell testchecklista (speltest)
- [ ] Spelet startar till meny på under 2 s; ESC/avsluta fungerar.
- [ ] Spelet startar till titelskärmen på under 2 s; första gången frågas efter språk; Avsluta kräver Enter två gånger.
- [ ] Esc i en bana öppnar pausmenyn och lämnar aldrig banan av misstag; Esc på bankartan går till titeln.
- [ ] Tutorialen går att läsa igenom; tipsen i bana 001 dyker upp vid start, skylt, spärr och perrong.
- [ ] Fönstret kan skalas; pixlarna är skarpa (heltalsskalning).
- [ ] Bana 001 går att klara i både listläge och skyltläge.
- [ ] Fel tåg ger tydlig förlust med förklaring.

View File

@@ -646,6 +646,44 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
(`sim.TestOneWayGatesNeedStaff` går vägen till första spärren i stället
för ett fast steg), och levelcheck är grön. ✓
### M13 – Titelskärm, tutorial och trygghet ✓ (klar 2026-10-25)
- **Mål:** Björns feedback efter v0.1.0 (2026-10-25): spelet ska gå att
förstå och använda utan att läsa dokumentationen.
- **Titelskärm** som beskriver premissen i text, med Fortsätt/Starta,
Tutorial, Inställningar och **Avsluta** (ett sätt att stänga spelet
inifrån). Första gången spelet startar får man **välja språk**.
- **Tutorial** om grundmekaniken: målet, skyltarna, kort/biljetter/spärrar,
sällskapet, tåget, lägena och tangenterna. Tips och trix: **hur man läser
en skylt** och vad man ska memorera (resmålets tecken i HUD:en) för att
köpa rätt biljett – med resmålet **markerat** och all annan text
**nedtonad**. Dessutom kontextuella tips i spelet tills första banan är
klarad, och samma markering på riktiga skyltar under tiden.
- **Esc-skydd:** Esc i en bana öppnar en pausmeny (Fortsätt, Lämna banan,
Inställningar, Avsluta spelet) i stället för att lämna banan direkt;
många Esc i rad växlar bara menyn. Esc på bankartan går till
titelskärmen; Avsluta kräver Enter två gånger.
- **Karttexten** får plats på bredden på svenska (kortare lägestexter).
- **Teknik:** `TitleScene`, `LangScene`, `PauseScene`, `TutorialScene`,
`tips.go`, `highlightLine` i `text.go`.
- **Så blev det:** `TitleScene` (premiss, rullande tåg på räls, meny
Fortsätt/Starta – Tutorial – Inställningar – Avsluta med Enter två
gånger, version), `LangScene` första gången sparfilen saknas (svenska/
engelska), `PauseScene` på Esc i banan (Fortsätt, Lämna banan,
Inställningar, Avsluta spelet; Esc igen fortsätter – många Esc i rad
växlar bara menyn), Esc på bankartan går till titeln. `TutorialScene` i
fem sidor med riktiga sprites och en exempelskylt där resmålet är
**markerat** och resten **nedtonad** (`highlightLine`), plus 番線/方面/
改札-nyckeln och biljettipset. I spelet visas fem kontextuella tips
(start, första skylten, sällskapets behov, spärren, perrongen) tills bana
001 är klarad, och under tiden markeras resmålets tecken på skyltar och
avgångstavlor. Lägestexterna på bankartan kortades så att raderna ryms.
- **Klar när:** titel, språkval, pausmeny och tutorial finns med
skärmdumpar; markeringen är testad (`game.TestHighlightDestination`);
karttexterna ryms (skärmdump). ✓
- **Kvar till senare:** en spelbar tutorialbana med styrda steg,
tips som kan slås av i inställningarna.
### M11 – Oändligt läge och New Game+ ✓ (klar 2026-10-24)
- Slumpade mål från seed, poäng per mål, egen poänglista. NG+ behåller skills.

View File

@@ -50,6 +50,20 @@ otydligt står tolkningen i [§15](#15-tolkningar-av-originalet).
- Spela om storyn och behåll alla dina skills.
### 3.4 Titelskärm, tutorial och trygghet (tillägg 2026-10-25)
- En **titelskärm** med spelets premiss i text, och val: fortsätt/starta,
tutorial, inställningar, avsluta. **Första gången** spelet startas väljer
man språk.
- En **tutorial** om grundmekaniken med tips och trix: **hur man läser
skyltar** och **vad man bör memorera** (resmålets tecken) för att kunna
köpa rätt biljett – gärna med **markering** av det viktiga och
**nedtoning** av all annan information.
- **Esc-skydd:** trycker man Esc (flera gånger) ska en fråga dyka upp så att
man inte råkar lämna/starta om banan av misstag. Det ska också gå att
**stänga spelet** inifrån.
- Texten på bankartan ska få plats på bredden på svenska.
## 4. En bana – kärnloopen
1. Du startar på en station (eller kliver av ett tåg).