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>
This commit is contained in:
2026-08-25 17:09:28 +02:00
parent 496fc59c7b
commit 1dffef8200
2 changed files with 25 additions and 7 deletions
+18 -3
View File
@@ -86,6 +86,17 @@
var _config = null;
var _back = null;
var _page = 1;
var _startFired = false;
// onStart wird EINMAL ausgelöst — wenn das Onboarding geschlossen wird
// (oder sofort, falls schon gesehen). Sims können daran den Spielstart hängen.
function fireStart() {
if (_startFired) return;
if (_config && typeof _config.onStart === 'function') {
_startFired = true;
try { _config.onStart(); } catch (_) {}
}
}
function lsKey() { return _config && _config.simId ? 'ggs.intro.' + _config.simId : null; }
function markSeen() { try { var k = lsKey(); if (k) localStorage.setItem(k, '1'); } catch (_) {} }
@@ -97,14 +108,14 @@
_back = null;
document.removeEventListener('keydown', onKey);
}
function onKey(e) { if (e.key === 'Escape') close(); }
function onKey(e) { if (e.key === 'Escape') { markSeen(); close(); fireStart(); } }
function onBackClick(e) {
if (e.target === _back) { markSeen(); close(); return; }
if (e.target === _back) { markSeen(); close(); fireStart(); return; }
var a = e.target && e.target.dataset && e.target.dataset.action;
if (a === 'next') { _page = 2; render(); }
else if (a === 'back') { _page = 1; render(); }
else if (a === 'start') { markSeen(); close(); }
else if (a === 'start') { markSeen(); close(); fireStart(); }
}
function render() {
@@ -180,9 +191,13 @@
if (!isSeen()) {
// Kleiner Delay, damit Sim-Boot zuerst sein DOM aufbauen kann.
setTimeout(open, 400);
} else {
// Schon gesehen: kein Onboarding, aber die Sim darf trotzdem starten.
fireStart();
}
},
open: open,
close: close,
isSeen: isSeen,
};
})();