- Komponente: Tempo-Steuerung an erste Aktions-Position (ganz links),
Rest ans Ende.
- Region: 🔔/🐢/🎯 durch eigene SVG-Icons ersetzt (logBadge erhalten).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ursache 2x: Busfahrt zeigte sein eigenes #welcome-overlay UND das
GgsQuickIntro-Onboarding. Jetzt ist GgsQuickIntro das einzige Start-Gate:
- ggs-quick-intro: onStart-Callback (feuert einmal beim Schliessen bzw.
sofort wenn schon gesehen), isSeen exportiert.
- Busfahrt: welcome-overlay wird nicht mehr gezeigt; onStart -> startGame;
startGame wartet per Retry auf boot() (kein Timing-Problem).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- ggs-quick-intro: open() entfernt vorab alle vorhandenen Overlays (nie 2x).
- Busfahrt: Neustart-Button (btn-reset, location.reload mit Rueckfrage).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- ggs-quick-intro.js: optionale zweite Seite (config.page2 {title, html})
mit Weiter/Zurueck-Navigation. Rueckwaertskompatibel (ohne page2 = 1 Seite).
- Busfahrt: EN-Button entfernt; die "Warum Englisch?"-Erklaerung liegt jetzt
auf Onboarding-Seite 2 + Satz zur mehrsprachigen Hintergrundmusik.
- Onboarding-Schritte ohne lange "-" ausformuliert.
- Auftrags-Card (.bf-order) 20px tiefer (top 84).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ursache: die transparente ggs-header ueber der Vollbild-Leaflet-Karte
fing alle Klicks ab -> Pflanzen unmoeglich. Fix zentral: Container
pointer-events:none, nur Bedienelemente pointer-events:auto (Karte
darunter bleibt bedienbar). Gilt fuer alle Karten/Canvas-Sims.
Farmer: Pille nach links (Vollbreite-Header, Steuerung rechts),
Leaflet-Zoom nach unten links verschoben.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Header nach oben RECHTS (raus aus dem Leaflet-Zoom oben links),
Geld-Anzeige entfernt (steht in linker Sidebar), Emoji aus Titel,
Jahr als Badge in die Pille (Konsistenz mit Batch 1), Inter-Font.
- Jahr-Leiste + Anbau-Versuch-Spalte nach unten geschoben (unter Header).
- Komponente: wiederverwendbarer Default-Musikplayer (data-ggs-music,
Klima-Tracks als Plattform-Standard) + Musik-Widget-Styling fuer Sims
ohne design-system.css.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Interaktionen aus gleich-origin iFrames (Heli-Start/-Flug/-Landung) zaehlen jetzt
(periodisches _hookFrame), plus postMessage {type:'ggs-activity'} + __GGS_LIVE__.ping().
Aktives Steuern gilt nicht mehr faelschlich als idle.
- EVENTS erweitert (keyup/touchmove/pointermove). Heli in IDLE_PAUSE_SIMS aufgenommen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Die plattformweite Idle-Pause stoerte passive/iframe-Phasen (Heli-Flug: aktiv gesteuert,
aber Steuerung im iframe/Halte-Taste zaehlte nicht als Interaktion -> Fehlpause).
Jetzt Allowlist (klima/klima-3d) bzw. window.GGS_IDLE_PAUSE=true. Andere Apps: keine
Auto-Pause, bis sie dort einzeln getestet + die Interaktionserfassung angepasst ist.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
live-client.js (laedt in JEDER Sim): nach 3 min ohne Interaktion sichtbare Pause
(friert Aktivzeit ein -> Idle zaehlt nicht als Arbeitszeit), Weiterarbeiten per
Klick. Heartbeat meldet __paused/__idlePaused. Kein Sim-Code noetig.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
562 Ersetzungen in 50 Dateien: Halbgeviertstrich zwischen zwei Ziffern (=
"bis"-Bereich) bekommt Leerzeichen davor/danach (3–4 -> 3 – 4). Regex
/([0-9])\s*–\s*(?=[0-9])/ auf Rohtext (format-erhaltend, CRLF/Einrueckung
unveraendert), Bindestriche in Woertern und Minuszeichen unangetastet, alle
JSON weiter gueltig. Energiemanager-Zeitbloecke sind Display-Labels (kein
Logik-Key) -> safe.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Problem: bei Pause lief die „Seit"-Zeit im Lehrer-Cockpit weiter, obwohl das
Spiel steht — live-client.js akkumulierte activeMs unabhängig vom Pause-Zustand.
- live-client.js: opt-in Pause-Unterstützung. window.__GGS_LIVE__.setPaused(bool)
friert die activeMs-Buchhaltung ein (lastTickAt wird weiter aktualisiert, damit
beim Fortsetzen nichts nachspringt). __paused zusätzlich im Heartbeat. Default
aus → alle anderen Sims unberührt.
- logistik game.html: Pause-/Auto-Button ruft setPaused(mode==='pause').
Verifiziert (Playwright): activeMs 0→2000 (läuft) → 2000 (Pause eingefroren)
→ 3999 (Fortsetzen).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- renderModDetail: kleiner Ampelbalken je Kennzahl-Zelle, Werte spaltenweise
normiert, Richtung aus h.agg (gruen=positiv, weniger-ist-besser invertiert)
- Sterne-Zelle mit Ampelbalken (n/5)
- Verlauf-Button zeigt statt JSON eine Liniengrafik ueber die wichtigsten
Kennzahlen (eine Linie je Highlight-Spalte + Sterne, oben=besser, Legende
mit letztem Wert + Trendpfeil); Snapshot-Kacheln bei nur einem Durchgang
- sim-metrics.js: dir:'lo' fuer Kennzahlen wo weniger besser ist
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Modal max-width 640->1120px, Kachel-Grid dichter -> Kennzahlen einzeilig
- Werte UND Balken ampelgefaerbt (pct/pctInv/ratio), Sterne mit Ampelbalken
je n/5 -> Vergleich auf einen Blick
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- sim-metrics.js: kuratiertes Feld-Schema pro Sim (Sterne/Prozentbalken/
Verhältnis/Geld/Temperatur), technische Felder ausgeblendet, sauber benannt
- Drilldown zeigt Avatar als Bild (avatar:<slug>), Erfolg als Sterne,
Parameter als grafische Kacheln, Abzeichen-Sammlung pro gespielter Sim
- live.php student_runs liefert player_progress fuer die Abzeichen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Neue badges.js: 5 einheitliche Abzeichen pro Sim (Einstieg/Fortgeschritten/
Könner/Meister/Ausdauer), Bedingungen aus allgemeinen Leistungsdaten (plays/
best_stars/level) → gelten sofort für ALLE Sims. Gesperrte Abzeichen sichtbar
als Ziele. ggsErfolgToStars() für Sterne aus normiertem Erfolg. Erfolge-Tab in
schueler.html zeigt die Sammlung pro Simulation (auch ungespielte = Ziele).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Logistik: Containerschiff auf der Verkehrsträger-Seite (LKW/Zug/Schiff).
Klima: Venedig Acqua alta auf der Meeresspiegel-Seite (europäisches Beispiel).
Kofferdetektiv: Großraumflugzeug an der Fluggastbrücke (Flughafen/Flugverkehr).
Jeweils Standard + Leichte Sprache, EXIF/GPS gestrippt. Fotos von Thomas.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Echte Fotos (Thomas, Egerton/Kenia Feb 2024): versunkenes Ranger-Haus im gestiegenen
Nakuru-See + Klimabücher-Regal der Universitätsbibliothek. Zeigt: Klimawandel ist nicht
nur Meeresspiegel — auch ein 1.700 m hoher See in Afrika steigt und verschluckt Wald/Häuser
(40→68 km² 2010–2020, ~80.000 Familien vertrieben; UNEP/Egerton University). Standard + Leichte Sprache.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Kapitel-Kopf: alte Links (Modulseite/Simulation/Glossar/Lehrplan) raus, stattdessen
einheitliches App-Menü je Rolle (Schüler: Module/Erfolge/Schulbuch/Profil; Lehrer:
Cockpit/Schulbuch; öffentlich: Simulationen/Schulbuch), Schulbuch aktiv
- Modus je Rolle: Schüler:in → Schüler:innen/Leichte Sprache (Default Schüler:innen,
Lehreransicht gesperrt, auch bei ?lehrer=1); Lehrperson → +Lehreransicht (Default Lehrperson)
- teacher.html: Menüpunkt "📖 Schulbuch" ergänzt
- buch.php-Übersicht: gleiches rollen-Menü statt "← Zu den Simulationen"
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Neues Format /buch: pro Sim ein Schulbuch-Kapitel, lehrplankonform,
druckbar (A4), mit Glossar-Tooltips, echten Daten aus QUELLEN.md und
Sim-Mechanik-Kaesten. Zwei Versionen aus einer Quelle: Schueler:innen
(Sachtext + Mechanik-Referenz + gestufte Aufgaben A/B/C) und Lehrperson
(?lehrer=1: Verlaufsvorschlag Doppelstunde, didaktische Hinweise,
Stolpersteine, Erwartungshorizonte, Cockpit-Tipps). Foto-Slots mit
konkreten Vorschlaegen: echtes Bild unter assets/img/buch/<sim>/<slug>.jpg
ablegen ersetzt den Platzhalter automatisch. Pilot: Kapitel Tourismustal
(Opener + 5 Seiten + Quellenverzeichnis).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Erste Grafik der Sim-Integration. Generiert mit gpt-image-1 im
verbindlichen GeoGraSim-Bildstil, auf Karten-Verhaeltnis 16:10
zugeschnitten und als webp (69 KB) abgelegt.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>