This commit is contained in:
cay 2026-04-07 15:15:26 +01:00
parent 33297c7738
commit a389f75f25

View File

@ -339,7 +339,7 @@ export async function loadEvents() {
});
body.querySelector("#arena-back-btn").addEventListener("click", () => {
if (isArenaSearching) return; // Während Suche gesperrt
if (isArenaSearching) return; // Während Suche gesperrt
eventsGrid.style.display = "";
arenaUi.style.display = "none";
cancelArenaSearch();
@ -357,12 +357,16 @@ export async function loadEvents() {
if (card) {
card.classList.remove("searching");
card.querySelector(".arena-mode-label-daily").textContent = "1v1";
card.querySelector(".arena-mode-desc-daily").textContent = "Einzelkampf Beweis deine Stärke im Duell";
card.querySelector(".arena-mode-desc-daily").textContent =
"Einzelkampf Beweis deine Stärke im Duell";
}
if (status) status.style.display = "none";
const backBtn = body.querySelector("#arena-back-btn");
if (backBtn) { backBtn.style.opacity = "1"; backBtn.style.cursor = "pointer"; }
if (backBtn) {
backBtn.style.opacity = "1";
backBtn.style.cursor = "pointer";
}
}
function cancelArenaSearch() {
@ -399,14 +403,17 @@ export async function loadEvents() {
const card1v1 = body.querySelector("#arena-1v1-card");
card1v1.classList.add("searching");
card1v1.querySelector(".arena-mode-label-daily").textContent = "⏳ Suche…";
card1v1.querySelector(".arena-mode-desc-daily").textContent = "Warte auf passenden Gegner…";
card1v1.querySelector(".arena-mode-desc-daily").textContent =
"Warte auf passenden Gegner…";
// Zurück-Button sperren während Suche
const backBtn = body.querySelector("#arena-back-btn");
backBtn.style.opacity = "0.35";
backBtn.style.cursor = "not-allowed";
backBtn.style.cursor = "not-allowed";
showArenaStatus(`⏳ Suche Gegner (Level ${Math.max(1, me.level - 5)}${me.level + 5})…`);
showArenaStatus(
`⏳ Suche Gegner (Level ${Math.max(1, me.level - 5)}${me.level + 5})…`,
);
socket.off("match_found");
socket.off("queue_status");
@ -416,9 +423,11 @@ export async function loadEvents() {
const pool = data.poolSize ? ` · ${data.poolSize} im Pool` : "";
showArenaStatus(`⏳ Suche Gegner (Level ${Math.max(1, me.level - 5)}${me.level + 5})${pool}
<br><span class="arena-cancel-link" id="arena-cancel-link">Suche abbrechen</span>`);
body.querySelector("#arena-cancel-link")?.addEventListener("click", () => {
cancelArenaSearch();
});
body
.querySelector("#arena-cancel-link")
?.addEventListener("click", () => {
cancelArenaSearch();
});
}
});
@ -448,16 +457,20 @@ export async function loadEvents() {
const box = body.querySelector("#arena-daily-status");
if (!box) return;
box.style.display = "block";
box.style.color = isError ? "#e74c3c" : "#dceb15";
box.innerHTML = html;
if (isError) setTimeout(() => { box.style.display = "none"; }, 3000);
box.style.color = isError ? "#e74c3c" : "#000000";
box.innerHTML = html;
if (isError)
setTimeout(() => {
box.style.display = "none";
}, 3000);
}
function showArenaMatchFound(myName, opponentName, onDone) {
if (document.getElementById("match-found-overlay")) return;
const overlay = document.createElement("div");
overlay.id = "match-found-overlay";
overlay.style.cssText = "position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.9);display:flex;flex-direction:column;align-items:center;justify-content:center;";
overlay.style.cssText =
"position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.9);display:flex;flex-direction:column;align-items:center;justify-content:center;";
overlay.innerHTML = `
<div style="font-family:'Cinzel',serif;font-size:36px;color:#ffd750;letter-spacing:6px;margin-bottom:12px;"> Match gefunden!</div>
<div style="font-family:'Cinzel',serif;font-size:18px;color:rgba(255,255,255,0.75);letter-spacing:3px;">${myName} &nbsp;vs&nbsp; ${opponentName}</div>
@ -465,8 +478,14 @@ export async function loadEvents() {
<div id="mfBar" style="height:100%;background:#ffd750;width:0%;border-radius:2px;transition:width 1.5s ease;"></div>
</div>`;
document.body.appendChild(overlay);
requestAnimationFrame(() => { const b = document.getElementById("mfBar"); if (b) b.style.width = "100%"; });
setTimeout(() => { overlay.remove(); onDone(); }, 1600);
requestAnimationFrame(() => {
const b = document.getElementById("mfBar");
if (b) b.style.width = "100%";
});
setTimeout(() => {
overlay.remove();
onDone();
}, 1600);
}
function openArenaMatchPopup(src, opponentName, matchId) {
@ -474,10 +493,12 @@ export async function loadEvents() {
document.getElementById("arena-popup")?.remove();
const backdrop = document.createElement("div");
backdrop.id = "arena-backdrop";
backdrop.style.cssText = "position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(5px);z-index:9998;";
backdrop.style.cssText =
"position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(5px);z-index:9998;";
const popup = document.createElement("div");
popup.id = "arena-popup";
popup.style.cssText = "position:fixed;inset:50px;z-index:9999;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,215,80,0.35),0 30px 90px rgba(0,0,0,0.85);";
popup.style.cssText =
"position:fixed;inset:50px;z-index:9999;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,215,80,0.35),0 30px 90px rgba(0,0,0,0.85);";
popup.innerHTML = `
<div style="display:flex;align-items:center;justify-content:space-between;background:rgba(10,8,5,0.95);border-bottom:1px solid rgba(255,215,80,0.3);padding:0 16px;height:42px;flex-shrink:0;">
<span style="font-family:'Cinzel',serif;font-size:13px;letter-spacing:4px;color:rgba(255,215,80,0.85);"> 1v1 · vs ${opponentName}</span>