erha
This commit is contained in:
parent
e78bd19bad
commit
8ddc79f0c4
@ -592,19 +592,24 @@
|
||||
console.log("[Arena] arena_ready:", data);
|
||||
clearTimeout(readyFallbackTimer);
|
||||
document.getElementById("connecting-overlay")?.remove();
|
||||
document.getElementById("nameLeft").textContent = data.player1 || "Spieler 1";
|
||||
document.getElementById("nameRight").textContent = data.player2 || "Spieler 2";
|
||||
// Eigenen Namen nicht überschreiben – nur Gegner-Slot aktualisieren
|
||||
const oppNameFromServer = amIPlayer1
|
||||
? (data.player2 || "Gegner")
|
||||
: (data.player1 || "Gegner");
|
||||
const oppEl = document.getElementById(amIPlayer1 ? "nameRight" : "nameLeft");
|
||||
if (oppEl && oppNameFromServer !== "Spieler" && oppNameFromServer !== "Spieler 2" && oppNameFromServer !== "Spieler 1") {
|
||||
oppEl.textContent = oppNameFromServer;
|
||||
}
|
||||
const lockOverlay = document.getElementById("board-lock-overlay");
|
||||
if (lockOverlay) lockOverlay.style.display = "flex";
|
||||
});
|
||||
|
||||
/* ── Server: Zugwechsel ──────────────────────────────── */
|
||||
socket.on("turn_change", data => {
|
||||
const myActualSlot = amILeftPlayer === null
|
||||
? mySlot
|
||||
: (amILeftPlayer ? "player1" : "player2");
|
||||
const nowMyTurn = data.activeSlot === myActualSlot ||
|
||||
data.activeSlot === mySlot;
|
||||
// data.activeSlot ist immer "player1" oder "player2" (Server-Slot)
|
||||
// mySlot ist ebenfalls "player1" oder "player2" → direkt vergleichen
|
||||
const nowMyTurn = data.activeSlot === mySlot;
|
||||
console.log("[1v1] turn_change:", data.activeSlot, "| ich bin:", mySlot, "| meinZug:", nowMyTurn);
|
||||
setTurnState(nowMyTurn);
|
||||
});
|
||||
|
||||
@ -647,12 +652,17 @@
|
||||
}
|
||||
if (data.readyCount === 2) {
|
||||
// ── Zufällige Seitenzuweisung ──────────────────────
|
||||
// Deterministisch via matchId → beide Clients sehen dasselbe
|
||||
const seed = matchId.split("").reduce((a, c) => a + c.charCodeAt(0), 0);
|
||||
const flip = seed % 2 === 1; // true = Seiten tauschen
|
||||
const seed = matchId.split("").reduce((a, c) => a + c.charCodeAt(0), 0);
|
||||
const flip = seed % 2 === 1;
|
||||
|
||||
const p1Name = document.getElementById("nameLeft")?.textContent || "Spieler 1";
|
||||
const p2Name = document.getElementById("nameRight")?.textContent || "Spieler 2";
|
||||
// Eigenen Namen immer aus myIngameName, Gegner aus DOM
|
||||
const myName = myIngameName || "Spieler";
|
||||
const oppEl = document.getElementById(amIPlayer1 ? "nameRight" : "nameLeft");
|
||||
const oppName = oppEl?.textContent || "Gegner";
|
||||
|
||||
// player1-Name und player2-Name bestimmen
|
||||
const p1Name = amIPlayer1 ? myName : oppName;
|
||||
const p2Name = amIPlayer1 ? oppName : myName;
|
||||
|
||||
const leftName = flip ? p2Name : p1Name;
|
||||
const rightName = flip ? p1Name : p2Name;
|
||||
@ -661,7 +671,7 @@
|
||||
document.getElementById("nameLeft").textContent = leftName;
|
||||
document.getElementById("nameRight").textContent = rightName;
|
||||
|
||||
// Platzhalter: nur den Ingame-Namen anzeigen, kein Icon
|
||||
// Platzhalter: Ingame-Namen anzeigen
|
||||
["avLeft", "avRight"].forEach(avId => {
|
||||
const av = document.getElementById(avId);
|
||||
const ph = av?.querySelector(".av-placeholder");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user