Textsystem: Bis-Strich mit Leerzeichen (Zahl – Zahl) per Agent-Sweep

562 Ersetzungen in 50 Dateien: Halbgeviertstrich zwischen zwei Ziffern (=
"bis"-Bereich) bekommt Leerzeichen davor/danach (3–4 -> 3 – 4). Regex
/([0-9])\s*–\s*(?=[0-9])/ auf Rohtext (format-erhaltend, CRLF/Einrueckung
unveraendert), Bindestriche in Woertern und Minuszeichen unangetastet, alle
JSON weiter gueltig. Energiemanager-Zeitbloecke sind Display-Labels (kein
Logik-Key) -> safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-22 12:38:19 +02:00
parent 9c99359d9c
commit fecd8bb9c9
139 changed files with 1827 additions and 411 deletions
+6 -6
View File
@@ -1885,14 +1885,14 @@ const KD_FUNDSACHEN = [
{ id:'adapter', emoji:'🔌', name:'Reiseadapter', info:
'Steckdosen sind weltweit unterschiedlich geformt — Typ C in der EU, Typ G in Großbritannien, Typ A/B in den USA, Typ I in Australien. Ein '+_g('reiseadapter','Reiseadapter')+' macht aus deinem Stecker einen passenden für die fremde Steckdose. '+
'<br><br>Achtung: Ein Adapter ändert nur die Form — nicht die '+_g('netzspannung','Spannung')+'. In den USA und Japan kommen nur 110 Volt aus der Steckdose, bei uns 230 Volt. '+
'<br><br>Moderne Lade-Geräte (Handy, Laptop) sind meist universell („INPUT: 100240V"). Alte Föhne oder Rasierer brauchen zusätzlich einen Spannungs-Wandler — sonst brennen sie durch.' },
'<br><br>Moderne Lade-Geräte (Handy, Laptop) sind meist universell („INPUT: 100 240V"). Alte Föhne oder Rasierer brauchen zusätzlich einen Spannungs-Wandler — sonst brennen sie durch.' },
{ id:'powerbank',emoji:'🔋', name:'Powerbank', info:
'Powerbanks und Ersatz-Akkus müssen ins '+_g('akku-handgepaeck','Handgepäck')+' — nie in den aufgegebenen Koffer. Im Frachtraum eines Flugzeugs wäre ein Akkubrand zu spät zu bemerken; im Handgepäck kann das Personal sofort eingreifen. '+
'<br><br>Regel weltweit (ICAO): Bis 100 Wattstunden problemlos erlaubt, 100160 Wh nur mit Erlaubnis der Fluglinie, über 160 Wh komplett verboten. Eine typische 10.000-mAh-Powerbank hat 37 Wh — also kein Problem. '+
'<br><br>Regel weltweit (ICAO): Bis 100 Wattstunden problemlos erlaubt, 100 160 Wh nur mit Erlaubnis der Fluglinie, über 160 Wh komplett verboten. Eine typische 10.000-mAh-Powerbank hat 37 Wh — also kein Problem. '+
'<br><br>2010 sind drei UPS-Frachter wegen brennender Lithium-Akkus abgestürzt — daher die strengen Regeln. Lithium-Akkus in seltenen Fällen Feuer fangen.' },
{ id:'sonnenbr', emoji:'🕶️', name:'Sonnenbrille', info:
'Je näher am '+_g('aequator','Äquator')+' und je höher die Lage, desto stärker die '+_g('uv-strahlung','UV-Strahlung')+'. In Schnee- und Wüstenregionen reflektieren bis zu 80 Prozent der Strahlen — Sonnenbrille mit UV-400-Filter ist Pflicht. '+
'<br><br>Die WHO veröffentlicht den UV-Index als Skala 111+. In Australien werden im Sommer regelmäßig Werte von 1314 gemessen — die höchsten weltweit. '+
'<br><br>Die WHO veröffentlicht den UV-Index als Skala 1 11+. In Australien werden im Sommer regelmäßig Werte von 13 14 gemessen — die höchsten weltweit. '+
'<br><br>UV-Strahlung verursacht Sonnenbrand und auf Dauer auch Hautkrebs. Schutz vor allem mittags zwischen 11 und 15 Uhr ist wichtig — auch bei bewölktem Wetter.' },
{ id:'kamera', emoji:'📷', name:'Reisekamera', info:
'In manchen Ländern ist das '+_g('fotografie-verbot','Fotografieren')+' von Flughäfen, Grenzen, Militär oder Regierungsgebäuden streng verboten. Was bei uns selbstverständlich ist, kann woanders eine Geldstrafe oder Festnahme bedeuten. '+
@@ -1916,7 +1916,7 @@ const KD_FUNDSACHEN = [
'<br><br>Sicher: Flaschenwasser aus versiegelter Plastikflasche, abgekochtes Wasser (3 Min sprudelnd), Filter mit Aktivkohle. Auch Eiswürfel im Drink und ungeschältes Obst können belastet sein.' },
{ id:'geld', emoji:'💶', name:'Reisegeld', info:
'Viele Länder haben eine eigene Währung. Der '+_g('wechselkurs','Wechselkurs')+' sagt, wie viel deine Euro dort wert sind — und er ändert sich täglich. '+
'<br><br>Am Flughafen tauschen ist meistens teurer (schlechter Kurs + Gebühren). Mit Bankkarte zahlen ist oft günstiger — viele Banken nehmen aber 12 % Auslandsgebühr. '+
'<br><br>Am Flughafen tauschen ist meistens teurer (schlechter Kurs + Gebühren). Mit Bankkarte zahlen ist oft günstiger — viele Banken nehmen aber 1 2 % Auslandsgebühr. '+
'<br><br>An Bankomaten im Ausland: immer in Lokalwährung wählen, nie in Euro abrechnen lassen („Dynamic Currency Conversion"). Die Konvertierung der lokalen Bank ist eigentlich immer schlechter.' },
{ id:'karte_kred',emoji:'💳',name:'Bankkarte', info:
'Mit Karte zahlst du oft auch im Ausland. Beim Abheben in fremder '+_g('waehrung','Währung')+' können Gebühren anfallen — vorher den '+_g('wechselkurs','Wechselkurs')+' und die Auslandskonditionen prüfen lohnt sich. '+
@@ -1944,7 +1944,7 @@ const KD_FUNDSACHEN = [
'<br><br>Tipp: Hut mit Sturmband oder Klemme verwenden — bei Wind am Strand oder im Wüstenwind verlierst du ihn sonst leicht.' },
{ id:'jacke', emoji:'🧥', name:'Reisejacke', info:
'Auf der '+_g('suedhalbkugel-jahreszeiten','Südhalbkugel')+' sind die Jahreszeiten umgekehrt: Ist bei uns Sommer, ist es in Australien, Argentinien oder Südafrika Winter. Kleidung also ans Reiseziel anpassen. '+
'<br><br>Sydney im Juli: 815 °C, regnerisch. Buenos Aires im August: ähnlich. Kapstadt im Juni/Juli: kalt und nass. Wer ohne Jacke reist, friert sich schon im Flugzeug-Hotel an. '+
'<br><br>Sydney im Juli: 8 15 °C, regnerisch. Buenos Aires im August: ähnlich. Kapstadt im Juni/Juli: kalt und nass. Wer ohne Jacke reist, friert sich schon im Flugzeug-Hotel an. '+
'<br><br>Tipp: Multi-Layer-Prinzip — mehrere dünne Schichten statt einer dicken. Anpassbar an wechselndes Wetter, leichter im Gepäck.' },
{ id:'schirm', emoji:'☂️', name:'Reiseschirm', info:
'In der tropischen Regenzeit oder im '+_g('monsun','Monsun')+' fällt sehr viel Regen in sehr kurzer Zeit. Ein Schirm gehört dann ins Handgepäck. '+
@@ -1980,7 +1980,7 @@ const KD_FUNDSACHEN = [
'<br><br>Tipp: Kontaktlinsen-Träger:innen sollten neben Linsen und Reinigungslösung immer auch eine Brille mitnehmen. Im Flugzeug ist die Luft so trocken, dass Linsen oft nicht vertragen werden.' },
{ id:'fotoapp', emoji:'🧳', name:'Kulturbeutel', info:
'Im Kulturbeutel sammeln sich viele kleine Flüssigkeiten und Hygiene-Artikel: Zahnpasta, Shampoo, Duschgel, Sonnencreme. Alles über 100 ml besser in den aufgegebenen Koffer legen ('+_g('handgepaeck-fluessigkeit','100-ml-Regel')+'). '+
'<br><br>Universal-Reisegröße: 50100 ml. Viele Hotels stellen Shampoo und Duschgel — du sparst Platz im Koffer. '+
'<br><br>Universal-Reisegröße: 50 100 ml. Viele Hotels stellen Shampoo und Duschgel — du sparst Platz im Koffer. '+
'<br><br>Tipp: Kleine Umfüll-Flaschen kaufen (gibts in jeder Drogerie). Deine eigenen Produkte umfüllen statt teure Reisegrößen kaufen. Kulturbeutel mit Haken zum Aufhängen sind in jedem Hotel praktisch.' },
{ id:'stift', emoji:'🖊️', name:'Kugelschreiber', info:
'Praktisch fürs Ausfüllen von Einreise- und '+_g('zoll-einfuhr','Zollkarten')+', die man in vielen Ländern noch von Hand ausfüllt. Manche Länder verlangen ein Kugelschreiber-Original, kein Kopierer. '+
+10 -10
View File
@@ -114,7 +114,7 @@ const PA = {
this.timer = setTimeout(() => {
if (S && !Sound.muted) Sound.playPA(this.POOL[this.idx++ % this.POOL.length], 0.32);
next();
}, 90000 + Math.random() * 120000); // alle 1,53,5 min
}, 90000 + Math.random() * 120000); // alle 1,5 3,5 min
};
next();
},
@@ -816,7 +816,7 @@ const World = {
const ox = -this.player.x * 0.0045 + t * 0.0006;
skies.forEach(s => { s.tex.offset.x = ox; });
}});
// Überflug-Animation: alle 1545 s quert eine Maschine ein Dachsegment
// Überflug-Animation: alle 15 45 s quert eine Maschine ein Dachsegment
let flyIdx = -1, flyX = 0, flyWait = 8;
this.animated.push({ update: (dt) => {
if (flyIdx < 0) {
@@ -873,7 +873,7 @@ const World = {
panoTex = new THREE.TextureLoader().load(BASE + 'assets/img/panorama-nacht.webp');
panoTex.colorSpace = THREE.SRGBColorSpace;
panoTex.wrapS = THREE.MirroredRepeatWrapping;
// Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 17,5 m) sichtbar sind
// Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 1 7,5 m) sichtbar sind
panoTex.repeat.set(2, 0.7); panoTex.offset.y = 0.15;
}
const pano = new THREE.Mesh(new THREE.PlaneGeometry(240, 16),
@@ -1012,7 +1012,7 @@ const World = {
} catch (_) {}
},
/* ============ Flughafen-Objekte (Sketchfab-Props, je 1080 KB) ============
/* ============ Flughafen-Objekte (Sketchfab-Props, je 10 80 KB) ============
* Ersetzen die wichtigsten prozeduralen Möbel; Positionen handgesetzt.
* mode: 'h' = auf Höhe normieren, 'long' = auf längste Seite normieren */
PROP_DEFS: [
@@ -1638,7 +1638,7 @@ const World = {
this.addBox(x, 2.6, -25, 1.6, 1.0, 0.1, 0x0e1d2a, { emissive: 0x2a6a8a, emissiveIntensity: 0.8 });
}
}
this.sign('Check-in 110', -35, 4.2, -29.4, 14, 1.8, 0, true);
this.sign('Check-in 1 10', -35, 4.2, -29.4, 14, 1.8, 0, true);
// Gepäckkarusselle (stehen nach Dienstschluss still): flaches Band
// mit Metall-Seitenwänden und Mittelinsel statt des alten „Donuts“
@@ -1832,9 +1832,9 @@ const World = {
// gap 0.27 rückt die Schilder vor/hinter die Säule (sonst verdeckt sie die Mitte)
lines.forEach((txt, i) => this.sign(txt, x, 2.45 - i * 0.55, z, 2.6, 0.48, rotY, true, 0.27));
};
mk(4, 14, 0, ['→ Abflug · Gates 1113', '← Gepäckausgabe']);
mk(-26, 2, Math.PI / 2, ['→ Check-in 110', '← Eingangshalle']);
mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 1113']);
mk(4, 14, 0, ['→ Abflug · Gates 11 13', '← Gepäckausgabe']);
mk(-26, 2, Math.PI / 2, ['→ Check-in 1 10', '← Eingangshalle']);
mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 11 13']);
mk(-48, 4, Math.PI / 2, ['→ Gepäcksortierung', '← Gepäckausgabe']);
},
@@ -2939,10 +2939,10 @@ const World = {
this.addInfo(-64, -6, '⚙️', 'Gepäcksortierung',
'Hinter den Kulissen laufen kilometerlange Förderanlagen. Scanner lesen die Barcodes der Anhänger und Weichen lenken jeden Koffer zum richtigen Flug — oft in unter 10 Minuten. Große Flughäfen sortieren so über 100.000 Gepäckstücke pro Tag.');
this.addInfo(46, -2, '🛫', 'Gates & Boarding',
'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 3045 Minuten vor dem Abflug.');
'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 30 45 Minuten vor dem Abflug.');
this.addInfo(49, 24, '🗃️', 'Fundbüro',
'Was im Flughafen liegen bleibt — vom Schal bis zum Laptop — landet hier. Fundstücke werden katalogisiert und mehrere Monate aufbewahrt. Gepäck von Flügen läuft getrennt über die Gepäckermittlung: genau dort arbeitest du heute.',
'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000100.000 Gegenstände liegen. Nur etwa 1520 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.',
'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000 100.000 Gegenstände liegen. Nur etwa 15 20 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.',
'US-Transportation Security Administration (TSA)',
'https://www.tsa.gov/contact/lost-and-found');
this.addInfo(0, 0, '🖥️', 'Abflugtafel lesen',