Tourismustal: Soziale Verantwortung (Personalhaus) + Editor-Fixes

- Personalhaus-Ausbau = Wohnqualitaet: zufriedenes Personal, freundlicher
  Service, +2/+4/+6 Gaeste-Zufriedenheit je Stufe (nur bei Beschaeftigten).
  Report-Zeile, Wissensbaustein (reale Saisonkraft-Unterkuenfte),
  BUILD_INFO + Audio neu, spezieller Ausbau-Toast. Glossar-Begriff
  soziale-verantwortung mit Bild + Modul-Zuordnung (SQL).
- Editor-Bugfix: _sprite las w/bottom aus der beim Laden eingefrorenen
  Kopie - Justierungen wirkten nicht. Jetzt live aus SPRITE_DEFS.
- Export-Button klargestellt: exportiert ALLE justierten Gebaeude auf einmal.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-11 23:48:47 +02:00
parent 250532f9a8
commit 20974b8b3b
8 changed files with 57 additions and 9 deletions
+18 -1
View File
@@ -506,7 +506,12 @@ export function buildingReport(state, c, r) {
if (def.cap) lines.push(`Förderleistung: ${effVal(b, 'cap')} Gäste/Tag`);
if (def.beds) lines.push(`Betten: ${effVal(b, 'beds')}`);
if (def.access) lines.push(`Anreise: +${effVal(b, 'access')} Gäste/Tag`);
if (def.housing) lines.push(`Wohnraum: ${effVal(b, 'housing')} Angestellte`);
if (def.housing) {
lines.push(`Wohnraum: ${effVal(b, 'housing')} Angestellte`);
lines.push((b.level || 1) > 1
? `🤝 Wohnqualität Stufe ${['', 'I', 'II', 'III', 'IV'][b.level || 1]}: zufriedenes Personal, freundlicherer Service (+${((b.level - 1) * 2)} Zufriedenheit)`
: '🤝 Ausbau verbessert die Wohnqualität soziale Verantwortung zahlt sich in Zufriedenheit aus');
}
if (def.summerCap) lines.push(`Sommergäste: bis ${effVal(b, 'summerCap')}/Tag`);
if (def.spendBonus) lines.push(`Mehrumsatz: +${effVal(b, 'spendBonus')} €/Gast`);
if (def.snowPower) lines.push(`Beschneiung: +${effVal(b, 'snowPower').toFixed(1)} cm/Tag`);
@@ -826,6 +831,18 @@ export function simulateDay(state) {
let satTarget = 70;
if (count(state, 'restaurant') > 0) satTarget += 12;
satTarget += Math.min(8, sum(state, 'satBonus'));
// Soziale Verantwortung: gut ausgebaute Personalhäuser = bessere Wohn-
// qualität = zufriedenes Personal = freundlicherer Service. Wirkt nur,
// wenn überhaupt Personal beschäftigt ist. (Ø-Ausbaustufe → 0…+6)
const shLevels = state.buildings
.filter(b => b.type === 'staffhouse').map(b => b.level || 1);
if (shLevels.length && state.staffNeeded > 0) {
const avg = shLevels.reduce((a, v) => a + v, 0) / shLevels.length;
state.staffCare = Math.round((avg - 1) * 20) / 10; // Stufe II=+2 … IV=+6
satTarget += state.staffCare;
} else {
state.staffCare = 0;
}
if (crowding > 0.9) satTarget -= 20;
if (staffFactor < 1) satTarget -= 15;
if (winter) {