M10d: toaletter innanför och utanför spärrarna
All checks were successful
release / build-release (push) Successful in 1m38s

Björns tillägg 2026-10-24. Generatorn har nu ett betalt område per perrong
(paidDepth) och toilets inside/outside/both: 005 Ueno och 008b Nippori har
toalett bara innanför, 007b Ueno på båda sidor. Perrongceller görs till
återvändsgränder (bara passagen mot starten behålls, labyrinten repareras)
och det betalda området krymper om det skulle bli genomfart; regeln att
varje perrong nås utan att passera ett annat betalt område testas i
level och levelcheck. level.PathOutside används av testbotar och shots.
Alla genererade banor utom 003 omgjorda, skärmdumpar omtagna.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-24 23:09:27 +02:00
parent f04d6a88f9
commit 46bd330dfc
33 changed files with 419 additions and 209 deletions

View File

@@ -612,6 +612,40 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
- **Kvar till senare:** ett kontor (egen ruta) som alternativ till knappen
vid spärren; personal som också kan hjälpa med tomt kort.
### M10d – Toaletter innanför och utanför spärrarna ✓ (klar 2026-10-24)
- **Mål:** Björns tillägg 2026-10-24: toaletter finns ibland bara
innanför spärrarna, ibland bara utanför, ibland på båda sidor – så att
man måste tänka på *när* sällskapet går på toa, särskilt där spärren inte
släpper ut en (M10c).
- **Teknik:** generatorn får ett **betalt område** (`paidDepth`: hur många
steg från perrongen spärrarna sätts) och `toilets: inside|outside|both`
som fäster en toalettnisch i en vägg innanför spärrarna och/eller lägger
en i en återvändsgränd utanför. `tools/levelcheck` rapporterar var
toaletterna ligger. Banorna 005 Ueno (bara innanför), 007b Ueno (båda)
och 008b Nippori (bara innanför) görs om; 007 och 008 har bara utanför.
- **Så blev det:** generatorn räknar ett betalt område med BFS från
perrongerna (`paidDepth` steg) och sätter spärrar på alla öppna rutor
precis utanför; `toilets: inside` fäster en toalettnisch i en vägg intill
en betald ruta (där rutan bortom också är vägg, så inget nytt öppnas),
`both` lägger dessutom en i en återvändsgränd utanför, automat och kiosk
ligger alltid utanför. 005 Ueno (betalt område 12 rutor, toalett bara
innanför), 007b Ueno (22 rutor, båda) och 008b Nippori (16 rutor, bara
innanför) är omgjorda; 007 och 008 har bara utanför. `tools/levelcheck`
rapporterar betalt område och toaletter per sida. **Perrongerna är nu
återvändsgränder:** generatorn behåller bara passagen mot starten in till
perrongens cell (rum i den breda labyrinten), murar igen de andra och
reparerar labyrinten med nya passager där den annars delas; det betalda
området krymper automatiskt om det skulle bli en genomfart. Regeln "varje
perrong nås utan att gå genom en annan perrongs betalda område" testas
(`level.PathOutside`, i `TestAllShippedLevels` och levelcheck) – annars
skulle spärrar utan återvändo göra fällperrongerna onåbara. Alla
genererade banor utom 003 (som redan klarade regeln) gjordes om.
- **Klar när:** banorna har toaletter på rätt sida (`level.TestToiletSides`),
spärrtestet fungerar med ett större betalt område
(`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+
- Slumpade mål från seed, poäng per mål, egen poänglista. NG+ behåller skills.