- obs-open-btn (Aufgaben, Klemmbrett-Icon) + obs-help-btn (Onboarding,
Info-i-Icon) in den Header vor die Musik verschoben; obs-launcher weg.
- Redundantes help-toggle (moonTilt-?) aus dem Header entfernt, Handler
null-sicher (moonTilt weiter ueber Inline-? in der Mondbahn-Sektion).
- obs-Pill-CSS neutralisiert (Header-Stil greift).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 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>
unten, eigenes Kartennamen-Icon
- Header wieder Vollbreite: Pille+Home links, Steuerung rechts.
- Auftrags-Card (.bf-order) + Info-Card (.bf-info) top 8 -> 64 (unter den
rechten Buttons, keine Ueberlappung).
- Beschriftung-ein/aus (black-map-toggle): eigenes Tag-SVG statt Emoji
(an = Tag, aus = Tag durchgestrichen), auch in applyTileVariant.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Header kompakt links (nicht mehr Vollbreite) -> keine Ueberlappung mit
der Auftrags-Karte oben rechts.
- Budget aus Header raus (widersprach dem Graph); Graph-Budget-Wert wird
jetzt live in updateTopbar aktualisiert. updateTopbar null-sicher.
- Auftrag-Nr ins Stats-Panel (links bei den Graphen).
- Leaflet-Zoom nach unten links.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ggs-topbar -> ggs-header (Vollbreite, klick-durchlaessig), Titel ohne
Emoji, Logo-Fallback, KPIs (Budget/Auftrag/Nacht) bleiben als Pillen,
eigener Musik-Player in #ggs-music gewrappt (Popup), Sim-Buttons
(Beschriftung/EN-Info) + Ton/Hilfe/Home + Plattform-Glossar. Keine
Elemente entfernt (alle IDs/onclicks erhalten).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ROOT CAUSE: #money-display aus Header entfernt, aber updateMoneyDisplay()
las es beim Boot ungeschuetzt -> null.textContent wirft -> Boot bricht ab
-> map.on('click') wird nie gebunden -> Sim unbedienbar. Jetzt null-safe.
Konsolidierung (Thomas-Wunsch): Jahr/Markt/Erntejahr-starten in die
Anbau-Versuch-Box (farmer-side-status) statt separater Jahr-Leiste;
Jahr-Badge aus der Pille raus. Anbau-Box wieder hoeher (top 64).
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>
#stage jetzt inset:0 (Canvas bis ganz oben), Header position:absolute
transparent darueber. Obere HUD-Pillen + Minimap + Karten-Button unter
die Kopfzeile geschoben (top 14->64, btn-map 166->216).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Jede Sim liefert jetzt selbst leistung_pct in GGS_LIVE_STATE UND im Submit
(Fundament fuer das einheitliche %-System) — kein Rueckrechnen aus Sternen
mehr, keine 0-3-Sonderfaelle. Formeln je Sim wie vereinbart:
- klima/fluss/kofferdetektiv/heli: = vorhandener 0-100-score
- weltkueche: richtige/(richtige+falsche)*100 (Fehler in %)
- busfahrt/fluggesellschaft: topoPunkte/(Auftraege*3)*100
- farmer: gewichteter totalScore; energiemanager: ausgegl./gesamt -15/Blackout
- eu-werkstatt: firstTry/Schritte -5/Muelleimer; sonnensystem: Erstversuch-Quote
- tourismustal: Ziele+Zufriedenheit+Natur gewichtet; tourismusregion: gewichteter score
- logistik: Kontostand->% (sendet erstmals eine Kennzahl, auch an /api/assessment)
Teacher _leistungPct + live.php extractScore bevorzugen bereits diesen Wert.
Additive Aenderungen, bestehende Logik/Sterne unveraendert; alle 15 Dateien
syntaktisch geprueft.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- teacher.html _leistungPct: von der Sim geliefertes s.leistung_pct hat
Vorrang, sonst zentrale Ableitung (Fallback).
- live.php extractScore: leistung_pct (0-100) hat Vorrang vor score/Sterne.
- admin-styleguide.html: Tempo-Button zeigt IMMER den Stand (1x/2x/8x Auto/
Pause); Toggle-Verhalten (Panel bleibt offen bis erneutem Klick) beschrieben.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- A und C entfernt, nur schwebende Variante B.
- Emojis raus -> eigene SVG-Icons im App-Stil (Home/Tempo/Musik/Ton/
Neustart/Hilfe/Glossar) via <symbol>/<use>.
- Logo (bildLogo.png) + Titel + Level in EINER Pille, alle Elemente 38px
hoch, gleiche Hoehe (Hoehen-Mismatch behoben).
- Tempo (Segmente Pause/1x/2x/4x) und Musikplayer (Song-Dropdown + Play +
Lautstaerke) zusaetzlich in aufgeklappter Version dargestellt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- teacher.html: Modul-Detail-Spalte 'Sterne' -> 'Leistung' (zeigt %-Balken).
Heli 'Aktuell': neue Spalte 'Flugplan' (kumuliert Wegpunkt/Treffer/Fehlkl.),
die drei Detailspalten bleiben, 'Gesamt' entfaellt (Leistung deckt es ab).
- admin-styleguide.html: neue Sektion 'Kopfzeile' mit 3 Entwuerfen
(A durchgehend / B schwebend / C schwebend+halbtransparent), je als
iPad- und Full-HD-Mockup ueber simuliertem Sim-Inhalt. Glossar target=_blank,
Neustart drin, Lehrplan raus.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Vorschau-Karte: %+Balken-Standardanzeige, 5-stufige Farbskala,
Triage-Felder (Foerdern/Begleiten/Laeuft gut) aus %xFleiss mit
Grenzen = Farbgrenzen (50/65), damit Farbe<->Feld immer stimmen.
- Neue Spalte 'Leistung' je Sim: Vorschlags-Formel auf die Testdaten
gerechnet (PERF), als pctBar + Triage-Chip. Busfahrt/Flug/Sonnensystem
Naeherung (Rohwerte fehlen in Testdaten).
- Bewertungs-Block je Sim um 'Vorschlag %' (PROPOSED_PCT) erweitert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Neue Referenzseite /admin-lehrer-view.html: pro Sim (14, der Reihe nach)
die 'Ergebnisse/Aktuell'-Tabelle mit Testdaten, gerendert mit der ECHTEN
Logik (LIVE_PRIMARY_FIELDS + Formatter aus teacher.html gespiegelt).
- Unter jedem Spaltentitel der State-Key (Spiel->Backend-Verkabelung).
- Spalten GRUEN, die nach Abschluss relevant bleiben (Ergebnis/Fortschritt/
Identitaet), GRAU = nur live; je Sim Begruendungs-Liste der Grau-Spalten.
Verlinkt aus admin-sitemap.html.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Nur auf Touch-Geraeten (Desktop unveraendert):
- Render-Aufloesung auf dpr 1.3 gedeckelt (dprCap-Helper) statt bis 2 —
dpr 2 = 4x Pixel war der teuerste Posten.
- antialias aus (MSAA teuer auf Mobile), Retina-Dichte kaschiert Kanten.
- powerPreference:'high-performance' fuer die staerkere GPU-Pipeline.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Statt schwebendem Links-Joystick + Rechts-Wisch jetzt zwei feste,
halbtransparente Joysticks:
- links = Umsehen (Auge 👁), ratenbasiertes Drehen/Neigen in update()
- rechts = Bewegen (Fuß 🦶)
Touch wird dem naeheren Joystick im Fangradius zugewiesen (assign/stickVec).
Interaktions-Button (🧳) nach unten-mittig verschoben (kollidierte sonst
mit dem rechten Bewegungs-Joystick). Joysticks nur auf Touch sichtbar
(body.kd-touch).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bisher konnte man Karten in Slots einsetzen und wieder herausziehen, bis
alle voll waren — erst dann wurde ausgewertet. Dieses Herumprobieren war
unsichtbar und senkte die Sterne nicht (5 Sterne trotz Trial-and-Error).
- game.html: reshufflesByStep/totalReshuffles; manuelles Herausziehen einer
platzierten Karte zaehlt als Probierzug. Ein Schritt gilt nur ohne
Probierzuege als 'sauber auf Anhieb' -> Sterne (firstTryHits/steps) und
Treffsicher-Achievement spiegeln Trial-and-Error jetzt. Endbild zeigt
'🔄 N Probierzuege'; Live-State + Submit tragen die Zahlen.
- teacher.html: needsHelp eu-werkstatt auch bei vielen Probierzuegen;
'🔄 Probier'-Spalte in Aktuell; Run-Karte: Gesamt-Probierzuege +
pro Schritt ('🔄 nach Probieren' statt 'auf Anhieb').
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- game.html: bei Blackout sofort action:'blackout' an /progress feuern
(setId/Tag/Block/Frequenz/Ursache, score:0) — Fehlversuch bleibt auch
bei Set-Abbruch sichtbar, kein player_progress/Sterne.
- progress.php: neuer action:'blackout' -> eigene assessments-Zeile,
KEIN XP/plays/best_stars.
- live.php: Blackout-Flag (event:'blackout') durch die Tag-Summary reichen
(blackout/blackoutCount pro Session).
- teacher.html: needsHelp energiemanager (>=2 Blackouts oder Tag <4/8);
Blackout-Spalte + '🔌 neu planen'-Status in Aktuell; Tag-Balken als
🔌 Blackout kennzeichnen; Run-Karte: eigenes Blackout-Kaertchen +
'🔌 N Blackouts'-Badge im fertigen Set.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- live.php summary: fertige Laeufe aus student_results ergaenzt (dedupliziert gegen assessment/
live) -> JEDER heutige Durchgang erscheint als Balken, egal ueber welchen Submit-Pfad.
- teacher.html: Ergebnisse-Tab/Menuewechsel setzt Datum auf HEUTE + Regler auf Auto zurueck;
Datumswahl/Heute setzt Regler auf Auto; Auto-Zoom jetzt +/-1 h um die Aktivitaet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Regler UND Zeitachse/Balken nutzen dieselbe Stunde-Einheit-Abbildung (_hourToUnit/_unitToHour,
17 gleich breite Bloecke). Nacht-/Abend-Bloecke dunkel ohne interne Linien; Tag stuendlich
beschriftet + Trennlinien. Auto-Default rundet auf Block-Grenzen. Marker an den Block-Grenzen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Default = Auto (erste bis letzte Aktivitaet, auf volle Stunden). Zwei Fader zum
Zusammenschieben (z.B. aktuelle Stunde). Balken werden aufs Fenster gekappt (overflow).
"Ganzer Zeitraum"-Reset zurueck auf Auto.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>