0a2ebf46b4
Sim nach App/sims/tourismustal umgezogen (Source of Truth), game.html mit Injection-Marker. Neu in der Sim: 5 Sommergebaeude (Bikepark mit Flowtrails, Hochseilgarten, Fahrradverleih als Verstaerker, Aussichtsplattform, Erlebnisspielplatz), Rettungsstation mit Notarzthubschrauber, Ausbau- Bauanimation, Event-Pacing, Schulden-Notbremse (Bank-Zwangsverkauf), Berater-Tipps (Ruecklagen), Sommer-Trend-Mechanik (Serfaus-Effekt) und Wissens-Bausteine mit echten DACH-Tourismusdaten (QUELLEN.md). Plattform: PHP-Wrapper mit base-Tag + Session-Mode, Modul-Detailseite, module_info (beta) + Glossar (14 Begriffe inkl. Leichter Sprache + Quellen) + Lehrplan-Anker AT/DE/CH an neuer Kompetenz tourismus-raumentwicklung. Lehrer-Backend: Benchmark-Formel, Live-Cockpit-Spalten, needsHelp-Heuristik, Modul-Highlights. Strategie-Testharness (tests/strategien.mjs) belegt: Panzer-Rush wird liquidiert, Ruecklagen zahlen sich aus. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
926 B
JavaScript
37 lines
926 B
JavaScript
// Telemetrie-Stub für das Lehrer-Dashboard. Läuft jetzt lokal (localStorage);
|
||
// bei der Integration ins GeoGraSim-Backend wird flush() auf einen POST
|
||
// umgestellt und erhält Session-/Schüler-Kontext vom PHP-System.
|
||
|
||
const KEY = 'tourismustal_telemetry';
|
||
|
||
export const telemetry = {
|
||
events: [],
|
||
_dayProvider: null,
|
||
|
||
init(dayProvider) {
|
||
this._dayProvider = dayProvider;
|
||
this.log('session_start', { ua: navigator.userAgent });
|
||
},
|
||
|
||
log(type, data = {}) {
|
||
this.events.push({
|
||
ts: Date.now(),
|
||
day: this._dayProvider ? this._dayProvider() : null,
|
||
type,
|
||
data,
|
||
});
|
||
this._persist();
|
||
},
|
||
|
||
_persist() {
|
||
try {
|
||
localStorage.setItem(KEY, JSON.stringify(this.events.slice(-500)));
|
||
} catch (e) { /* voller Speicher o. Privatmodus – Telemetrie ist optional */ }
|
||
},
|
||
|
||
// Später: POST an das GeoGraSim-Backend (PHP/DB)
|
||
flush() {
|
||
return this.events;
|
||
},
|
||
};
|