From 9c99359d9c02f6053b9ee48e6d1b45f6b991ff36 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 22 Aug 2026 12:25:57 +0200 Subject: [PATCH] Farmer-Fix: Klima-Fallback laengengrad-bewusst + "Vernalisation" ersetzt - defaultZoneByLatitude: bei 32-38 Grad nicht mehr pauschal "mittelmeer" (das gab kontinentalem Innerasien wie Westchina faelschlich Mittelmeerklima -> "Mediterraner Reisanbau" in Xinjiang). Jetzt nur in echten Mittelmeer- Laengenfenstern (Mittelmeerbecken/Kalifornien/Chile/Kap/SW-Australien), sonst "wueste". lon wird jetzt an die Funktion uebergeben. - crops.json: Weizen-Fachbegriff "Vernalisation" durch "kuehle Winter, die der Winterweizen fuer die spaetere Kornbildung braucht" ersetzt (Thomas: gehoert nicht ins Lehrwerk). Co-Authored-By: Claude Opus 4.8 --- App/sims/farmer/assets/data/crops.json | 2 +- App/sims/farmer/engine.js | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/App/sims/farmer/assets/data/crops.json b/App/sims/farmer/assets/data/crops.json index 81b7821..7bc3d85 100644 --- a/App/sims/farmer/assets/data/crops.json +++ b/App/sims/farmer/assets/data/crops.json @@ -41,7 +41,7 @@ }, "narratives": { "S1": [ - "Klimatisch ein Glücksgriff: Sommer mild bei 18–22 °C, ausreichend Niederschlag (500–700 mm), kühle Winter zur Vernalisation. Die Halme stehen kniehoch, Ähren prall mit ~40 Körnern. Ertrag ~5–6 t/ha — europäischer Spitzenwert.", + "Klimatisch ein Glücksgriff: Sommer mild bei 18–22 °C, ausreichend Niederschlag (500–700 mm), kühle Winter, die der Winterweizen für die spätere Kornbildung braucht. Die Halme stehen kniehoch, Ähren prall mit ~40 Körnern. Ertrag ~5–6 t/ha — europäischer Spitzenwert.", "Goldgelbe Felder bis zum Horizont. Der Mähdrescher hat zu tun. Korn-Qualität top, mahlfähig zu Mehl Type 550. Volle Lieferung." ], "S2": [ diff --git a/App/sims/farmer/engine.js b/App/sims/farmer/engine.js index de092bd..593dfe5 100644 --- a/App/sims/farmer/engine.js +++ b/App/sims/farmer/engine.js @@ -137,12 +137,21 @@ window.FarmerEngine = (function () { return null; } - function defaultZoneByLatitude(lat) { + function defaultZoneByLatitude(lat, lon) { const a = Math.abs(lat); if (a < 15) return 'tropisch_feucht'; if (a < 23) return 'tropisch_trocken'; if (a < 32) return 'subtropisch_feucht'; - if (a < 38) return 'mittelmeer'; + if (a < 38) { + // Mittelmeerklima gibt es NUR an bestimmten West-/Küstenlagen — nicht im + // kontinentalen Inneren (z. B. Westchina!). Ohne passendes Klima-Polygon + // daher nur in den echten Mittelmeer-Längenfenstern „mittelmeer", sonst + // trockenes Binnenland → „wueste". + const L = (lon == null) ? 0 : lon; + const med = (lat > 0 && ((L >= -10 && L <= 42) || (L >= -123 && L <= -116))) // Mittelmeerbecken · Kalifornien + || (lat < 0 && ((L >= -74 && L <= -70) || (L >= 17 && L <= 25) || (L >= 115 && L <= 120))); // Zentralchile · Kapregion · SW-Australien + return med ? 'mittelmeer' : 'wueste'; + } if (a < 50) return 'gemaessigt_feucht'; if (a < 60) return 'kontinental'; if (a < 68) return 'boreal'; @@ -274,7 +283,7 @@ window.FarmerEngine = (function () { zoneId = 'wasser'; isWater = true; } else { const zone = getZoneAt(latlng); - zoneId = zone ? zone.properties.id : defaultZoneByLatitude(latlng.lat); + zoneId = zone ? zone.properties.id : defaultZoneByLatitude(latlng.lat, lon); isWater = false; } const field = {