Files
XZBT-NGN/test-fixtures/reference-exhibits/haunted-house/index.html
T
2026-09-14 07:57:18 -07:00

96 lines
3.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Haunted House — XZBT Reference Exhibit</title>
<link rel="stylesheet" href="../shared/exhibit-shell.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="exhibit">
<header class="exhibit-header">
<h1>Haunted House</h1>
<span class="subtitle">Fifth room &mdash; live haunt</span>
<span class="status" id="contract-status">standalone</span>
</header>
<main class="stage">
<canvas id="room-canvas" aria-label="Haunted house room view"></canvas>
</main>
<aside class="panel">
<section>
<h2>Presence</h2>
<div class="control">
<label for="room-select">Room</label>
<select id="room-select"></select>
</div>
<div class="control">
<label for="spirit-select">Spirit</label>
<select id="spirit-select"></select>
</div>
<div class="control">
<label for="haunt-range">
<span>Haunt level</span>
<span class="readout" id="haunt-readout">30%</span>
</label>
<input type="range" id="haunt-range" min="0" max="1" step="0.01" value="0.3">
</div>
</section>
<section>
<h2>Atmosphere</h2>
<div class="control">
<label for="fog-range">
<span>Fog density</span>
<span class="readout" id="fog-readout">25%</span>
</label>
<input type="range" id="fog-range" min="0" max="1" step="0.01" value="0.25">
</div>
<div class="control">
<label for="candle-range">
<span>Candlelight</span>
<span class="readout" id="candle-readout">55%</span>
</label>
<input type="range" id="candle-range" min="0" max="1" step="0.01" value="0.55">
</div>
<div class="toggle-row">
<span>Audio engine: <strong id="audio-state" data-state="available">available</strong></span>
<button id="audio-button" type="button" aria-pressed="true">Audio on</button>
</div>
<div class="toggle-row">
<span>Simulation</span>
<button id="pause-button" type="button" aria-pressed="false">Hold</button>
</div>
</section>
<section>
<h2>Actions</h2>
<div class="button-row">
<button id="moan-button" type="button">Moan</button>
<button id="slam-button" type="button">Slam door</button>
</div>
<div class="button-row" style="margin-top:6px">
<button id="manifest-button" type="button">Manifest</button>
<button id="calm-button" type="button">Calm</button>
</div>
</section>
</aside>
<footer class="exhibit-footer">
<span class="announcement-label">House</span>
<span class="announcement-text is-idle" id="announcement">The house is quiet &mdash; awaiting instruction.</span>
</footer>
</div>
<script src="../shared/contract-core.js"></script>
<script src="../shared/exhibit-shell.js"></script>
<script src="../shared/host-transport.js"></script>
<script src="exhibit.js"></script>
<script src="contract-adapter.js"></script>
<script src="boot.js"></script>
</body>
</html>