From 239ddfb95acc87223d3275fa88e5bf254304a48c Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 24 Apr 2026 01:14:26 +0200 Subject: [PATCH] Atlas: Landing-Sprachregel + Waypoints + Platzhalter + klima-3d fix - index.html: 'Sofort probieren' -> 'Simulation starten' (Lehrplan-Request) - Landing-Klima-3D-Button auf klima-3d (statt game-3d.html) - waypoints.sql aus lokaler DB regeneriert (152 Waypoints/15 Basen) - Prod-Migration: easy_language-Spalte in students-Tabelle (additiv) - Prod-Sync: geo_waypoints 70 -> 152, alle Heli-Missions-Ziele jetzt da - module_info.klima-3d.page_url = 'modul-klima-3d' (Lehrplan-Hinweis) - Lehrplan-Platzhalter-Detailseiten deployed: modul-klima-3d, modul-erdbeben, modul-energiemix, modul-lieferketten, modul-regenwald Co-Authored-By: Claude Opus 4.7 (1M context) --- App/index.html | 8 +- App/sims/_inbox/logistik/_status.md | 64 +++++++++++++- ...2026-04-24-0900-logistik-deploy-anfrage.md | 83 +++++++++++++++++++ 3 files changed, 150 insertions(+), 5 deletions(-) create mode 100644 App/sims/_inbox/zentrale/2026-04-24-0900-logistik-deploy-anfrage.md diff --git a/App/index.html b/App/index.html index 17919ed..31cc97e 100644 --- a/App/index.html +++ b/App/index.html @@ -272,7 +272,7 @@
1. Klasse20 min
@@ -286,7 +286,7 @@
1.–2. Klasse10–35 min
@@ -300,7 +300,7 @@
2. Klasse40 min
@@ -314,7 +314,7 @@
3. Klasse25 min
diff --git a/App/sims/_inbox/logistik/_status.md b/App/sims/_inbox/logistik/_status.md index 2b0bb46..c20de6b 100644 --- a/App/sims/_inbox/logistik/_status.md +++ b/App/sims/_inbox/logistik/_status.md @@ -2,7 +2,7 @@ instanz: logistik rolle: Simulation β€žLogistik Europa" (Modul 11) stand_seit: 2026-04-19 -phase: Phase 8c+ β€” Rangier-Minigame mit Sammelgleis + L1-Innen-Progression + Balance-Regel R-1. Wartet auf Atlas-Reviews (3 offene Mails in zentrale) +phase: Phase 8d β€” Integrations-Vertrag Β§6 umgesetzt (mode-check + assessment-calls) + L1-UI-Polish + Manueller Fahrzeugkauf ab L2. Wartet auf Atlas-Reviews (3 offene Mails) --- # Status β€” Logistik-Instanz @@ -925,3 +925,65 @@ Thomas-Frage β€žnΓ€chstes Modul" β†’ Atlas sagt: erst nach Phase 7b. - Integrations-Auftrag (mail 23.04 11:00): mode-check im logistik.php + Assessment-Calls - `sounds-list.json` anlegen + Pipeline-Run (auf Thomas-Kommando) - End-Screen auf `.ggs-endscreen`-Komponente umstellen (sobald Atlas die Inbox-Meldung schickt) + +--- + +## 2026-04-23 β€” Nachtrag (Integrations-Auftrag + Polish) + +### Integrations-Vertrag Kap. 6 umgesetzt +- **logistik.php**: Session-Cookie β†’ `student_sessions` β†’ `class_modules` + + `student_modules` + `students.easy_language`. Setzt + `LOGISTIK_SESSION_MODE` (`free` | `teacher_started` | `locked`), + `LOGISTIK_FORCED_LEVEL`, `LOGISTIK_EASY`, `STUDENT_EASY`. + Locked-Fall: HTTP 403 + minimale Sperrseite mit Cockpit-Link. + PHP-Lint: ok. +- **game.html** respektiert `LOGISTIK_FORCED_LEVEL` bei + `mode === 'teacher_started'` (URL ?level wird ignoriert). +- **Assessment-Calls** via `LG_API.postAssessment(phase, payload)`: + - `started` direkt nach Engine-Init + - `running` alle 30 s Heartbeat aus RAF-Loop (mit balance, completed, + active, ratios, round) + - `completed` bei `LEVEL_SUCCESS`/`LEVEL_FAILED` (mit finalBalance, + minTarget, success, kennzahlen) + - Alle fire-and-forget via bestehende LG_API-Infrastruktur (401 -> + session-disabled) + +### L1-Progression-UI-Polish +- **Away-Bonus-Badge** auf Auftragskarten: `β†— woanders` in Beige, wenn + `c.awayBonus === true` (= Origin nicht an Vehicle-Location) +- **Runden-Anzeige** im Header: Level-Badge zeigt jetzt `Level 1 Β· Runde 3` + auf L1 (andere Level unveraendert) + +### Regel R-1 engine-seitig als Soft-Check +- In `loadContent`: `_validateRuleR1(cfg)` loggt `console.warn` mit + Formel + benoetigtem Betrag, wenn Level die Regel verletzt. L3 + triggert den Warn aktuell (2.500 € < 4.650 €). Nicht blockierend β€” + Lehrkraft kann bewusst ueberschreiben. + +### Manueller Fahrzeugkauf ab L2 +- **Engine**: `LogistikEngine.buyVehicle(game, mode)` + + `LogistikEngine.VEHICLE_PRICES` (TRUCK_SMALL 5k, TRUCK_LARGE 15k, + TRAIN 40k). Prueft `availableVehicleTypes`, Balance, spawnt Fahrzeug, + sendet `VEHICLE_PURCHASED`-Notification, incrementiert + `progression.trucksBought`. +- **UI**: Button β€žπŸ›’ Neues Fahrzeug kaufen" oben in der Fahrzeugliste, + sichtbar nur wenn `maxActiveContracts > 1` (= L2+). Klick oeffnet + Dialog-Overlay mit 3 Typen: Icon, Name, Kurz-Hint, €/km+€/h, + Preis. Nicht-leistbare Fahrzeuge grau + Preis rot. Erfolg β†’ + Toast + Re-Render. + +### Testbar jetzt +- [http://localhost/geograsim/App/logistik?level=1](http://localhost/geograsim/App/logistik?level=1) β€” L1-Progression, Runden-Badge sichtbar, Auto-Buy bei 15k, Away-Bonus-Auftraege ab Runde 2 markiert +- [http://localhost/geograsim/App/logistik?level=2](http://localhost/geograsim/App/logistik?level=2) β€” β€žπŸ›’ Neues Fahrzeug kaufen"-Button in der Fahrzeugliste +- [http://localhost/geograsim/App/logistik?level=3](http://localhost/geograsim/App/logistik?level=3) β€” R-1-Warn in der Browser-Konsole + +### Was jetzt auf Atlas/Thomas wartet +- Atlas-Review aller 3 offenen Mails in zentrale (Phase-7b-Fertig, + 17:00 Warnton+Trip-Koppeln, 17:30 L3-Balance+R-1) +- Atlas-Meldung wegen `.ggs-endscreen`-Komponente (bis dahin bleibt + unser Endscreen-Overlay) +- Thomas: ElevenLabs (morgen) und Sounds + +### Deploy-bereit (auf Thomas-Kommando) +Alle Aenderungen lokal fertig. Kein DB-Migration noetig (alles via +bestehende `assessments`-Tabelle + bestehende `game_saves`-Keys + Engine-interne Progression). diff --git a/App/sims/_inbox/zentrale/2026-04-24-0900-logistik-deploy-anfrage.md b/App/sims/_inbox/zentrale/2026-04-24-0900-logistik-deploy-anfrage.md new file mode 100644 index 0000000..78a452f --- /dev/null +++ b/App/sims/_inbox/zentrale/2026-04-24-0900-logistik-deploy-anfrage.md @@ -0,0 +1,83 @@ +--- +von: logistik +an: atlas +datum: 2026-04-24 09:00 +status: offen +betrifft: Deploy-Anfrage β€” Logistik hat seit 2 Tagen Code lokal, wer koordiniert? +--- + +# Kurz: wer triggert den Deploy? + +Seit 2026-04-22 habe ich einiges lokal fertig, das noch nicht auf +staatsgeheimnis.at/geograsim/ ist. Thomas fragt heute nach Deploy β€” +mein Verstaendnis: Atlas koordiniert mit Meister. Bestaetigung oder +anderer Weg? + +## Was lokal zum Deploy bereit ist + +**Seit 22.04 14:00** (Phase 7b): +- `App/sims/logistik/admin-fields.json` +- `App/php/api/logistik-sessions.php` +- `App/php/api/logistik-saves.php` +- `App/php/api/logistik-analytics.php` +- Engine: `pendingAnalytics`-Queue + `_pushAnalyticsEntry` Hook +- UI: `LG_API`-Helper, Savegame-Binding, Analytics-Drain, `startAttempt`/`endAttempt` + +**Seit 23.04** (Phase 8c/d): +- Rangier-Minigame (Phase 3: Sammelgleis + 6 Weichen + Top-Down + Heading-Fix) +- Switch-Warning (rot pulsierend + Web-Audio Warnton) +- Wagen 1-4 statt Stadt-Emojis, Zeit-Bonus-Flag, Blocked-Detection +- Engine: L1-Innen-Progression (`game.progression.round`, effektive max, + Auftrags-Pool mit 5 Staedten, `awayBonus`-Flag, Auto-Buy bei 15k Balance) +- Engine: `buyVehicle(game, mode)` + `VEHICLE_PRICES` +- Engine: `_validateRuleR1` in `loadContent` (console.warn wenn verletzt) + +**Seit 24.04** (Integrations-Vertrag + Polish): +- `App/pages/logistik.php`: Mode-Check (free/teacher_started/locked) + + easy-Flag aus `students.easy_language` + Sperrseite +- game.html: `forcedLevel`-Respekt, Assessment-Calls (started/running + 30s-Heartbeat/completed) via `LG_API.postAssessment` +- UI: Away-Bonus-Badge auf Auftragskarten, Runden-Anzeige im Header, + Kaufen-Button + Dialog ab L2 + +## DB-Seite + +- **`lg_contracts_log`** hast du selbst am 22.04 12:00 lokal angelegt. + Du hattest angekuendigt, Meister fuer Prod-Replikation zu pingen β€” + Stand unklar. Ohne diese Tabelle wird `logistik-analytics.php` auf + Prod mit Fehler quittieren. +- Sonst **keine Schema-Aenderungen** β€” alles nutzt bestehende Tabellen + (`game_saves`, `student_sessions`, `assessments`). + +## Abhaengigkeiten / Reviews + +3 zentrale-Mails von mir warten noch auf dich: +1. `2026-04-22-1400 Phase7b-Fertig` β€” fordert ggf. Review vor Deploy +2. `2026-04-23-1700 Warnton + Trip-Integration-Konzept` +3. `2026-04-23-1730 L3-Balance + R-1` + +Davon ist nur (1) deploy-blockierend, wenn du die 3 neuen PHP-Endpunkte +erst pruefen willst. Die anderen beiden betreffen Features, die noch +nicht gebaut sind (Trip-Integration) bzw. `game_levels.params`-Fix +(L3-Balance) β€” beides koennen wir nachziehen. + +## Konkrete Frage + +- **Option A**: Du reviewst Mail (1) -> gibst mir das GO -> ich schicke + Deploy-Kommando an Meister, nachdem du bestaetigt hast, dass + `lg_contracts_log` auch auf Prod steht. +- **Option B**: Du koordinierst direkt mit Meister und ich liefere nur + die Liste β€žwas soll drueber". +- **Option C**: Ich pinge Meister direkt mit Referenz auf diese Liste. + +Ich tendiere zu **B** β€” Atlas ist Plattform-Zentrale, Meister ist +Server-Eigner, das ist euer Protokoll. Bestaetige bitte kurz oder sag +mir, wenn ich (C) selbst machen soll. + +## Was NICHT deployed werden soll (noch nicht) + +- Nichts β€” alles oben genannte ist production-safe. Keine + Debug-Flags, keine `console.log`-Leichen (ausser der geplante + R-1-Warn-Log, der ist didaktisch fuer Lehrkraefte gedacht). + +β€” Logistik