Fix mobile broom flight with D-pad & touch-action, add Chamber II McGonagalls Wizard Chess
This commit is contained in:
+13
-1
@@ -122,6 +122,10 @@
|
||||
<span>🧹 Besenflug:</span>
|
||||
<span>{% if state.broom_solved %}✅ Gemeistert{% else %}⏳ Offen{% endif %}</span>
|
||||
</div>
|
||||
<div class="stat-row">
|
||||
<span>♟️ Zauberschach:</span>
|
||||
<span>{% if state.chess_solved %}✅ Gemeistert{% else %}⏳ Offen{% endif %}</span>
|
||||
</div>
|
||||
<div class="stat-row">
|
||||
<span>🧪 Snapes Flammen:</span>
|
||||
<span>{% if state.bottles_solved %}✅ Gelöst{% else %}⏳ Offen{% endif %}</span>
|
||||
@@ -150,13 +154,21 @@
|
||||
<small>{% if state.broom_solved %}✅ Gemeistert{% else %}🗝️ Geflügelte Schlüssel jagen{% endif %}</small>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/chess" class="room-nav-item {% if request.url.path == '/chess' %}current{% endif %}">
|
||||
<span class="room-icon">♟️</span>
|
||||
<div class="room-info">
|
||||
<strong>Kammer II: McGonagalls Schach</strong>
|
||||
<small>{% if state.chess_solved %}✅ Gemeistert{% else %}⚔️ Riesen-Zauberschach{% endif %}</small>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/bottles" class="room-nav-item {% if request.url.path == '/bottles' %}current{% endif %}">
|
||||
<span class="room-icon">🧪</span>
|
||||
<div class="room-info">
|
||||
<strong>Kammer II: Snapes Flaschen</strong>
|
||||
<strong>Kammer III: Snapes Flaschen</strong>
|
||||
<small>{% if state.bottles_solved %}✅ Gemeistert{% else %}🔥 Die Flammenkammer{% endif %}</small>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/sliding" class="room-nav-item {% if request.url.path == '/sliding' %}current{% endif %}">
|
||||
<span class="room-icon">🧩</span>
|
||||
<div class="room-info">
|
||||
|
||||
+25
-10
@@ -16,33 +16,48 @@
|
||||
<div class="game-hud">
|
||||
<div>⏱️ Zeit: <strong id="timerVal">0s</strong></div>
|
||||
<div>✨ Punkte: <strong id="scoreVal">0</strong></div>
|
||||
<div>🎯 Mission: <span id="missionText">Fange den Schlüssel mit geknicktem Flügel!</span></div>
|
||||
<div>🎯 Ziel: <span id="missionText">Schlüssel fangen!</span></div>
|
||||
</div>
|
||||
|
||||
<canvas id="broomCanvas"></canvas>
|
||||
</div>
|
||||
|
||||
<!-- Mobile Touch Controls -->
|
||||
<div class="mobile-controls">
|
||||
<button id="mBtnUp" class="btn-control" style="font-size: 1.2rem; padding: 0.8rem 1.4rem;">▲ Hoch</button>
|
||||
<button id="mBtnBoost" class="btn-control" style="font-size: 1.2rem; padding: 0.8rem 1.4rem; background: var(--gold); color: #000;">⚡ Turbo</button>
|
||||
<button id="mBtnDown" class="btn-control" style="font-size: 1.2rem; padding: 0.8rem 1.4rem;">▼ Runter</button>
|
||||
<!-- Mobile Flight Cockpit & D-Pad -->
|
||||
<div class="mobile-flight-cockpit">
|
||||
<div class="dpad-box">
|
||||
<button type="button" id="mBtnUp" class="dpad-btn dpad-up" aria-label="Hoch">▲</button>
|
||||
<div class="dpad-middle">
|
||||
<button type="button" id="mBtnLeft" class="dpad-btn dpad-left" aria-label="Links">◀</button>
|
||||
<div class="dpad-core">✨</div>
|
||||
<button type="button" id="mBtnRight" class="dpad-btn dpad-right" aria-label="Rechts">▶</button>
|
||||
</div>
|
||||
<button type="button" id="mBtnDown" class="dpad-btn dpad-down" aria-label="Runter">▼</button>
|
||||
</div>
|
||||
|
||||
<div class="mobile-flight-actions">
|
||||
<button type="button" id="mBtnBoost" class="dpad-boost-btn">
|
||||
⚡ TURBO
|
||||
</button>
|
||||
<div class="touch-hint">
|
||||
💡 <em>Tipp: Du kannst auch direkt mit dem Finger über das Spielfeld wischen!</em>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dungeon-card" style="margin-top: 1.5rem;">
|
||||
<p id="statusMsg" style="text-align: center; font-size: 1.15rem; color: var(--gold); margin-bottom: 0.8rem;">
|
||||
🎮 <strong>Steuerung:</strong> Pfeiltasten / WASD / Mausbewegung zum Fliegen · <strong>Leertaste / Klick</strong> für Besen-Turbo!
|
||||
🎮 <strong>Steuerung:</strong> Pfeiltasten / WASD / Touch-Wischen zum Fliegen · <strong>Leertaste / Turbo</strong> für Besen-Beschleunigung!
|
||||
</p>
|
||||
<p style="text-align: center; color: var(--text-dim); font-size: 0.95rem;">
|
||||
Fliege durch den Raum, jage den ausweichenden Silberschlüssel mit dem verletzten Flügel und fliege nach dem Fang zur Tür ganz rechts!
|
||||
Fange den großen Silberschlüssel mit dem geknickten Flügel und fliege zur schweren Holztür ganz rechts!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="text-align: center; margin-top: 1rem;">
|
||||
<a href="/bottles" class="nav-link" style="color: var(--text-dim);">Direkt weiter zu Snapes Flaschenkammer 🧪 ➔</a>
|
||||
<a href="/chess" class="nav-link" style="color: var(--text-dim);">Direkt weiter zu McGonagalls Zauberschach ♟️ ➔</a>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
<script src="/static/js/broom.js?v=1.0"></script>
|
||||
<script src="/static/js/broom.js?v=2.0"></script>
|
||||
{% endblock %}
|
||||
|
||||
Executable
+68
@@ -0,0 +1,68 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Kammer II: McGonagalls Zauberschach · Hogwarts Escape{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="parchment-scroll">
|
||||
<h1 class="parchment-title">♟️ Kammer II: McGonagalls Zauberschach ⚔️</h1>
|
||||
<p class="riddle-poem" style="font-size: 1.25rem; margin: 0.5rem 0;">
|
||||
"Wir müssen uns den Weg quer durch das Zimmer freispielen!", rief Ron.<br>
|
||||
Hinter den weißen Riesenfiguren liegt die schwere Eichentür zur Flammenkammer.<br>
|
||||
Übernimm die Kontrolle über die schwarzen Steine und setze den weißen König schachmatt!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="dungeon-card" style="text-align: center;">
|
||||
<div id="chessStatus" style="font-size: 1.15rem; color: var(--gold); margin-bottom: 1rem; min-height: 28px;">
|
||||
🧙♂️ Wähle deinen schwarzen Springer oder deine Dame und führe den Siegeszug aus!
|
||||
</div>
|
||||
|
||||
<!-- 8x8 Chess Board Container -->
|
||||
<div class="chess-board-wrapper">
|
||||
<div id="chessBoard" class="chess-board">
|
||||
<!-- Rendered dynamically by chess.js -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 1.25rem; display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap;">
|
||||
<button type="button" id="btnResetChess" class="btn-control" style="font-size: 0.95rem; padding: 0.6rem 1.2rem;">
|
||||
🔄 Stellung zurücksetzen
|
||||
</button>
|
||||
<a href="/bottles" class="btn-magical">
|
||||
🧪 Zu Snapes Flaschenkammer ➔
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Move History Log -->
|
||||
<div style="margin-top: 1.25rem; text-align: left; background: rgba(15, 12, 22, 0.7); border: 1px solid rgba(229, 185, 72, 0.25); border-radius: 8px; padding: 0.8rem 1rem;">
|
||||
<strong style="color: var(--gold); font-size: 0.9rem;">📜 Zug-Protokoll:</strong>
|
||||
<ul id="moveHistory" style="list-style: none; margin-top: 0.4rem; font-size: 0.85rem; color: var(--text-dim); line-height: 1.6;">
|
||||
<li>Partie eröffnet: Schwarz am Zug!</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tactical Hint Accordion -->
|
||||
<div class="dungeon-card">
|
||||
<details>
|
||||
<summary style="cursor: pointer; font-size: 1.15rem; color: var(--gold); font-weight: bold;">
|
||||
💡 Rons taktischer Schach-Tipp (Hier klicken)
|
||||
</summary>
|
||||
<div style="margin-top: 0.75rem; line-height: 1.7; color: var(--text-light); font-size: 0.95rem;">
|
||||
<p>
|
||||
Der weiße König steht in der Ecke auf <strong>h1</strong>, eingeklemmt von seinen eigenen Bauern auf g2 und h2.
|
||||
</p>
|
||||
<p style="margin-top: 0.5rem;">
|
||||
🎯 <strong>Möglichkeit 1:</strong> Führe mit dem schwarzen Springer auf <strong>g4</strong> ein verheerendes Schachgebot auf <strong>f2</strong> aus (♞f2+) – Rons klassisches Springer-Opfer!
|
||||
</p>
|
||||
<p style="margin-top: 0.5rem;">
|
||||
🎯 <strong>Möglichkeit 2:</strong> Schlage mit der schwarzen Dame auf <strong>h4</strong> direkt den Bauern auf <strong>h2</strong> (♛xh2#) – augenblickliches Schachmatt mit Springer-Deckung!
|
||||
</p>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
<script src="/static/js/chess.js?v=1.0"></script>
|
||||
{% endblock %}
|
||||
@@ -35,13 +35,27 @@
|
||||
<a href="/broom" class="btn-magical">Auf den Besen schwingen 🧹</a>
|
||||
</div>
|
||||
|
||||
<!-- Chamber 2: Snape's Potions -->
|
||||
<!-- Chamber 2: McGonagall's Wizard Chess (NEW!) -->
|
||||
<div class="chamber-card">
|
||||
<span class="chamber-badge {% if state.chess_solved %}solved{% endif %}">
|
||||
{% if state.chess_solved %}✅ Gemeistert{% else %}⚔️ Bereit{% endif %}
|
||||
</span>
|
||||
<div class="chamber-icon">♟️⚔️</div>
|
||||
<h3 class="chamber-title">Kammer II: McGonagalls Schach</h3>
|
||||
<p class="chamber-desc">
|
||||
Das gigantische, lebendige Zauberschach. Übernimm Rons Rolle als schwarzer Springer,
|
||||
überliste die weiße Königin und setze den feindlichen König schachmatt!
|
||||
</p>
|
||||
<a href="/chess" class="btn-magical">Schachbrett betreten ♟️</a>
|
||||
</div>
|
||||
|
||||
<!-- Chamber 3: Snape's Potions -->
|
||||
<div class="chamber-card">
|
||||
<span class="chamber-badge {% if state.bottles_solved %}solved{% endif %}">
|
||||
{% if state.bottles_solved %}✅ Gemeistert{% else %}🔥 Bereit{% endif %}
|
||||
</span>
|
||||
<div class="chamber-icon">🧪🔥</div>
|
||||
<h3 class="chamber-title">Kammer II: Snapes Flaschenrätsel</h3>
|
||||
<h3 class="chamber-title">Kammer III: Snapes Flaschen</h3>
|
||||
<p class="chamber-desc">
|
||||
Schwarze Flammen versperren den Weg zum Stein, violette Flammen den Rückweg.
|
||||
Auf dem Tisch stehen 7 Flaschen und Snapes unerbittliches Logik-Gedicht.
|
||||
@@ -50,6 +64,7 @@
|
||||
<a href="/bottles" class="btn-magical">Flammenkammer betreten 🧪</a>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Bonus: Alchemy Sliding Puzzle -->
|
||||
<div class="chamber-card">
|
||||
<span class="chamber-badge {% if state.sliding_solved %}solved{% endif %}">
|
||||
|
||||
Reference in New Issue
Block a user