0a2ebf46b4
Sim nach App/sims/tourismustal umgezogen (Source of Truth), game.html mit Injection-Marker. Neu in der Sim: 5 Sommergebaeude (Bikepark mit Flowtrails, Hochseilgarten, Fahrradverleih als Verstaerker, Aussichtsplattform, Erlebnisspielplatz), Rettungsstation mit Notarzthubschrauber, Ausbau- Bauanimation, Event-Pacing, Schulden-Notbremse (Bank-Zwangsverkauf), Berater-Tipps (Ruecklagen), Sommer-Trend-Mechanik (Serfaus-Effekt) und Wissens-Bausteine mit echten DACH-Tourismusdaten (QUELLEN.md). Plattform: PHP-Wrapper mit base-Tag + Session-Mode, Modul-Detailseite, module_info (beta) + Glossar (14 Begriffe inkl. Leichter Sprache + Quellen) + Lehrplan-Anker AT/DE/CH an neuer Kompetenz tourismus-raumentwicklung. Lehrer-Backend: Benchmark-Formel, Live-Cockpit-Spalten, needsHelp-Heuristik, Modul-Highlights. Strategie-Testharness (tests/strategien.mjs) belegt: Panzer-Rush wird liquidiert, Ruecklagen zahlen sich aus. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
752 lines
38 KiB
JavaScript
752 lines
38 KiB
JavaScript
// Spieldaten: Gebäude, Szenarien, Meilensteine, Entscheidungen, Aufträge,
|
||
// Event-Karten. Alle drei Szenen sind data-driven über SCENARIOS definiert.
|
||
|
||
export const BUILDINGS = {
|
||
lift: {
|
||
name: 'Sessellift', emoji: '🚡', cost: 12000, upkeep: 120,
|
||
zone: 'mid', staff: 4, cap: 200, pisteLen: 5,
|
||
desc: 'Bringt bis zu 200 Gäste pro Tag auf die Piste. Nur am Hang baubar.',
|
||
},
|
||
gondola: {
|
||
name: 'Gondelbahn', emoji: '🚠', cost: 22000, upkeep: 220,
|
||
zone: 'mid', staff: 5, cap: 300, pisteLen: 8,
|
||
desc: 'Bis in die Hochlagen: 300 Gäste pro Tag und eine lange Abfahrt.',
|
||
},
|
||
hotel: {
|
||
name: 'Hotel', emoji: '🏨', cost: 9000, upkeep: 90,
|
||
zone: 'valley', staff: 5, beds: 60,
|
||
desc: '60 Betten – Übernachtungsgäste bringen mehr Einnahmen.',
|
||
},
|
||
restaurant: {
|
||
name: 'Gasthaus', emoji: '🍽️', cost: 4500, upkeep: 45,
|
||
zone: 'any', staff: 3, spendBonus: 7,
|
||
desc: 'Gäste geben mehr aus und sind zufriedener.',
|
||
},
|
||
snow: {
|
||
name: 'Beschneiung', emoji: '❄️', cost: 6000, upkeep: 15,
|
||
zone: 'mid', staff: 1, snowPower: 2.5,
|
||
desc: 'Erzeugt Schnee in warmen Wintern. Braucht Wasser: nahe am Fluss bauen! Betrieb kostet 45 €/Tag.',
|
||
},
|
||
rescue: {
|
||
name: 'Rettungsstation', emoji: '⛑️', cost: 7000, upkeep: 50,
|
||
zone: 'valley', staff: 2, satBonus: 3,
|
||
desc: 'Bergrettung mit Notarzthubschrauber: verunglückte Ski-Gäste werden automatisch geborgen – und alle fühlen sich sicherer.',
|
||
},
|
||
access: {
|
||
name: 'Bushaltestelle', emoji: '🚌', cost: 3000, upkeep: 30,
|
||
zone: 'valley', staff: 1, access: 150,
|
||
desc: '150 weitere Gäste pro Tag. Muss direkt an der Talstraße stehen.',
|
||
},
|
||
staffhouse: {
|
||
name: 'Personalhaus', emoji: '🏠', cost: 5000, upkeep: 25,
|
||
zone: 'valley', staff: 0, housing: 12,
|
||
desc: 'Wohnraum für 12 Mitarbeiter/innen – ohne Wohnung kein Personal.',
|
||
},
|
||
badesee: {
|
||
name: 'Badesee', emoji: '🏖️', cost: 8000, upkeep: 60,
|
||
zone: 'valley', staff: 2, summerCap: 100, satBonus: 4,
|
||
desc: 'Badespaß für 100 Sommergäste. Braucht Wasser: nahe am Fluss bauen!',
|
||
},
|
||
sled: {
|
||
name: 'Sommerrodelbahn', emoji: '🛷', cost: 9000, upkeep: 70,
|
||
zone: 'mid', staff: 2, summerCap: 140, satBonus: 3,
|
||
desc: 'Rasant den Hang hinunter – 140 Sommergäste, ganz ohne Schnee.',
|
||
},
|
||
trail: {
|
||
name: 'Panoramaweg', emoji: '🥾', cost: 7000, upkeep: 40,
|
||
zone: 'mid', staff: 1, summerCap: 120,
|
||
desc: 'Wander- und Bikeweg am Hang – bis zu 120 Sommergäste, unabhängig vom Schnee.',
|
||
scenes: ['klimawandel'],
|
||
},
|
||
bikepark: {
|
||
name: 'Bikepark', emoji: '🚵', cost: 10000, upkeep: 80,
|
||
zone: 'mid', staff: 2, summerCap: 160, trailLen: 5,
|
||
desc: 'Flowtrails am Hang: bis 160 Sommergäste. Braucht eine Bahn in der Nähe (max. 4 Felder), die die Bikes hinaufbringt.',
|
||
},
|
||
ropes: {
|
||
name: 'Hochseilgarten', emoji: '🧗', cost: 6500, upkeep: 45,
|
||
zone: 'mid', staff: 2, summerCap: 90, satBonus: 2,
|
||
desc: 'Klettern in Baumwipfel-Höhe – 90 Sommergäste, besonders schonend für die Natur.',
|
||
},
|
||
bikerental: {
|
||
name: 'Fahrradverleih', emoji: '🚲', cost: 3500, upkeep: 25,
|
||
zone: 'valley', staff: 1, boost: 0.25,
|
||
desc: 'Räder & E-Bikes: Bikepark und Panoramaweg im Umkreis (4 Felder) bekommen +25 % Gäste.',
|
||
},
|
||
platform: {
|
||
name: 'Aussichtsplattform', emoji: '🌉', cost: 8000, upkeep: 30,
|
||
zone: 'high', staff: 1, summerCap: 130, satBonus: 2,
|
||
desc: 'Skywalk am Gipfel: 130 Ausflugsgäste. Nur in den Hochlagen nahe einer Bahn baubar.',
|
||
},
|
||
playground: {
|
||
name: 'Erlebnisspielplatz', emoji: '🎠', cost: 5500, upkeep: 35,
|
||
zone: 'valley', staff: 2, summerCap: 80, satBonus: 4,
|
||
desc: 'Wasserspiele & Kletterburg für Familien – 80 Sommergäste und viel Zufriedenheit.',
|
||
},
|
||
};
|
||
|
||
// Start im Sommer: ruhige Aufbauphase, der erste Winter wird zur Bewährungsprobe
|
||
export const SEASONS = ['Sommer', 'Herbst', 'Winter', 'Frühling'];
|
||
export const DAYS_PER_SEASON = 30;
|
||
|
||
// ---------- Aufträge je Szene ----------
|
||
const QUESTS_PIONIER = [
|
||
{ id: 'q1', icon: '🥾', title: 'Die ersten Gäste', desc: '40 Gäste an einem Tag', reward: 2000, check: s => s.guestsToday >= 40 },
|
||
{ id: 'q2', icon: '🎿', title: 'Ski-Opening', desc: '100 Gäste an einem Wintertag', reward: 4000, check: s => s.season === 'Winter' && s.guestsToday >= 100 },
|
||
{ id: 'q3', icon: '😊', title: 'Gern gesehen', desc: 'Zufriedenheit über 80 %', reward: 3000, check: s => s.satisfaction >= 80 },
|
||
{ id: 'q4', icon: '🛏️', title: 'Volles Haus', desc: '50 Übernachtungsgäste an einem Tag', reward: 5000, check: s => s.overnightToday >= 50 },
|
||
{ id: 'q5', icon: '🌲', title: 'Grünes Tal', desc: 'Naturwert über 80 % mit mind. 5 Betrieben', reward: 4000, check: s => s.nature >= 80 && s.buildings.length >= 5 },
|
||
{ id: 'q6', icon: '🏆', title: 'Ausgebucht', desc: '250 Gäste an einem Tag', reward: 8000, check: s => s.guestsToday >= 250 },
|
||
];
|
||
|
||
const QUESTS_BOOM = [
|
||
{ id: 'b1', icon: '📈', title: 'Boom nutzen', desc: '350 Gäste an einem Tag', reward: 6000, check: s => s.guestsToday >= 350 },
|
||
{ id: 'b2', icon: '👷', title: 'Gut besetzt', desc: 'Alle Stellen besetzt bei mind. 15 Beschäftigten', reward: 5000, check: s => s.staffNeeded >= 15 && s.staffAvailable >= s.staffNeeded },
|
||
{ id: 'b3', icon: '🌲', title: 'Gegensteuern', desc: 'Naturwert wieder über 70 %', reward: 6000, check: s => s.nature >= 70 },
|
||
{ id: 'b4', icon: '😊', title: 'Qualität statt Masse', desc: 'Zufriedenheit über 78 % bei 300+ Gästen', reward: 8000, check: s => s.satisfaction >= 78 && s.guestsToday >= 300 },
|
||
];
|
||
|
||
const QUESTS_KLIMA = [
|
||
{ id: 'k1', icon: '🥾', title: 'Neue Wege', desc: 'Baue einen Panoramaweg', reward: 4000, check: s => s.buildings.some(b => b.type === 'trail') },
|
||
{ id: 'k2', icon: '☀️', title: 'Sommerfrische', desc: '150 Gäste an einem Sommertag', reward: 5000, check: s => s.season === 'Sommer' && s.guestsToday >= 150 },
|
||
{ id: 'k3', icon: '❄️', title: 'Schneesicher', desc: '60 cm Schnee dank Beschneiung', reward: 5000, check: s => s.snow >= 60 && s.buildings.some(b => b.type === 'snow') },
|
||
{ id: 'k4', icon: '🌍', title: 'Ganzjahresziel', desc: '200 Gäste an einem Sommertag', reward: 8000, check: s => s.season === 'Sommer' && s.guestsToday >= 200 },
|
||
];
|
||
|
||
// ---------- Szenarien ----------
|
||
export const SCENARIOS = {
|
||
pionierzeit: {
|
||
id: 'pionierzeit',
|
||
name: '– Pionierzeit 1975',
|
||
startYear: 1975,
|
||
startMoney: 30000,
|
||
startAwareness: 0.35,
|
||
startNature: 88,
|
||
baseAccess: 120,
|
||
baseStaffHousing: 8,
|
||
demand: { Winter: 290, 'Frühling': 60, Sommer: 140, Herbst: 85 },
|
||
summerSpend: 12,
|
||
overnightSpend: 30,
|
||
wage: 24,
|
||
snowCannonRun: 45,
|
||
warmWinterChance: 0.3,
|
||
deadlineDay: 600,
|
||
goalsTitle: 'Ziele bis Ende 1979',
|
||
prebuilt: [],
|
||
startUnlocked: ['restaurant'], // kleine Schritte!
|
||
stageRow: 8, // Hochlagen anfangs wolkenverhangen
|
||
quests: QUESTS_PIONIER,
|
||
goals: [
|
||
{ id: 'guests', label: '220 Gäste an einem Tag', check: s => s.stats.maxGuests >= 220 },
|
||
{ id: 'money', label: '200.000 € auf dem Konto', check: s => s.money >= 200000 },
|
||
{ id: 'sat', label: 'Zufriedenheit mind. 70 %', check: s => s.satisfaction >= 70 },
|
||
{ id: 'nature', label: 'Naturwert mind. 55 %', check: s => s.nature >= 55 },
|
||
],
|
||
intro: {
|
||
id: 'intro', icon: '👋', title: 'Willkommen im Tal!',
|
||
text: 'Sommer 1975. Du übernimmst die Entwicklung eines kleinen, stillen '
|
||
+ 'Alpentals.\n\nFang klein an: Baue zuerst ein Gasthaus im Tal, in der '
|
||
+ 'Nähe des Dorfes. Dann kommen die ersten Wanderer – und alles Weitere '
|
||
+ 'ergibt sich Schritt für Schritt.',
|
||
},
|
||
},
|
||
|
||
boom: {
|
||
id: 'boom',
|
||
name: '– Boom 2000',
|
||
startYear: 2000,
|
||
startMoney: 45000,
|
||
startAwareness: 0.9, // das Tal ist längst bekannt
|
||
startNature: 68, // und trägt schon Spuren
|
||
baseAccess: 200,
|
||
baseStaffHousing: 10,
|
||
demand: { Winter: 500, 'Frühling': 100, Sommer: 240, Herbst: 150 },
|
||
summerSpend: 16,
|
||
overnightSpend: 38,
|
||
wage: 28,
|
||
snowCannonRun: 55,
|
||
warmWinterChance: 0.35,
|
||
deadlineDay: 480,
|
||
goalsTitle: 'Ziele bis Ende 2003',
|
||
prebuilt: ['restaurant', 'lift', 'access', 'hotel'],
|
||
startUnlocked: 'all',
|
||
stageRow: 0,
|
||
quests: QUESTS_BOOM,
|
||
goals: [
|
||
{ id: 'guests', label: '450 Gäste an einem Tag', check: s => s.stats.maxGuests >= 450 },
|
||
{ id: 'money', label: '500.000 € auf dem Konto', check: s => s.money >= 500000 },
|
||
{ id: 'sat', label: 'Zufriedenheit mind. 75 %', check: s => s.satisfaction >= 75 },
|
||
{ id: 'nature', label: 'Naturwert mind. 60 %', check: s => s.nature >= 60 },
|
||
],
|
||
intro: {
|
||
id: 'intro', icon: '📈', title: 'Der Boom ist da!',
|
||
text: 'Sommer 2000. Das Tal ist längst kein Geheimtipp mehr – die Gäste '
|
||
+ 'strömen, und alle wollen ausbauen.\n\nAber die Natur trägt schon '
|
||
+ 'Spuren, und die Einheimischen murren. Schaffst du Wachstum, OHNE '
|
||
+ 'das Tal zu verkaufen? Qualität und Naturwert entscheiden.',
|
||
},
|
||
},
|
||
|
||
klimawandel: {
|
||
id: 'klimawandel',
|
||
name: '– Schneegrenze 2035',
|
||
startYear: 2035,
|
||
startMoney: 40000,
|
||
startAwareness: 0.8,
|
||
startNature: 75,
|
||
baseAccess: 180,
|
||
baseStaffHousing: 10,
|
||
demand: { Winter: 360, 'Frühling': 110, Sommer: 220, Herbst: 160 },
|
||
summerSpend: 18,
|
||
overnightSpend: 40,
|
||
wage: 30,
|
||
snowCannonRun: 60,
|
||
warmWinterChance: 0.5, // warme Winter sind die neue Normalität …
|
||
warmWinterGrow: 0.06, // … und werden jedes Jahr häufiger
|
||
meltExtra: 1.2, // Schnee schmilzt schneller
|
||
summerTrend: 0.07, // Sommernachfrage +7 %/Jahr bei gutem Angebot (Serfaus-Effekt)
|
||
deadlineDay: 600,
|
||
goalsTitle: 'Ziele bis Ende 2039',
|
||
prebuilt: ['restaurant', 'lift', 'access'],
|
||
startUnlocked: 'all',
|
||
stageRow: 0,
|
||
quests: QUESTS_KLIMA,
|
||
goals: [
|
||
{ id: 'summer', label: '200 Gäste an einem Sommertag', check: s => s.stats.maxSummerGuests >= 200 },
|
||
{ id: 'money', label: '400.000 € auf dem Konto', check: s => s.money >= 400000 },
|
||
{ id: 'sat', label: 'Zufriedenheit mind. 70 %', check: s => s.satisfaction >= 70 },
|
||
{ id: 'nature', label: 'Naturwert mind. 65 %', check: s => s.nature >= 65 },
|
||
],
|
||
intro: {
|
||
id: 'intro', icon: '🌡️', title: 'Die Schneegrenze steigt',
|
||
text: 'Sommer 2035. Die Winter werden wärmer, Schnee ist keine '
|
||
+ 'Selbstverständlichkeit mehr. Messdaten zeigen: In den Alpen '
|
||
+ 'schmilzt der Schnee 5–9 Tage pro Jahrzehnt früher – seit 1970 ist '
|
||
+ 'die Schneesaison rund einen Monat kürzer geworden.\n\n'
|
||
+ 'Dein Tal muss sich neu erfinden: Ganzjahrestourismus! Wer sein '
|
||
+ 'Sommerangebot konsequent ausbaut, dessen Sommernachfrage wächst '
|
||
+ 'Jahr für Jahr (wie in echten Vorbild-Orten). Beschneiung '
|
||
+ 'überbrückt – aber sie kostet. Findest du die Balance?',
|
||
},
|
||
},
|
||
};
|
||
|
||
// Meilensteine: schalten Gebäude Schritt für Schritt frei (nur Szene 1 –
|
||
// in den anderen Szenen ist bereits alles freigeschaltet)
|
||
export const MILESTONES = [
|
||
{
|
||
id: 'm-lift', unlock: 'lift',
|
||
when: s => s.buildings.some(b => b.type === 'restaurant') && s.day >= 13,
|
||
icon: '🚡', title: 'Neu: Sessellift!',
|
||
text: 'Dein Gasthaus spricht sich herum – die ersten Gäste sind da!\n\n'
|
||
+ 'Sie fragen schon: „Kommt man hier auch auf den Berg?"\n\n'
|
||
+ 'Du kannst jetzt einen Sessellift bauen. Er gehört an den Hang '
|
||
+ '(weiter oben) – die Piste entsteht automatisch darüber.',
|
||
},
|
||
{
|
||
id: 'm-access', unlock: 'access',
|
||
when: s => s.buildings.some(b => b.type === 'lift'),
|
||
icon: '🚌', title: 'Neu: Bushaltestelle!',
|
||
text: 'Der Lift läuft! Aber viele Gäste kommen gar nicht erst ins Tal – '
|
||
+ 'es gibt zu wenige Anreisemöglichkeiten.\n\n'
|
||
+ 'Baue eine Bushaltestelle direkt an der Talstraße – dann bringt der '
|
||
+ 'Bus bis zu 150 zusätzliche Gäste pro Tag.',
|
||
},
|
||
{
|
||
id: 'm-hotel', unlock: 'hotel',
|
||
when: s => s.stats.maxGuests >= 90,
|
||
icon: '🏨', title: 'Neu: Hotel!',
|
||
text: 'Fast 100 Gäste an einem Tag! Viele würden gern länger bleiben – '
|
||
+ 'Übernachtungsgäste geben deutlich mehr Geld aus als Tagesgäste.\n\n'
|
||
+ 'Du kannst jetzt ein Hotel im Tal bauen (60 Betten).',
|
||
},
|
||
{
|
||
id: 'm-staff', unlock: 'staffhouse',
|
||
when: s => s.staffNeeded > s.staffAvailable,
|
||
icon: '👷', title: 'Neu: Personalhaus!',
|
||
text: 'Deine Betriebe finden nicht genug Mitarbeiter/innen – im Tal gibt '
|
||
+ 'es zu wenig Wohnraum!\n\nOhne Personal laufen Lift und Hotel nur mit '
|
||
+ 'halber Kraft. Ein Personalhaus schafft Wohnraum für 12 Beschäftigte.',
|
||
},
|
||
{
|
||
id: 'm-summer', unlock: ['badesee', 'sled'],
|
||
when: s => s.stats.maxSummerGuests >= 70,
|
||
icon: '☀️', title: 'Neu: Sommer-Attraktionen!',
|
||
text: 'Immer mehr Gäste kommen auch im Sommer ins Tal – sie wollen mehr '
|
||
+ 'erleben als nur wandern.\n\n'
|
||
+ 'Du kannst jetzt einen Badesee anlegen (nahe am Fluss!) und eine '
|
||
+ 'Sommerrodelbahn an den Hang bauen. Beide machen das Tal unabhängiger '
|
||
+ 'vom Schnee.',
|
||
},
|
||
{
|
||
id: 'm-expand', unlock: 'gondola',
|
||
when: s => s.stats.maxGuests >= 140,
|
||
apply: s => { s.stageRow = 0; },
|
||
icon: '🏔️', title: 'Die Hochlagen sind erschlossen!',
|
||
text: 'Dein Tal brummt – die Gemeinde gibt die Hochlagen frei!\n\n'
|
||
+ 'Der Nebel über dem oberen Berg lichtet sich: Dort gibt es Almen zum '
|
||
+ 'Bebauen (auch ein Berg-Gasthaus lohnt sich!) – und du kannst jetzt '
|
||
+ 'eine Gondelbahn bis in die Hochlagen bauen: 300 Gäste pro Tag und '
|
||
+ 'eine herrlich lange Abfahrt.',
|
||
},
|
||
{
|
||
id: 'm-snow', unlock: 'snow',
|
||
when: s => s.season === 'Winter' && s.weather.warmWinter
|
||
&& s.buildings.some(b => b.type === 'lift'),
|
||
icon: '❄️', title: 'Neu: Beschneiung!',
|
||
text: 'Dieser Winter ist ungewöhnlich warm – es fällt kaum Schnee, und '
|
||
+ 'ohne Schnee bleiben die Skigäste aus.\n\n'
|
||
+ 'Beschneiungsanlagen können helfen. Sie brauchen aber Wasser (nahe am '
|
||
+ 'Fluss bauen!) und kosten im Betrieb 45 € pro Tag.',
|
||
},
|
||
{
|
||
id: 'm-summer2', unlock: ['bikepark', 'ropes', 'bikerental', 'platform', 'playground'],
|
||
when: s => s.stats.maxSummerGuests >= 110,
|
||
icon: '🚵', title: 'Neu: Der Sommer boomt!',
|
||
text: 'Über 100 Sommergäste an einem Tag – dein Tal spricht sich als '
|
||
+ 'Sommerziel herum!\n\nJetzt baubar: Bikepark (braucht eine Bahn in der '
|
||
+ 'Nähe), Hochseilgarten, Fahrradverleih, Erlebnisspielplatz – und in den '
|
||
+ 'Hochlagen eine Aussichtsplattform.\n\nEchte Vorbilder zeigen: Wer das '
|
||
+ 'Sommerangebot konsequent ausbaut, verdoppelt seine Sommergäste in '
|
||
+ 'zehn Jahren (Serfaus-Fiss-Ladis: +95 %).',
|
||
},
|
||
{
|
||
id: 'm-rescue', unlock: 'rescue',
|
||
when: s => s.buildings.some(b => b.type === 'lift') && s.stats.maxGuests >= 120,
|
||
icon: '⛑️', title: 'Neu: Rettungsstation!',
|
||
text: 'Immer mehr Gäste sind auf den Pisten – und ab und zu verfährt sich '
|
||
+ 'jemand weit abseits und stürzt.\n\nEine Rettungsstation mit '
|
||
+ 'Notarzthubschrauber birgt Verunglückte automatisch. Sicherheit ist '
|
||
+ 'auch ein Standortfaktor – und die Gäste danken es dir.',
|
||
},
|
||
];
|
||
|
||
// Berater: wiederkehrende Hinweise (Toast) bei erkennbaren Problemen –
|
||
// beantworten „warum läuft es schlecht?", mit Cooldown in Spieltagen
|
||
export const ADVISOR = [
|
||
{
|
||
id: 'a-loss', cooldown: 25,
|
||
when: s => s.lossStreak >= 5,
|
||
text: '💸 Du machst seit Tagen Verlust: Instandhaltung & Löhne laufen weiter, auch wenn kaum Gäste da sind. Details: 📋 Tagesbericht.',
|
||
},
|
||
{
|
||
id: 'a-reserve', cooldown: 45,
|
||
when: s => s.money >= 0 && s.money < 4000 && s.buildings.length >= 2,
|
||
text: '💰 Kaum Rücklagen! Halte etwa 5.000 € zurück – für einmalige Chancen (Skirennen, Sommerfest) und schlechte Tage.',
|
||
},
|
||
{
|
||
id: 'a-debt', cooldown: 20,
|
||
when: s => s.money < -5000,
|
||
text: '🏦 Hohe Schulden! Reiß ungenutzte Gebäude ab (30 % zurück) – ab 15.000 € Schulden verkauft die Bank von selbst!',
|
||
},
|
||
{
|
||
id: 'a-snow', cooldown: 20,
|
||
when: s => s.season === 'Winter' && s.snow < 12
|
||
&& s.buildings.some(b => b.type === 'lift' || b.type === 'gondola')
|
||
&& !s.buildings.some(b => b.type === 'snow'),
|
||
text: '❄️ Wenig Schnee = wenig Skigäste! Eine Beschneiungsanlage hilft (braucht Fluss und Kälte).',
|
||
},
|
||
{
|
||
id: 'a-access', cooldown: 25,
|
||
when: s => s.bottleneckStreak >= 3 && s.bottleneck === 'Anreise (Bus)',
|
||
text: '🚌 Mehr Gäste wollten kommen, als anreisen können – Bushaltestelle bauen oder ausbauen ⬆️!',
|
||
},
|
||
{
|
||
id: 'a-cap', cooldown: 25,
|
||
when: s => s.bottleneckStreak >= 3 && (s.bottleneck === 'Liftplätze' || s.bottleneck === 'Wege & Attraktionen'),
|
||
text: '🚡 Dein Angebot ist voll ausgelastet – eine weitere Bahn/Attraktion oder ein Ausbau ⬆️ schafft Platz.',
|
||
},
|
||
{
|
||
id: 'a-staff', cooldown: 25,
|
||
when: s => s.bottleneck === 'Personal fehlt' && s.bottleneckStreak >= 3,
|
||
text: '👷 Personalmangel bremst alle Betriebe – ein Personalhaus schafft Wohnraum für 12 Angestellte.',
|
||
},
|
||
];
|
||
|
||
// Erklär-Karte beim ERSTEN Bau jedes Gebäudetyps: was bringt es, was
|
||
// kostet es, worauf achten? (Lernprogramm: jede Wirkung wird vorgestellt)
|
||
export const BUILD_INFO = {
|
||
restaurant: {
|
||
icon: '🍽️', title: 'Dein Gasthaus ist eröffnet!',
|
||
text: 'Gäste kehren jetzt ein (Symbol 🍽️ überm Kopf) und geben dabei '
|
||
+ 'mehr Geld aus – schau auf die grünen 🥨 +12 €. Außerdem steigt die '
|
||
+ 'Zufriedenheit.\n\nLaufende Kosten: 45 €/Tag + 3 Angestellte.\n\n'
|
||
+ '📍 LAGE ZÄHLT: Steht das Gasthaus im Einflusskreis (3 Felder) von '
|
||
+ 'Lift, Badesee, Rodelbahn oder Hotel, kehren deren Gäste gleich mit '
|
||
+ 'ein (+2 €/Gast je Nachbarschaft). Der Kreis wird beim Bauen angezeigt. '
|
||
+ 'Und: Jede Figur im Tal steht für etwa 10 echte Gäste.',
|
||
},
|
||
lift: {
|
||
icon: '🚡', title: 'Der Sessellift läuft!',
|
||
text: 'Im Winter bringt er bis zu 200 Skigäste auf die Piste – den '
|
||
+ 'Skipass-Preis bestimmst du links mit dem Regler. Im Sommer kaufen '
|
||
+ 'Wanderer Bergfahrten (🎫 8 €).\n\nKosten: 120 €/Tag Instandhaltung '
|
||
+ '+ 4 Angestellte. Ohne Schnee (links: ❄️-Anzeige) bleiben Skigäste aus!\n\n'
|
||
+ '📍 LAGE ZÄHLT: Weiter OBEN gebaut ist der Lift schneesicherer '
|
||
+ '(längere Skisaison), weiter UNTEN konsumieren die Gäste mehr '
|
||
+ '(+2 €/Gast). Zwei Bahnen nahe beieinander bilden einen Skiverbund '
|
||
+ 'und locken zusätzliche Gäste an.',
|
||
},
|
||
gondola: {
|
||
icon: '🚠', title: 'Die Gondelbahn schwebt!',
|
||
text: 'Bis zu 300 Gäste pro Tag und eine herrlich lange Abfahrt aus den '
|
||
+ 'Hochlagen.\n\nKosten: 220 €/Tag + 5 Angestellte – die teuerste, '
|
||
+ 'aber stärkste Bahn im Tal.\n\n📍 LAGE ZÄHLT: Auch hier gilt – hoch '
|
||
+ 'gebaut = schneesicher, tief gebaut = konsumfreundlich; nahe Bahnen '
|
||
+ 'bilden einen Skiverbund.',
|
||
},
|
||
access: {
|
||
icon: '🚌', title: 'Der Bus hält jetzt im Tal!',
|
||
text: 'Bis zu 150 zusätzliche Gäste können pro Tag anreisen – beobachte, '
|
||
+ 'wie Gruppen an der Haltestelle aussteigen.\n\nWenn unter der '
|
||
+ 'Gäste-Zahl „Engpass: Anreise" steht, lohnt sich ein Ausbau ⬆️.',
|
||
},
|
||
hotel: {
|
||
icon: '🏨', title: 'Das Hotel empfängt Gäste!',
|
||
text: '60 Betten: Die Hälfte deiner Tagesgäste würde gern übernachten – '
|
||
+ 'jede Übernachtung bringt 30 € extra.\n\nKosten: 90 €/Tag + 5 '
|
||
+ 'Angestellte. Denk an Personal-Wohnraum!',
|
||
},
|
||
staffhouse: {
|
||
icon: '🏠', title: 'Wohnraum für dein Personal!',
|
||
text: '12 Angestellte finden hier ein Zuhause. Betriebe ohne Personal '
|
||
+ 'laufen nur mit halber Kraft – die Personal-Zeile links zeigt, ob '
|
||
+ 'alle Stellen besetzt sind.\n\n📍 LAGE ZÄHLT: Baue es nahe bei den '
|
||
+ 'Betrieben (max. 4 Felder, Kreis beim Bauen) – liegt es weiter weg, '
|
||
+ 'wirkt es nur zu zwei Dritteln.',
|
||
},
|
||
snow: {
|
||
icon: '❄️', title: 'Die Beschneiung steht bereit!',
|
||
text: 'Sobald es kälter als 2 °C ist und Schnee fehlt, springt sie an '
|
||
+ '(+2,5 cm/Tag) – Betrieb kostet dann 45 €/Tag.\n\nIst es zu warm, '
|
||
+ 'kann auch sie nicht schneien (Wettervorhersage links!).',
|
||
},
|
||
badesee: {
|
||
icon: '🏖️', title: 'Der Badesee glitzert!',
|
||
text: 'Bis zu 100 Sommergäste planschen hier (🏖️ überm Kopf) und zahlen '
|
||
+ 'Eintritt (🎫 +5 €). Dazu steigt die Zufriedenheit.\n\nIm Winter '
|
||
+ 'ruht der Betrieb – die Kosten (60 €/Tag) laufen weiter.',
|
||
},
|
||
sled: {
|
||
icon: '🛷', title: 'Die Sommerrodelbahn saust!',
|
||
text: 'Bis zu 140 Sommergäste, ganz ohne Schnee (🛷 überm Kopf, 🎫 +7 €). '
|
||
+ 'Mit Ausbau ⬆️ wird die Bahn länger und schafft +50 %.\n\n'
|
||
+ 'Kosten: 70 €/Tag + 2 Angestellte.',
|
||
},
|
||
trail: {
|
||
icon: '🥾', title: 'Der Panoramaweg ist markiert!',
|
||
text: 'Bis zu 120 Sommergäste wandern hier – völlig schneeunabhängig. '
|
||
+ 'Genau das braucht das Tal, wenn die Winter wärmer werden.\n\n'
|
||
+ 'Kosten: 40 €/Tag + 1 Angestellte/r.',
|
||
},
|
||
bikepark: {
|
||
icon: '🚵', title: 'Der Bikepark ist eröffnet!',
|
||
text: 'Die Flowtrails schlängeln sich den Hang hinunter – bis zu 160 '
|
||
+ 'Sommergäste (🚵 überm Kopf, 🎫 +9 €).\n\nKosten: 80 €/Tag + 2 '
|
||
+ 'Angestellte. Die Trails kosten Naturwert – Aufforstung gleicht aus.\n\n'
|
||
+ '📍 LAGE ZÄHLT: Die Bahn daneben bringt die Bikes hinauf – genau so '
|
||
+ 'nutzen echte Skigebiete (Saalbach, Serfaus) ihre Lifte im Sommer. '
|
||
+ 'Ein Fahrradverleih im Umkreis bringt +25 % Gäste.',
|
||
},
|
||
ropes: {
|
||
icon: '🧗', title: 'Der Hochseilgarten ist gespannt!',
|
||
text: 'Klettern, Balancieren, Ziplines – 90 Sommergäste (🎫 +8 €), und die '
|
||
+ 'Bäume bleiben stehen: kaum Naturverbrauch.\n\n'
|
||
+ 'Kosten: 45 €/Tag + 2 Angestellte. Familien lieben ihn – die '
|
||
+ 'Zufriedenheit steigt.',
|
||
},
|
||
bikerental: {
|
||
icon: '🚲', title: 'Der Fahrradverleih hat geöffnet!',
|
||
text: 'Räder und E-Bikes für alle, die keins mitbringen.\n\n'
|
||
+ '📍 LAGE ZÄHLT: Bikepark und Panoramaweg im Umkreis (4 Felder) '
|
||
+ 'bekommen +25 % Gäste – der Verleih ist ein Verstärker, keine eigene '
|
||
+ 'Attraktion.\n\nKosten: 25 €/Tag + 1 Angestellte/r.',
|
||
},
|
||
platform: {
|
||
icon: '🌉', title: 'Die Aussichtsplattform schwebt!',
|
||
text: 'Der Skywalk zieht bis zu 130 Ausflugsgäste an – sie kommen NUR '
|
||
+ 'für die Aussicht und fahren mit der Bahn hinauf (🎫 +6 €).\n\n'
|
||
+ 'Das ist Ausflugstourismus: Die Jungfraubahn (Schweiz) macht so nur '
|
||
+ 'noch ~20 % ihres Umsatzes mit Wintersport – der Rest ist '
|
||
+ 'Ganzjahres-Ausflugsgeschäft.\n\nKosten: 30 €/Tag + 1 Angestellte/r.',
|
||
},
|
||
playground: {
|
||
icon: '🎠', title: 'Der Erlebnisspielplatz tobt!',
|
||
text: 'Wasserspiele, Kletterburg, Riesenrutsche – 80 Sommergäste und ein '
|
||
+ 'großes Plus bei der Zufriedenheit.\n\nFamilien sind DER '
|
||
+ 'Sommer-Wachstumsmotor: Serfaus-Fiss-Ladis wurde mit Familienangeboten '
|
||
+ 'zur Vorzeige-Sommerdestination.\n\nKosten: 35 €/Tag + 2 Angestellte.',
|
||
},
|
||
rescue: {
|
||
icon: '⛑️', title: 'Die Rettungsstation ist einsatzbereit!',
|
||
text: 'Fährt ein Ski-Gast weit abseits und stürzt, startet automatisch der '
|
||
+ 'Notarzthubschrauber, birgt ihn und fliegt zurück zur Station.\n\n'
|
||
+ 'Kosten: 50 €/Tag + 2 Angestellte. Gäste fühlen sich sicherer '
|
||
+ '(mehr Zufriedenheit).',
|
||
},
|
||
};
|
||
|
||
// Kurz-Hinweise: dezente Toasts ohne Pause – erzählen, was gerade
|
||
// passiert (Gäste kommen, konsumieren, es entsteht Bedarf …)
|
||
export const HINTS = [
|
||
{
|
||
id: 'h-guests', scenes: ['pionierzeit'],
|
||
when: s => s.buildings.length > 0 && s.guestsToday >= 8,
|
||
text: '🥾 Die ersten Wanderer sind da – schau, wie sie durchs Tal spazieren!',
|
||
},
|
||
{
|
||
id: 'h-konsum', scenes: ['pionierzeit'],
|
||
when: s => s.guestsToday >= 18,
|
||
text: '💶 Es klingelt in der Kasse: Die Gäste kehren ein und geben Geld aus.',
|
||
},
|
||
{
|
||
id: 'h-bus', scenes: ['pionierzeit'],
|
||
when: s => s.day >= 8 && s.buildings.length > 0,
|
||
text: '🚌 Mancher Gast käme gern – aber ohne Bus ist die Anreise mühsam …',
|
||
},
|
||
{
|
||
id: 'h-berg', scenes: ['pionierzeit'],
|
||
when: s => s.day >= 11 && s.buildings.some(b => b.type === 'restaurant'),
|
||
text: '⛰️ Immer öfter fragen Gäste: „Kommt man hier auch auf den Berg?"',
|
||
},
|
||
];
|
||
|
||
// Entscheidungs-Karten: Situationen mit echter A/B-Wahl (Urteils- und
|
||
// Handlungskompetenz!). Erscheinen einmalig, wenn die Bedingung erfüllt ist.
|
||
export const DECISIONS = [
|
||
{
|
||
id: 'd-race', icon: '🏁', title: 'Skirennen im Tal?',
|
||
when: s => s.season === 'Winter' && s.snow > 20 && s.day > 100
|
||
&& s.buildings.some(b => b.type === 'lift'),
|
||
text: 'Der Skiverband fragt an: Ein Landesrennen würde das Tal weit über '
|
||
+ 'die Region hinaus bekannt machen – kostet aber 5.000 € für '
|
||
+ 'Absperrungen, Helfer und Preisgeld.',
|
||
yes: {
|
||
label: 'Ausrichten (5.000 €)',
|
||
can: s => s.money >= 5000,
|
||
apply: s => {
|
||
s.money -= 5000;
|
||
s.awareness = Math.min(1, s.awareness + 0.15);
|
||
s.satisfaction = Math.min(100, s.satisfaction + 8);
|
||
s.race = { until: s.day + 5 }; // sichtbares Rennen auf der Piste!
|
||
},
|
||
toast: '🏁 Renntag! Schau auf die Piste – das Tal ist in aller Munde!',
|
||
},
|
||
no: { label: 'Ablehnen', apply: () => {}, toast: 'Der Verband fragt woanders an.' },
|
||
},
|
||
{
|
||
id: 'd-fest', icon: '🎪', title: 'Sommerfest im Dorf?',
|
||
when: s => s.season === 'Sommer' && s.day > 40,
|
||
text: 'Das Dorf möchte ein großes Sommerfest mit Musik und Handwerksmarkt '
|
||
+ 'ausrichten und bittet dich um 3.000 € Unterstützung.',
|
||
yes: {
|
||
label: 'Unterstützen (3.000 €)',
|
||
can: s => s.money >= 3000,
|
||
apply: s => {
|
||
s.money -= 3000;
|
||
s.awareness = Math.min(1, s.awareness + 0.1);
|
||
s.satisfaction = Math.min(100, s.satisfaction + 6);
|
||
s.fest = { until: s.day + 5 }; // Marktstände & Wimpel im Dorf!
|
||
},
|
||
toast: '🎪 Das Fest ist im Gange – schau ins Dorf!',
|
||
},
|
||
no: {
|
||
label: 'Diesmal nicht', apply: s => {
|
||
s.satisfaction = Math.max(10, s.satisfaction - 3);
|
||
}, toast: 'Das Dorf ist etwas enttäuscht.',
|
||
},
|
||
},
|
||
{
|
||
id: 'd-forest', icon: '🌱', title: 'Aufforstungs-Projekt?',
|
||
when: s => s.nature < 65,
|
||
text: 'Die Bürgerinitiative schlägt vor, gemeinsam Bäume zu pflanzen und '
|
||
+ 'Almwiesen zu pflegen. Deine Beteiligung: 4.000 €.',
|
||
yes: {
|
||
label: 'Mitmachen (4.000 €)',
|
||
can: s => s.money >= 4000,
|
||
apply: s => {
|
||
s.money -= 4000;
|
||
s.nature = Math.min(100, s.nature + 12);
|
||
},
|
||
toast: '🌱 Das Tal wird sichtbar grüner – und die Gäste danken es.',
|
||
},
|
||
no: {
|
||
label: 'Ablehnen', apply: s => {
|
||
s.satisfaction = Math.max(10, s.satisfaction - 5);
|
||
}, toast: 'Die Initiative ist verärgert.',
|
||
},
|
||
},
|
||
{
|
||
id: 'd-tourbus', icon: '🚍', title: 'Reisegruppe mit Rabatt?',
|
||
when: s => s.buildings.some(b => b.type === 'access') && s.day > 70,
|
||
text: 'Ein Reiseveranstalter bietet an, regelmäßig Busgruppen zu schicken – '
|
||
+ 'aber nur mit 30 % Gruppenrabatt. Viele Gäste, weniger Geld pro Kopf, '
|
||
+ 'und es wird voller.',
|
||
yes: {
|
||
label: 'Annehmen',
|
||
apply: s => {
|
||
s.money += 2500;
|
||
s.awareness = Math.min(1, s.awareness + 0.06);
|
||
s.satisfaction = Math.max(10, s.satisfaction - 5);
|
||
},
|
||
toast: '🚍 Die Gruppen kommen – es klingelt in der Kasse, aber es wird eng.',
|
||
},
|
||
no: { label: 'Ablehnen', apply: () => {}, toast: 'Du setzt weiter auf Individualgäste.' },
|
||
},
|
||
];
|
||
|
||
// Event-Karten: erscheinen einmalig, sobald ihre Bedingung erfüllt ist.
|
||
// Optional per `scenes` auf einzelne Szenarien beschränkt.
|
||
export const EVENTS = [
|
||
{
|
||
id: 'first-winter', icon: '⛄', title: 'Der erste Winter naht',
|
||
scenes: ['pionierzeit'],
|
||
when: s => s.season === 'Winter',
|
||
text: 'Es wird kalt im Tal! Im Winter kommen Skigäste – aber nur, wenn es '
|
||
+ 'einen Lift und genug Schnee gibt.\n\n'
|
||
+ 'Behalte die Schnee-Anzeige links im Blick.',
|
||
},
|
||
{
|
||
id: 'overtourism', icon: '🚗', title: 'Es wird eng im Tal',
|
||
scenes: ['boom'],
|
||
when: s => s.guestsToday > 500,
|
||
text: 'Über 500 Gäste an einem Tag! Die Straße ist verstopft, die '
|
||
+ 'Einheimischen finden keinen Parkplatz mehr.\n\n'
|
||
+ 'Mehr ist nicht immer besser: Achte auf Zufriedenheit und Naturwert – '
|
||
+ 'sonst kommt der Boom ins Kippen.',
|
||
},
|
||
{
|
||
id: 'no-snow-winter', icon: '🌧️', title: 'Grüner Winter',
|
||
scenes: ['klimawandel'],
|
||
when: s => s.season === 'Winter' && s.snow < 10 && s.day > 70,
|
||
text: 'Mitten im Winter: Regen statt Schnee. So sieht die neue Realität '
|
||
+ 'aus – und die Skigäste bleiben aus.\n\n'
|
||
+ 'Beschneiung hilft kurzfristig. Langfristig braucht das Tal Angebote, '
|
||
+ 'die keinen Schnee brauchen.',
|
||
},
|
||
{
|
||
id: 'sommerloch', icon: '📊', title: 'Das Sommerloch',
|
||
scenes: ['boom', 'klimawandel'],
|
||
when: s => s.season === 'Sommer' && s.day > 25
|
||
&& !s.buildings.some(b => (BUILDINGS[b.type].summerCap || 0) > 0),
|
||
text: 'Dein Tal lebt fast nur vom Winter – im Sommer bleiben die Betten '
|
||
+ 'leer. Fachleute nennen das „Sommerloch".\n\n'
|
||
+ 'Echte Zahlen: Lech am Arlberg hat 84 % seiner Übernachtungen im '
|
||
+ 'Winter und nur 16 % im Sommer. Ganz Österreich zeigt, dass es anders '
|
||
+ 'geht – dort hat der Sommer den Winter bei den Übernachtungen sogar '
|
||
+ 'überholt (83 zu 72 Millionen, 2025).\n\n'
|
||
+ 'Badesee, Sommerrodelbahn und Panoramaweg füllen das Loch.',
|
||
},
|
||
{
|
||
id: 'ganzjahres-daten', icon: '📈', title: 'Was sagen die Daten?',
|
||
scenes: ['klimawandel'],
|
||
when: s => s.buildings.filter(b => (BUILDINGS[b.type].summerCap || 0) > 0).length >= 2,
|
||
text: 'Dein Tal wird zur Ganzjahresdestination – wie echte Vorbilder: '
|
||
+ 'Serfaus-Fiss-Ladis hat seine Sommer-Übernachtungen in 10 Jahren fast '
|
||
+ 'verdoppelt, am Wilden Kaiser kommen Sommer und Winter gleich viele '
|
||
+ 'Gäste.\n\nAber Achtung: Ein Sommergast gibt nur rund 80 % dessen aus, '
|
||
+ 'was ein Wintergast ausgibt (156 vs. 193 € pro Tag). Und eine Bergbahn '
|
||
+ 'braucht 1,3 bis 4,2 Sommergäste, um EINEN fehlenden Wintergast zu '
|
||
+ 'ersetzen.\n\nGleich viele Gäste heißt also nicht gleich viel Geld – '
|
||
+ 'plane entsprechend!',
|
||
},
|
||
{
|
||
id: 'low-money', icon: '💸', title: 'Die Kasse ist fast leer',
|
||
when: s => s.money < 3000,
|
||
text: 'Achtung: Gebäude kosten auch im Betrieb Geld (Instandhaltung, Löhne). '
|
||
+ 'Warte, bis Einnahmen hereinkommen, bevor du weiter baust.\n\n'
|
||
+ 'Tipp: Mit dem Abriss-Werkzeug bekommst du 30 % der Baukosten zurück.',
|
||
},
|
||
{
|
||
id: 'nature-low', icon: '🌲', title: 'Bürgerinitiative besorgt',
|
||
when: s => s.nature < 45,
|
||
text: 'Eine Bürgerinitiative protestiert: Zu viel Verbauung schadet Natur '
|
||
+ 'und Landschaftsbild – und genau deshalb kommen viele Gäste!\n\n'
|
||
+ 'Sinkt der Naturwert weiter, bleiben Gäste aus.',
|
||
},
|
||
{
|
||
id: 'too-expensive', icon: '🎟️', title: 'Zu teuer!',
|
||
when: s => s.price >= 38 && s.satisfaction < 55,
|
||
text: 'Die Gäste beschweren sich über den Skipass-Preis. Ein hoher Preis '
|
||
+ 'bringt mehr Geld pro Gast – aber weniger Gäste kommen, und die '
|
||
+ 'Zufriedenheit sinkt.\n\nDas ist Angebot und Nachfrage!',
|
||
},
|
||
{
|
||
id: 'broke', icon: '🏦', title: 'Das Konto ist überzogen!',
|
||
when: s => s.money < -1000,
|
||
text: 'Die Gemeinde streckt dir das Geld vor, aber so kann es nicht '
|
||
+ 'weitergehen. Reiß ungenutzte Gebäude ab (30 % zurück) oder senke die '
|
||
+ 'laufenden Kosten, bis wieder Einnahmen kommen.',
|
||
},
|
||
];
|
||
|
||
// ---------------------------------------------------------------------------
|
||
// Lehrplan-Wissen je Gebäude: kurze, verdaubare Bausteine, verankert im
|
||
// GW-Lehrplan 2023 (Standortfaktoren, Angebot/Nachfrage, Wertschöpfung,
|
||
// Nachhaltigkeit, Klimaanpassung). Erscheinen im Gebäude-Klick-Dialog.
|
||
export const KNOWLEDGE = {
|
||
restaurant: [
|
||
{ term: 'Wertschöpfung', text: 'Jeder Gast, der einkehrt, lässt Geld im Tal. Diese vor Ort erwirtschafteten Einnahmen nennt man Wertschöpfung.' },
|
||
{ term: 'Standortfaktor Lage', text: 'Steht das Gasthaus nah bei Lift, Hotel oder Attraktion, kehren deren Gäste gleich mit ein – gute Lage bringt mehr Umsatz.' },
|
||
],
|
||
lift: [
|
||
{ term: 'Standortfaktor Höhenlage', text: 'Weiter oben ist es kälter, der Schnee bleibt länger – die Skisaison wird länger. Höhe ist ein Standortfaktor.' },
|
||
{ term: 'Kapazität', text: 'Ein Lift befördert nur begrenzt viele Gäste pro Tag. Ist er voll, kommen trotz Nachfrage nicht mehr hinauf.' },
|
||
{ term: 'Sommergeschäft der Bergbahnen', text: 'Real machen Seilbahnen nur 15–25 % ihres Umsatzes im Sommer. Fällt ein Wintergast aus, braucht die Bahn 1,3 bis 4,2 Sommergäste als Ersatz (Seilbahnen Schweiz).' },
|
||
],
|
||
gondola: [
|
||
{ term: 'Infrastruktur', text: 'Bahnen sind touristische Infrastruktur – die Grundausstattung, die eine Tourismusregion erst möglich macht.' },
|
||
{ term: 'Standortfaktor Höhenlage', text: 'Die Gondel erschließt die Hochlagen: mehr Kapazität und schneesicherer als tief gelegene Lifte.' },
|
||
],
|
||
hotel: [
|
||
{ term: 'Übernachtungstourismus', text: 'Übernachtungsgäste bringen mehr Wertschöpfung als Tagesgäste – sie bleiben länger, essen und kaufen im Ort ein.' },
|
||
{ term: 'Tagesausgaben', text: 'Ein Wintergast gibt in Österreich im Schnitt 193 € pro Tag aus, ein Sommergast 156 € – also nur rund 80 %. Gleich viele Gäste heißt darum nicht gleich viel Einnahmen!' },
|
||
{ term: 'Saisonalität & Auslastung', text: 'Betten kosten auch leer Geld (Personal, Heizung, Kredit). Je gleichmäßiger sich Sommer und Winter füllen, desto wirtschaftlicher arbeitet ein Hotel.' },
|
||
],
|
||
access: [
|
||
{ term: 'Erreichbarkeit', text: 'Erreichbarkeit ist ein zentraler Standortfaktor. Ohne gute Anreise kommen viele Gäste gar nicht erst an.' },
|
||
{ term: 'Nachhaltige Mobilität', text: 'Anreise mit dem Bus statt mit vielen Autos entlastet Straßen und Umwelt – ein Beitrag zu nachhaltigem Tourismus.' },
|
||
],
|
||
staffhouse: [
|
||
{ term: 'Saisonarbeit & Wohnraum', text: 'Tourismus braucht viele Arbeitskräfte, oft in Saisonarbeit. Ohne leistbaren Wohnraum finden die Betriebe kein Personal.' },
|
||
],
|
||
snow: [
|
||
{ term: 'Klimawandel-Anpassung', text: 'Beschneiung sichert die Saison, wenn die Winter wärmer werden – braucht aber viel Wasser und Energie.' },
|
||
{ term: 'Schneesaison wird kürzer', text: 'Messdaten: In den Alpen schmilzt der Schnee 5–9 Tage pro Jahrzehnt früher; seit 1970 ist die Schneesaison rund einen Monat kürzer (GeoSphere Austria, SLF Schweiz). Unterhalb von ca. 2.000 m trifft es Skigebiete am härtesten.' },
|
||
{ term: 'Zielkonflikt Nachhaltigkeit', text: 'Kunstschnee kostet Ressourcen. Nachhaltiger Tourismus fragt: Wie lange lohnt sich das noch?' },
|
||
],
|
||
badesee: [
|
||
{ term: 'Diversifizierung', text: 'Sommerangebote machen das Tal unabhängiger vom Schnee – mehrere Standbeine nennt man Diversifizierung. Echte Vorbilder: Am Wilden Kaiser (Tirol) kommen heute etwa gleich viele Gäste im Sommer wie im Winter.' },
|
||
{ term: 'Sommerloch', text: 'In Skiorten heißt die gästearme Zeit „Sommerloch". Lech am Arlberg z. B. hat 84 % seiner Übernachtungen im Winter – nur 16 % im Sommer (Statistik Austria).' },
|
||
],
|
||
sled: [
|
||
{ term: 'Ganzjahrestourismus', text: 'Attraktionen ohne Schnee verlängern die Saison. Serfaus-Fiss-Ladis hat seine Sommer-Übernachtungen in 10 Jahren fast verdoppelt (+95 %) – mit Familienangeboten wie Rodelbahnen und Erlebniswegen.' },
|
||
],
|
||
trail: [
|
||
{ term: 'Sanfter Tourismus', text: 'Wandern greift wenig in die Natur ein und braucht keinen Schnee – zukunftsfähig, wenn das Klima wärmer wird.' },
|
||
{ term: 'Nächtigung', text: 'Übernachtungen („Nächtigungen") sind die Maßeinheit der Tourismusstatistik. In ganz Österreich hat der Sommer den Winter dabei schon überholt: 83 zu 72 Millionen (2025).' },
|
||
],
|
||
rescue: [
|
||
{ term: 'Naturgefahren', text: 'Im Gebirge drohen Lawinen, Abstürze und Wetterstürze. Tourismusregionen brauchen Rettungsdienste, um Gäste zu schützen.' },
|
||
{ term: 'Standortfaktor Sicherheit', text: 'Ein gutes Rettungswesen macht eine Region attraktiver – Sicherheit ist ein weicher Standortfaktor.' },
|
||
],
|
||
bikepark: [
|
||
{ term: 'Sommernutzung von Winter-Infrastruktur', text: 'Bikeparks nutzen die Lifte im Sommer weiter – so verdienen die teuren Bahnen ganzjährig. Real machen Seilbahnen 15–25 % ihres Umsatzes im Sommer, Tendenz steigend.' },
|
||
{ term: 'Zielkonflikt', text: 'Trails bedeuten Eingriff in den Hang: Wer den Sommer ausbaut, muss den Naturwert im Blick behalten – wie beim Winterausbau auch.' },
|
||
],
|
||
ropes: [
|
||
{ term: 'Sanfter Tourismus', text: 'Ein Hochseilgarten nutzt den Wald, ohne ihn zu roden – Wertschöpfung mit kleinem Fußabdruck.' },
|
||
],
|
||
bikerental: [
|
||
{ term: 'Wertschöpfungskette', text: 'Verleih, Bahn, Trail, Einkehr: Ein Gast gibt an vielen Stationen Geld aus. Je mehr Glieder die Kette hat, desto mehr bleibt im Tal.' },
|
||
{ term: 'Komplementärangebot', text: 'Der Verleih verkauft kein eigenes Erlebnis – er macht andere Angebote zugänglicher. Solche Ergänzungen heißen Komplementärangebote.' },
|
||
],
|
||
platform: [
|
||
{ term: 'Ausflugstourismus', text: 'Ausflugsgäste bleiben nur Stunden, kommen aber ganzjährig und wetterunabhängiger. Die Jungfraubahn (CH) lebt zu ~80 % vom Ausflugs- statt vom Wintersportgeschäft.' },
|
||
{ term: 'Inszenierung der Landschaft', text: 'Plattformen, Hängebrücken, Skywalks machen Aussicht zum Produkt – die Landschaft selbst wird zur Attraktion.' },
|
||
],
|
||
playground: [
|
||
{ term: 'Zielgruppe Familien', text: 'Familien sind der Wachstumsmotor des Sommertourismus: Serfaus-Fiss-Ladis hat mit Familienangeboten seine Sommernächtigungen in 10 Jahren fast verdoppelt (+95 %).' },
|
||
],
|
||
};
|