Farmer: Klick-Blocker gefixt (updateMoneyDisplay-Crash) + Konsolidierung
ROOT CAUSE: #money-display aus Header entfernt, aber updateMoneyDisplay()
las es beim Boot ungeschuetzt -> null.textContent wirft -> Boot bricht ab
-> map.on('click') wird nie gebunden -> Sim unbedienbar. Jetzt null-safe.
Konsolidierung (Thomas-Wunsch): Jahr/Markt/Erntejahr-starten in die
Anbau-Versuch-Box (farmer-side-status) statt separater Jahr-Leiste;
Jahr-Badge aus der Pille raus. Anbau-Box wieder hoeher (top 64).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+24
-14
@@ -127,11 +127,20 @@
|
||||
|
||||
/* ===== Side-Panel (rechts unter Year-Bar) — toggelt zwischen Picker und Report ===== */
|
||||
.farmer-side {
|
||||
position: absolute; right: 8px; top: 112px; z-index: 1000;
|
||||
max-height: calc(100dvh - 92px - env(safe-area-inset-bottom));
|
||||
position: absolute; right: 8px; top: 64px; z-index: 1000;
|
||||
max-height: calc(100dvh - 80px - env(safe-area-inset-bottom));
|
||||
overflow-y: auto;
|
||||
width: 240px;
|
||||
}
|
||||
.farmer-side-status {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border-radius: 8px; padding: 8px;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
|
||||
display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.fs-year { color: #8b5a2b; font-weight: 800; font-size: 14px; white-space: nowrap; }
|
||||
.farmer-side-status .farmer-harvest-btn { flex: 1 0 100%; }
|
||||
|
||||
/* Picker */
|
||||
.farmer-picker {
|
||||
@@ -491,7 +500,6 @@
|
||||
|
||||
<div class="ggs-topbar ggs-header" data-ggs-sim="farmer" data-ggs-no-glossar data-ggs-home="/schueler" data-ggs-music="default">
|
||||
<h1 class="ggs-header-module">Landwirtschaft</h1>
|
||||
<span class="ggs-header-badge">Jahr <span id="year-num">1</span></span>
|
||||
<div class="ggs-header-spacer"></div>
|
||||
<div class="ggs-header-actions">
|
||||
<a href="/schueler" title="Zurück zur Schülerseite">🏠</a>
|
||||
@@ -501,14 +509,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="farmer-year-bar">
|
||||
<span class="farmer-market" id="market-display" title="Markt-Auftrag dieses Jahres — alle Lieferungen gehen hierher">
|
||||
<span class="farmer-market-label">Markt</span>
|
||||
<span id="market-text">—</span>
|
||||
</span>
|
||||
<button class="farmer-harvest-btn" id="harvest-btn" disabled>Erntejahr starten</button>
|
||||
</div>
|
||||
|
||||
<div class="farmer-kpi" id="kpi-panel">
|
||||
<div class="farmer-kpi-title">📊 Bilanz im Verlauf</div>
|
||||
<div class="farmer-kpi-row">
|
||||
@@ -533,6 +533,14 @@
|
||||
</div>
|
||||
|
||||
<div class="farmer-side">
|
||||
<div class="farmer-side-status">
|
||||
<span class="fs-year">Jahr <span id="year-num">1</span></span>
|
||||
<span class="farmer-market" id="market-display" title="Markt-Auftrag dieses Jahres — alle Lieferungen gehen hierher">
|
||||
<span class="farmer-market-label">Markt</span>
|
||||
<span id="market-text">—</span>
|
||||
</span>
|
||||
<button class="farmer-harvest-btn" id="harvest-btn" disabled>Erntejahr starten</button>
|
||||
</div>
|
||||
<div class="farmer-picker" id="picker">
|
||||
<div class="farmer-picker-title" id="picker-title">Anbau-Versuch</div>
|
||||
<button class="farmer-undo-btn" id="undo-btn" disabled onclick="undoLastPlant()">↶ Letzte Pflanzung zurück</button>
|
||||
@@ -1742,10 +1750,12 @@ function updateMarketDisplay() {
|
||||
}
|
||||
|
||||
function updateMoneyDisplay() {
|
||||
const el = document.getElementById('money-display');
|
||||
el.textContent = game.money.toLocaleString('de-DE') + ' €';
|
||||
const isNeg = game.money < 0;
|
||||
el.classList.toggle('negative', isNeg);
|
||||
const el = document.getElementById('money-display'); // optional (steht jetzt in der KPI-Sidebar)
|
||||
if (el) {
|
||||
el.textContent = game.money.toLocaleString('de-DE') + ' €';
|
||||
el.classList.toggle('negative', isNeg);
|
||||
}
|
||||
if (isNeg && !_prevMoneyNeg) playSound('negative_balance');
|
||||
_prevMoneyNeg = isNeg;
|
||||
updateKpi(); // KPIs sind an Money-Update gekoppelt — bei jeder Bilanz-Änderung neu rendern
|
||||
|
||||
Reference in New Issue
Block a user