M8: progression, items, bankarta och sparfil
All checks were successful
release / build-release (push) Successful in 1m46s
All checks were successful
release / build-release (push) Successful in 1m46s
- internal/progress: katalog (skills.json 12 noder, items.json 25 items) med validering; XP/nivåer (150·n(n+1)/2) och skillpoäng; skillträd med krav och kostnad; items per plats med buffar, genvägar (JR Pass, kartor, powerbank) och färgton; banresultat och upplåsning (huvudbanor i ordning, sidospår efter föräldern); 33 %-regeln som test - internal/save: versionerad JSON med kunskap, plånbok, debuffar, progression och pågående bana + seed; atomisk skrivning; migrering; ~/.config/metro-puzzle-jp/save.json resp. %AppData% - sim: RunOptions får Extra/FogRadius/Landmarks/FreeGates/RevealAll/ InfiniteBattery; luck påverkar trängselzonen; Fog.RevealAll och extra landmärken - game: bankarta i spelbrädesstil ersätter menyn (⟳ återupptar med sparad seed), skillträd (T), garderob (I), butik i kiosken (B), XP/nivå/items/ upplåsningar på resultatet, spelaren tonas av skins; autospar vid banstart, efter banan och vid köp; flaggor -save/-nosave - level: kind/order/parent/rewards/shop; ny sidobana 002b Kabukicho som belönar skinnet Kimono; 001 belönar Salaryman-skinnet; butikssortiment på 002/003 - tools/shots: demo-sparfil (build/, aldrig den riktiga), bilder av karta, skills, garderob och butik; alla körningar med -nosave - docs/README/wiki uppdaterade Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,8 @@ metro-puzzle-jp/
|
||||
│ ├── sim/ rutbaserad rörelse, kollision, kamera, banomgång (Run), sällskap (Party), dimma (Fog) – ren Go
|
||||
│ ├── lang/ ordbok, tokenisering, kunskap, delvis översättning, engelska-andel, hjälptid – ren Go
|
||||
│ ├── minigame/ påfyllning, biljettköp, trängsel, tågresa – seedade, ren Go
|
||||
│ ├── progress/ XP, skillträd, items, banresultat, upplåsning – ren Go
|
||||
│ ├── save/ sparfil: versionerad JSON, migrering, atomisk skrivning
|
||||
│ ├── game/ Ebitengine-loop, scener, input, rendering, skriptläge ← får använda Ebitengine
|
||||
│ ├── archtest/ beroenderegler
|
||||
│ └── … kommande: lang/, nav/, score/, save/, minigame/, ui/, audio/
|
||||
@@ -71,7 +73,7 @@ metro-puzzle-jp/
|
||||
│ ├── sprites/ bilder, tilesets, UI
|
||||
│ ├── sound/ OGG/WAV
|
||||
│ ├── text/ sv.json, en.json, jp-dictionary.json, fonts/PixelMplus*.ttf
|
||||
│ └── data/ levels/, items, skills (JSON)
|
||||
│ └── data/ levels/, items.json, skills.json
|
||||
├── doc/ denna dokumentation (doc/img/ = skärmdumpar från tools/shots)
|
||||
├── .gitea/workflows/ CI: test + release-zippar för linux/windows på brasse-linux01-runnern
|
||||
├── .vscode/ tasks.json, launch.json
|
||||
@@ -355,18 +357,40 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
- **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
|
||||
### M8 – Progression, items och sparfiler ✓ (klar 2026-10-24)
|
||||
|
||||
- **Mål:** något att låsa upp och en anledning att fortsätta.
|
||||
- XP/level-ups, skill tree, items (kläder, masker, hattar) med buffar.
|
||||
- Bankarta i spelbrädesstil; sidobanor som ger skins/powers/items; items
|
||||
som låser upp genvägar i huvudbanor.
|
||||
- Sparfil med framsteg, items, skills, debuffar och seed. Autospar vid
|
||||
banstart.
|
||||
- **Teknik:** `internal/save` (JSON, versionsfält för migrering),
|
||||
`resources/data/items.json`, `skills.json`.
|
||||
- **Klar när:** sparfil round-trip-test grön; "< 33 % per omgång" går att
|
||||
räkna ut från datan.
|
||||
- **XP och nivåer:** en klarad bana ger `poäng/10 + 25 × stjärnor` XP;
|
||||
nivå n+1 nås vid 150·n(n+1)/2 XP (150, 450, 900 …). Varje level-up ger
|
||||
en **skillpoäng**.
|
||||
- **Skillträd** (`resources/data/skills.json`, 12 noder i fyra grenar:
|
||||
språk, kropp, resenär, utforskare): kana, fokus, hjälp, fart, törst, toa,
|
||||
tur, sikt, landmärken. Krav och kostnad valideras; effekterna är
|
||||
stats-multiplikatorer plus flaggor. Språkpoängen på ord (M3) finns kvar
|
||||
som egen valuta.
|
||||
- **Items** (`resources/data/items.json`, 25 st: hattar, masker, kläder,
|
||||
skor, prylar, skins) med buffar, färgton på spelaren och genvägar:
|
||||
JR Pass (gratis spärrar), kartor (hela minikartan på en bana), powerbank
|
||||
(oändligt batteri). Ett item per plats (huvud, ansikte, kropp, fötter,
|
||||
väska). Köps kontant i **kioskens butik** (B) – banans sortiment eller ett
|
||||
seedat urval. Designregeln "knappt 33 % per omgång" är ett test:
|
||||
billigaste tredjedelen kostar mer än startkassan.
|
||||
- **Bankartan** i spelbrädesstil ersätter menyn: huvudbanorna på en linje,
|
||||
sidospår ovanför, låsta grå, klarade med stjärnor; nästa huvudbana öppnas
|
||||
när föregående är klarad, sidospår när föräldern är. Ny sidobana
|
||||
**002b Kabukicho** belönar skinnet Kimono och en skillpoäng.
|
||||
- **Sparfil** (`internal/save`): versionerad JSON med kunskap, plånbok,
|
||||
debuffar, progression och pågående bana + seed, atomisk skrivning,
|
||||
migrering av äldre filer. `~/.config/metro-puzzle-jp/save.json` på Linux,
|
||||
`%AppData%` på Windows. Autospar vid banstart (seeden), efter banan och
|
||||
vid köp/upplåsningar. `⟳` på kartan betyder att banan återupptas med samma
|
||||
slump. Flaggor `-save PATH`, `-nosave`.
|
||||
- **Teknik:** `internal/progress` (ren Go, 6 tester), `internal/save`
|
||||
(3 tester), `sim.RunOptions` får Extra/FogRadius/Landmarks/FreeGates/
|
||||
RevealAll/InfiniteBattery, luck påverkar trängselzonen, nya scener
|
||||
karta/skills/garderob och butiken i `internal/game`.
|
||||
- **Klar när:** sparfil round-trip-test grön; "< 33 %" kontrolleras mot
|
||||
itemlistan; skillkrav, upplåsningar och belöningar testade. ✓
|
||||
|
||||
### M9a – Flera våningar (Björns tillägg 2026-10-24)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user