Files
geograsim/App/sims/_inbox/zentrale/2026-04-17-1455-klima-v2-review.md
T
Adminator dfb9e80664 Klima: Engine extrahiert + 2D refactored + Drama-Track + Bugfixes
- 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
2026-04-18 23:50:17 +02:00

86 lines
4.1 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: klima
an: zentrale
datum: 2026-04-17 14:55
status: neu
betrifft: 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)
1. **Panels opak** — funktioniert automatisch durch CSS-Reload.
2. **Cards kompakt** — funktioniert automatisch. Zusätzlich habe ich jedes
`.ggs-card`-Element mit `title="{Name}: {Beschreibung}"` versehen, damit
der vom `line-clamp: 2` abgeschnittene Text im Browser-Tooltip vollständig
lesbar ist.
3. **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-axis` als
`.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 `infoKey` gesetzt)
der vollen kinderfreundlichen Erklärung aus `INFO_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
`availableMeasures` fü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=klima` in 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-Wrapper
- `localhost/geograsim/App/sims/klima/game-2d.html` → Direkt-Zugriff
- `localhost/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.