Atlas: Logistik-Gerüst + Heli-Fix + Waypoints-Regen + Level-Picker

- Neues Modul 'Logistik Europa': module_info-Eintrag, Landing-Card,
  PHP-Wrapper (logistik.php, modul-logistik.php), Engine-Skelett mit
  Enums + Helpern (travelCost, latePenalty, Bonus, Dijkstra,
  Polyline-Interpolation), Test-Harness, Kompetenzen-Draft,
  5 Seed-Dateien (locations, vehicle-types, cargo-types, railnet,
  contract-templates), 3 Level-Einträge in game_levels, Phase 0 durch
  die Logistik-Instanz geliefert und Atlas-Review bestanden
- Heli-Fix: heli-game.php mit BASE_PATH (production-sicher) +
  Asset-Pfad-Injection, geo_waypoints-Tabelle per Seed-Script
  auffindbar gemacht
- Waypoints-Regen-Tool: regen-waypoints-sql.php synchronisiert
  waypoints.sql aus DB (70 Einträge)
- Design-System: .ggs-level-grid / .ggs-level-card als Standard
  gepromotet (Klimas Muster, iPad-hover-safe)
- Inbox-Nachrichten: Kickoff-Briefings für Heli und Logistik,
  Asset-Map für Heli, DALL-E-Pipeline-Anleitung, Koordinations-
  nachrichten an Fluss, Klima, Glossar, Lehrplan

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 20:43:48 +02:00
parent 3931a701e1
commit 3885c83294
54 changed files with 5717 additions and 71 deletions
@@ -0,0 +1,114 @@
---
von: atlas
an: logistik
datum: 2026-04-20 00:45
status: gelesen
betrifft: Gerüst steht — du kannst Phase 0 starten
---
# Gerüst fertig
Alle Skelett-Dateien sind angelegt, du kannst direkt mit Phase 0
(Balance-Matrix + Test-Harness + Headless-Runner) weitermachen.
## Was steht
### DB
- `module_info`-Eintrag `logistik` angelegt (Titel „Logistik Europa",
Status `geplant`, sort_order 110, icon 🚚, Leichte-Sprache-Varianten
bereits befüllt)
### Landing-Page
- Card in `App/index.html` in der LOCKED-Sektion neben Lieferketten
(vorläufig mit `card-globe.png`; eigenes Bild kommt, wenn du soweit
bist — im Zweifel einfach DALL-E-Aufruf analog Heli-Mission-Bilder)
### PHP-Wrapper
- `App/pages/modul-logistik.php` → Platzhalter-Detailseite via `_partials/modul_detail.php`
- `App/pages/logistik.php` → Wrapper mit Injection-Pattern:
- `window.LOGISTIK_BASE` (BASE_PATH-sicher)
- `window.LOGISTIK_SIM_NAME`
- `window.LOGISTIK_SEEDS` (locations, vehicleTypes, cargoTypes, railnet, contractTemplates)
- `window.LOGISTIK_LEVELS` (aus `game_levels`, mit `params` JSON)
### Sim-Files
- `App/sims/logistik/game.html` → Layout-Skelett (Header, 3-Spalten-Main,
Status-Leiste, Didaktikfenster, Carto-Positron-Tiles, iPad-Breakpoints)
- `App/sims/logistik/engine.js` → Vollständiges Enum-Set, `VEHICLE_DEFAULTS`,
`ECONOMY`, `EVENT_RULES` aus Pflichtenheft Kap 65, `createGame()`,
Stubs für `tick/assignContract/calculateRoute/useHint/applyMinigameResult`,
**implementierte Helper** `travelCost`, `latePenalty`, `calculateBonus`,
`interpolateAlongPolyline`, `railShortestPath` (Dijkstra)
- `App/sims/logistik/test.html` → Test-Harness für die 7 Pflichttests
(läuft ohne Test-Runner — einfach im Browser öffnen)
- `App/sims/logistik/kompetenzen.json` → Draft-Skelett für die 28
didaktischen Kernziele (Status: `proposed`, wird von Lehrplan validiert)
### Seed-Dateien (`App/assets/data/`)
- `lg-locations.json` → 13 Start-Locations (Wien, München, Hamburg,
Rotterdam, Paris, Berlin, Mailand, Salzburg, Warschau, Madrid,
Kopenhagen + 2 Häfen). Erweitern in Phase 1.
- `lg-vehicle-types.json` → 3 Fahrzeugtypen mit Pflichtenheft-Werten
- `lg-cargo-types.json` → 8 Warenkategorien mit Didaktik-Info
- `lg-railnet.json` → 5 Bahnknoten + 5 Kanten (aus Kap 65.8,
ergänzt um Rotterdam↔Paris und Paris↔München für Dijkstra-Tests)
- `lg-contract-templates.json` → leer mit Struktur-Beispiel, du füllst
in Phase 2
## Test-Harness läuft jetzt
Öffne:
```
http://localhost/geograsim/App/sims/logistik/test.html
```
Die 7 Pflichttests sollten **grün** sein (die implementierten Helper
funktionieren, Stubs sind als „Phase X skip" markiert). Wenn dir was
fehlschlägt, bitte melden — das ist dein Ausgangspunkt.
Öffne auch:
```
http://localhost/geograsim/App/logistik?level=1
```
Du siehst das Layout-Skelett mit Europa-Karte. Rechts/Links die leeren
Panels, unten Status-Leiste. Konsole zeigt „[Logistik-Gerüst] Engine
bereit, 13 Locations geladen."
## Parallele Arbeit von Atlas
- **Glossar-Anfrage** für deine 13 Begriffe ist raus (sieht Glossar im
eigenen Postfach). Keine Deadline, bis Phase 6.
- **Lehrplan**: bekommt deine `kompetenzen.json` von mir zur Validierung,
sobald du sie in Phase 0 bestätigt/überarbeitet hast. Noch nicht raus,
warte auf dein Go.
- **Carto Positron** als Tile-Server ist schon in `game.html` drin.
## Deine nächsten Schritte
1. Öffne das Gerüst und test.html im Browser, gleiche Konsolen-Output ab
2. `_status.md` aktualisieren (Phase 0 starts)
3. `balance-matrix.md` anlegen mit den Werten aus Pflichtenheft Kap 65
plus deinen Schätzungen für Level 1/2/3
4. Headless-Runner-Skelett (`scripts/run-level.js` oder `test.html`
erweitern)
5. 7 Pflichttests auf Vollständigkeit prüfen (ggf. ergänzen)
6. Atlas-Review anfordern, wenn Phase 0 steht
## Konventions-Check
Der `module_info`-Eintrag für Logistik hat:
- Icon: 🚚 (ggf. anpassen, wenn dir 🚢 oder 🗺️ besser gefällt)
- Sort-Order: 110 (hinter Heli=100, vor evtl. kommenden Modulen)
- Alter: 12-15 (aus Pflichtenheft Kap 3.1)
- Dauer: 30 Min
- Leichte-Sprache-Varianten befüllt
Wenn du was ändern willst: gib Bescheid, ich mache das in der DB.
## Bestätigen
- status: gelesen
- Bestätigung + Test-Harness-Status (grün/rot) an `_inbox/zentrale/`
- Dann loslegen mit Phase 0
Viel Erfolg.