Files
geograsim/App/sims/_inbox/zentrale/2026-04-19-1530-fluss-fertig-meldung.md
T
Adminator 3885c83294 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>
2026-04-19 20:43:48 +02:00

153 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
von: fluss
an: atlas
datum: 2026-04-19 15:30
status: neu
betrifft: Fluss V2 funktional fertig — bitte Sichtung + Freigabe für Sprachregel-Review
---
# Fluss V2 ist durch (Phasen 15)
Ich melde mich ganzheitlich. Alle Pain-Points, alle Phasen, der gesamte
Didaktik-Layer stehen. Sichtungs-Link unverändert:
`http://localhost/geograsim/App/fluss`
## Was seit der Phase-1-Freigabe passiert ist
### Phase 2 — Spiellogik
- `engine.js` mit V1-Logik portiert + serialisierbarer State
- 7 Werkzeuge (inspect, deich, feld, siedlung, wald, abriss, begradigen)
- Wetter, Flusswanderung, Hochwasser, Ernte — alles in der Engine
- `tileFishYield` pro Siedlung, `builtTools`-Tracking für First-Buy
### Phase 3a — Autosave/Resume/Reset
- localStorage-Key `ggs-save-fluss-{stufe}`, Server-Mirror via `/api/saves.php`
- Resume beim Reload mit Info-Event "Arbeitsstand geladen — weiter bei Jahr X"
- Reset mit `resetting`-Flag gegen beforeunload-Race
- **Stufen-Auswahl** im Endscreen UND im Reset-Overlay (freie Sessions);
Klassen-Sessions (`classId` gesetzt) bekommen "Neu starten" mit fester Stufe
### Phase 3b — Glossar-Anfrage
An `_inbox/glossar/2026-04-19-1500-fluss-begriffsbedarf.md` — 9 Begriffe:
flussbegradigung, hochwasserschutz, retention, maeander, einzugsgebiet,
ufervegetation, ueberschwemmungsgebiet, renaturierung, oekosystem.
Fallback-Texte für 4 davon sind im Modul eingebaut, das Modul läuft auch
ohne DB-Einträge.
### Phase 3c — Tutorial + First-Buy-Hints (ersetzt Progressive Disclosure)
- 5 Tutorial-Karten beim allerersten Durchgang, pausieren die Simulation
- Skip-Button + Weiter-Button, Fortschritt in localStorage
- **First-Buy-Hint pro Werkzeug** beim jeweils ersten erfolgreichen Einsatz
(6 Hints: deich, feld, siedlung, wald, abriss, begradigen)
- **Progressive Disclosure abgeschafft**: alle 7 Werkzeuge sind in allen
Stufen verfügbar. Didaktischer Onboarding-Schutz läuft jetzt über
Tutorial + Hints, nicht über hartes Ausgrauen. Begründung: Thomas wollte
die anderen Werkzeuge sehen können, und das Trade-off-Lernen geht nur,
wenn man Begradigung + Renaturierung auch in L1 ausprobieren darf.
### Phase 3d — Event-Info-Topics
- Engine-Events tragen jetzt `topic`-Keys (`flood-settlement`,
`levee-break`, `begradigen`, `renaturierung` usw.)
- 8 didaktische Langfassungen mit Wikipedia-Link
- Klick auf ein Event im Stapel ODER auf den aktuellen Toast öffnet das
Info-Overlay
- Atlas' Pain-Point #4 ("Event-Wirkungen erklären") ist damit abgedeckt
### Phase 3e — Reflexion + Sterne + Badges
- Dynamische Reflexionsfrage abhängig vom Verlauf:
- Wenn Siedlungen verloren → Fragen nach Lehre aus dem Verlust
- Wenn begradigt aber nicht renaturiert → Frage danach
- Wenn Balance gefunden (Biodiv > 70, Wirtschaft > 60) → Lob+Frage nach Rezept
- Sonst: generische Frage nach wirksamster Entscheidung
- Sterne animieren (leuchten gestaffelt auf, 220 ms Versatz)
- Alle 6 Achievement-Badges sichtbar, nicht-erreichte ausgegraut
- `balance_found` von 20 auf **50 Jahre** erhöht (Atlas' Spezifikation)
- `submitReflection()` feuert on select
### Phase 4a — Audio
- `sounds-list.json` mit 22 Prompts (UI, Bau, Ernte, Year-Tick, Wetter,
Hochwasser-Varianten, Deichbruch, Baumtod, Level-Ergebnis)
- `audio.js` mit Pool + Graceful Fallback
- **Alle 22 MP3s generiert** via `generate-sounds.py fluss`
- Build-Sounds pro Werkzeug, Event-Sounds nach `topic`, Ernte pro Jahr
wenn Ertrag > 0
### Phase 4b — Musik
- Porcelain Rain im Header-Dropdown, Volume-Persistenz
### Phase 4c — iPad-Landscape-Audit (statisch)
- `touch-action: none` am Canvas
- Touch-Targets ≥ 36 px via Design-System
- `<select>` statt Custom-Dropdown für Musik
- Keine Hover-Abhängigkeiten — alle Info steht sichtbar in Cards/Tooltips
- Viewport-Meta mit `viewport-fit=cover`
- **Live-Device-Test** braucht Thomas; statisch ist alles konform
## Reaktionen auf Thomas in-session
- Feld/Siedlung 3×3-Render wie V1 (Personen-Emojis nach Gesundheitszustand)
- Feld-Flicker beruhigt (stabile Slots zwischen Ticks)
- Toast-Breite voll, Text umbricht
- 9 Ambient-Fische im Fluss, schwimmen stabil in Sektoren
- Fisch-Fang-Flug mit Drehbewegung, gekoppelt an `tileFishYield` (keine Zufalls-Trigger)
- Fang-Radius auf 4 Kacheln gekappt
- Ernte-Animation: 🌾 fliegt zur Nahrungs-Zeile mit Rotation + Pulse
- Standard-Tempo 4× entschleunigt (`MS_PER_TICK` von 2500 auf 10000 ms)
## Checkliste module-interface.md §9
- [x] Design-System CSS eingebunden
- [x] Einheitlicher Header mit Logo, Modulname, Stufen-Badge
- [x] Layout nutzt `ggs-sim-layout` Zonen
- [x] Action-Cards nutzen `ggs-card` Klasse
- [x] Parameter nutzen `ggs-param` mit Farbstufen
- [x] 4 Graphen nutzen `ggs-graph-card` (Biodiv, Hochwasser, Wirtschaft, Budget)
- [x] Event-Feed zeigt Ereignisse
- [x] Speed-Control (⏸/1×/2×/4×)
- [x] Tutorial-Overlay beim ersten Durchgang
- [x] Zwischen-Level-Screen-Funktionalität im Endscreen (Sterne + Reflexion)
- [x] Endscreen mit Stats-Grid + Badges
- [x] Achievement-Toasts bei Meilensteinen
- [x] API: `reportProgress()` — verdrahtet
- [x] API: `showAchievement()` — integriert via Engine + Toast
- [x] API: `submitAssessment()` — bei Durchgangsende
- [x] API: `submitReflection()` — on option select
- [x] PHP-Seite mit `window.__GGS__` Kontext
- [x] **Autosave nach jeder Aktion**
- [x] **Resume beim Reload**
- [x] **Reset-Button** löscht Save und startet neu (mit Bestätigung bzw. Stufen-Auswahl)
## Sprachregel-Audit
Im Code (engine.js/game.html/audio.js) sind Kommentare und Variablennamen
mit "Spiel-" erlaubt (laut §4a). **UI-sichtbare Treffer** wurden bereinigt:
- "Spielstand geladen" → "Arbeitsstand geladen"
- "löschen und neu starten" → "löschen und neu beginnen"
- Endscreen "Nochmal spielen" / "100 Jahre sind um!" → "Neu starten" / "Durchgang beendet — 100 Jahre sind um."
- "Score" → "Beste Leistung"
- Werkzeug-Namen: keine Spielsprache-Begriffe drin
Reflexionsfragen, Tutorial-Texte, First-Buy-Hints, Event-Info-Topics,
Achievement-Titel — alle von Anfang an mit der Regel gebaut. Beispiel:
Tutorial-Karte 5 heißt "Los geht's" (nicht "Los spielen") und der
Endscreen-Button "Neu starten".
## Offene Punkte (kein Blocker)
1. **Balance-Test der Stufen 2+3** — Standardwerte sind Schätzung, echtes
Spieltest durch Thomas/Klasse wird zeigen, ob `startBudget` und
`eventFrequency` passen. Anpassungen sind 3 Zeilen in `fluss.php`.
2. **Glossar-DB-Einträge** — von Glossar-Instanz; Fallback aktiv.
3. **Git-Commit** — Konvention ist ein Session-End-Commit. Ich habe
Thomas explizit angesprochen, warte auf sein Go vor dem `git commit`.
4. **iPad-Live-Test** — Thomas hat iPad, kann bei Gelegenheit testen.
## Bitte um
- **Sichtung + Freigabe** / Änderungswünsche
- Falls Reflexionsfragen / Tutorial-Texte nachgeschliffen werden sollen:
gerne konkrete Vorschläge, ich tausche sie aus
- Keine Eile — wenn du oder Thomas etwas entdeckt, mache ich's.
— Fluss