M8: bankarta, skillträd, items, butik och sparfil
51
Home.md
51
Home.md
@@ -16,12 +16,16 @@ till rätt resmål.
|
|||||||
| [`doc/roadmap.md`](../src/branch/master/doc/roadmap.md) | Teknikval, katalogstruktur, milstolpar M0–M12 |
|
| [`doc/roadmap.md`](../src/branch/master/doc/roadmap.md) | Teknikval, katalogstruktur, milstolpar M0–M12 |
|
||||||
| [`doc/mal-och-tester.md`](../src/branch/master/doc/mal-och-tester.md) | Projektmål, teststrategi, checklistor |
|
| [`doc/mal-och-tester.md`](../src/branch/master/doc/mal-och-tester.md) | Projektmål, teststrategi, checklistor |
|
||||||
|
|
||||||
## Så fungerar spelet (läget efter M7b)
|
## Så fungerar spelet (läget efter M8)
|
||||||
|
|
||||||
**Menyn** listar banorna i `resources/data/levels/` med resmål. Pilar/WASD
|
**Bankartan** är ett spelbräde: huvudbanorna på en linje från flygplatsen,
|
||||||
väljer, Enter startar, Esc avslutar. Gamepad fungerar också.
|
sidospåren som avstickare ovanför. Låsta banor är grå, klarade visar sina
|
||||||
|
stjärnor. Nästa huvudbana öppnas när föregående är klarad, sidospår när
|
||||||
|
föräldern är det. `⟳` betyder att banan återupptas med samma seed som när du
|
||||||
|
slutade. Pilar väljer, Enter startar; L ordlistan, T skillträdet, I
|
||||||
|
garderoben, P telefonen.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**I banan** startar du på den gröna dörrmattan. Stationen är en labyrint:
|
**I banan** startar du på den gröna dörrmattan. Stationen är en labyrint:
|
||||||
mörka väggar, ljust golv, skyltar (blå tavla på stolpe), biljettautomat
|
mörka väggar, ljust golv, skyltar (blå tavla på stolpe), biljettautomat
|
||||||
@@ -148,9 +152,32 @@ av en tom matmätare och matförgiftning med liten otur vid kiosken. De
|
|||||||
sänker farten, snabbar på mätarna eller gör skyltarna svårare att lära sig,
|
sänker farten, snabbar på mätarna eller gör skyltarna svårare att lära sig,
|
||||||
och räknas ned en bana i taget.
|
och räknas ned en bana i taget.
|
||||||
|
|
||||||
Resultatet visar tid mot par, stjärnor, utforskat, spenderat, missade tåg och
|
Resultatet visar tid mot par, stjärnor, poäng, spenderat och missade tåg –
|
||||||
sällskapets försörjning. R spelar om, L öppnar ordlistan, Enter/Esc går till
|
och vad banan gav: **XP**, nivå upp, nya items och vilka banor som öppnades.
|
||||||
menyn.
|
R spelar om, L öppnar ordlistan, Enter/Esc går till kartan.
|
||||||
|
|
||||||
|
**Progression.** En klarad bana ger `poäng/10 + 25 × stjärnor` XP. Nivå n+1
|
||||||
|
nås vid 150·n(n+1)/2 XP och varje nivå ger en **skillpoäng** till
|
||||||
|
skillträdet (T): fyra grenar – språk (kana, fokus, hjälp), kropp (fart,
|
||||||
|
törst, toa), resenär (tur) och utforskare (sikt, landmärken på minikartan).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Items** köps kontant i kioskernas **butik** (B): hattar, masker, kläder,
|
||||||
|
skor och prylar med buffar, några med genvägar – JR Pass öppnar alla spärrar,
|
||||||
|
kartor avslöjar en bana, powerbanken håller telefonen vid liv. Ett item per
|
||||||
|
plats bärs (huvud, ansikte, kropp, fötter, väska); skins ändrar din färg.
|
||||||
|
Sidospår belönar unika skins. Det finns fler items än man har råd med på en
|
||||||
|
omgång – det är meningen.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**Sparfilen** ligger i `~/.config/metro-puzzle-jp/save.json` (Linux) eller
|
||||||
|
`%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
|
||||||
|
äldre filer kan migreras.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -177,6 +204,8 @@ 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
|
||||||
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/save sparfil: versionerad JSON, migrering, atomisk skrivning
|
||||||
internal/lang japanska: ordbok, tokenisering, kunskap, delvis översättning, engelska-andel
|
internal/lang japanska: ordbok, tokenisering, kunskap, delvis översättning, engelska-andel
|
||||||
internal/level banformat (JSON), validering, BFS-lösbarhet
|
internal/level banformat (JSON), validering, BFS-lösbarhet
|
||||||
internal/res hittar resources/ (env → bredvid binären → uppåt från cwd)
|
internal/res hittar resources/ (env → bredvid binären → uppåt från cwd)
|
||||||
@@ -218,6 +247,14 @@ 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`.
|
||||||
|
- **Progressionen är data.** Skills och items är JSON-rader med en
|
||||||
|
`effect` som antingen multiplicerar en stat eller sätter en flagga; samma
|
||||||
|
tabell gäller debuffar åt andra hållet. Nya items/skills = nya rader, inga
|
||||||
|
kodändringar. Designregeln "knappt 33 % per omgång" är ett test mot
|
||||||
|
itemlistan.
|
||||||
|
- **Sparfilen skrivs atomiskt** (tempfil + byte av namn) och har version +
|
||||||
|
migrering från dag ett, så att vi kan ändra formatet utan att förstöra
|
||||||
|
någons spel.
|
||||||
- **Tågets liv är sex faser ur tidtabellen** (away, approaching, arriving,
|
- **Tågets liv är sex faser ur tidtabellen** (away, approaching, arriving,
|
||||||
dwelling, closing, leaving), beräknade i `level` utan tillstånd. Animation,
|
dwelling, closing, leaving), beräknade i `level` utan tillstånd. Animation,
|
||||||
ljud, vind och indikator i spelet läser bara av fasen – och boten i
|
ljud, vind och indikator i spelet läser bara av fasen – och boten i
|
||||||
|
|||||||
Reference in New Issue
Block a user