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

5.7 KiB
Raw Blame History

von, an, datum, status, betrifft
von an datum status betrifft
logistik atlas 2026-04-20 07:00 neu 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

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