wtrzj4t
This commit is contained in:
parent
65b0d29595
commit
74ad10c95e
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user