M7b: tågfaser, räls, in-/utkörning, vind, ankomstindikator och melodier
All checks were successful
release / build-release (push) Successful in 1m42s
All checks were successful
release / build-release (push) Successful in 1m42s
- level.Schedule.Phase: away/approaching/arriving/dwelling/closing/leaving ur tidtabellen med progress; Boardable (öppna dörrar) och Present; validering av minsta uppehåll/borta-tid; TrackTile för rälsen - sim.Run: ombordstigning bara med öppna dörrar, TrainVisible via Present, PlatformPhase och NearTrack (närmaste perrong inom två rutor) - game/trains.go: rälsrutor längs kantraden (roterade för vertikala spår), tre vagnar som bromsar in och accelererar ut längs rälsen, strålkastare under inrullningen, blinkande lampor vid kanten för den som står nära, dammpartiklar längs perrongen; kameran får en rutas marginal så att kanträlsen syns - game/audio.go: ebiten/v2/audio med avgångsmelodi (approaching) och dörrsignal (closing), volym efter avstånd, -mute; tools/gensound syntetiserar placeholder-WAV:ar - HUD: fasberoende perrongtext och "tåg på väg in" nära rälsen; skriptkommandot waitphase; skärmdump av ankomsten - plan (Björn 2026-10-24): räls/väg-grafik och melodierna i M7b; folk/NPC:er, vänster-/högertrafik, bredare gångar, reklam- och ljudröra som nytt steg M9b – i spelbeskrivning, roadmap, testplan - docs/README/wiki uppdaterade Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -328,24 +328,32 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
`TestIndividualCardsAtGateAndMachine`, `TestLevel003Flow`,
|
||||
`TestSeatSelectionPreferences`); bana 003 använder dem. ✓
|
||||
|
||||
### M7b – Tåg som kommer och går (Björns tillägg 2026-10-24)
|
||||
### M7b – Tåg som kommer och går ✓ (klar 2026-10-24)
|
||||
|
||||
- **Mål:** tågen ska kännas – man ska se och förstå när de kommer och går,
|
||||
särskilt när missade tåg kostar (M7).
|
||||
- **Ankomstindikator nära rälsen:** några sekunder före ankomst (från
|
||||
tidtabellen) tänds lampor vid perrongkanten och strålkastare syns i
|
||||
tunneln/vid kartkanten, bara för den som står nära rälsen.
|
||||
- **Vind:** när tåget kör in eller avgår blåser det längs perrongen –
|
||||
partiklar (damm, papper) och fladdrande kläder/hår på alla som står vid
|
||||
kanten. Kan senare påverka items (hattar som blåser av, M8).
|
||||
- **In- och utkörningsanimation:** tågvagnarna rullar in från kartkanten,
|
||||
bromsar, står (dörrar öppna) och accelererar ut – samma för bussar. Ersätter
|
||||
dagens "dyker upp/försvinner".
|
||||
- **Teknik:** ren logik i `sim` (`TrainPhase(t)`: approaching/arriving/
|
||||
dwelling/departing/away med fas 0–1 ur `level.Schedule`), partiklar och
|
||||
tweening i `internal/game`. Ljudet (M12) hakar på samma faser.
|
||||
- **Klar när:** faserna beräknas rätt ur tidtabellen (testat), indikatorn
|
||||
syns bara nära rälsen, tåget rullar in/ut i stället för att blinka till.
|
||||
- **Mål:** tågen ska synas, höras och kännas – man ska förstå när de kommer
|
||||
och går, särskilt när missade tåg kostar (M7).
|
||||
- **Tågfaser** ur tidtabellen (`level.Schedule.Phase`): på väg in
|
||||
(approaching, 5 s före), kör in (arriving, 1,5 s), står inne (dwelling,
|
||||
dörrar öppna), strax avgång (closing, sista 3 s, dörrsignal), kör ut
|
||||
(leaving, 1,5 s), borta. Man kan bara kliva på när dörrarna är öppna.
|
||||
- **Räls** ritas längs perrongkanten (egen ruta i `tools/genart`); tågen
|
||||
rullar in längs rälsen i tre vagnar, står, och accelererar ut – inte
|
||||
"dyker upp/försvinner". Vägrutor för bussar kommer med bussarna (M10).
|
||||
- **Ankomstindikator nära rälsen:** står man inom två rutor från perrongen
|
||||
när tåget är på väg in blinkar lampor vid kanten, strålkastare syns från
|
||||
det håll tåget kommer och inforutan säger "tåg på väg in".
|
||||
- **Vind:** dammpartiklar längs perrongen när tåget kör in och ut.
|
||||
- **Ljud:** ljudsystemet (`ebiten/v2/audio`) införs här med två placeholder-
|
||||
jinglar genererade av `tools/gensound` (pentatonisk avgångsmelodi när
|
||||
tåget är på väg in, dörrsignal strax före avgång), med volym efter avstånd
|
||||
till perrongen och `-mute`. Riktiga inspelningar/kompositioner i M12.
|
||||
- **Teknik:** faser i `level` (ren Go, testade), `sim.Run.NearTrack`,
|
||||
partiklar/tweening/ljud i `internal/game`, skriptkommandot `waitphase`.
|
||||
- **Klar när:** faserna beräknas rätt ur tidtabellen (testat:
|
||||
`TestSchedulePhases`, `TestNearTrackAndPhases`), indikatorn syns bara
|
||||
nära rälsen, tåget rullar in/ut och melodierna spelas i rätt fas. ✓
|
||||
- **Konsekvens för banorna:** uppehållet måste vara minst 5,5 s och tiden
|
||||
borta minst 7,5 s (valideras), så att faserna får plats.
|
||||
|
||||
### M8 – Progression, items och sparfiler
|
||||
|
||||
@@ -377,6 +385,27 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
minikartan visar rätt våning, och alla gamla banor fungerar oförändrat
|
||||
(en våning).
|
||||
|
||||
### M9b – Folk, reklam och ljudröra (Björns tillägg 2026-10-24)
|
||||
|
||||
- **Mål:** stationen lever och överstimulerar – tre nya svårighetsvariabler.
|
||||
- **Folk (NPC:er):** passagerare som går på och av tågen när dörrarna är
|
||||
öppna, rör sig mellan kiosker, toaletter och utgångar, och in och ut från
|
||||
stationen. De tar plats i rutnätet: man måste runda dem, och att gå in i
|
||||
någon saktar ned (`crowd`-nivå per bana styr hur många).
|
||||
- **Vänster-/högertrafik:** gångar och trappor kan markeras med en sida
|
||||
(pilar i golvet); går man på fel sida möter man strömmen och bromsas.
|
||||
- **Bredare gångar:** generatorn kan göra gångar två rutor breda där det
|
||||
ska gå att passera folk; följarna går då i bredd när det får plats.
|
||||
- **Visuell röra** (`clutter`-nivå): dekorationslager med reklam, affischer
|
||||
och blinkande skyltar på väggarna, lockskyltar som liknar riktiga.
|
||||
- **Ljudröra** (`noise`-nivå): japanskt prat, utrop och reklam i bakgrunden
|
||||
som konkurrerar med melodierna; på de svåraste nivåerna överlappar de.
|
||||
- **Teknik:** `sim.NPC` med enkla mål och BFS-vägar (ren Go, seedade),
|
||||
dekorationslager i banformatet, `tools/genart` för folk/reklam,
|
||||
`tools/gensound` för brusplaceholders; generatorn får bredd och sidor.
|
||||
- **Klar när:** en bana med folk spelas av boten headless utan att fastna,
|
||||
fler NPC:er ger mätbart längre tid, och röra/ljud styrs per bana.
|
||||
|
||||
### M9 – Navigeringslägen: lista och skyltläge
|
||||
|
||||
- **Mål:** de två sätten att spela story.
|
||||
@@ -389,9 +418,9 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
### M10 – Story-innehåll och flerbytesbanor
|
||||
|
||||
- **Mål:** hela resan från flygplats till flygplats.
|
||||
- Alla huvudbanor och sidobanor; banor med flera stopp och byten; buss;
|
||||
stationer i flera våningar (M9a) och svårighetsinställningarna från M7
|
||||
i stigande kombinationer.
|
||||
- Alla huvudbanor och sidobanor; banor med flera stopp och byten; buss (med
|
||||
vägrutor och hållplatser); stationer i flera våningar (M9a), folk och röra
|
||||
(M9b) och svårighetsinställningarna från M7 i stigande kombinationer.
|
||||
- Slutanimation (karaktärerna flyger iväg, items och poäng visas) och
|
||||
eftertexter.
|
||||
- Överstimulerande UI/banor som extra svårighet.
|
||||
@@ -405,7 +434,8 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
|
||||
### M12 – Ljud, polish och release
|
||||
|
||||
- Avgångsmelodier/ankomstjinglar, effekter, musik.
|
||||
- Riktiga avgångsmelodier/ankomstjinglar (ersätter placeholders från M7b),
|
||||
utrop, effekter, musik; mixning och volyminställningar.
|
||||
- Inställningar (ljudnivåer, språk sv/en, skala, tangenter).
|
||||
- Windows-test på riktig maskin, ikon i exe:n, eventuell Gitea-CI med
|
||||
releaser enligt playbooken.
|
||||
|
||||
Reference in New Issue
Block a user