diff --git a/App/pages/klima-2d.php b/App/pages/klima-2d.php new file mode 100644 index 0000000..27cde60 --- /dev/null +++ b/App/pages/klima-2d.php @@ -0,0 +1,115 @@ +fetchOne( + 'SELECT class_id, display_name FROM student_sessions WHERE id = ?', + [$sessionId] + ); + if ($row) { + $studentName = $row['display_name'] ?: 'Schüler*in'; + $classId = (int)$row['class_id']; + } + } + // Modul-Info aus DB (Atlas-verwaltet). Defaults greifen, wenn Tabelle + // fehlt oder kein Eintrag für "klima" existiert. + $mi = $db->fetchOne( + 'SELECT title, icon FROM module_info WHERE module_id = ?', + ['klima'] + ); + if ($mi) { + if (!empty($mi['title'])) $simName = $mi['title']; + if (!empty($mi['icon'])) $simIcon = $mi['icon']; + } +} catch (Throwable $e) { + // DB nicht erreichbar → Defaults +} + +// Level-Konfiguration — fachlich passend zur Spiellogik (V1). +// easy = Lernen, medium = Üben, hard = Profi +$levelConfigs = [ + 1 => [ + 'difficulty' => 'easy', + 'label' => 'Lernen', + 'startBudget' => 600, + 'startPopulation'=> 6000, + 'incomePer10k' => 220, + 'blackoutGrace' => 5, + 'timeLimit' => 75, + 'eventFrequency' => 0.3, + ], + 2 => [ + 'difficulty' => 'medium', + 'label' => 'Üben', + 'startBudget' => 480, + 'startPopulation'=> 6000, + 'incomePer10k' => 155, + 'blackoutGrace' => 0, + 'timeLimit' => 75, + 'eventFrequency' => 0.5, + ], + 3 => [ + 'difficulty' => 'hard', + 'label' => 'Profi', + 'startBudget' => 220, + 'startPopulation'=> 7000, + 'incomePer10k' => 110, + 'blackoutGrace' => 0, + 'timeLimit' => 75, + 'eventFrequency' => 0.7, + ], +]; + +$ctx = [ + 'sessionId' => $sessionId, + 'studentName' => $studentName, + 'classId' => $classId, + 'simId' => 'klima', + 'simName' => $simName, + 'simIcon' => $simIcon, + 'level' => $level, + 'levelConfig' => $levelConfigs[$level], + 'baseUrl' => BASE_URL, + 'basePath' => BASE_PATH, + 'apiUrl' => BASE_URL . '/php/api', +]; + +$html = file_get_contents(__DIR__ . '/../sims/klima/game-2d.html'); +if ($html === false) { + http_response_code(500); + echo 'game-2d.html nicht gefunden'; + exit; +} + +$bp = BASE_PATH; +$baseTag = ''; +$ctxJs = ''; + +// -Tag direkt nach einfügen, damit relative Pfade aus /sims/klima/ heraus auflösen +$html = preg_replace('//i', '' . "\n" . $baseTag, $html, 1); +// Session-Kontext vor +$html = str_replace('', $ctxJs . "\n", $html); + +echo $html;