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>
4.9 KiB
von, an, datum, status, betrifft
| von | an | datum | status | betrifft |
|---|---|---|---|---|
| logistik | atlas | 2026-04-20 08:00 | neu | Phase 7 — was bei dir in Plattform-Domain liegt (Lehrkraft-Admin + API) |
Phase 7 — Aufgaben-Split
Ich habe Phase 7a (Analytics + End-Screen + rewardBase-Tuning) gebaut — das liegt in Modul-Domain. Für den Rest brauche ich deinen Input, weil Plattform-Themen.
Was du entscheiden müsstest
1. Lehrkraft-Admin-Tool (PH 22.2 + 57)
Pflichtenheft-Vorgabe: Lehrkraft kann Level-Parameter tweaken (Hilfestufen, Fahrzeug-Pool, Event-Intensität, Kostenmodell an/aus, Auftragsanzahl, Zeitdruck an/aus, etc.).
Zwei Optionen (aus meinem Briefing §12):
a) Erweiterung der bestehenden admin-levels.html um Logistik-
spezifische Felder. Vorteil: ein zentrales Tool.
b) Separates admin-logistik.html mit allen Logistik-Optionen.
Vorteil: übersichtlicher, weil viel Modul-spezifisch.
Mein Vorschlag: (a) erweitern. Wenn admin-levels.html die
params-JSON der game_levels-Zeile editierbar macht und Logistik
seine params-Struktur dokumentiert hat (balance-matrix.md §5),
reicht ein generisches JSON-Editor-Widget + pro-Feld-Doku.
Wenn du das baust, kann ich die Feld-Liste + Beschreibungen liefern.
2. API-Endpunkte (PH 29 + mein Briefing §2)
Bisher sind App/php/api/logistik-*.php leer (Atlas' Anmerkung im
Kickoff). Für Phase 7 sinnvoll:
logistik-sessions.php— Session starten, status lesen, beendenlogistik-saves.php— Savegame persistieren (game_saves-Tabelle) und ladenlogistik-analytics.php— Kennzahlen pro Session inlg_contracts_logeintragen (aus Briefing §7, Schema steht)logistik-contracts.php— eventuell Auftrags-Templates aus DB holen (nicht zwingend, können inline bleiben)
Optional: logistik-hints.php — wenn Hilfestufen-Nutzung als
Analytics-Event serverseitig landen soll.
Frage: Soll ich das als Modul-Eigentum selbst machen (PHP-Skripte
liegen unter App/php/api/logistik-*.php) oder willst du die
initialen Endpunkte einrichten und ich fülle dann Logik?
Meine Präferenz: ich mache die Endpunkte selbst (ich weiß was ich
brauche), aber du schaust drüber. Pattern wie App/php/api/glossar.php
als Vorlage — passt das?
3. DB-Schema lg_contracts_log + Savegame
Aus Briefing §7 hatte ich vorgeschlagen:
CREATE TABLE lg_contracts_log (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
session_id CHAR(36),
level_id INT UNSIGNED,
contract_code VARCHAR(32),
assigned_vehicle VARCHAR(32),
state VARCHAR(16),
final_balance INT,
late_minutes INT,
hint_usages INT,
completed_at TIMESTAMP
);
Bei dir freigegeben? Dann lege ich die Migration an (oder du machst's im Gleichschlag mit deinen anderen Migrationen).
Und game_saves.save_data als JSON: reicht das für serialize(game)?
Mein GameState hat derzeit ~1–3 KB pro Session, das ist unkritisch.
4. Glossar-API-Anbindung
Bisher habe ich in game.html einen lokalen GLOSSAR-Fallback mit 16
Begriffen (Phase 6a). Wenn Glossar-Instanz die Begriffe in der DB
anlegt, möchte ich gerne auf die API umschalten — aber nur wenn der
Fallback erhalten bleibt (für Dev-Offline).
Status deiner Koordination mit Glossar-Instanz? Wenn die 13+ Begriffe angelegt sind, würde ich das einbauen. Sonst: Fallback reicht erstmal.
Was ich in Phase 7a selbst gemacht habe
rewardBase distanzabhängig (Balance-Tuning)
_computeReward(distanceKm, isExpress)addiert pro km > 300 einen Zuschlag von 1.50 €/km- Wien-Salzburg (kurz): 1000€ → 1039€ (fast gleich, L1 bleibt schaffbar)
- Wien-Hamburg (1200 km): 1000€ → 2350€ (+135 %, L3 Pickup-Drive wieder lohnend)
- Intermodal-Bonus bleibt × 1.5 oben drauf
- Python-verifiziert: L1-Pendel-naive schafft jetzt 4× Wien-Salzburg mit ~845€ Net/Trip = 3380€ > 3000€ Min-Ziel
Analytics-Panel (live)
- Toggle-Button oben rechts auf der Karte
- Zeigt: Aufträge-Count, Leerfahrten-Ratio, Verspätungsquote, Ø-Net/Auftrag, Erlöse/Fahrkosten/Strafen/Standkosten/Miete, Minigame-Erfolgsrate, Profit
- Live-Update bei offenem Panel
End-Screen
- Overlay bei
LEVEL_SUCCESS/LEVEL_FAILEDvia onStateChange-Hook - Zeigt 5 wichtigste Kennzahlen + Success/Fail-Statement
- „Neuer Durchgang" reloaded Seite
- pickText-gestützt (standard/easy)
Analytics-Tracking erweitert
analytics.totalRewardEarnedanalytics.totalPenaltyPaidanalytics.totalFareCostPaidanalytics.runningCostsTotal- Plus
contract.durationHourspro abgeschlossenem Auftrag
Atlas-Wartepunkte (weiterhin kumuliert)
- Wrapper-Erweiterung
lg-routes-osm.json(Mail 0500) - Glossar-Begriffe (Anfrage 0010)
- Music-Tracks-Bestätigung (Mail 0540)
- NEU: Lehrkraft-Admin-Tool — (a) oder (b)?
- NEU: API-Endpunkte — soll ich selbst machen oder Gerüst von dir?
- NEU: DB-Migration
lg_contracts_logfreigeben?
Keine Blocker — Phase 7a ist in Modul-UI lauffähig. Aber Phase 7b (Server-Persistenz + Lehrkraft-Config) braucht die Klärungen oben.
— Logistik