M7: svårighet, tid, poäng, debuffar, egna kort och sittplatsval
All checks were successful
release / build-release (push) Successful in 1m37s
All checks were successful
release / build-release (push) Successful in 1m37s
- sim/stats.go: Stats (fart, törst, fokus, toalett, tur), debuffar som multiplikatorer, Profile som följer med mellan banor och räknar ned - sim.Run: tidsgräns och maxantal missade tåg förlorar banan; poängformel (tid mot par, pengar, sällskapets mätare, utforskat, avdrag); debuffar tjänas av många steg, lång tid, tom matmätare och seedad otur vid kiosken; stats påverkar fart, mätartakter, läsning och hjälptid - egna kort (individualCards): Member.Card, spärren kräver allas saldo och drar från alla, automaten frågar vems kort, biljetter köps åt alla - sittplatsval (seatSelection): Ticket får ett sittplatssteg med seedade önskemål (fönster/gång/sida/bredvid); missnöjda ger mätar- och poängavdrag - level: maxMissedTrains, individualCards, seatSelection; bana 003 Shibuya (svårighet 3, fyra i sällskapet) och 002 med tidsgräns och sittplatser; ordboken utökad; generatorn är spec-driven - game: tid kvar/missade i HUD, debuffar i meny/HUD/resultat, poäng och förlustorsaker på resultatet, vyer för personval och vagn, skript-pick, flaggan -debuffs; HUD och resultat komprimerade för fyra i sällskapet - plan (Björn 2026-10-24): flera våningar med trappor som M9a, egna kort och sittplatsval som svårighetsinställningar i M7 – i spelbeskrivning, roadmap, testplan - docs/README/wiki med sittplatsbilden Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -287,15 +287,46 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
spelbart; `TestTicketLevelFlow` spelar hela 002 headless: fel biljett
|
||||
stoppas, rätt biljett, spärr, trängsel, resa, vinst. ✓
|
||||
|
||||
### M7 – Svårighet, tid, poäng och debuffar
|
||||
### M7 – Svårighet, tid, poäng och debuffar ✓ (klar 2026-10-24)
|
||||
|
||||
- **Mål:** banor som kan misslyckas och poäng att jaga.
|
||||
- Tidsgräns och maxantal missade tåg på svåra banor; lätta banor obegränsade.
|
||||
- Poängformel: tid, pengar/påfyllningar, mätarnas status, navigeringsläge.
|
||||
- Stats (speed, törst, fokus, toalett, tur) och debuffar (onda fötter,
|
||||
trötthet, hunger/irritation, matförgiftning); temporära debuffar 1–4 banor.
|
||||
- Svårighetsprofil per bana i JSON.
|
||||
- **Teknik:** `internal/score`, `internal/sim/stats`.
|
||||
- Tidsgräns och maxantal missade tåg på svåra banor; lätta banor
|
||||
obegränsade.
|
||||
- Poängformel: tid mot par, pengar spenderade, sällskapets mätare vid
|
||||
målgång, utforskat, avdrag för missade tåg och omskanningar;
|
||||
navigeringsläge ger multiplikator i M9.
|
||||
- Stats (speed, törst, fokus, toalett, tur) som multiplikatorer och
|
||||
**debuffar** som påverkar dem: onda fötter (många steg), trötthet (lång
|
||||
bana), hunger/irritation (tom matmätare), matförgiftning (seedad chans
|
||||
vid kioskköp, snabbare toamätare). De temporära debuffarna från
|
||||
sidouppdrag (träningsvärk, skoskav, tungt köp, proppmätt, svettig) finns
|
||||
i systemet med varaktighet 1–4 banor; sidouppdragen som ger dem kommer i
|
||||
M10.
|
||||
- **Svårighetsinställningar per bana** (Björns tillägg 2026-10-24):
|
||||
- **Egna kort** (`individualCards`): varje person i sällskapet har sitt
|
||||
eget tågkort; spärren kräver att alla har pengar, biljettbanor att alla
|
||||
har biljett. Påfyllningsautomaten frågar vems kort.
|
||||
- **Sittplatsval** (`seatSelection`, kräver biljettbana): efter resmålet
|
||||
väljer man platser i vagnen (fönster/gång, vänster/höger, bredvid
|
||||
någon) efter sällskapets seedade önskemål. Missnöjda i sällskapet blir
|
||||
sura: mätaravdrag och poängavdrag.
|
||||
- Våningar (`floors`) är också en svårighetsvariabel men byggs i M9a.
|
||||
- **Teknik:** `sim/stats.go` (Stats, Debuff, Profile – ren Go),
|
||||
`Run.Score()`, `level` får `maxMissedTrains`, `individualCards`,
|
||||
`seatSelection`; `minigame.TopUp` får personval, `minigame.Ticket` får
|
||||
sittplatssteg.
|
||||
- **Poängformeln som byggdes:** tid 500 × min(1, par/tid) + pengar
|
||||
(300 − spenderat/10) + mätare (200 × sällskapets medel) + utforskat
|
||||
(100 × andel) − avdrag (50/missat tåg, 10/omskanning, 30/missnöjd).
|
||||
- **Bana 003 Shibuya** (svårighet 3, fyra i sällskapet): biljettbana med
|
||||
egna kort, sittplatsval, fullt tåg, fem stopp, 6 min tidsgräns, max ett
|
||||
missat tåg. Bana 002 fick tidsgräns, maxantal missade tåg och
|
||||
sittplatsval. Generatorn är nu spec-driven (JSON) så fler banor går fort.
|
||||
- **Klar när:** poängformeln, tidsgränsen, debuffarna och de två
|
||||
inställningarna är testade (`TestScoreBreakdown`,
|
||||
`TestTimeLimitAndMissedTrainsLose`, `TestDebuffsAffectRunAndAreEarned`,
|
||||
`TestIndividualCardsAtGateAndMachine`, `TestLevel003Flow`,
|
||||
`TestSeatSelectionPreferences`); bana 003 använder dem. ✓
|
||||
|
||||
### M7b – Tåg som kommer och går (Björns tillägg 2026-10-24)
|
||||
|
||||
@@ -329,6 +360,23 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
- **Klar när:** sparfil round-trip-test grön; "< 33 % per omgång" går att
|
||||
räkna ut från datan.
|
||||
|
||||
### M9a – Flera våningar (Björns tillägg 2026-10-24)
|
||||
|
||||
- **Mål:** stationer i flera plan – ännu en svårighetsvariabel.
|
||||
- Banformatet får **flera rutnät** (`floors`), ett per våning, med
|
||||
**trappor** (och rulltrappor/hissar) som kopplar en ruta på en våning
|
||||
till en ruta på en annan. Start kan ligga på en trappa upp eller ner:
|
||||
under mark, ovan mark eller marknivå.
|
||||
- Kamera, dimma, minikarta (en flik per våning eller stapel) och BFS-vägar
|
||||
(`level.Path`, lösbarhetstestet, botarna) blir våningsmedvetna; skyltar
|
||||
kan peka "↑ 2F / ↓ B1".
|
||||
- **Teknik:** `level.Level.Floors []Grid` med `Stairs []Link`, `Point`
|
||||
får `Z`; `sim.Mover` byter våning vid trappa; `tools/genart` får
|
||||
trappruta; generatorn placerar trappor som flaskhalsar.
|
||||
- **Klar när:** en bana med två våningar går att klara av boten headless,
|
||||
minikartan visar rätt våning, och alla gamla banor fungerar oförändrat
|
||||
(en våning).
|
||||
|
||||
### M9 – Navigeringslägen: lista och skyltläge
|
||||
|
||||
- **Mål:** de två sätten att spela story.
|
||||
@@ -341,7 +389,9 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
### M10 – Story-innehåll och flerbytesbanor
|
||||
|
||||
- **Mål:** hela resan från flygplats till flygplats.
|
||||
- Alla huvudbanor och sidobanor; banor med flera stopp och byten; buss.
|
||||
- Alla huvudbanor och sidobanor; banor med flera stopp och byten; buss;
|
||||
stationer i flera våningar (M9a) och svårighetsinställningarna från M7
|
||||
i stigande kombinationer.
|
||||
- Slutanimation (karaktärerna flyger iväg, items och poäng visas) och
|
||||
eftertexter.
|
||||
- Överstimulerande UI/banor som extra svårighet.
|
||||
|
||||
Reference in New Issue
Block a user