M11: oändligt läge och New Game+
All checks were successful
release / build-release (push) Successful in 1m34s

internal/endless lottar mål ur en seed: en av storyns nätkopplade
stationer (aldrig samma två gånger i rad) med ett resmål som minst ett
tåg går rakt till men inte alla; banan kopieras, bedöms om mot nätet,
sällskapet växer var tredje mål och tidsgränsen krymper. O på bankartan
(eller -endless) startar en omgång; klarade mål ger poäng och XP, Enter
ger nästa mål, förlust eller Esc avslutar och omgången hamnar i
sparfilens poänglista (fem bästa). G två gånger startar New Game+: items,
banresultat, pengar och debuffar nollställs, skills, XP och japanskan
behålls, sällskapet är en person större per varv. Docs, wiki, tester och
skärmdumpar uppdaterade.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-24 23:20:12 +02:00
parent 46bd330dfc
commit 36a45563ec
22 changed files with 556 additions and 19 deletions

View File

@@ -646,10 +646,32 @@ 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. ✓
### M11 – Oändligt läge och New Game+
### 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.
- Låses upp när storyn är klar.
- **Så blev det:** `internal/endless` lottar mål ur en seed: stationen är
en av storyns nätkopplade banor (alla huvud-, sido- och delbanor, aldrig
samma två gånger i rad) och resmålet lottas bland stationer som minst ett
av banans tåg går rakt till men inte alla – samma labyrint och samma tåg,
men vilket tåg som är rätt beror på resmålet. Banan kopieras, får nytt
`to`/`destination`, inga byten, sällskap som växer med en person var
tredje mål (max 5) och en tidsgräns som krymper 5 % per mål (golv 180 s),
och bedöms om mot nätet. Samma seed ger samma följd. **Omgången:** O på
bankartan (efter storyn) eller `-endless`; HUD:en visar "#3 Ueno
station"; klarat mål ger poäng (summeras) och XP, Enter ger nästa mål;
förlust (eller Esc) avslutar omgången som hamnar i poänglistan (fem
bästa i sparfilen, "Ny bästa!" när toppen slås). **New Game+:** G två
gånger på bankartan: banresultat, items, utrustning, pengar och debuffar
nollställs, skills, XP och språkkunskap behålls, och sällskapet är en
person större på alla banor per NG+-varv (`RunOptions.ExtraParty`).
- **Klar när:** målföljden är deterministisk per seed och giltig
(`endless.TestPlanIsDeterministicAndValid`, `TestDestinationsNeedTrapAndRoute`),
NG+ behåller skills men nollställer items
(`progress.TestNewGamePlusKeepsSkillsResetsItems`), poänglistan sorterar
och kapar (`save.TestEndlessRecords`). ✓
- **Kvar till senare:** oändligt läge med byten (resor över två stationer),
stationer som genereras vid körning (generatorn in i repot).
### M12 – Ljud, polish och release