Tourismustal: Audio-Modus fuer Meldungen + eigene Mega-Motive
- Umschalter Topbar (Lese-/Audio-Modus, persistiert): Im Audio-Modus laeuft das Spiel weiter, Meldungen werden per Browser-TTS (deutsche Stimme) vorgelesen und erscheinen als antippbare Info-Zeile oben; Klick oder 🔔-Log oeffnet die volle Karte. Entscheidungen (A/B) und wichtige Karten (Sieg, Zwischenbilanz, Bank) bleiben immer modal. - Megabauwerke: 9 eigene Sprites (mehr Elemente statt vergroesserter Fenster/Tueren - glaubwuerdige Proportionen), zentriert, ~80 % der bisherigen Darstellungsgroesse; Fallback normales Motiv x1,4. Rodelbahn aus der Merge-Liste (dynamische Vektor-Bahn). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,16 @@ const SPRITE_DEFS = {
|
||||
rescue: { w: 60, bottom: 9 },
|
||||
snow: { w: 44, bottom: 7 },
|
||||
bikepark: { w: 108, bottom: 14 }, // 2×2-Areal, zentriert gezeichnet
|
||||
// Megabauwerke: eigene Motive (mehr Elemente statt vergrößerter Fenster)
|
||||
mega_restaurant: { w: 104, bottom: 12 },
|
||||
mega_hotel: { w: 106, bottom: 12 },
|
||||
mega_staffhouse: { w: 102, bottom: 12 },
|
||||
mega_snow: { w: 96, bottom: 11 },
|
||||
mega_badesee: { w: 110, bottom: 14 },
|
||||
mega_ropes: { w: 106, bottom: 11 },
|
||||
mega_playground: { w: 104, bottom: 12 },
|
||||
mega_bikerental: { w: 98, bottom: 12 },
|
||||
mega_trail: { w: 100, bottom: 11 },
|
||||
ropes: { w: 58, bottom: 8 },
|
||||
bikerental: { w: 50, bottom: 8 },
|
||||
platform: { w: 62, bottom: 9 },
|
||||
@@ -1679,11 +1689,15 @@ export class IsoRenderer {
|
||||
x = ctr.x; y = ctr.y;
|
||||
}
|
||||
// KI-Sprites für Gebäude (Bahnen & Rodelbahn bleiben Vektor: dynamisch)
|
||||
const spriteName = type === 'hotel' && level >= 2 ? 'hotel2' : type;
|
||||
let spriteName = type === 'hotel' && level >= 2 ? 'hotel2' : type;
|
||||
let spriteScale = type === 'hotel'
|
||||
? (level >= 3 ? 1.15 : 1)
|
||||
: [1, 1.15, 1.3][Math.min(2, level - 1)];
|
||||
if (tile.mega) spriteScale *= 1.75; // Megabauwerk füllt sein 2×2-Areal
|
||||
if (tile.mega) {
|
||||
// Eigenes Mega-Motiv (glaubwürdige Proportionen); Fallback: normal ×1,4
|
||||
if (this.sprites[`mega_${type}`]) { spriteName = `mega_${type}`; spriteScale = 1; }
|
||||
else spriteScale *= 1.4;
|
||||
}
|
||||
if (type !== 'lift' && type !== 'gondola' && type !== 'sled'
|
||||
&& this._sprite(spriteName, x, y, spriteScale)) {
|
||||
this._badge(x + 18, y - 34, level);
|
||||
|
||||
Reference in New Issue
Block a user