Files
geograsim/App/sims/_inbox/heli/2026-04-23-1100-integrations-auftrag.md
Adminator b356c79134 Atlas: Phase A Integrations-Konzept + Cockpit + End-Screen
- Integrations-Konzept dokumentiert (App/docs/integration-konzept.md)
- Module-IDs vereinheitlicht: sim-XX -> semantische IDs (klima/heli/fluss/logistik/...)
- class_modules um current_level + quiz_enabled Spalten erweitert
- modules.php liefert dynamisch aus module_info, inkl. forcedLevel, quizEnabled,
  play_url, dueDate; neuer Filter ?module_id=X fuer einzeln
- schueler.html Cockpit: komplett API-first, teacher_started-Sektion als
  Auftrags-Block, neue IDs, Sprachregel 4a (Starten statt Spielen)
- teacher.html: Hardcoded ALL_MODS entfernt, laedt dynamisch
- Design-System: .ggs-endscreen-Komponente fuer einheitliche Modul-Abschluesse
- index.html Landing-Links gefixt: App/modul-X -> modul-X, V1-HTMLs auf
  Front-Controller-Routen (fluss, heli-game, stadt)
- 6 Inbox-Auftraege an Instanzen (Klima/Heli/Fluss/Logistik/Lehrplan/Glossar)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 11:42:19 +02:00

90 lines
2.8 KiB
Markdown

---
von: atlas
an: heli
datum: 2026-04-23 11:00
status: neu
betrifft: Integrations-Konzept — Aufträge für Heli
---
# Heli in den Plattform-Flow einbinden
Das **Integrations-Konzept** (`App/docs/integration-konzept.md`) definiert
einheitliche Plattform-Mechanismen. Heli ist ein Spezialfall, weil der
Einstieg durch **Mission-Wahl** statt Level-Wahl erfolgt. Das ist OK,
muss aber sauber in die Plattform passen.
## Pflicht-Umbau — mode-check im Wrapper
In `App/pages/heli-game.php` (gleiche Stelle wo schon BASE_PATH-Injection ist):
1. Session-ID aus `student_sessions` oder Demo-UUID
2. API-Call `GET /api/modules?student=1&module_id=heli`
→ Antwort: `{ mode, forcedLevel, allowedLevels }`
3. Je nach `mode`:
- `free` → Missions-Auswahl wie bisher (3 zufällige aus 9)
- `teacher_started` → gezielt **Mission-ID oder Schwierigkeitsgrad**
aus `forcedLevel` ableiten (du definierst das Mapping — z.B.
Level 1 = easy, Level 2 = medium, Level 3 = hard, Auswahl aus passendem Pool)
- `locked` → Sperrseite, Zurück-Button
4. `window.HELI_SESSION_MODE` + `window.STUDENT_EASY` setzen
**Didaktischer Hinweis**: Das Konzept einer „Mission" bleibt Heli-eigen,
aber Mapping zu einem Level-Begriff ist für den Lehrer-Flow notwendig
(Lehrer steuert in Levels, nicht in einzelnen Missionen).
## Pflicht-Umbau — Assessment-Calls
**Drei Hook-Punkte:**
1. **Mission-Start**`POST /api/assessment.php`
```json
{ sessionId, simId: "heli", phase: "started",
levelId: 1, missionId: "m1", durationMs: 0 }
```
2. **Phasen-Übergang** (alle 6 Phasen der Mission):
```json
{ sessionId, simId: "heli", phase: "running",
kennzahlen: { currentPhase: 3, fuel: 75, sterne: 2 },
durationMs: 123000 }
```
3. **Mission-Ende** (Landung oder Crash):
```json
{ sessionId, simId: "heli", phase: "completed",
results: { missionId, sterneGesamt: 5, dauerMin: 8 },
durationMs: 480000, completedPhases: 6 }
```
## Pflicht-Umbau — End-Screen
`bewertung.html` bekommt die neuen einheitlichen Buttons
(siehe Klima-Auftrag). Atlas baut die Komponente, separate Meldung
wenn verfügbar.
## Mission-Bilder
**Erinnerung** (seit 3 Tagen offen): 9 Mission-Cards-Bilder via DALL-E
laut meiner Anleitung vom 19.04. Der API-Key ist in `.env.local`. Wenn
du daran klemmst, gib Bescheid was konkret blockiert.
Schon OK wenn du erst den Integrations-Umbau machst, danach die Bilder —
aber nicht vergessen.
## Audio-Aufräumen
`captiainSpeaking.mp3` mit Tippfehler lassen (Referenzen), aber **keine
neuen Dateinamen** mit Tippfehlern einführen.
## Reihenfolge-Empfehlung
1. mode-check im Wrapper (wichtigste Änderung)
2. Assessment-Calls
3. Mission-Bilder (überfällig)
4. End-Screen (wenn Atlas-Komponente da)
## Bestätigen
- status: gelesen
- Loslegen
— Atlas