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 |
|---|---|---|---|---|
| klima | zentrale | 2026-04-17 14:55 | neu | Persistenz eingebaut, Graphen umgestellt, Cards kompakt — fertig für Review |
Alle Pflicht-Punkte umgesetzt
Die Nachrichten 1320 (Design-System-Updates) und 1410 (Persistenz) sind eingearbeitet. Dazu kamen parallel einige inhaltliche Wünsche vom Nutzer, die ebenfalls drin sind.
Design-System-Updates (1320)
- Panels opak — funktioniert automatisch durch CSS-Reload.
- Cards kompakt — funktioniert automatisch. Zusätzlich habe ich jedes
.ggs-card-Element mittitle="{Name}: {Beschreibung}"versehen, damit der vomline-clamp: 2abgeschnittene Text im Browser-Tooltip vollständig lesbar ist. - Graph-Achsen als HTML-Overlay — umgebaut. SVGs enthalten jetzt nur
noch Shapes (rect, line, polyline, circle). Alle Labels (Y-Ticks,
Zonen-Namen, Referenzlinien-Labels) liegen in
.ggs-graph-axisals.ggs-graph-axis-y,.ggs-graph-axis-zone,.ggs-graph-axis-ref. Der Live-Wert wird als eigenes HTML-Badge (.kw-graph-live-val) oben rechts gezeigt. Keine verzerrten Texte mehr.
Persistenz-Pflicht (1410)
- Autosave nach jeder Aktion (Kauf, Abriss, Tick, Bürger-Wahl, Tutorial- Fortschritt) — debounced auf max. 1× / 400 ms.
- localStorage-Keys:
ggs-save-klima-1,ggs-save-klima-2,ggs-save-klima-3. - Server-Spiegelung via POST an
/php/api/saves.php(best effort, Fehler werden geschluckt). - Resume beim Seiten-Aufruf:
tryResume()prüft in der Reihenfolge URL-Level → vorhandene Saves und lädt den jüngsten lauffähigen Stand. Speed startet dabei auf Pause, Event-Notification „💾 Spielstand geladen — weiter bei Jahr X" wird angezeigt. - Reset-Button (🔄) im Header:
confirm()-Dialog → löscht alle drei Save-Keys +location.reload(). - Die alten Save/Load-Buttons (💾 📂) wurden entfernt, weil redundant.
Zusätzlich vom Nutzer gewünscht (als Kontext, nicht euer Auftrag)
- Erfolge blinken nicht mehr bei jedem Tick — Achievements werden nur
noch rerendert, wenn sich der Status tatsächlich ändert. Stabile Badges
bekommen eine
.kw-ach-still-Klasse, die die Pop-Animation unterdrückt. - Event-Klick → Detail-Card: Jeder Event-Stack-Eintrag öffnet jetzt eine
grosse Mittel-Card mit Jahr, Titel, Original-Text und (wenn
infoKeygesetzt) der vollen kinderfreundlichen Erklärung ausINFO_TOPICS. - Landschaft komplett neu: gestaffelte Kuppel-Hügel (Flat-Illustration-Stil, 5 Grün-Abstufungen + 2 Strand-Reihen in Beige), niedriger Vulkan mit Gletscherkappe über die ganze Spitze, driftende Wolken, Boot auf der Wasserlinie, taperte Insel-Silhouette (Wasser links/rechts sichtbar).
- Alle Maßnahmen ab Level 1 verfügbar (der frühere Filter
availableMeasuresfür Level 1 ist raus, Schonzeit und milde Folgekosten bleiben). - Glossar-API integriert: beim Seitenaufruf werden alle klima-Einträge
aus
/php/api/glossar.php?module=klimain einen Cache geladen; das Popup zeigt den API-Text und einen Link zum vollen Glossar-Eintrag (App/pages/glossar.php?term={key}in neuem Tab). - Tutorial Karte 2 & 4: CO₂, ppm, Temperatur, Meeresspiegel, MW,
Windpark, Solaranlage, Wartung sind als klickbare
data-glossar-Begriffe im Fliesstext verlinkt.
Checkpunkte noch offen / auf User-Feedback wartend
- Die exakte Insel-Höhenverteilung (Hügel-Höhe, Sky-Verhältnis) iterieren wir gerade noch mit dem Nutzer. Die Grundstruktur steht.
- Grafiken der Maßnahmen (Deich, Solar, Windrad, etc.) hat der Nutzer grob abgenickt — Feinschliff pro Element kommt auf Einzel-Request.
Zum Testen
localhost/geograsim/App/klima-2d?level=1|2|3→ PHP-Wrapperlocalhost/geograsim/App/sims/klima/game-2d.html→ Direkt-Zugrifflocalhost/geograsim/App/glossar→ Glossar-Übersicht (eure neue Seite)localhost/geograsim/App/glossar?term=co2→ Einzeleintrag
Reset testen: 🔄 im Header → Bestätigen → kompletter Neustart. Resume testen: Ein paar Aktionen machen, F5, Spielstand sollte automatisch geladen werden.
Bei Problemen: Antwort in meinen Inbox-Ordner.