Weltküche: DACH/EU-Priorität wiederhergestellt + Beschreibungen
Die Umstellung auf echte Menge hatte die EU-Priorität eingeebnet. Jetzt Stufen-
folge: EU-Nachbar (Hauptweg zu UNSEREM Markt, kurzer Weg) VOR fernem Welt-
Lieferant (nur wo es hier nicht wächst, z.B. Pfeffer→Vietnam+Brasilien) VOR
"Big Player, kommt kaum an" (world-far). Innerhalb einer Stufe zählt die Menge.
- MARKET_TIER {eu:0, global:1, world-far:2}
- explainChoice: EU-Antwort erklärt "aus EU-Binnenmarkt, kurzer Weg, kein Zoll";
world-far-Fehlklick erklärt "weltweit groß, aber kaum im EU-Handel"
- "in dieser Runde"-Texte entfernt (Auswahl ist jetzt deterministisch)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1033,12 +1033,13 @@ function buildTaskFor(ingKey) {
|
||||
const sourcePool = euRelevant.length >= 2 ? euRelevant : allProducers;
|
||||
const climatePossible = (ing.climate_possible || []).filter(c => C[c]);
|
||||
|
||||
// Die 2 tatsächlichen HAUPTLIEFERANTEN — nicht mehr gewürfelt, sondern nach
|
||||
// echter Menge, damit die Antwort logisch nachvollziehbar ist (schwarzer
|
||||
// Pfeffer → Vietnam + Brasilien, nicht Sri Lanka + Kambodscha). Wer unseren
|
||||
// Markt beliefert (eu/global), kommt vor „Big Player, der bei uns selten
|
||||
// ankommt" (world-far); innerhalb einer Stufe zählt die Tonnage.
|
||||
const MARKET_TIER = { 'eu': 0, 'global': 0, 'world-far': 1 };
|
||||
// Die tatsächlichen HAUPTLIEFERANTEN für UNSEREN Markt — nicht gewürfelt.
|
||||
// Stufenfolge: EU-Nachbar (kurzer Weg, kein Zoll → für uns der Hauptweg) VOR
|
||||
// fernem Welt-Lieferant (nur wo es hier nicht wächst, z. B. Pfeffer) VOR
|
||||
// „Big Player, der bei uns kaum ankommt". Innerhalb einer Stufe zählt die
|
||||
// Menge. So bleibt DACH/EU priorisiert; Pfeffer (kein EU-Produzent) → die
|
||||
// zwei größten Welt-Lieferanten Vietnam + Brasilien.
|
||||
const MARKET_TIER = { 'eu': 0, 'global': 1, 'world-far': 2 };
|
||||
const rankedPool = [...sourcePool].sort((a, b) =>
|
||||
((MARKET_TIER[a.market] ?? 2) - (MARKET_TIER[b.market] ?? 2)) ||
|
||||
(((ing.producers[b.key] || {}).t || 0) - ((ing.producers[a.key] || {}).t || 0)));
|
||||
@@ -1298,13 +1299,19 @@ function explainChoice(ingKey, key, isCorrect){
|
||||
if (info && info.market === 'off-season'){
|
||||
return {cls:'ok', badge:'✓', text:`<b>Off-Season-Lieferant</b> für unseren Winter (${amount}).`};
|
||||
}
|
||||
if (info && info.market === 'eu'){
|
||||
return {cls:'ok', badge:'✓', text:`<b>Hauptlieferant für uns</b>${amount?' (' + amount + ')':''} – aus dem EU-Binnenmarkt: kurzer Weg, kein Zoll. Deshalb kommt die Ware meist von hier, auch wenn anderswo mehr wächst.`};
|
||||
}
|
||||
return {cls:'ok', badge:'✓', text:`<b>Hauptlieferant für uns</b>${amount?' (' + amount + ')':''}.`};
|
||||
}
|
||||
// Falsch: weitere Klassifizierung
|
||||
if (info){
|
||||
const m = info.market || 'global';
|
||||
if (m === 'world-far'){
|
||||
return {cls:'mid', badge:'🌐', text:`Weltweit großer Produzent (${amount}) – im EU-Handel aber kaum vertreten, du bekommst die Ware fast nie von dort.`};
|
||||
}
|
||||
if (m === 'eu' || m === 'global'){
|
||||
return {cls:'mid', badge:'⚠️', text:`Auch echter Lieferant (${amount}) — in dieser Runde aber nicht der Hauptweg zu uns.`};
|
||||
return {cls:'mid', badge:'⚠️', text:`Auch ein echter Lieferant (${amount}) – aber nicht der Hauptweg zu unserem Markt.`};
|
||||
}
|
||||
if (m === 'local'){
|
||||
return {cls:'mid', badge:'🏠', text:`Produziert ${amount}${animal?' — Tiere werden aber überwiegend für den lokalen Markt gehalten':' — fast alles bleibt im eigenen Land'}.`};
|
||||
@@ -1316,7 +1323,7 @@ function explainChoice(ingKey, key, isCorrect){
|
||||
return {cls:'mid', badge:'🌐', text:`Geht in regionale Märkte Asiens — landet praktisch nicht in unseren Supermärkten.`};
|
||||
}
|
||||
if (m === 'off-season'){
|
||||
return {cls:'mid', badge:'🌍', text:`Süd-Hemisphäre — liefert nur im EU-Winter, in dieser Runde aber nicht der Hauptweg.`};
|
||||
return {cls:'mid', badge:'🌍', text:`Süd-Hemisphäre — liefert nur im EU-Winter, sonst nicht der Hauptweg zu uns.`};
|
||||
}
|
||||
}
|
||||
if (ing && ing.climate_possible && ing.climate_possible.includes(key)){
|
||||
@@ -1448,7 +1455,7 @@ function showWrong(key, kind, ingKey){
|
||||
card.className="result-card mid show";
|
||||
const info = ing.producers[key];
|
||||
const amount = info && info.t ? fmtTonnes(info.t) : 'verbreitet';
|
||||
head = `⚠️ ${c.f} ${c.n} ist auch ein echter EU-Lieferant (${amount}) — aber in dieser Runde sind zwei andere Länder gefragt.`;
|
||||
head = `⚠️ ${c.f} ${c.n} ist auch ein echter Lieferant (${amount}) — aber nicht der Hauptweg zu unserem Markt.`;
|
||||
note = c.info + '<br><br>🔎 Such weiter — du hast eines der gesuchten Herkunftsländer noch nicht entdeckt.';
|
||||
} else if (kind === 'producer-local') {
|
||||
// Produziert, aber bleibt im Inland / regionaler Markt
|
||||
|
||||
Reference in New Issue
Block a user