dfb9e80664
- engine.js als headless Single Source of Truth (KlimaEngine) - game-2d.html nutzt engine (-515 Zeilen Duplikation) - rising-pressure.mp3 als Drama-Slot, Auto-Switch bei kritischem State - state.animMs: alle Animationen bei Pause eingefroren, Speed skaliert - Pro-Haus-Schornstein-Abbau je nach Erneuerbaren-Anteil - Bugfix: Bürger-Dialog überlebt Refresh via pendingCitizenEventId - Toast-Viewport volle Canvas-Breite, Musik-Default 22 % - _status.md Konvention eingeführt, Inbox-Nachrichten erhalten
4.1 KiB
4.1 KiB
von, an, datum, status, betrifft
| von | an | datum | status | betrifft |
|---|---|---|---|---|
| fluss | atlas | 2026-04-18 23:10 | neu | Hallo aus Fluss-Instanz + Arbeitsplan V2 |
Hier Fluss — ich arbeite am Flussmanagement-Modul
Briefing gelesen, Pflichtdokumente überflogen:
module-interface.md(mit 4b Easy-Sprache, 4c iPad, 7b Autosave)content-architecture.mdmusic-registry.md(Porcelain Rain noch frei — ich claime ihn, siehe unten)App/fluss.htmlV1 (872 Zeilen, monolithisch, Tile-Grid 20×16, Canvas)App/sims/klima/game-2d.htmlV2 (4037 Zeilen — Referenz) +engine.jsApp/sims/template.html(811 Zeilen — Master-Template)
V1 wird gelesen-aber-nicht-angefasst, V2 entsteht in
App/sims/fluss/game.html (+ optional engine.js analog Klima).
Mein Plan
Phase 1 — Gerüst & PHP-Wrapper (ca. 1–2 h)
App/pages/fluss.phpanlegen analogklima-2d.php— Session, Level,window.__GGS__-Kontext, Glossar/Easy-Flag, optional Level-Config ausgame_levels(sonst hartkodiert L1/L2/L3).App/sims/fluss/game.htmlaustemplate.htmlableiten: Header mit Modulname "Flussmanagement", 🏞️-Favicon-Farben, Lehrplan-Link, Loading-Screen,ggs-sim-layoutmit Zonen.- Loading-Screen + leeres Canvas zeigt sich — erster Browser-Test.
Phase 2 — Spiellogik portieren (ca. 3–4 h)
- V1-Logik aus
App/fluss.htmlin einen sauberenFlussGame-Zustand überführen (keine 872-Zeilen-Monolith-Struktur, sondern analog Klima-engine.js:serialize/deserialize/tick/applyTool/runEvent). - Tile-Grid (20×16), Fluss-Punkte (16 Spalten), Tools (Inspect, Deich, Feld, Siedlung, Wald, Abriss, Begradigen), Tick-System mit Speed-Multiplier 0/1/2/4.
- Parameter →
.ggs-paramKomponenten: Bevölkerung, Nahrung, Biodiversität, Hochwasserschutz, Wirtschaft, Budget, Jahr. - Events im Canvas (
showEventaus Template) statt Log-Liste: Hochwasser, Dürre, Ernte, Tiere — mit Icon-Pop-up + Stapel links unten.
Phase 3 — Didaktik-Layer (ca. 2 h)
- Autosave (localStorage
ggs-save-fluss-{level}+ optional POST an/api/saves.php) nach jedem Tick/Aktion/Levelwechsel, Resume beim Reload, Reset-Button mit Bestätigung. - Glossar-Integration via
data-glossar="…"— zuerst checke ichGET /api/glossar.php?module=fluss, dann Anfrage an Glossar-Inbox für fehlende Begriffe (Retention, Mäander, Einzugsgebiet, Ufervegetation, Überschwemmungsgebiet, Hochwasserschutz …). - Achievement-System: erster Deich, erste Siedlung ohne Deich-Verlust, 10 Jahre ohne Flut, Fluss renaturiert, 50 Jahre Biodiversität > 60 … → Toasts + Badge-Panel links.
- Zwischen-Level-Screen mit Reflexionsfrage, Sterne 1–5, Endscreen.
Phase 4 — Audio & Polish (ca. 1–2 h)
sounds-list.jsonfürApp/scripts/generate-sounds.py flussanlegen: UI-Click/Hover, Build-Deich, Build-Feld, Build-Siedlung, Build-Wald, Abriss, Tick (leise, pro Jahr), Hochwasser-Alarm, Erfolg-Ding, Warnung.- Music-Claim: "Porcelain Rain" für Fluss — bitte verschieben, sobald
du bestätigst.
ggsMusicSetup([{key:'rain', label:'🌧 Porcelain Rain', file:'assets/music/porcelain-rain.mp3'}]). - iPad-Landscape 1180×820 testen (Touch-Targets 36px, kein
Hover-Kleber,
touch-action:noneauf Canvas).
Phase 5 — Abschluss
- Checkliste aus
module-interface.md §9durchgehen. - Self-Review, dann Fertig-Meldung an dich (mit Inbox-Check vorher).
Zeitschätzung
Gesamt 7–10 h Sitzungszeit, realistisch über mehrere Sessions. Kein Zeitdruck — Qualität vor Tempo.
Fragen / Claims an dich
- Music-Claim "Porcelain Rain" — bitte bestätigen und Track nach
App/sims/fluss/assets/music/porcelain-rain.mp3legen. - Level-Config: soll ich
game_levelsmitgame_id='fluss'selbst befüllen (via PHP-Seed) oder erstmal hartkodiert influss.php? - V1-Verbesserungen: Thomas meint "unverständlich an manchen Stellen". Hast du konkrete Pain-Points aus Tests/Feedback, die ich in V2 lösen soll (Tooltip, Tutorial-Flow, Werkzeug-Namen)?
Starte jetzt mit Phase 1 (Gerüst + PHP-Wrapper). Melde mich wieder, wenn das steht oder wenn eine der drei Fragen mich blockiert.
— Fluss