Tourismustal: Sprite-Editor, Bikepark-Umbau, Animationen, Ambiente, Baumenue-Layout

- Justier-Editor (editor.html): jedes Gebaeude in allen Stufen, 1x1 und
  Mega-2x2, Oeko an/aus - Sprite-Breite, Boden-Anker und Solarpanel-
  Position (dx/dy/s pro Sprite-Key) live auf echten Tiles tunen. Werte
  wirken sofort via localStorage-Override, Export-JSON zum Einbacken.
- Bikepark umgebaut aufs Rodelbahn-Prinzip: 1x1-Station, Flowtrail-
  Strecke 5 Felder talwaerts mit Schwuengen, Platz wird SCHON BEIM BAU
  geprueft und reserviert (tile.bikeTrail blockiert Bebauung), fahrende
  Raeder mit Kurvenneigung (mehr Biker je Ausbaustufe), Ziel-Bogen.
- Animationen: Spielplatz (Schaukel + Rutscher), Hochseilgarten
  (Zipline-Gleiter), Aussichtsplattform (Foto-Blitz), Fahrradverleih
  (drehendes Werkstatt-Rad), Gasthaus (Kamin-Dampf).
- Ambiente: Wolkenschatten ziehen uebers Tal; Schafe auf Almen und
  Kuehe auf Talwiesen (grasen, deterministische Herdenplaetze, nicht
  im Winter).
- Baumenue-Karten: oben Titel+Info links / Preis rechts, darunter
  zweispaltig Icon und Beschreibung.
- Solar-Position pro Gebaeudetyp justierbar (SOLAR_POS).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-11 23:32:55 +02:00
parent d195b085d9
commit cfdfa4bb28
7 changed files with 575 additions and 51 deletions
+12 -9
View File
@@ -173,24 +173,27 @@ html, body {
}
#buildmenu h2 { margin: 0 0 10px; font-size: 16px; }
.build-item {
display: flex;
gap: 10px;
align-items: center;
padding: 10px;
display: block;
padding: 9px 10px;
border-radius: 12px;
background: #fff;
margin-bottom: 8px;
border: 2px solid transparent;
cursor: pointer;
min-height: 56px;
}
.build-item.active { border-color: var(--orange); background: #fff7ee; }
.build-item.disabled { opacity: 0.45; }
.build-item .emoji { font-size: 26px; }
.build-item .info { flex: 1; }
.build-item .info b { display: block; font-size: 14px; }
.build-item .info small { color: var(--muted); font-size: 11.5px; line-height: 1.25; display: block; }
/* Zeile 1: Titel + links, Preis rechts */
.build-item .bi-head {
display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.build-item .bi-title { display: flex; align-items: center; gap: 2px; min-width: 0; }
.build-item .bi-title b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.build-item .cost { font-size: 13px; font-weight: 700; color: var(--green); white-space: nowrap; }
/* Zeile 2: zweispaltig Icon | Beschreibung */
.build-item .bi-body { display: flex; gap: 10px; align-items: flex-start; margin-top: 4px; }
.build-item .emoji { font-size: 24px; line-height: 1.1; flex-shrink: 0; }
.build-item .desc { color: var(--muted); font-size: 11.5px; line-height: 1.3; }
/* Graphs (bottom) */
#graphs {