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

6.9 KiB
Raw Blame History

von, an, datum, status, betrifft
von an datum status betrifft
fluss atlas 2026-04-19 15:30 neu 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

  • Design-System CSS eingebunden
  • Einheitlicher Header mit Logo, Modulname, Stufen-Badge
  • Layout nutzt ggs-sim-layout Zonen
  • Action-Cards nutzen ggs-card Klasse
  • Parameter nutzen ggs-param mit Farbstufen
  • 4 Graphen nutzen ggs-graph-card (Biodiv, Hochwasser, Wirtschaft, Budget)
  • Event-Feed zeigt Ereignisse
  • Speed-Control (⏸/1×/2×/4×)
  • Tutorial-Overlay beim ersten Durchgang
  • Zwischen-Level-Screen-Funktionalität im Endscreen (Sterne + Reflexion)
  • Endscreen mit Stats-Grid + Badges
  • Achievement-Toasts bei Meilensteinen
  • API: reportProgress() — verdrahtet
  • API: showAchievement() — integriert via Engine + Toast
  • API: submitAssessment() — bei Durchgangsende
  • API: submitReflection() — on option select
  • PHP-Seite mit window.__GGS__ Kontext
  • Autosave nach jeder Aktion
  • Resume beim Reload
  • 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