Add game shell with scan/free-hunt buttons and fan disclaimer footer
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
|
||||
<meta name="theme-color" content="#0a0e1a" />
|
||||
<title>HIDDEN SPECTRE — AR Ghost Hunt</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Bungee&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="css/style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<!-- ====================== TITLE SCREEN ====================== -->
|
||||
<section id="title-screen" class="screen active">
|
||||
<div class="vignette"></div>
|
||||
<div class="title-content">
|
||||
<div class="logo">
|
||||
<span class="logo-hidden">HIDDEN</span>
|
||||
<span class="logo-spectre">SPECTRE</span>
|
||||
</div>
|
||||
<p class="tagline">An AR ghost hunt. Point your phone at the world and trap what's lurking.</p>
|
||||
|
||||
<div class="hud-line">// SYSTEM STATUS</div>
|
||||
<div id="capability" class="capability checking">Checking device capability…</div>
|
||||
|
||||
<button id="start-btn" class="btn-primary" disabled>
|
||||
<span class="btn-glow"></span>
|
||||
SCAN A SET
|
||||
</button>
|
||||
|
||||
<button id="free-btn" class="btn-ghost">Free hunt (no set)</button>
|
||||
<button id="how-btn" class="btn-ghost">How it works</button>
|
||||
</div>
|
||||
<div class="scanlines"></div>
|
||||
<footer class="fan-note">
|
||||
Fan-made tribute. Not affiliated with, sponsored by, or endorsed by the LEGO Group.
|
||||
LEGO® and Hidden Side™ are trademarks of the LEGO Group.
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
<!-- ====================== HOW-TO OVERLAY ====================== -->
|
||||
<div id="howto" class="modal">
|
||||
<div class="modal-card">
|
||||
<h2>FIELD MANUAL</h2>
|
||||
<ol class="howto-list">
|
||||
<li><strong>Scan the area.</strong> Slowly pan your phone across the room so the hunt grid locks onto the world around you.</li>
|
||||
<li><strong>Spot the spectres.</strong> Ghosts drift in 3-D space. Turn your body to find them — they hide behind you.</li>
|
||||
<li><strong>Charge the trap.</strong> Aim the reticle at a ghost and <em>hold</em> the trap button. Keep it centered while the beam locks on.</li>
|
||||
<li><strong>Banish it.</strong> Fill the capture meter before the ghost escapes. Each catch feeds your tally.</li>
|
||||
</ol>
|
||||
<button id="howto-close" class="btn-primary">GOT IT</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ====================== AR / HUNT SCREEN ====================== -->
|
||||
<section id="hunt-screen" class="screen">
|
||||
<!-- Fallback camera feed (used when full WebXR-AR unavailable) -->
|
||||
<video id="camera-feed" playsinline autoplay muted></video>
|
||||
<canvas id="gl-canvas"></canvas>
|
||||
|
||||
<!-- Scan prompt -->
|
||||
<div id="scan-prompt" class="scan-prompt">
|
||||
<div class="radar"><div class="radar-sweep"></div></div>
|
||||
<p>PAN SLOWLY TO MAP THE AREA</p>
|
||||
</div>
|
||||
|
||||
<!-- HUD -->
|
||||
<div id="hud" class="hud hidden">
|
||||
<div class="hud-top">
|
||||
<div class="hud-stat">
|
||||
<span class="hud-label">TRAPPED</span>
|
||||
<span id="score" class="hud-value">0</span>
|
||||
</div>
|
||||
<div class="hud-stat">
|
||||
<span class="hud-label">NEARBY</span>
|
||||
<span id="nearby" class="hud-value">0</span>
|
||||
</div>
|
||||
<button id="exit-btn" class="hud-exit">✕</button>
|
||||
</div>
|
||||
|
||||
<!-- Reticle -->
|
||||
<div id="reticle" class="reticle">
|
||||
<div class="reticle-ring"></div>
|
||||
<div class="reticle-dot"></div>
|
||||
<svg class="capture-ring" viewBox="0 0 120 120">
|
||||
<circle class="capture-track" cx="60" cy="60" r="54" />
|
||||
<circle id="capture-progress" class="capture-fill" cx="60" cy="60" r="54" />
|
||||
</svg>
|
||||
<div id="lock-label" class="lock-label"></div>
|
||||
</div>
|
||||
|
||||
<!-- Direction hint -->
|
||||
<div id="dir-hint" class="dir-hint hidden">
|
||||
<span class="dir-arrow">◄</span> SPECTRE THIS WAY
|
||||
</div>
|
||||
|
||||
<!-- Trap button -->
|
||||
<div class="hud-bottom">
|
||||
<button id="trap-btn" class="trap-btn">
|
||||
<span class="trap-icon"></span>
|
||||
<span class="trap-text">HOLD TO TRAP</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Capture flash -->
|
||||
<div id="capture-flash" class="capture-flash"></div>
|
||||
<div id="toast" class="toast"></div>
|
||||
</section>
|
||||
|
||||
<script type="importmap">
|
||||
{
|
||||
"imports": {
|
||||
"three": "https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.min.js"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="module" src="js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user