feat: Add universal victory celebration modal, chamber item requirements, and fix broom & cauldron displays

This commit is contained in:
Maxi
2026-09-22 21:10:08 +02:00
parent cb8851b7a4
commit 8c3e60c1c4
19 changed files with 1149 additions and 92 deletions
+28 -14
View File
@@ -302,27 +302,41 @@
}
async function onDuelWon() {
if (window.soundFX) window.soundFX.playMagicSuccess();
let newItem = null;
try {
const res = await fetch('/api/duel/complete', { method: 'POST' });
const data = await res.json();
if (data.new_item && window.notifyNewItem) {
window.notifyNewItem(data.new_item);
}
if (data.new_item) newItem = data.new_item;
} catch (e) {
console.error(e);
}
modalTitle.innerText = "⚡ Duell Gemeistert!";
modalText.innerHTML = `
Mit meisterhafter Zauberstabführung hast du alle 3 Zaubersprüche entfesselt und die verzauberte Rüstung bezwungen!<br><br>
<strong>Gelehrte Sprüche:</strong> Flipendo ⚡, Incendio 🔥 & Alohomora 🗝️<br><br>
Die alte Rüstung verneigt sich ehrfürchtig. Das Tor öffnet sich und gibt den Weg zur dampfenden <strong>Zaubertrank-Brauküche</strong> frei!<br><br>
🎒 <em>Das goldene Duellanten-Abzeichen wurde deinem Zauberbeutel hinzugefügt!</em>
`;
modalBtn.innerText = "Weiter zur Zaubertrank-Brauküche ⚗️ ➔";
modalBtn.onclick = () => { window.location.href = '/brew'; };
modalBackdrop.classList.add('show');
if (!newItem) {
newItem = {
id: "duel_badge",
name: "Duellanten-Abzeichen & Kessel-Rezept",
icon: "⚡",
desc: "Ein goldenes Abzeichen und Snapes geheime Zaubertrank-Formel für die Brauküche."
};
}
if (window.showChamberVictory) {
window.showChamberVictory({
chamberBadge: "Kammer II: Das Spruch-Duell",
title: "⚡ Duell Gemeistert!",
statsHtml: `<span>🪄 Gesten: <strong>4 Sprüche</strong></span><span>🛡️ Rüstung: <strong>Bezwungen!</strong></span>`,
item: newItem,
storyText: "Die verzauberte Rüstung bricht klirrend in sich zusammen! In ihrem Brustharnisch liegt ein versiegeltes Pergament: <strong>Snapes geheime Rezeptur</strong> für die Kessel-Brauküche. Das schwere Fallgitter zur <strong>Zaubertrank-Brauküche</strong> hebt sich!",
nextUrl: "/brew",
nextBtnText: "➔ Weiter zu Kammer III: Brauküche ⚗️"
});
} else {
modalTitle.innerText = "⚡ Duell Gemeistert!";
modalText.innerHTML = `Mit meisterhafter Zauberstabführung hast du alle Sprüche entfesselt und die Rüstung bezwungen!`;
modalBtn.innerText = "Weiter zur Brauküche ⚗️";
modalBtn.onclick = () => { window.location.href = '/brew'; };
modalBackdrop.classList.add('show');
}
}
function render() {