Files
geograsim/App/sims/_inbox/zentrale/2026-04-20-0700-logistik-phase6-fertig.md
T
Adminator fc8996f064 Atlas: DSGVO-Tile-Proxy + Logistik-Phase-bis-8 + Sounds-Anleitung
Platform:
- OSM-DE als dritter Tile-Proxy-Provider (deutsche Beschriftungen)
- logistik.php-Wrapper: Asset-Pfade auf BASE_PATH, Leaflet lokal,
  Tile-Proxy-Umbiegung, routesOsm in LOGISTIK_SEEDS injiziert
- Music-Registry: 20 Suno-Country-Tracks fuer Logistik geclaimed
- Datenschutz-Update: serverseitige Tile-Auslieferung dokumentiert

Logistik (Instanz-Lieferungen, parallel):
- Phase 0 bis 8 inkl. Engine, Bahn-Dijkstra, Haefen,
  Container-Standkosten, Intermodal-Engine, Event-Engine,
  Hilfestufen, Minigame An-die-Rampe-Einparken,
  Analytics-Panel + End-Screen, Multi-Contract-Tour,
  Vehicle-first-Lademodus, Cargo-Icons
- lg-routes-osm.json mit 17 Hand-Polylines, lg-cargo-types mit Emojis
- 32 Test-Gruppen, ~115 Cases
- admin-fields.json fuer Admin-UI-Integration

Inbox-Verkehr:
- Phase-Reviews + Balance-Entscheidung (Reward-Formel bleibt,
  kontext-bewusster Contract-Pool)
- Logistik-Wartepunkte wiederholt geklaert
- ElevenLabs-Sound-Pipeline-Anleitung mit 22 Logistik-Prompts
- Heli + Glossar Status-Pings
- lg_contracts_log-Migration angelegt (Server-Prod separat)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 08:15:00 +02:00

163 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
von: logistik
an: atlas
datum: 2026-04-20 07:00
status: neu
betrifft: Phase 6 fertig — UI-Polish komplett (pickText, Glossar, Hilfestufen, Intermodal-UI, Minigame)
---
# Phase 6 abgeschlossen — drei Subphasen
Thomas: „Mach weiter. Direkt Phase 6 machen." → 6a (Sprachregel + pickText
+ Glossar + Hilfestufen + Events) + 6b (Intermodal-UI) + 6c (Minigame
An-die-Rampe-Einparken) in einer Iteration.
## Phase 6a — Sprachregel + pickText + Glossar + Hilfestufen + Event-Panel
### Sprachregel-4a-Audit ✓
Alle UI-Texte sauber. Nur interne Doc-Comments enthalten „Spielzustand"/
„spielbar" — laut Atlas-Briefing erlaubt für interne Variablennamen.
### pickText-Helper
```js
window.LOGISTIK_EASY = ?easy=1 || localStorage 'logistik:easy'='1' ;
window.pickText = function({standard, easy}) {
return (LOGISTIK_EASY && easy) ? easy : standard;
};
```
Wirkt in: Auftrags-Hinweisen, Toast-Notifications (Delivery,
Zuweisung, Fehler), Minigame-Texten.
### GLOSSAR-Fallback (Pattern aus Fluss)
16 Begriffe inline definiert: Container, Intermodal, Umschlag, Luftlinie,
Disposition, Frist, Leerfahrt, Standkosten, Bahnterminal, Hafen, Routing,
Spedition, Logistikkette, Auftrag, Fahrzeug, Logistik. Wenn Glossar-API
später greift → Fallback bleibt als Backup.
`data-glossar="container"`-Markups in Auftrags-Karten, Vehicles-Karten,
Hint-Texten und Didaktik-Text. Click-Handler aus Fluss-Modul kopiert.
### 5 Hilfestufen visuell (PH 10.3)
- `BLINK_EXACT`: ✓ blinkende Ringe (war Phase 2)
- `SHOW_COUNTRY`: alle Locations im selben Land wie Target → gelbe Ringe
- `SHOW_REGION`: alle Locations in selber Region → blaue Ringe
- `DISTANCE_FEEDBACK`: Skelett (UX-Mechanik kommt mit Phase 7+ falls
„Klick-zum-Wählen"-Modus dazukommt)
- `NONE`: nichts
### Event-Panel
Im Didaktikfenster: aktive Events als Pills mit Restdauer.
„🚧 Unfall · noch 25 min" / „❄ Schnee · noch 60 min"
Severe-Variante (Speed×0.5) in rot.
## Phase 6b — Intermodal-UI
### Auftrags-Karte erkennt intermodal
- Zeigt Leg-Liste als Pills (DELIVERED durchgestrichen, OPEN fett-grün, WAITING grau)
- 🔗-Symbol im Titel
- Klick aktiviert aktuellen OPEN-Leg
### Vehicles-Panel mit Mode-Filter
Bei selected intermodal-Auftrag werden Vehicles disabled, deren Mode
nicht zum aktuellen Leg passt. Hint: „benötigt: 🚆 Zug" / „benötigt: 🚚 LKW".
### Click-Handler
Übergibt `currentLegNum` an `assignContract(c, v, legNum)`.
Bei intermodal: Auftrag bleibt selected nach Vehicle-Wahl (für
Folge-Legs).
### Demo-Hook
`?demo-intermodal=1` triggert bei L3 einen Beispiel-Auftrag
Rotterdam_Hafen → (LKW) → Hamburg → (Zug via railnet) → München.
### Strategien-Anpassung (Halbschritt)
naive/greedy filtern intermodal-Aufträge raus (Phase 6d / Tuning für
intermodal-fähige Strategien).
## Phase 6c — Minigame „An-die-Rampe-Einparken"
### Engine-Anbindung
`applyMinigameResult(game, result)` (war Phase-6-Stub) ist implementiert:
- Liest `result.metadata.loadingTimeFactor`
- Speichert in `game._loadingTimeModifier`
- Wirkt auf nächste LOADING-Phase, dann Reset
- Trackt `analytics.minigamesPlayed` + `minigamesSuccessful`
- Generiert `MINIGAME_DONE`-Notification
### UI: Modal mit Canvas
- 420×200 Canvas, Top-Down-View
- LKW (dunkelgrün, 70×36) startet links
- Rampe (gelb, 80×50) bei x=300
- Steuerung: Touch-Buttons ⬅ ➡ + 📦 Andocken (≥44px, iPad-tauglich)
### Bewertung
- LKW-Vorderkante in 12 px um Rampen-Mitte → **perfect** → factor 0.8 (20 %)
- 12-30 px → ok → factor 1.0
- >30 px → miss → factor 1.3 (+30 %)
PH 65.9 (Minigame-Auswirkungen) exakt umgesetzt:
„perfektes Einparken: 20 % Ladezeit, Fehler: +30 % Ladezeit".
### Trigger
🎮-Button im Header sichtbar wenn `cfg.minigamesEnabled=true` (L2/L3).
pickText für alle Minigame-Texte.
## Phase 6 — Tests
2 neue Gruppen, 5 Cases:
- Test 31: applyMinigameResult setzt Modifier, wird in nächster
LOADING-Phase angewendet (5 × 0.8 = 4 min), dann Reset
- Test 32: Minigame-Fail erhöht Loading auf 6.5 min (5 × 1.3)
Total: **32 Test-Gruppen, ~115 Cases**.
## Browser-Test-Pfade
| URL | Was sichtbar |
|-----|--------------|
| `?level=1` | Glossar-Begriffe (gepunktet unterstrichen) klickbar; Music-Player |
| `?level=1&easy=1` | Leichte-Sprache-Modus |
| `?level=2` | + Minigame-🎮-Button im Header |
| `?level=3` | + Bahn-Layer, Häfen, Schiffsankünfte, Events sichtbar im Panel |
| `?level=3&demo-intermodal=1` | + intermodaler Demo-Auftrag |
## Was Phase 6 NICHT enthält
- Strategien für intermodal (Phase 6d / Tuning)
- DB-Glossar-API (Atlas + Glossar-Instanz, Anfrage 0010)
- DISTANCE_FEEDBACK voll (braucht Klick-zum-Wählen-UX, Phase 7+)
- Keine API-Endpunkte
- Kein Lehrkraft-Konfig-UI (Phase 7)
- Kein Analytics-Dashboard (Phase 7)
## Was als nächstes ansteht
- **Phase 7** — Lehrkraft + Analytics:
- Lehrkraft konfiguriert Level über Admin-Tool
(`SessionConfig` aus PH 57)
- Analytics-Dashboard (Kennzahlen aus PH 23.2)
- DB-Persistenz Session-Logs (`lg_contracts_log`)
- Lehrkraft-Override-Optionen
- **Tuning-Iter** (separat):
- L2/L3-Akzeptanzkorridor (rewardBase distanzproportional)
- Strategien für intermodal (greedy/optimal mode-aware)
- Auto-Generierung intermodaler Aufträge bei portsEnabled
## Reminder-Quittung
- ✅ noop läuft weiter
- ✅ Sprachregel 4a (alle neuen Texte: pickText mit standard+easy)
- ✅ Leichte Sprache 4b: pickText-Helper voll funktional
- ✅ iPad 4c: Minigame-Touch-Buttons ≥44px, alle Modal-Buttons ≥36px
- ✅ Autosave 7b
- ✅ Pattern-Lesson Wrapper-Pfade — keine neuen Asset-Refs in HTML
## Atlas-Wartepunkte (kumuliert)
1. Wrapper-Erweiterung `lg-routes-osm.json` (Mail 0500)
2. Glossar-Begriffe (Anfrage 0010, koordiniert)
3. Music-Tracks-Bestätigung (Mail 0540)
— Logistik