This commit is contained in:
cay 2026-04-12 11:55:34 +01:00
parent 65b0d29595
commit 74ad10c95e

View File

@ -572,12 +572,9 @@
updateTimerUI(turnSecsLeft, activeName);
if (turnSecsLeft <= 0) {
clearInterval(turnTimerInt);
// Nur der aktive Spieler sendet end_turn
// Nur der aktive Spieler beendet den Zug
if (isMyTurn) {
tickHandCooldowns();
drawNextCard();
setTurnState(false);
socket.emit("end_turn", { matchId, slot: mySlot });
endMyTurn();
}
}
}, 1000);
@ -623,28 +620,19 @@
const btn = document.getElementById("end-turn-btn");
if (!btn) return;
// Alle Handkarten sofort neu rendern damit Draggable + Badge korrekt sind
handCardIds.forEach((id) => renderHandSlot(id));
if (myTurn) {
btn.disabled = false;
btn.textContent = "Zug beenden";
btn.style.opacity = "1";
document.getElementById("turn-indicator")?.remove();
// Draggable für bereite Karten aktivieren
setTimeout(() => handCardIds.forEach((id) => renderHandSlot(id)), 50);
// Timer für beide Spieler sichtbar starten
startTurnTimer(activeName || "Du");
} else {
btn.disabled = true;
btn.style.opacity = "0.4";
// Draggable sofort deaktivieren
handCardIds.forEach((id) => {
const s = document.getElementById(id);
if (s) {
s.draggable = false;
delete s.dataset.cardSlotId;
}
});
showTurnIndicator(activeName);
// Timer für Gegner-Countdown auch anzeigen
startTurnTimer(activeName || "Gegner");
}
}
@ -676,15 +664,20 @@
}
/* ── Zug beenden: per Button oder Timer-Ablauf ── */
document.getElementById("end-turn-btn")?.addEventListener("click", () => {
function endMyTurn() {
if (!isMyTurn) return;
clearInterval(turnTimerInt);
stopTurnTimer();
tickHandCooldowns();
drawNextCard();
// ERST isMyTurn=false setzen, DANN Karten updaten
// so werden die neuen/aktualisierten Karten gleich korrekt (ohne Badge/Draggable) gerendert
setTurnState(false);
tickHandCooldowns(); // CDs runtercountent und Slots neu rendern (isMyTurn ist jetzt false)
drawNextCard(); // neue Karte ziehen und Slot rendern (isMyTurn ist jetzt false)
socket.emit("end_turn", { matchId, slot: mySlot });
// Server antwortet mit turn_change → dann wird setTurnState erneut aufgerufen
}
document.getElementById("end-turn-btn")?.addEventListener("click", () => {
endMyTurn();
});
/* ── Hilfsfunktion: Karte mit Stats in einen Slot rendern ── */
function renderCardInSlot(slot, card) {