diff --git a/App/pages/buch-tourismustal.php b/App/pages/buch-tourismustal.php index 0005e85..3a2bdcb 100644 --- a/App/pages/buch-tourismustal.php +++ b/App/pages/buch-tourismustal.php @@ -250,6 +250,14 @@ function g(string $slug, string $label): string {
📊 Echte Zahlen: Ein Wintergast gibt in Österreich im Schnitt 193 €/Tag aus, ein Sommergast 156 €/Tag – also nur rund 80 %. [4]
+
📊 Was kostet das wirklich? + Die Simulation rechnet mit stark verkleinerten Zahlen. Real gilt: + 6er-Sessellift ca. 5–12 Mio. € [8] · + Patscherkofelbahn Innsbruck: geplant 58, bezahlt 83,2 Mio. € + [9] · Hotelzimmer-Neubau (4★) + 220.000–270.000 €/Zimmer [10] · + eine Schneekanone 27.000–35.000 € [11] · + Tageskarte Ski Arlberg 81,50 € [12].
🎼 In der Simulation: Der Skipass-Regler @@ -268,6 +276,10 @@ function g(string $slug, string $label): string { schlechten Tag. Welches Glied der Kette war der Engpass? Was wĂŒrdest du bauen?
  • C„Viele GĂ€ste = viel Gewinn" – stimmt das immer? BegrĂŒnde mit Betriebskosten und Zufriedenheit.
  • +
  • DIm Spiel begegnet dir der + đŸ’¶ Kosten-Check mit echten Preisen. Vergleiche: Gondelbahn im Spiel + 22.000 € – real bis ĂŒber 80 Mio. €. Warum verwendet die Simulation + kleinere Zahlen? Was bildet sie trotzdem richtig ab – und was nicht?
  • @@ -464,6 +476,16 @@ function g(string $slug, string $label): string { srf.ch
    [6] GeoSphere Austria: Klimaportal Schnee — klimaportal.geosphere.at
    + [8] Dolomitenstadt: 6er-Sessellift Leppleskofel, 12 Mio. € (2021) — + dolomitenstadt.at
    + [9] Stadt Innsbruck: Kostenaufstellung Patscherkofelbahn (2022) — + ibkinfo.at
    + [10] WKO: Investitionsrichtwerte Hotellerie 2024 — + wko.at
    + [11] Salzburgwiki/Marmota Maps: Kosten Schneekanonen — + wiki.sn.at
    + [12] Bergwelten: Skiticket-Preise 2025/26 — + bergwelten.com
    [7] Fallstudie Serfaus-Fiss-Ladis — brand-logic.com

    diff --git a/App/sims/tourismustal/js/data.js b/App/sims/tourismustal/js/data.js index ede59e9..ed993d0 100644 --- a/App/sims/tourismustal/js/data.js +++ b/App/sims/tourismustal/js/data.js @@ -687,6 +687,79 @@ export const EVENTS = [ }, ]; +// --------------------------------------------------------------------------- +// đŸ’¶ Kosten-Checks: RealitĂ€ts-Quiz zu echten österreichischen Kosten. +// Erscheint einmalig nach dem Erst-Bau des Trigger-Typs (mit Event-Pacing). +// Richtig = Bonus-Budget; falsch = nur die Auflösung (Lernen ohne Strafe). +// Zahlen verifiziert 2026-07-13, Quellen: Schulbuch-Kapitel + QUELLEN.md. +export const KOSTEN_CHECKS = [ + { + id: 'kc-lift', trigger: 'lift', title: 'Kosten-Check: Sessellift', + info: 'Dein Sessellift hat im Spiel 12.000 € gekostet. In echt: Der neue ' + + '6er-Sessellift auf den Leppleskofel in Osttirol (kuppelbar, mit ' + + 'Sitzheizung und Wetterhaube) wurde 2021 gebaut.', + frage: 'Was hat er wirklich gekostet – mehr oder weniger als 5 Millionen Euro?', + optionen: ['Mehr', 'Weniger'], richtig: 0, + aufloesung: 'Rund 12 MILLIONEN Euro – tausendmal so viel wie im Spiel! ' + + 'Auch einfachere kuppelbare Sessellifte kosten etwa 5 bis 7 Millionen. ' + + 'Eine Bahn ist die grĂ¶ĂŸte Investition, die ein Skigebiet tĂ€tigen kann – ' + + 'real dauert es 15 bis 30 Jahre, bis sie sich bezahlt macht.', + bonus: 2000, + }, + { + id: 'kc-gondola', trigger: 'gondola', title: 'Kosten-Check: Gondelbahn', + info: 'Die Patscherkofelbahn bei Innsbruck wurde 2017 neu gebaut – ' + + 'geplant waren 58 Millionen Euro.', + frage: 'Was stand am Ende auf der Rechnung – mehr oder weniger als 70 Millionen?', + optionen: ['Mehr', 'Weniger'], richtig: 0, + aufloesung: '83,2 Millionen Euro – ĂŒber 25 Millionen mehr als geplant! ' + + 'Große Bauprojekte werden oft teurer als gedacht. Zum Vergleich: Am ' + + 'Arlberg kostete 2016 ein Paket aus vier neuen Bahnen (darunter die ' + + 'Flexenbahn ZĂŒrs–Stuben) zusammen 45 Millionen Euro.', + bonus: 2000, + }, + { + id: 'kc-hotel', trigger: 'hotel', title: 'Kosten-Check: Hotelzimmer', + info: 'Dein Hotel hat im Spiel 9.000 € gekostet. Real rechnet die ' + + 'österreichische Wirtschaftskammer beim Neubau eines 4-Sterne-Hotels ' + + 'pro einzelnem Zimmer (Bau + Einrichtung).', + frage: 'Was kostet EIN Zimmer – mehr oder weniger als 500.000 €?', + optionen: ['Mehr', 'Weniger'], richtig: 1, + aufloesung: '220.000 bis 270.000 Euro pro Zimmer (4 Sterne; 3 Sterne: ' + + '140.000–190.000 €). Ein Hotel wie deines mit 60 Betten (~30 Zimmer) ' + + 'kostet real also 7 bis 8 MILLIONEN Euro – fast tausendmal mehr als ' + + 'im Spiel.', + bonus: 2000, + }, + { + id: 'kc-snow', trigger: 'snow', title: 'Kosten-Check: Beschneiung', + info: 'Deine Beschneiungsanlage hat im Spiel 6.000 € gekostet. In echt ' + + 'braucht ein Skigebiet viele einzelne Schneekanonen plus Leitungen, ' + + 'Pumpen und Speicherteiche.', + frage: 'Was kostet EINE einzige Propeller-Schneekanone – mehr oder weniger als 10.000 €?', + optionen: ['Mehr', 'Weniger'], richtig: 0, + aufloesung: 'Rund 27.000 bis 35.000 Euro – eine einzige echte Kanone ' + + 'kostet also das FĂŒnffache deiner ganzen Spiel-Anlage! Komplett ' + + 'beschneit kostet ein einziger Pistenkilometer etwa 1 Million Euro ' + + '(Branchenverband Seilbahnen Schweiz) – dazu Wasser und Strom in ' + + 'jedem Winter.', + bonus: 2000, + }, + { + id: 'kc-skipass', trigger: 'access', title: 'Kosten-Check: Skipass', + info: 'Im Spiel stellst du den Skipass zwischen 15 und 45 € ein. ' + + 'Schau auf die RealitĂ€t: Ski Arlberg ist Österreichs grĂ¶ĂŸtes ' + + 'zusammenhĂ€ngendes Skigebiet.', + frage: 'Was kostet dort die Tageskarte fĂŒr Erwachsene (Saison 2025/26) – mehr oder weniger als 100 €?', + optionen: ['Mehr', 'Weniger'], richtig: 1, + aufloesung: '81,50 € in der Hauptsaison (in der Topsaison 83 €). ' + + 'Skifahren ist real fast doppelt so teuer wie das Maximum in deinem ' + + 'Spiel – und die Preise steigen seit Jahren. Auch das gehört zur ' + + 'Frage, wer sich Wintersport noch leisten kann.', + bonus: 2000, + }, +]; + // --------------------------------------------------------------------------- // Lehrplan-Wissen je GebĂ€ude: kurze, verdaubare Bausteine, verankert im // GW-Lehrplan 2023 (Standortfaktoren, Angebot/Nachfrage, Wertschöpfung, diff --git a/App/sims/tourismustal/js/main.js b/App/sims/tourismustal/js/main.js index e3e1430..f650d33 100644 --- a/App/sims/tourismustal/js/main.js +++ b/App/sims/tourismustal/js/main.js @@ -2,7 +2,7 @@ // Audio und UI und treibt die laufende Zeit an (einstellbare Zeitskala). import { createState, simulateDay, canPlace, place, demolish, upgrade, ecoUpgrade, buildingReport } from './model.js'; -import { BUILDINGS, EVENTS, MILESTONES, DECISIONS, HINTS, ADVISOR, BUILD_INFO } from './data.js'; +import { BUILDINGS, EVENTS, MILESTONES, DECISIONS, HINTS, ADVISOR, BUILD_INFO, KOSTEN_CHECKS } from './data.js'; import { IsoRenderer } from './iso.js'; import { UI } from './ui.js'; import { telemetry } from './telemetry.js'; @@ -193,6 +193,13 @@ function onTileTap(c, r, pointerType) { state.firedEvents.add(infoId); ui.showCard({ id: infoId, ...BUILD_INFO[type], sound: 'card' }); } + // đŸ’¶ Kosten-Check vormerken: RealitĂ€ts-Quiz zum gerade gebauten Typ + // (erscheint spĂ€ter mit Abstand ĂŒbers Event-Pacing, nicht sofort) + const kc = KOSTEN_CHECKS.find(k => k.trigger === type); + if (kc && !state.firedEvents.has(kc.id)) { + state.firedEvents.add(kc.id); + (state.kcQueue ??= []).push(kc.id); + } } // ===== Live-View fĂŒr LehrkrĂ€fte (Plattform-Hook) ===== @@ -269,6 +276,29 @@ function submitAssessment(completed) { } catch { /* offline/Standalone: still ok */ } } +// đŸ’¶ Kosten-Check auflösen: richtig = Bonus-Budget, falsch = nur Lerninfo +function resolveKostenCheck(kc, picked) { + const richtig = picked === kc.richtig; + if (richtig) { + state.money += kc.bonus; + const b = state.buildings[0]; + if (b) renderer.addFloat(`đŸ’¶ +${kc.bonus.toLocaleString('de-AT')} €`, '#3f8f5e', b.c + 0.5, b.r - 0.5, true); + } + ui.showCard({ + id: kc.id + '-aufloesung', transient: true, forceModal: true, + icon: richtig ? '✅' : '📚', + sound: richtig ? 'success' : 'card', + title: richtig + ? `Richtig! Gut kalkuliert: +${kc.bonus.toLocaleString('de-AT')} € Bonus` + : 'Nicht ganz – aber jetzt weißt du es!', + text: kc.aufloesung + (richtig + ? '\n\n🏩 Die Bank ist beeindruckt von deinem RealitĂ€tswissen und gewĂ€hrt bessere Konditionen.' + : ''), + }); + ui.updateKPIs(); + telemetry.log('kosten_check_result', { id: kc.id, richtig }); +} + // ---------- Karten: Meilensteine, Sieg, Entscheidungen, Events ---------- function checkEvents() { // Meilensteine: GebĂ€ude Schritt fĂŒr Schritt freischalten (Szene 1) @@ -317,6 +347,32 @@ function checkEvents() { // Pacing-Fenster: erst nach Schonfrist und mit Mindestabstand zur letzten Karte const calmEnough = state.day >= EVENT_GRACE_DAYS && (state.day - state.lastInterruptDay) >= EVENT_COOLDOWN; + // đŸ’¶ Kosten-Check: RealitĂ€ts-Quiz (Info + SchĂ€tzfrage, Bonus bei Treffer). + // LĂ€uft im selben Ruhe-Fenster wie Entscheidungen – nie im Karten-Stakkato. + if (calmEnough && state.kcQueue?.length) { + const kc = KOSTEN_CHECKS.find(k => k.id === state.kcQueue[0]); + state.kcQueue.shift(); + if (kc) { + state.lastInterruptDay = state.day; + const first = !state.firedEvents.has('kc-modellhinweis'); + state.firedEvents.add('kc-modellhinweis'); + const vorspann = first + ? 'Übrigens: Die Preise in dieser Simulation sind stark verkleinert und ' + + 'vereinfacht, damit du schnell entscheiden kannst. Die VERHÄLTNISSE ' + + 'stimmen – die echten Zahlen sind viel grĂ¶ĂŸer. Zeig, dass du sie kennst:\n\n' + : ''; + ui.showCard({ + id: kc.id, icon: 'đŸ’¶', title: kc.title, + text: vorspann + kc.info + '\n\n❓ ' + kc.frage, + choices: [ + { label: kc.optionen[0], onPick: () => resolveKostenCheck(kc, 0) }, + { label: kc.optionen[1], onPick: () => resolveKostenCheck(kc, 1) }, + ], + }); + telemetry.log('kosten_check', { id: kc.id }); + return; + } + } // Entscheidungs-Karten: A/B-Wahl mit echten Folgen (je einmal, zeitversetzt) if (calmEnough) for (const d of DECISIONS) { if (state.firedEvents.has(d.id)) continue;