-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
120 lines (112 loc) · 5.61 KB
/
index.html
File metadata and controls
120 lines (112 loc) · 5.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Squishdrift</title>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./css/base.css" />
<link rel="stylesheet" href="./css/layout.css" />
<link rel="stylesheet" href="./css/hud.css" />
<link rel="stylesheet" href="./css/score.css" />
<link rel="stylesheet" href="./css/audio.css" />
<link rel="stylesheet" href="./css/keys.css" />
<link rel="stylesheet" href="./css/responsive.css" />
<link rel="stylesheet" href="./css/title-extra.css" />
<link rel="stylesheet" href="./css/death.css" />
<!-- inline styles removed (migrated to CSS files) -->
</head>
<body>
<header class="app-header" role="banner">
<div class="game-title" aria-label="Squishdrift">Squishdrift</div>
<div class="right" style="position: absolute; right: 14px; top: 8px;">
<button id="toggle-debug" class="ghost" aria-pressed="false">Debug</button>
<div class="audio-controls" style="display: inline-block; margin-left: 10px;">
<button id="mute-sfx" class="ghost" title="Mute Sound Effects" aria-pressed="false">🔊 SFX</button>
<input type="range" id="volume-sfx" min="0" max="100" value="90" title="Sound Effects Volume" style="width: 60px; vertical-align: middle;">
<button id="mute-music" class="ghost" title="Mute Music" aria-pressed="false">🎵 Music</button>
<input type="range" id="volume-music" min="0" max="100" value="60" title="Music Volume" style="width: 60px; vertical-align: middle;">
</div>
</div>
</header>
<main class="app-main" role="main">
<div class="canvas-wrap">
<canvas id="game" width="1280" height="720" aria-label="Game canvas" style="border: 2px solid #5a82cb; box-shadow: 0px 0px 11px 0px #004effad;"></canvas>
<div id="score-combo-container">
<div id="score-display">
<div class="drain-track">
<div id="score-drain"></div>
</div>
<span id="score">0</span>
<span id="combo-inline" style="display:none">x0</span>
</div>
</div>
<!-- Top right corner - Wanted level -->
<div id="wanted-hud" class="hud wanted-hud" aria-live="polite" aria-atomic="true">
<div class="row">
<span class="label">Wanted</span>
<span id="wanted-level">0</span>
</div>
</div>
<!-- Bottom left corner - Item and ammo -->
<div id="item-hud" class="hud item-hud" aria-live="polite" aria-atomic="true">
<div class="row">
<span class="label">Item</span>
<span id="item-name">None</span>
</div>
<div id="ammo-container" class="row">
<span class="label">Ammo</span>
<div class="bar"><div id="ammo-bar" class="fill" style="width:100%"></div></div>
<span id="ammo-text">--/--</span>
</div>
</div>
<!-- Bottom right corner - Vehicle -->
<div id="vehicle-hud" class="hud vehicle-hud" aria-live="polite" aria-atomic="true">
<div class="row">
<span class="label">Vehicle</span>
<span id="vehicle-state">On foot</span>
</div>
</div>
</div>
<div id="interaction-prompt" class="interaction-prompt" style="display: none;">
<span id="interaction-action">...</span>
</div>
<pre id="debug" class="debug" hidden></pre>
<div id="joystick-indicator" style="display: none; position: fixed; left: 0; top: 0; width: 100px; height: 100px; pointer-events: none; z-index: 1000;">
<div style="position: absolute; width: 100px; height: 100px; border: 3px solid rgba(255, 255, 255, 0.6); border-radius: 50%; background: rgba(0, 0, 0, 0.3); box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);"></div>
<div class="joystick-knob" style="position: absolute; width: 40px; height: 40px; background: rgba(255, 255, 255, 0.8); border-radius: 50%; left: 30px; top: 30px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); transition: transform 0.1s ease-out;"></div>
</div>
<div id="pause-overlay" style="display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); color: white; justify-content: center; align-items: center; text-align: center; z-index: 2000; flex-direction: column;">
<h1>PAUSED</h1>
<p>Press P or Escape to resume</p>
</div>
</main>
<footer class="app-footer" role="contentinfo">
<div style="display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 8px;">
<img src="./sitcomreality.png" alt="SitcomReality" title="SitcomReality" style="height: 35px; width: auto; filter: drop-shadow(0 0 3px rgba(255,255,255,0.3));">
</div>
<div style="font-size: 12px; opacity: 0.8; line-height: 1.4; color: #ccc;">
<div style="margin-bottom: 4px;">Music from the album <em>"Lullabies for Mass Graves"</em></div>
<div>Main Theme: <strong>"Player 2 Has Joined The Game"</strong></div>
<div>Death Screen: <strong>"Damnit, Damocles!"</strong></div>
</div>
</footer>
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.160.0/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/"
}
}
</script>
<script type="module" src="./main.js"></script>
<script>
// Global debug state for click handling
window.debugState = {
enabled: false,
spawnMode: 'pedestrian' // 'pedestrian' or 'vehicle'
};
</script>
</body>
</html>