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/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
|
||||
väljer, Enter startar, Esc avslutar. Gamepad fungerar också.
|
||||
**Bankartan** är ett spelbräde: huvudbanorna på en linje från flygplatsen,
|
||||
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:
|
||||
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,
|
||||
och räknas ned en bana i taget.
|
||||
|
||||
Resultatet visar tid mot par, stjärnor, utforskat, spenderat, missade tåg och
|
||||
sällskapets försörjning. R spelar om, L öppnar ordlistan, Enter/Esc går till
|
||||
menyn.
|
||||
Resultatet visar tid mot par, stjärnor, poäng, spenderat och missade tåg –
|
||||
och vad banan gav: **XP**, nivå upp, nya items och vilka banor som öppnades.
|
||||
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/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/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/level banformat (JSON), validering, BFS-lösbarhet
|
||||
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.
|
||||
Därför kan hela bana 002 – fel biljett, rätt biljett, spärr, trängsel,
|
||||
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,
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user