wtrzj4t
This commit is contained in:
parent
65b0d29595
commit
74ad10c95e
@ -572,12 +572,9 @@
|
|||||||
updateTimerUI(turnSecsLeft, activeName);
|
updateTimerUI(turnSecsLeft, activeName);
|
||||||
if (turnSecsLeft <= 0) {
|
if (turnSecsLeft <= 0) {
|
||||||
clearInterval(turnTimerInt);
|
clearInterval(turnTimerInt);
|
||||||
// Nur der aktive Spieler sendet end_turn
|
// Nur der aktive Spieler beendet den Zug
|
||||||
if (isMyTurn) {
|
if (isMyTurn) {
|
||||||
tickHandCooldowns();
|
endMyTurn();
|
||||||
drawNextCard();
|
|
||||||
setTurnState(false);
|
|
||||||
socket.emit("end_turn", { matchId, slot: mySlot });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
@ -623,28 +620,19 @@
|
|||||||
const btn = document.getElementById("end-turn-btn");
|
const btn = document.getElementById("end-turn-btn");
|
||||||
if (!btn) return;
|
if (!btn) return;
|
||||||
|
|
||||||
|
// Alle Handkarten sofort neu rendern damit Draggable + Badge korrekt sind
|
||||||
|
handCardIds.forEach((id) => renderHandSlot(id));
|
||||||
|
|
||||||
if (myTurn) {
|
if (myTurn) {
|
||||||
btn.disabled = false;
|
btn.disabled = false;
|
||||||
btn.textContent = "Zug beenden";
|
btn.textContent = "Zug beenden";
|
||||||
btn.style.opacity = "1";
|
btn.style.opacity = "1";
|
||||||
document.getElementById("turn-indicator")?.remove();
|
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");
|
startTurnTimer(activeName || "Du");
|
||||||
} else {
|
} else {
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
btn.style.opacity = "0.4";
|
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);
|
showTurnIndicator(activeName);
|
||||||
// Timer für Gegner-Countdown auch anzeigen
|
|
||||||
startTurnTimer(activeName || "Gegner");
|
startTurnTimer(activeName || "Gegner");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -676,15 +664,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ── Zug beenden: per Button oder Timer-Ablauf ── */
|
/* ── Zug beenden: per Button oder Timer-Ablauf ── */
|
||||||
document.getElementById("end-turn-btn")?.addEventListener("click", () => {
|
function endMyTurn() {
|
||||||
if (!isMyTurn) return;
|
if (!isMyTurn) return;
|
||||||
clearInterval(turnTimerInt);
|
clearInterval(turnTimerInt);
|
||||||
stopTurnTimer();
|
stopTurnTimer();
|
||||||
tickHandCooldowns();
|
// ERST isMyTurn=false setzen, DANN Karten updaten
|
||||||
drawNextCard();
|
// so werden die neuen/aktualisierten Karten gleich korrekt (ohne Badge/Draggable) gerendert
|
||||||
setTurnState(false);
|
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 });
|
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 ── */
|
/* ── Hilfsfunktion: Karte mit Stats in einen Slot rendern ── */
|
||||||
function renderCardInSlot(slot, card) {
|
function renderCardInSlot(slot, card) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user