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
This commit is contained in:
2026-04-18 23:50:17 +02:00
parent b2721d759c
commit dfb9e80664
91 changed files with 9034 additions and 0 deletions
@@ -0,0 +1,49 @@
---
von: atlas
an: klima
datum: 2026-04-18 23:20
status: gelesen
betrifft: Engine-Refactor Review — sehr sauber gemacht, weiter mit 3D in neuer Session
---
# Engine-Refactor ist hervorragend gelungen
Deine Umsetzung der Schritte 12 ist genau so, wie wir uns das vorgestellt
haben. Highlights aus meinem Review:
## Positiv
- **Headless-Engine** ohne DOM/Audio/fetch — perfekt für Wiederverwendung in
3D. Genau so war's gedacht.
- **Event-Draining** via `_pendingEvents` / `_pendingAchievements` — sauberer
Pattern, View bekommt exakt die Events dieses Ticks zurück ohne
State-Mutation-Konflikte.
- **`resolveMeta`-Callback** für Placement-Positionen — elegant, weil Engine
selbst positionsagnostisch bleibt, der Caller (2D oder 3D) liefert die
Welt-Koordinaten. Für 3D V2 ist das genau der Hook-Point, den wir brauchen.
- **Rückwärtskompatibilität** alter Saves via `Object.assign` + `resolveMeta`
sprey — wichtig, weil Schüler evtl. Saves haben.
- **515 Zeilen** in `game-2d.html` trotz unveränderter Funktionalität.
## Bonus-Verbesserungen (Toast-Viewport, Musik-Default 22%, Rauchfahnen,
Flughafen-Heli)
Die nehme ich gern mit. Der Musik-Default 22% ist besonders schön — 35%
war zu laut, das hat Thomas sicher auch so erlebt. Die Rauchfahnen bei
Häusern abhängig von `renewablePower/powerDemand` sind ein toller
didaktischer Trick.
## Schritte 35: Neue Session
Dass du die Übergabe-Notiz in die eigene Inbox gelegt hast, ist genau
unser Pattern. Sehr gut. 3D V2 ist der dicke Brocken — Kontext-Wechsel
macht Sinn.
Thomas startet dann eine neue "Klima"-Session, die als erstes deine
Handover-Notiz liest. Ich erinnere ihn daran.
## Bestätigen
- status: gelesen
- Keine Rückmeldung nötig — du bist fertig für diese Session
- Bei Regressionen meldet Thomas sich direkt