Files
geograsim/App/sims/tourismusregion/game.html
T
Adminator 8047778a5b Tourismusregion: Komplett-Integration (zweite neue Sim, beta)
Wellenbasierte Routen-Sim (DefensegeograSimMac) nach dem Tourismustal-
Playbook integriert: Sim nach App/sims/tourismusregion (game.html,
Sprites 47MB->9.5MB, ohne Eigen-Backend/Editor/Dashboard/Keys),
Plattform-Hooks (GGS_LIVE_STATE mit Welle/Budget/Umwelt/Sterne/Lenkung,
Submit bei Partie-Ende mit fertigem 0-100-Score, GGS_TUTORIAL, Home-
Button, Musik leise). Wrapper + Modul-Detailseite. SQL: module_info
(beta, Karte), Glossar-Kernbegriff Besucherlenkung (+Bild, Leichte
Sprache) + 12 Zuordnungen, Lehrplan-Mapping auf tourismus-
raumentwicklung (primaer) + verkehrserziehung/systemisches-denken.
LEHRPLAN.md mit Schwerpunkt Besucherlenkung & Mobilitaet. Lehrer-
Backend: Benchmark (Sim-Score direkt), Live-Cockpit-Spalten,
needsHelp, Highlights.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 01:14:12 +02:00

180 lines
7.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Tourismusregion entwickeln GeoGraSim</title>
<script>/*__TOURISMUSREGION_INJECTION__*/</script>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<canvas id="map"></canvas>
<header id="topbar" class="panel">
<button id="btnHome" class="icon-btn" title="Zurück zur Übersicht"></button>
<h1>Tourismusregion <span class="subtitle">entwickeln</span></h1>
<div id="waveStatus" class="wave-status">Welle 1 vorbereiten…</div>
<div class="top-right">
<div id="clock" class="clock">Welle 1/8</div>
<div class="speed" role="group" aria-label="Zeit">
<button data-speed="0" class="icon-btn speed-btn" title="Pause"></button>
<button data-speed="1" class="icon-btn speed-btn active" title="Normal">1×</button>
<button data-speed="2" class="icon-btn speed-btn" title="Doppelt">2×</button>
<button data-speed="3" class="icon-btn speed-btn" title="Dreifach">3×</button>
<button data-speed="4" class="icon-btn speed-btn" title="Vierfach">4×</button>
</div>
<button id="btnLog" class="icon-btn" title="Meldungen">🔔<span id="logBadge" class="badge hidden">0</span></button>
<button id="btnSound" class="icon-btn" title="Sound an/aus">🔊</button>
<button id="btnMusic" class="icon-btn" title="Musik-Player">🎵</button>
<button id="btnAnim" class="icon-btn" title="Reduzierte Animationen">🐢</button>
<button id="btnCamera" class="icon-btn" title="Ansicht zurücksetzen">🎯</button>
<button id="btnHelp" class="icon-btn" title="Anleitung">?</button>
</div>
</header>
<aside id="kpis" class="panel">
<div class="kpi-season" id="seasonBadge">🌸 Frühling</div>
<div id="repRow">
<div class="rep-head"><span>🏆 Ruf der Region</span><b id="repVal"></b></div>
<div class="rep-bar"><div id="repFill"></div></div>
</div>
<div class="kpi"><span>💰 Budget</span><b id="kMoney">500 €</b></div>
<div class="kpi"><span>🌲 Umwelt</span><b id="kEnv">75</b></div>
<div class="kpi"><span>🥾 Gäste jetzt</span><b id="kVisitors">0</b></div>
<div class="kpi"><span>🚗 Verkehr</span><b id="kTraffic">0</b></div>
<div class="kpi"><span>📈 Wertschöpfung</span><b id="kRevenue">0 €</b></div>
<div id="goals">
<h3>Ziele</h3>
<ul id="goalList"></ul>
</div>
<button id="btnStats" class="secondary slim">📊 Statistik</button>
<button id="btnNextWave" class="primary slim">⏩ Nächste Welle</button>
</aside>
<aside id="musicPanel" class="panel hidden">
<div class="music-row">
<button id="muPrev" class="icon-btn small" title="Voriger Titel"></button>
<button id="muPlay" class="icon-btn small" title="Abspielen/Pause"></button>
<button id="muNext" class="icon-btn small" title="Nächster Titel"></button>
<input id="muVol" type="range" min="0" max="1" step="0.05" value="0.28"
aria-label="Musik-Lautstärke">
</div>
<select id="muSelect" aria-label="Titel wählen"></select>
</aside>
<aside id="buildmenu" class="panel">
<h2>Bauen</h2>
<div id="buildItems"></div>
</aside>
<section id="infoPanel" class="panel hidden">
<div class="info-head">
<b id="infoTitle"></b>
<button id="infoClose" class="icon-btn small" title="Schließen"></button>
</div>
<div id="infoBody"></div>
<button id="btnUpgrade" class="primary slim hidden"></button>
<button id="btnDemolish" class="secondary slim">🧨 Abreißen (30 % zurück)</button>
</section>
<section id="graphMoney" class="panel graphbox">
<canvas id="graphMoneyCanvas"></canvas>
</section>
<section id="graphSat" class="panel graphbox">
<canvas id="graphSatCanvas"></canvas>
</section>
<div id="toast" class="panel hidden"></div>
<div id="cardOverlay" class="overlay hidden">
<div class="card panel">
<div id="cardIcon" class="card-icon"></div>
<h2 id="cardTitle"></h2>
<ul id="cardList" class="hidden"></ul>
<p id="cardText"></p>
<div class="card-buttons">
<button id="cardOk" class="primary">Weiter</button>
<button id="cardAlt" class="secondary hidden">Ablehnen</button>
</div>
</div>
</div>
<div id="logOverlay" class="overlay hidden">
<div class="card panel">
<h2>📨 Meldungen</h2>
<ul id="logList"></ul>
<button id="logClose" class="primary">Schließen</button>
</div>
</div>
<div id="statsOverlay" class="overlay hidden">
<div class="card panel end-card">
<h2>📊 Regions-Statistik</h2>
<div id="statsBody"></div>
<button id="statsClose" class="primary">Schließen</button>
</div>
</div>
<div id="startOverlay" class="overlay">
<div class="card panel">
<div class="card-icon">🏞️</div>
<h2>Tourismusregion entwickeln</h2>
<p class="intro">Besuchergruppen kommen in <b>8 Wellen</b> durch dein Tal.
Baue in den Baupausen die passende Infrastruktur, mach jede Gruppe
glücklich und halte Wirtschaft, Umwelt und Budget im Gleichgewicht.</p>
<input id="playerName" type="text" maxlength="40"
placeholder="Dein Name (für die Auswertung, optional)" autocomplete="off">
<input id="classCode" type="text" maxlength="20"
placeholder="Klassencode (optional)" autocomplete="off">
<h3 class="map-title">Wegkarte wählen</h3>
<div id="mapList"></div>
<button id="btnStart" class="primary">▶ Partie starten (8 Wellen)</button>
<p class="start-hint">Tipp: Gebäude wirken nur auf Gäste in ihrer Reichweite
baue nah an den Wegen!</p>
</div>
</div>
<div id="endOverlay" class="overlay hidden">
<div class="card panel end-card">
<div id="endProfileIcon" class="card-icon"></div>
<h2 id="endProfileName"></h2>
<p id="endProfileText" class="intro"></p>
<div id="endStars" class="end-stars"></div>
<div id="endBars"></div>
<ul id="endGoals" class="end-goals"></ul>
<p id="endFacts" class="end-facts"></p>
<div id="endFeedback" class="end-feedback"></div>
<div id="endReflect" class="end-reflect"></div>
<div class="card-buttons">
<button id="btnSave" class="primary">💾 Ergebnis speichern</button>
<button id="btnRestart" class="secondary">🔄 Nochmal spielen</button>
</div>
</div>
</div>
<script type="module" src="js/main.js"></script>
<script>
// Fallback: Per Doppelklick geöffnet (file://) laden ES-Module nicht.
window.addEventListener('load', function () {
setTimeout(function () {
if (window.__ttLoaded) return;
var card = document.querySelector('#startOverlay .card');
if (!card) return;
var warn = document.createElement('p');
warn.style.cssText = 'background:#fdecea;color:#a33227;border-radius:12px;'
+ 'padding:12px;font-size:14px;text-align:left;line-height:1.5';
warn.textContent = location.protocol === 'file:'
? '⚠️ Die Seite wurde als Datei geöffnet so kann die Simulation nicht '
+ 'starten. Bitte über einen Webserver aufrufen, z. B. XAMPP starten '
+ 'und http://localhost/DefensegeograSimMac/ öffnen.'
: '⚠️ Die Simulation konnte nicht geladen werden. Bitte Seite neu laden '
+ '(Strg/Cmd+R).';
card.appendChild(warn);
}, 1500);
});
</script>
</body>
</html>