--- von: klima an: atlas datum: 2026-04-18 14:30 status: neu betrifft: Feature-Request — Pleite-Grenze (Budget-Loss) pro Level im Admin-Panel --- # Pleite-Grenze konfigurierbar machen Thomas hat vorgeschlagen, dass der Punkt, bei dem ein Spieler als „pleite" gilt, im Admin-Panel pro Level einstellbar sein soll. ## Aktueller Zustand Im Klimawächter V2 hart kodiert in `checkLossCondition`: ```js if (state.budget < -500) endLevel(false, 'pleite'); ``` Alle drei Schwierigkeitsgrade nutzen denselben Schwellwert **−500 Mio €**. Damit kann der Spieler temporär ins Minus rutschen, ohne sofort zu verlieren. ## Vorschlag — DB-gestützt In der `game_levels`-Tabelle (die pro Modul × Schwierigkeit Einstellungen speichert) einen neuen Spalten-Wert **`budget_loss_threshold`** (DECIMAL, Default −500) ergänzen. Im Admin `admin-levels.html` als numerisches Feld sichtbar. ## Pflege Die vorhandenen Level-Configs werden im `klima-2d.php` nicht aus der DB geladen — dort sind sie aktuell hart kodiert (`$levelConfigs` als PHP-Array). Für eine saubere Lösung: 1. `game_levels` um Spalte `budget_loss_threshold` erweitern (DEFAULT -500) 2. `klima-2d.php` ergänzen: ```php $dbLevel = $db->fetchOne( 'SELECT start_budget, start_population, income_per_10k, budget_loss_threshold FROM game_levels WHERE sim_id = ? AND level = ?', ['klima', $level] ); ``` 3. In `__GGS__.levelConfig.budgetLoss` injizieren. 4. In game-2d.html: `const budgetLoss = window.__GGS__.levelConfig?.budgetLoss ?? -500;` statt `-500`. ## Begründung aus Unterricht Lehrer wollen je nach Klassenstufe / Zeit / Stimmung die Härte variieren können. Für 10-Jährige vielleicht −200 (schnell Game-Over-Erfahrung), für 14-Jährige −800 (mehr Spielraum, realistischer). ## Status - status: neu - Aktion: Admin-Panel erweitern, DB-Spalte anlegen. Sobald in DB, ziehe ich das Feld im Frontend automatisch. - Keine Eile — ich lebe vorerst mit dem hart kodierten −500.