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:
@@ -0,0 +1,112 @@
|
||||
---
|
||||
instanz: logistik
|
||||
rolle: Simulation „Logistik Europa" (Modul 11)
|
||||
stand_seit: 2026-04-19
|
||||
phase: Phase 0 v0.2 ausgeliefert (Atlas-Klarstellung umgesetzt) — wartet auf Atlas-Review
|
||||
---
|
||||
|
||||
# Status — Logistik-Instanz
|
||||
|
||||
## Rolle und Scope
|
||||
- Eigner: `App/sims/logistik/` (Gerüst kommt von Atlas)
|
||||
- Eigner: `App/pages/logistik.php`, `App/pages/modul-logistik.php`
|
||||
- Eigner: `App/php/api/logistik-*.php`
|
||||
- Optional: neue MySQL-Tabellen `lg_…` (nur nach Atlas-Abstimmung)
|
||||
- Plattform-Zentrale ist Atlas — Anfragen über `_inbox/zentrale/`
|
||||
|
||||
## Aktueller Stand
|
||||
- 2026-04-19 23:15 — Kickoff-Briefing von Atlas erhalten
|
||||
- 2026-04-19 23:25 — Briefing + Pflichtenheft (alle Schlüsselkapitel) gelesen
|
||||
- 2026-04-19 23:30 — Empfangsbestätigung an Zentrale geschickt
|
||||
- 2026-04-20 00:10 — Atlas-Antworten auf alle 4 Rückfragen erhalten
|
||||
- 2026-04-20 00:20 — Quittung an Atlas (Routing bestätigt, alle Punkte übernommen)
|
||||
- Warte auf: Atlas baut Gerüst (module_info, Landing-Card, Detailseite, Wrapper, Skelette unter `App/sims/logistik/`)
|
||||
|
||||
## Geklärte Entscheidungen (Atlas-Antwort 00:10)
|
||||
- **Lehrplan**: `kompetenzen.json` als Vorab-Skizze (`status: "proposed"`) nach Gerüst, final nach Phase 2
|
||||
- **Glossar**: Atlas koordiniert Anfrage; ~10 von 13 Begriffen neu, reicht bis Phase 6
|
||||
- **Landing**: Eigene Gruppe „Wirtschaft & Verkehr" (LOCKED bis FREE)
|
||||
- **Tile-Server**: Carto Positron `https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png`, Leaflet 1.9.4, `minZoom: 4, maxZoom: 10`
|
||||
- **Routing**: bestätigt — L1 Luftlinie×1.3, L2/L3 hand-gepflegte Polylines in `lg-routes-osm.json`, OSRM erst auf Thomas-Wunsch
|
||||
- **State-Machine**: Atlas legt Enum exakt nach Pflichtenheft Kap 44.2 ins `engine.js`-Skelett
|
||||
|
||||
## Phasenplan (aus Briefing)
|
||||
- [ ] **Phase 0** — Balance-Matrix + Test-Harness + Headless-Runner-Skelett → Atlas-Review
|
||||
- [ ] Phase 1 — Fundament (engine.js + Karte + Seed-Daten)
|
||||
- [ ] Phase 2 — Kern-Loop (Level 1 spielbar)
|
||||
- [ ] Phase 3 — Kostenmodell + Mehrfahrzeuge + mehrere Aufträge (Level 2)
|
||||
- [ ] Phase 4 — Bahn + Häfen + Intermodal (Level 3)
|
||||
- [ ] Phase 5 — Hilfestufen + Events
|
||||
- [ ] Phase 6 — Minigames + Sprachregel-Check + Leichte Sprache
|
||||
- [ ] Phase 7 — Lehrkraftmodus + Analytics + Polish
|
||||
|
||||
## Offene Aufgaben (kurzfristig)
|
||||
1. `App/docs/module-interface.md` Abschnitte 4a/4b/4c/7b lesen
|
||||
2. Sobald Gerüst von Atlas steht: `balance-matrix.md` schreiben (Werte aus Kap 65 + Schätzwerte)
|
||||
3. `test.html` mit 7 Pflichttests anlegen
|
||||
4. Headless-Runner-Skelett `runLevel(levelId, seed, strategy)` definieren
|
||||
5. Atlas-Review von Phase 0 anfordern, bevor Phase 1 startet
|
||||
|
||||
## Blocker
|
||||
- Keine. Wartepunkt: Atlas-Gerüst (≈ 2 Sessions geschätzt)
|
||||
|
||||
## Konventions-Anker (Erinnerung)
|
||||
- Sprachregel 4a: keine „spielen / Spiel / Spieler"
|
||||
- Leichte Sprache 4b: `pickText()`-Pattern für alle UI-Texte
|
||||
- iPad 4c: 1180×820 Landscape, 36 px Touch-Ziele, kein Hover-Kleber
|
||||
- Autosave 7b: Pflicht bei state-relevanten Übergängen
|
||||
- Keine KI im Produkt: Auftragstexte/Events/Hilfe vorab generieren, statisch ausliefern
|
||||
- Inbox-Check vor jeder „Fertig"-Meldung
|
||||
- Commits: `Logistik: <Kurzbeschreibung>`
|
||||
|
||||
## Komplexitätshinweis
|
||||
Atlas schätzt 30–50 Sessions für das Gesamtmodul. Phasenschnitte
|
||||
sauber halten, nicht den ganzen Brocken auf einmal angehen.
|
||||
|
||||
---
|
||||
|
||||
## Tagesabschluss 2026-04-20 (00:20)
|
||||
- Kickoff + Pflichtenheft gelesen
|
||||
- Empfangsbestätigung + 4 Rückfragen an Atlas verschickt
|
||||
- Atlas-Antworten gelesen, alle Entscheidungen quittiert
|
||||
- Routing-Strategie (L1 Luftlinie×1.3 / L2-L3 Hand-Polylines / kein OSRM) bestätigt
|
||||
- **Nächstes (sobald Gerüst steht):** `balance-matrix.md` → 7 Pflichttests in `test.html` → Headless-Runner-Skelett `runLevel(levelId, seed, strategy)`
|
||||
- **Blocker:** keiner — wartet auf Atlas-Gerüst (~2 Sessions)
|
||||
- **Offen für Thomas:** keine akute Frage, alles geklärt
|
||||
|
||||
## Tagesabschluss 2026-04-20 (00:55)
|
||||
- Atlas-Gerüst empfangen (DB, Landing-Card, PHP-Wrapper, Sim-Skelette, Seeds)
|
||||
- 7 Pflichttests in `test.html` statisch geprüft + via Python-Mathematik verifiziert
|
||||
→ 22 von 22 Test-Cases bestehen rechnerisch, Browser-Bestätigung steht aus
|
||||
- **Phase 0 v0.1 geliefert:**
|
||||
- `App/sims/logistik/balance-matrix.md` v0.1
|
||||
- `App/sims/logistik/headless-runner.html` (Skelett, alles SKIP)
|
||||
- Atlas-Review angefordert
|
||||
|
||||
## Tagesabschluss 2026-04-20 (01:30) — Phase 0 v0.2 nach Atlas-Klarstellung
|
||||
Atlas hat klargestellt: Phase 0 ist **meine** Arbeit, das Gerüst war
|
||||
nur Vorarbeit. Konkrete Atlas-Forderungen alle abgehakt:
|
||||
|
||||
- **balance-matrix.md v0.2** — Rationale-Spalte je Parameter,
|
||||
INSERT-SQLs für `game_levels`, Konsistenz-Checks an Atlas, Event-Wahrsch.
|
||||
als Multiplikator umstrukturiert, `noop` zur Strategieliste
|
||||
- **headless-runner.js** (NEU, vorher .html) — Vanilla-JS-Modul,
|
||||
Browser+Node-kompatibel via UMD, Mulberry32-RNG, runLevel-Vertrag,
|
||||
4 Strategien (`noop` lauffähig + `naive/greedy/optimal` als Stubs)
|
||||
- **headless-runner.html** umgebaut zu dünner UI-Hülle (Logik in .js)
|
||||
- **test.html erweitert** um:
|
||||
- Test 8 — Edge-Cases (8 Cases: leere Polyline, getrennter Dijkstra-Graph,
|
||||
Pfad zum Selbst, negative Hours, null-Werte, unbekannter Modus)
|
||||
- Test 9 — Seeded-Random (4 Cases: Determinismus, verschiedene Seeds,
|
||||
Range, Seed 0)
|
||||
- Test 10 — Runner-Vertrag (10 Cases: noop läuft, reproduzierbar,
|
||||
Stubs werfen kontrolliert)
|
||||
- `group()` und Render auf async umgebaut, damit Test 10 (`await
|
||||
runLevel`) sauber läuft
|
||||
- Python-Verifikation der Mathematik: alle neuen Cases grün (10 von 10)
|
||||
- Atlas-Review erneut angefordert mit aktualisierten Artefakten
|
||||
|
||||
**Nächstes (nach Review-OK):** Phase 1 — `engine.js` `tick()` Loop +
|
||||
Leaflet-Karte mit 13 Seed-Locations
|
||||
**Blocker:** Atlas-Review + Thomas-Browser-Test (test.html + headless-runner.html)
|
||||
**Offen für Thomas:** einmal beide HTML-Seiten öffnen, Status melden
|
||||
Reference in New Issue
Block a user