Commit Graph

318 Commits

Author SHA1 Message Date
Adminator bb4d3b4cb6 heli-uebersicht: Cockpit-Link -> Haus-Icon (unser Stil) auf /schueler; Zur-Simulation-Button entfernt
Cockpit-Pille (fuehrte auf /sim ins Leere) ersetzt durch schwebendes
Haus-Icon -> /schueler (Schueler-Module). Zur-Simulation-Button raus,
da die Seite via target=_blank oeffnet (sonst mehrere Fenster).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 23:51:34 +02:00
Adminator b109ebb099 Heli: vorhandene Phasen-Links auf App-Icon-Stil (Option 2, kein Umbau)
Home/Hilfe/Uebersichtskarte als schwebende Icon-Buttons (Home/?/Karten-Pin)
statt Text/Emoji; Positionen als Icon-Cluster angepasst. Kein Header-Umbau,
keine JS-Aenderung (IDs/Handler unveraendert).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 22:57:18 +02:00
Adminator 93c742b381 Sonnensystem: Onboarding-Button auf ?-Icon (wie andere Sims), i weggelassen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 22:48:41 +02:00
Adminator ff91c489f7 Sonnensystem: Aufgaben + Onboarding-Info in den Header (eigene Icons)
- 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>
2026-08-25 22:39:37 +02:00
Adminator 085b0b6aa8 Sonnensystem-Header-Fixes: Pille-Breite, obs-launcher, eigene Icons
- Komponente: .ggs-header--float bekommt display:flex (war auf design-
  system.css angewiesen) -> behebt volle-Breite-Pille bei Sims ohne
  design-system (Sonnensystem).
- obs-launcher (Aufgaben/Info) unter den Header (top 64, links 268).
- Eigene SVG-Icons: Leichte-Sprache (Textseite), Lights (Gluehbirne),
  Theme (Sonne/Mond-Umschaltung) statt Emoji.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 21:43:30 +02:00
Adminator 637c058507 Sonnensystem: einheitliche Kopfzeile oben, #ui + Top-Elemente nach unten
- ggs-header (Overlay) oben: Titel-Pille + Toolbar-Buttons (Home/Reset/BGM/
  Hilfe iconisiert, Easy/Light/Theme als Sim-Buttons) rechts oben.
- Toolbar + Titel aus #ui entfernt; #ui nach unten (top 62).
- Datums-Banner (top 64) und Lupe (top 104, inkl. renderInspect-Offset)
  unter den Header geschoben.
- Komponente: cockpit-link/home, reset-defaults-toggle/reset, help-toggle/
  help, bgm-toggle/music erkannt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 21:10:47 +02:00
Adminator 5b6c25bcd9 Sonnensystem: linke Sidebar schmaler (280->244), Datum-Feld + lange Labels gekuerzt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 20:48:04 +02:00
Adminator 77a3e2f16c Sonnensystem: Lupen-Beschriftung skaliert mit den Stufen (kleiner bei 50/25 %)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 20:43:27 +02:00
Adminator 3f29ad0533 Sonnensystem: Umbenennung + Lupe mit 3 Stufen (iPad)
- Titel Himmelsmechanik -> Sonnensystem.
- Lupe (#inspect-frame) in 3 Stufen 100/50/25 % ueber Eck-Griff unten
  rechts: Frame-Groesse (CSS) + Render-Groesse (lupeScale in renderInspect)
  synchron -> Inhalt schrumpft mit. Behebt die riesige Lupe am iPad.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 20:17:41 +02:00
Adminator 248a46f829 Tourismus-Icons: Reduzierte-Animation als Funkeln (durchgestrichen wenn
aktiv), Tal-Log-Glocke, Tal-Meldungsmodus Sprechblase/ABC

- Komponente: generisches Zwei-Zustands-Icon (.ic-state-on/.ic-state-off
  via .active) -> reduzierte Animation zeigt durchgestrichenes Funkeln.
- Region: Schildkroete -> Funkeln (mit Aus-Zustand).
- Tal: btnLog -> Glocken-SVG; _syncInfoModeBtn -> Sprechblase (Audio) /
  ABC (Lese-Modus) statt Emoji (Buch war fuers Glossar vergeben).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 19:50:57 +02:00
Adminator 2e9ad6a83f Tourismusregion: eigene SVG-Icons (Log/Anim/Kamera) + Tempo ganz links
- 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>
2026-08-25 19:34:02 +02:00
Adminator 6009eabca1 ggs-header: Tourismustal + Tourismusregion (Batch 2)
- Komponente: btnHome/⌂-Erkennung (ganzer Header durchsucht), sim-eigener
  Musik-Toggle (btnMusic) -> Musik-Icon, Panel-Optik (blur/shadow/radius)
  gestrippt fuer Sims mit .panel-Leiste.
- Beide Tourismus-Sims: topbar -> ggs-header (Klassen additiv, alle IDs +
  ui.js-Bindings erhalten), Tempo-Popover ueber .ggs-speed, Musik bleibt
  eigenes Panel (btnMusic oeffnet es). ggs-header.css vor style.css fuer
  position:fixed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 17:46:46 +02:00
Adminator 41731254b1 ggs-quick-intro: alwaysShow-Option; Busfahrt zeigt Onboarding bei jedem Besuch
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 17:19:14 +02:00
Adminator 1dffef8200 Busfahrt: nur EIN Onboarding (Welcome-Overlay abgeloest)
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>
2026-08-25 17:09:28 +02:00
Adminator 496fc59c7b Busfahrt: Neustart-Button + Onboarding-Doppelung abgesichert
- 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>
2026-08-25 16:54:34 +02:00
Adminator 8f89613eee Busfahrt: Auftrags-Card tiefer, EN-Button -> Onboarding Seite 2, Texte
- 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>
2026-08-25 16:32:32 +02:00
Adminator 6135dd2648 Busfahrt: Vollbreite-Header (Logo/Haus links, Rest rechts), Karten nach
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>
2026-08-25 16:23:12 +02:00
Adminator aab9b35781 Busfahrt v2: Header kompakt-links, Budget/Auftrag nach links, Zoom unten
- 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>
2026-08-25 16:14:09 +02:00
Adminator 014eb418a6 Busfahrt: ggs-header eingebaut (Batch 2)
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>
2026-08-25 15:54:57 +02:00
Adminator e901f5addb Farmer: Markt + Erntejahr wieder untereinander (gestapelt), gleich breit/hoch
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 15:47:37 +02:00
Adminator abc8bf5149 Farmer: Markt + Erntejahr gleich breit/hoch nebeneinander (nicht mehr Vollbreite)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 15:39:49 +02:00
Adminator 54772180a2 Farmer-Feinschliff: Markt+Erntejahr gleich breit, Buch -> Plattform-Glossar
- farmer-side-status: Markt-Feld und Erntejahr-Button beide volle Box-Breite.
- Kaputte interne Fachinfo (openInfoModal) raus; Komponente ergaenzt den
  Glossar-Button (/glossar?module=farmer, neuer Tab).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 15:36:01 +02:00
Adminator 4cbdb6bbb1 Farmer: Klick-Blocker gefixt (updateMoneyDisplay-Crash) + Konsolidierung
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>
2026-08-25 15:31:33 +02:00
Adminator b835475ef7 Fix: schwebende Kopfzeile blockierte Karten-Klicks (Farmer unbedienbar)
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>
2026-08-25 15:20:33 +02:00
Adminator ec746f250f Header-Komponente: Bespoke-Fixes (Logo-Verzerrung, Icon-Groesse, Glossar-Icon)
- Logo-Kreis resettet Padding/Border/min-height (Sim-eigenes a-Styling
  vererbte sich -> verzerrter Logo-Kreis).
- .ic-Groesse (20px) auch fuer Buttons/Links ohne .ggs-btn-ghost-Klasse
  (Lautsprecher/Hilfe rendeten riesig).
- Sim-interne Glossar-Buttons (glossar-btn u.a.) bekommen das Buch-Icon
  statt Emoji.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 15:07:09 +02:00
Adminator 6c2990aa5e Farmer-Header v2 nach Thomas-Feedback + Default-Musikplayer
- 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>
2026-08-25 15:02:18 +02:00
Adminator 7b1bdb8d1b ggs-header Batch 2 Start: Farmer + Komponenten-Vorruestung
- Komponente: Logo-Fallback (Kreis-Logo wenn Sim keins hat), Overlay-Modus
  (data-ggs-overlay fuer Vollbild-Canvas), generische Icon-Button-Optik fuer
  Aktionen ohne .ggs-btn-ghost-Klasse, Ton-IDs erweitert (audio-toggle/btnSound).
- Farmer als erstes Bespoke-Muster: ggs-topbar -> ggs-header, schwebende Pille
  (Fallback-Logo + Titel) + Geld-KPI + Icon-Buttons; interne Fachinfo bleibt
  (data-ggs-no-glossar).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 14:33:53 +02:00
Adminator c913522a77 Kofferdetektiv: Kopfzeile schwebt ueber Vollbild-3D (schwarzer Balken weg)
#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>
2026-08-25 14:20:36 +02:00
Adminator 502f271f36 Einheitliche Sim-Kopfzeile (Entwurf B) als Komponente + Lizenz-Datenmodell
- ggs-header.css/.js: schwebende Pillen-Kopfzeile aus vorhandenem
  .ggs-header-Markup (Kreis-Logo/Titel/Level als eine Pille, eigene
  SVG-Icons, Tempo-Panel links + Zustandsbutton, Musik-Panel unten,
  30% transparente Untermenues, Glossar target=_blank, Lehrplan raus).
  Enhance-Ansatz: Spiel-Logik (IDs/Klassen, data-speed) bleibt unberuehrt.
- Eingebaut in Klima 2D/3D, Fluss, Logistik (Auto-Tempo), Energiemanager,
  Kofferdetektiv 3D.
- admin-licenses.html: Datenmodell-Sektion (licenses-Tabelle, Lebenszyklus
  Generiert->Eingeloest->Zugewiesen, Beziehungen, Jahr->Schuljahr->Code).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 14:06:41 +02:00
Adminator 362aaba883 Feinschliff-Spalten + Kopfzeilen-Panels (Placement/Transparenz)
- teacher.html Aktuell-Spalten: Weltkueche '🏆 Punkte' (score), Fluss
  '👥 Einw.' + '🌾 Ernte' (population/food), Busfahrt '📍 Ø km' (avgTapKm).
  (Kofferdetektiv Items-% vertagt: Sim liefert live noch keine Item-Zahl.)
- admin-styleguide.html Kopfzeile: Untermenues 30% transparent (Blur);
  Tempo oeffnet links + bleibt offen, Musik klappt nach unten + schliesst
  nach Song-Auswahl; Toggle per Klick.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 13:04:32 +02:00
Adminator 88e3c09e5c Per-Sim leistung_pct: alle 14 Sims senden das eine Leistungs-% (0-100)
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>
2026-08-25 12:35:56 +02:00
Adminator 539f6b012e leistung_pct-Fundament (Teacher+Backend bevorzugen) + Tempo-Button-Zustaende
- 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>
2026-08-25 12:31:23 +02:00
Adminator 7e1a7c5228 Kopfzeile: nur Entwurf B, eigene SVG-Icons, aufgeklappte Controls
- 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>
2026-08-25 11:40:50 +02:00
Adminator ce7bff3184 Drilldown-Metriken: schwarze Balken -> farbig + Sterne raus (sim-metrics.js)
bar() faerbte ueber ivm-CSS-Klassen, die im Schueler-Drilldown fehlen ->
Balken erschienen schwarz. Jetzt INLINE gefaerbt (ivmColor = _pctColor-Skala).
starsBlock (Heli Start/Landung) zeigt jetzt %+Balken statt Sterne.
pct/pctInv/ratio/money/temp/bool ebenfalls inline gefaerbt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 11:34:25 +02:00
Adminator 89d4d8587e Teacher-Fixes (Heli-Flugplan, Modul-Label) + Kopfzeilen-Entwuerfe
- 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>
2026-08-25 11:28:03 +02:00
Adminator a4e57d7aa6 Cockpit-Triage + Sterne->%+Balken durchgaengig (teacher.html)
Cockpit (Uebersicht):
- Farben auf kanonische Palette (--ivg..--ivr = _pctColor-Hex); ivAmp-
  Schwellen auf 50/60/80/90.
- ivTriage neu: >=90 Fordern (kann alles) / 50-89 Laeuft gut /
  <50 & fleissig -> Begleiten / <50 sonst -> Foerdern. Bestaetigen entfaellt.
- Fleiss im Klassenvergleich (_fleissig = 0.5*Zeit + 0.5*Durchgaenge >= Schnitt),
  fuer HEUTE- und insgesamt-Triage. IV_META-Texte angepasst.

Sterne raus -> %+Balken (colorblind-freundlich):
- _pctBadge (Run-Karten) neu. Alle 7 Run-Karten + generische Sonnensystem-
  Karte auf %+Balken (Busfahrt/Flug rechnen /3). Heli Start/Landung/Gesamt-
  Spalten in Aktuell auf _pctBar. Spectator, Drilldown (ivStars,
  Top-Performers), fmtMetric, Heli-Detail: Balken bzw. %.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 10:17:05 +02:00
Adminator 3bc0f418be Bewertungs-Vorschau: EINE Skala-Darstellung + 4-stufige Triage
- Doppeldarstellung (Beispiel-Balken + Legende) zu EINER Tabelle
  zusammengefuehrt: Farbe + Bereich + Label + Beispiel-Balken je Zeile.
  Beispielwert = Bereichsschwelle (90/80/60/50), nicht willkuerlich.
- Triage jetzt 4 Felder an denselben Farbgrenzen:
  <50 Foerdern (Hilfe) / 50-79 Begleiten / 80-89 Laeuft gut /
  >=90 Fordern (herausfordern). Styleguide + Preview angeglichen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 02:51:50 +02:00
Adminator 0a6fa2172f Einheitliche Leistungs-Skala (%) + Farbcodes ueberall vereinheitlicht
- Schwellen NEU (Thomas): >=90 Dunkelgruen / >=80 Hellgruen / >=60 Gelb /
  >=50 Orange / <50 Rot. Sterne entfallen.
- teacher.html: _pctColor (kanonisch) — _tagTraffic + _liveBar + _liveBarColor
  delegieren jetzt alle daran (EINE Skala; 'niedrig-ist-gut' invertiert).
  Neu: _leistungPct(simId,state) = das eine 0-100-% je Sim (eigener Score
  oder abgeleitet), _pctBar (kompakt, schmal). Neue Spalte 'Leistung' in
  'Aktuell'. _liveMood aus _leistungPct (>=80 gut / >=50 mittel / <50) —
  deckungsgleich mit Triage Foerdern/Begleiten/Laeuft gut (50/80).
- admin-styleguide.html: neue Sektion 'Leistungs-Skala' (5 Stufen, %+Balken,
  Triage, CSS-Variablen).
- admin-lehrer-view.html: Schwellen/Triage/Preview auf neue Werte, Balken
  kompakt, Sterne-Hinweis raus.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 02:37:33 +02:00
Adminator c79ef691ad Lehrer-View-Uebersicht: Vorschau einheitliches Leistungs-% (Sterne raus)
- 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>
2026-08-25 02:25:35 +02:00
Adminator bf579310ed Lehrer-View-Uebersicht: Sterne- + Prozent-Formeln je Sim dokumentiert
- Globale Erklaer-Box: wie der Zeilen-% entsteht (live.php extractScore:
  Score sonst Sterne/5x100) + Uneinheitlichkeiten (0-3 vs 0-5 Sterne,
  rohe score-Werte, Weltkueche pro Gericht, Logistik sendet nichts) +
  Vorschlag 'ein System' (% = Wahrheit, Sterne abgeleitet, gleiche Schwellen).
- Pro Sim ein Bewertungs-Block mit exakter Sterne-Formel + Prozent-Herkunft
  (aus dem Sterne-Audit der Game-Files) inkl. Warnhinweisen.
- Tourismustal: Gaeste-Spalte auf gruen (Gesamtgaeste = Spielfaktor).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-25 01:24:05 +02:00
Adminator 691387c4d8 Admin: Lehrer-View Parameter-Ueberblick Schuelerleistung
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>
2026-08-24 19:37:26 +02:00
Adminator 62e903a5ec Kofferdetektiv iPad-Performance: sicheres Buendel (Aufloesung + AA + GPU)
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>
2026-08-24 14:13:35 +02:00
Adminator 11c48817de Kofferdetektiv iPad: zwei feste Joysticks (immer 50% sichtbar)
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>
2026-08-24 13:57:20 +02:00
Adminator 8ec005f889 EU-Werkstatt: Probierzuege (Karten rausziehen) erfassen + Sterne ehrlicher
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>
2026-08-24 13:33:44 +02:00
Adminator 7de71b0e83 Energiemanager: Blackouts fuer Lehrer sichtbar machen
- 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>
2026-08-24 13:19:21 +02:00
Adminator b77f4ed912 Tag-Ansicht: student_results einbeziehen + Datum/Zoom-Verhalten
- 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>
2026-08-24 09:33:32 +02:00
Adminator 868cdda276 Fluss-Endscreen: zwei Felder (Rueckmeldung -> Aktionen) + Badges nebeneinander
Feld 1 = Rueckmeldung (Sterne/Stats/Badges/Reflexion) mit "Weiter"-Button (erst nach
Reflexions-Antwort aktiv); Feld 2 = "Wie geht's weiter?" (Stufen/Erneut versuchen +
Zurueck zur Startseite). end-badges jetzt display:flex (nebeneinander statt gestapelt).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 09:19:10 +02:00
Adminator 9a1ee0fae1 Tag-Zeitachse: gestauchte Skala - Nacht 00-06 und Abend 21-24 je 1 Block, Tag 06-21 stuendlich
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>
2026-08-23 22:23:34 +02:00
Adminator 1e1c1238bd Stadt & Raumplanung auf 'geplant' (In Vorbereitung, nicht spielbar) in v3 + Prod-SQL notiert
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 21:51:58 +02:00
Adminator de104e915a Tag-Zeitstrahl: keine Trennlinien in den Nacht-Baendern (zusammengefasst)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 21:50:13 +02:00