-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcustom_shell.html
More file actions
243 lines (220 loc) · 34.8 KB
/
Copy pathcustom_shell.html
File metadata and controls
243 lines (220 loc) · 34.8 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
<title>SkyLockAssault (DEBUG)</title>
<style>
html, body, #canvas {
margin: 0;
padding: 0;
border: 0;
overflow: hidden;
touch-action: none;
background-color: black;
color: white;
}
#canvas {
display: block;
}
#canvas:focus {
outline: none;
}
/* UI Buttons and Slider Styles (invisible but clickable overlays) */
button, input[type="range"], select {
position: absolute;
left: 50%;
transform: translate(-50%, -50%);
opacity: 0; /* Invisible */
pointer-events: none; /* Pass through real mouse events to Godot canvas */
background: transparent;
border: none;
color: transparent; /* No text shown */
font-size: 32px; /* Match size for accurate overlay */
cursor: pointer;
z-index: 10; /* Above canvas for DOM presence, but events pass through */
}
input[type="range"] {
width: 250px; /* Match your Godot slider width */
}
/* Hide options elements initially (still invisible when shown) */
#difficulty-slider, #log-level-select {
display: none;
}
/* Loading UI styles (moved from inline for maintainability) */
#loading {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #3d3d3d;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index: 20;
padding: 5px;
}
#audio-back-button {
display: none;
top: 80%;
left: 50%;
width: 200px;
height: 50px;
transform: translate(-50%, -50%);
}
/* Add to <style> */
#options-back-button {
display: none;
top: 90%; /* Adjust to match options back button position */
left: 50%;
width: 200px;
height: 50px;
transform: translate(-50%, -50%);
}
/* Rotation Definitions */
/* This is the fix: it forces the origin to the center of each individual group */
.gear-group {
transform-box: fill-box;
transform-origin: center;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
/* Directions: CW, CCW, CW, CCW, CW */
.g1 { animation-name: spin-cw; animation-duration: 9.5s; }
.g2 { animation-name: spin-ccw; animation-duration: 16.5s; }
.g3 { animation-name: spin-cw; animation-duration: 9.5s; }
.g4 { animation-name: spin-ccw; animation-duration: 6s; }
.g5 { animation-name: spin-cw; animation-duration: 3s; }
@keyframes spin-cw {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes spin-ccw {
from { transform: rotate(0deg); }
to { transform: rotate(-360deg); }
}
</style>
<!-- Removed favicon link to avoid 404 -->
</head>
<body>
<canvas id="canvas" tabindex="0" width="1280" height="720" style="position: absolute; top: 0px; left: 0px; width: 1280px; height: 720px;"></canvas>
<!-- Loading screen with progress bar (updated for better ARIA labeling) -->
<div id="loading">
<svg height="414" viewBox="0 0 959.99998 388.125" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m0 0c-3.611.0-6.636-1.659-9.09-4.967-2.441-3.311-3.668-7.958-3.668-13.938.0-5.993 1.166-10.581 3.503-13.778 2.333-3.207 5.398-4.804 9.2-4.804 3.8.0 6.887 1.617 9.258 4.862 2.371 3.233 3.559 7.861 3.559 13.886.0 6.02-1.227 10.654-3.673 13.89C6.646-1.617 3.616.0.0.0m-.055-59.493c-10.573.0-19.195 3.46-25.859 10.379-6.655 6.925-9.984 17.03-9.984 30.314.0 13.292 3.367 23.356 10.101 30.209 6.736 6.844 15.431 10.269 26.082 10.269 10.649.0 19.251-3.363 25.794-10.109 6.555-6.733 9.827-16.94 9.827-30.591.0-13.661-3.348-23.822-10.05-30.49-6.702-6.654-15.333-9.981-25.911-9.981" transform="matrix(1.41381688 0 0 -1.41381688 570.061916 153.354153)"/><path d="m0 0v-33.768c0-1.577.116-2.571.342-2.988.224-.415.903-.623 2.029-.623 4.144.0 7.283 1.548 9.429 4.634 2.151 3.083 3.215 8.216 3.215 15.405.0 7.192-1.113 11.878-3.325 14.055-2.223 2.183-5.744 3.285-10.561 3.285zm-21.675-52.392v67.735c0 1.883.468 3.369 1.413 4.471.939 1.085 2.161 1.636 3.671 1.636H2.263c11.965.0 21.053-3.018 27.257-9.04 6.215-6.02 9.322-15.499 9.322-28.447.0-27.7-11.821-41.547-35.456-41.547h-19.302c-3.836.0-5.759 1.727-5.759 5.192" transform="matrix(1.41381688 0 0 -1.41381688 665.564378 154.460028)"/><path d="m0 0c-3.612.0-6.645-1.659-9.095-4.967-2.44-3.311-3.662-7.958-3.662-13.938.0-5.993 1.169-10.581 3.499-13.778 2.33-3.207 5.398-4.804 9.2-4.804 3.801.0 6.89 1.617 9.258 4.862 2.372 3.233 3.56 7.861 3.56 13.886.0 6.02-1.225 10.654-3.671 13.89-2.447 3.232-5.473 4.849-9.089 4.849m-.058-59.493c-10.577.0-19.193 3.46-25.851 10.379-6.663 6.925-9.993 17.03-9.993 30.314.0 13.292 3.367 23.356 10.1 30.209 6.741 6.844 15.431 10.269 26.086 10.269 10.651.0 19.246-3.363 25.797-10.109 6.55-6.733 9.822-16.94 9.822-30.591.0-13.661-3.349-23.822-10.05-30.49-6.699-6.654-15.338-9.981-25.911-9.981" transform="matrix(1.41381688 0 0 -1.41381688 781.763328 153.354153)"/><path d="m0 0c0-1.496-3.721-2.255-11.176-2.255-7.448.0-11.18.759-11.18 2.255v56.681h-13.545c-1.281.0-2.185 1.727-2.71 5.198-.226 1.652-.334 3.343-.334 5.077.0 1.724.108 3.422.334 5.077.525 3.462 1.429 5.202 2.71 5.202h49.112c1.279.0 2.179-1.74 2.712-5.202.221-1.655.335-3.353.335-5.077.0-1.734-.114-3.425-.335-5.077-.533-3.471-1.433-5.198-2.712-5.198h-13.211z" transform="matrix(1.41381688 0 0 -1.41381688 892.014153 233.329815)"/><path d="m0 0c-6.078.094-13.034-1.173-13.034-1.173v-11.863h6.995l-.078-5.288c0-1.959-1.942-2.943-5.815-2.943-3.878.0-7.303 1.642-10.274 4.917-2.978 3.279-4.459 8.072-4.459 14.388.0 6.329 1.447 10.995 4.345 14.006 2.892 3.008 6.683 4.517 11.346 4.517 1.959.0 3.987-.316 6.096-.961 2.11-.639 3.519-1.238 4.238-1.799.713-.577 1.391-.85 2.032-.85.638.0 1.671.746 3.1 2.255 1.431 1.505 2.713 3.786 3.844 6.827 1.126 3.057 1.69 5.4 1.69 7.062.0 1.649-.036 2.786-.109 3.386-1.581 1.73-4.499 3.102-8.755 4.122-4.248 1.017-9.011 1.522-14.28 1.522-11.594.0-20.66-3.65-27.207-10.95-6.552-7.303-9.822-16.783-9.822-28.452.0-13.701 3.347-24.087 10.041-31.162 6.706-7.074 15.51-10.607 26.425-10.607 5.87.0 11.08.505 15.632 1.522 4.557 1.013 7.586 2.053 9.093 3.105l.452 35.33c0 2.053-5.418 2.985-11.496 3.089" transform="matrix(1.41381688 0 0 -1.41381688 491.081866 176.607765)"/><g transform="matrix(1.25 0 0 -1.25 -94.249997 597.49874)"><path d="m0 0c-.624-1.28-1.771-2.454-3.449-3.516-1.676-1.069-3.805-1.6-6.391-1.6-3.412.0-6.156 1.075-8.24 3.249-2.076 2.157-3.116 5.266-3.116 9.323v10.116c0 3.969.98 7.013 2.946 9.138 1.962 2.108 4.59 3.177 7.872 3.177 3.208.0 5.695-.844 7.455-2.513 1.755-1.675 2.677-4.015 2.757-7.003l-.044-.133h-2.619c-.094 2.29-.759 4.057-2.01 5.305-1.244 1.238-3.095 1.864-5.539 1.864-2.473.0-4.432-.837-5.866-2.516-1.43-1.675-2.143-4.103-2.143-7.293v-10.174c0-3.308.771-5.83 2.311-7.567 1.54-1.724 3.616-2.588 6.236-2.588 1.913.0 3.451.339 4.602 1.033 1.155.684 1.956 1.519 2.409 2.51v8.861h-7.06v2.463h9.889z" transform="matrix(1.1310535 0 0 1.1310535 441.34721 235.75121)"/><path d="m0 0c1.553.0 2.936.44 4.144 1.336 1.21.9 2.058 2.037 2.561 3.422v5.468H2.213c-1.91.0-3.44-.541-4.585-1.623-1.148-1.075-1.716-2.418-1.716-4.015.0-1.349.355-2.457 1.074-3.311.718-.857 1.722-1.277 3.014-1.277m7.124-2.04c-.14.876-.249 1.587-.318 2.144-.067.567-.101 1.131-.101 1.704C5.938.554 4.948-.486 3.725-1.301c-1.221-.821-2.579-1.228-4.075-1.228-2.092.0-3.701.648-4.84 1.946C-6.322.72-6.894 2.476-6.894 4.693c0 2.343.823 4.223 2.473 5.618 1.649 1.395 3.89 2.092 6.709 2.092h4.417v3.106c0 1.786-.456 3.193-1.351 4.21-.914 1.004-2.17 1.512-3.791 1.512-1.508.0-2.752-.479-3.728-1.45-.973-.965-1.456-2.144-1.456-3.549l-2.623.023-.046.137c-.074 1.906.647 3.591 2.168 5.084 1.515 1.489 3.459 2.229 5.825 2.229 2.338.0 4.22-.711 5.657-2.128 1.429-1.431 2.146-3.471 2.146-6.124V3.057c0-.903.042-1.78.121-2.617.081-.848.212-1.665.417-2.48z" transform="matrix(1.1310535 0 0 1.1310535 456.01527 232.82495)"/><path d="m0 0 .24-3.923C.904-2.519 1.794-1.437 2.897-.668c1.107.759 2.41 1.138 3.906 1.138 1.527.0 2.814-.444 3.852-1.343 1.039-.896 1.805-2.252 2.292-4.074.623 1.682 1.505 3.011 2.65 3.973 1.145.964 2.534 1.444 4.143 1.444 2.217.0 3.937-.897 5.156-2.692 1.224-1.799 1.834-4.559 1.834-8.288v-14.765h-2.823v14.814c0 3.1-.429 5.283-1.263 6.538-.839 1.257-2.042 1.89-3.598 1.89-1.637.0-2.915-.691-3.834-2.096-.914-1.405-1.478-3.161-1.683-5.282v-.655-15.209H10.72v14.798c0 3.027-.424 5.194-1.292 6.488-.864 1.294-2.066 1.936-3.609 1.936-1.475.0-2.668-.45-3.562-1.342-.9-.897-1.54-2.125-1.928-3.683v-18.197h-2.806V0z" transform="matrix(1.1310535 0 0 1.1310535 476.7303 259.10521)"/><path d="m0 0c-1.758.0-3.202-.802-4.334-2.402-1.133-1.606-1.718-3.585-1.765-5.944h11.66v1.082c0 2.086-.489 3.823-1.469 5.201-.986 1.379-2.347 2.063-4.092 2.063m.397-23.76c-2.725.0-4.954 1.026-6.685 3.073-1.726 2.043-2.591 4.657-2.591 7.841v4.197c0 3.19.867 5.85 2.602 7.965 1.739 2.105 3.828 3.158 6.277 3.158 2.648.0 4.699-.939 6.164-2.823 1.468-1.887 2.201-4.422 2.201-7.603v-2.773H-6.099v-2.102c0-2.447.586-4.484 1.752-6.11 1.168-1.63 2.755-2.438 4.744-2.438 1.382.0 2.585.244 3.588.724 1.003.491 1.863 1.179 2.578 2.082l1.149-1.988c-.763-.968-1.752-1.75-2.959-2.33-1.204-.577-2.659-.873-4.356-.873" transform="matrix(1.1310535 0 0 1.1310535 522.82277 256.83868)"/><path d="m0 0c-1.763.0-3.21-.802-4.341-2.402-1.126-1.606-1.712-3.585-1.763-5.944H5.559v1.082c0 2.086-.488 3.823-1.474 5.201-.981 1.379-2.341 2.063-4.085 2.063m.394-23.76c-2.726.0-4.951 1.026-6.679 3.073-1.733 2.043-2.6 4.657-2.6 7.841v4.197c0 3.19.871 5.85 2.602 7.965 1.744 2.105 3.834 3.158 6.283 3.158 2.643.0 4.703-.939 6.164-2.823 1.463-1.887 2.197-4.422 2.197-7.603v-2.773H-6.104v-2.102c0-2.447.587-4.484 1.76-6.11 1.162-1.63 2.742-2.438 4.738-2.438 1.387.0 2.585.244 3.585.724 1.007.491 1.866 1.179 2.589 2.082l1.141-1.988c-.764-.968-1.75-1.75-2.959-2.33-1.204-.577-2.658-.873-4.356-.873" transform="matrix(1.1310535 0 0 1.1310535 558.0805 256.83868)"/><path d="m0 0 .23-4.178C.904-2.695 1.794-1.544 2.912-.743c1.108.805 2.413 1.213 3.914 1.213 2.258.0 3.988-.835 5.189-2.513 1.214-1.675 1.815-4.279 1.815-7.812v-15.42h-2.825v15.394c0 2.888-.423 4.905-1.264 6.075-.836 1.17-2.065 1.753-3.665 1.753-1.435.0-2.638-.466-3.603-1.414-.969-.939-1.691-2.19-2.172-3.767v-18.041h-2.805V0z" transform="matrix(1.1310535 0 0 1.1310535 575.91679 259.10521)"/><path d="m0 0c0-2.565.486-4.605 1.472-6.123.974-1.532 2.457-2.288 4.436-2.288 1.356.0 2.498.361 3.435 1.101.934.74 1.672 1.77 2.218 3.077v12.52c-.525 1.346-1.246 2.434-2.157 3.272-.91.824-2.062 1.238-3.448 1.238-1.975.0-3.468-.86-4.46-2.587-.999-1.73-1.496-3.986-1.496-6.756zm-2.833 3.454c0 3.582.723 6.459 2.177 8.627 1.442 2.157 3.448 3.239 6.004 3.239 1.419.0 2.664-.346 3.728-1.04 1.066-.681 1.947-1.678 2.654-2.946l.274 3.516h2.381v-25.298c0-3.239-.751-5.749-2.26-7.525-1.511-1.769-3.657-2.665-6.428-2.665-.996.0-2.067.156-3.212.459-1.147.303-2.162.701-3.052 1.2l.776 2.463c.759-.492 1.608-.873 2.548-1.141.932-.277 1.895-.41 2.894-.41 2.009.0 3.498.645 4.46 1.932.966 1.304 1.45 3.19 1.45 5.687v3.057c-.717-1.138-1.597-2.011-2.64-2.614-1.039-.606-2.253-.909-3.622-.909-2.539.0-4.53.994-5.968 2.982-1.441 1.984-2.164 4.631-2.164 7.932z" transform="matrix(1.1310535 0 0 1.1310535 600.8685 242.30884)"/><path d="m627.82321 230.5176h-3.20089v28.58738h3.20089zm0 36.72644h-3.20089v4.50385h3.20089z"/><path d="m0 0 .23-4.178C.906-2.695 1.792-1.544 2.908-.743c1.115.805 2.422 1.213 3.916 1.213 2.258.0 3.995-.835 5.199-2.513 1.211-1.675 1.807-4.279 1.807-7.812v-15.42h-2.825v15.394c0 2.888-.422 4.905-1.261 6.075-.843 1.17-2.063 1.753-3.668 1.753-1.434.0-2.635-.466-3.599-1.414C1.51-4.406.785-5.657.306-7.234v-18.041h-2.809V0z" transform="matrix(1.1310535 0 0 1.1310535 638.15379 259.10521)"/><path d="m0 0c-1.763.0-3.208-.802-4.334-2.402-1.129-1.606-1.718-3.585-1.768-5.944H5.56v1.082c0 2.086-.486 3.823-1.47 5.201-.981 1.379-2.343 2.063-4.09 2.063m.401-23.76c-2.733.0-4.958 1.026-6.681 3.073-1.73 2.043-2.595 4.657-2.595 7.841v4.197c0 3.19.865 5.85 2.6 7.965 1.739 2.105 3.831 3.158 6.275 3.158 2.646.0 4.706-.939 6.172-2.823 1.462-1.887 2.195-4.422 2.195-7.603v-2.773H-6.102v-2.102c0-2.447.59-4.484 1.757-6.11 1.166-1.63 2.748-2.438 4.746-2.438 1.382.0 2.579.244 3.578.724 1.012.491 1.869 1.179 2.591 2.082l1.147-1.988c-.769-.968-1.755-1.75-2.962-2.33-1.203-.577-2.658-.873-4.354-.873" transform="matrix(1.1310535 0 0 1.1310535 669.70883 256.83868)"/></g><path d="m181.9082 48.951172c-15.35819 3.414273-30.55119 8.168521-44.79492 15.33789.32574 12.577316 1.13879 24.628133 2.78711 36.869138-5.5316 3.54397-11.34506 6.58567-16.51172 10.73438-5.2496 4.03861-10.61179 7.90171-15.36523 12.625-9.496329-6.28112-19.545975-12.18414-29.900393-17.39453C66.96181 119.13483 56.525128 132.09977 48 146.60742c6.699845 10.51682 13.885852 21.08679 20.541016 29.33008v71.6543 9.10156 8.2832c.162871.00107.326917.00634.488281.02149l54.585933 5.26367c2.85931.27598 5.09977 2.57801 5.29883 5.44336l1.6836 24.0957 47.61523 3.39844 3.2793-22.24024c.42528-2.88343 2.8998-5.02148 5.8164-5.02148h57.58985c2.9151.0 5.38918 2.13805 5.81445 5.02148l3.2793 22.24024 47.61719-3.39844 1.68164-24.0957c.20057-2.86535 2.43953-5.16588 5.29882-5.44336l54.56446-5.26367c.16136-.01504.32348-.01999.48632-.02149v-7.10547l.02344-.00586V175.9375c7.68652-9.6765 14.96452-20.34983 20.54102-29.33008-8.52211-14.50765-18.96376-27.47259-30.125-39.48437-10.35139 5.21039-20.40601 11.11341-29.90235 17.39453-4.75192-4.72329-10.10418-8.58639-15.36132-12.625-5.16515-4.14871-10.98676-7.19041-16.50782-10.73438 1.64381-12.241005 2.45791-24.291822 2.78516-36.869138-14.24524-7.169369-29.437-11.923617-44.80273-15.33789-6.13484 10.310684-11.74472 21.477157-16.63086 32.392578-5.79402-.968181-11.61467-1.327114-17.44336-1.396484V79.9375c-.04075.0-.07858.009766-.11328.009766-.03616.0-.07516-.009766-.11133-.009766v.009766c-5.83926.069365-11.65565.428303-17.45117 1.396484-4.88314-10.915421-10.48893-22.081894-16.63282-32.392578zM138.72266 179.20312c18.16924.0 32.89648 14.7157 32.89648 32.87891.0 18.17528-14.72724 32.89844-32.89648 32.89844-18.1602.0-32.89063-14.72316-32.89063-32.89844.0-18.16321 14.73043-32.87891 32.89063-32.87891zm154.76367.0c18.15868.0 32.88672 14.7157 32.88672 32.87891.0 18.17528-14.72804 32.89844-32.88672 32.89844-18.17227.0-32.89844-14.72316-32.89844-32.89844.0-18.16321 14.72617-32.8789 32.89844-32.87891zm-77.38672 19.24024c5.8483.0 10.59961 4.31463 10.59961 9.62305v30.2832c0 5.31294-4.75131 9.62305-10.59961 9.62305s-10.58789-4.31011-10.58789-9.62305v-30.2832c0-5.30842 4.73959-9.62305 10.58789-9.62305z" stroke-width="1.50807" transform="scale(.93749999)"/><g stroke-width="1.41382"><path d="m295.00412 263.89328-1.58489 22.71014c-.19086 2.73715-2.36814 4.91584-5.10529 5.11236l-54.50971 3.88941c-.1329.01-.2658.0141-.39728.0141-2.70888.0-5.04592-1.98783-5.44603-4.70801l-3.12595-21.19877h-44.47726l-3.12595 21.19877c-.41991 2.85308-2.97043 4.90453-5.84331 4.69387l-54.50971-3.88941c-2.73715-.19652-4.91442-2.37521-5.10529-5.11236l-1.58489-22.71014-46.015498-4.43656c.02121 4.94553.08483 10.36328.08483 11.44202.0 48.59854 61.649488 71.95763 138.244428 72.22625h.0933.0947c76.59494-.26862 138.22322-23.62771 138.22322-72.22625.0-1.09853.0664-6.49366.0891-11.44202z"/><path d="m153.47185 200.6558c0 11.30205-9.16012 20.46217-20.47065 20.46217-11.30488.0-20.47066-9.16012-20.47066-20.46217s9.16578-20.47065 20.47066-20.47065c11.31053.0 20.47065 9.1686 20.47065 20.47065"/><path d="m251.72267 200.6558c0 11.30205 9.15729 20.46217 20.45934 20.46217 11.31337.0 20.47066-9.16012 20.47066-20.46217s-9.15729-20.47065-20.47066-20.47065c-11.30205.0-20.45934 9.1686-20.45934 20.47065"/></g></svg>
<svg viewBox="0 0 1280 853" width="256" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet">
<g transform="translate(0,853) scale(0.1,-0.1)" fill="#000">
<g class="gear-group g1">
<path d="M2455 7359 c-96 -22 -166 -51 -161 -66 14 -35 46 -251 46 -308 0 -93 -13 -120 -75 -155 -29 -16 -65 -30 -81 -30 -60 0 -154 60 -319 203 l-40 35 -47 -40 c-26 -21 -65 -61 -88 -88 l-41 -49 91 -108 c92 -109 150 -207 150 -250 0 -35 -57 -128 -87 -142 -40 -18 -168 -14 -303 9 -67 12 -123 20 -125 18 -5 -5 -51 -166 -58 -204 l-6 -32 92 -32 c134 -48 227 -92 270 -129 36 -33 37 -34 37 -106 0 -64 -3 -77 -26 -104 -31 -37 -115 -79 -259 -130 l-110 -39 3 -33 c4 -31 49 -200 56 -207 2 -1 55 6 117 17 178 31 214 34 274 21 51 -11 59 -16 86 -58 16 -26 32 -57 35 -68 15 -55 -43 -159 -165 -299 -39 -44 -71 -83 -71 -86 0 -10 160 -169 171 -169 5 0 54 37 109 83 113 95 202 147 253 147 52 0 126 -46 144 -89 24 -56 11 -209 -32 -397 -4 -19 4 -24 63 -42 69 -22 148 -41 169 -42 6 0 26 43 43 96 43 127 103 246 141 278 26 22 40 26 94 26 57 0 68 -3 98 -30 41 -35 92 -137 139 -273 l33 -98 35 6 c51 9 183 45 198 53 9 6 7 32 -8 113 -29 151 -35 240 -20 294 11 40 20 50 64 76 28 16 66 29 85 29 50 0 133 -50 251 -149 l105 -89 47 40 c26 21 66 61 89 89 l41 49 -38 45 c-107 125 -176 223 -191 273 l-17 53 30 55 c16 31 40 61 54 68 60 31 149 29 348 -10 46 -9 85 -15 87 -12 7 7 53 174 57 207 l3 33 -108 38 c-139 49 -209 84 -252 124 -34 32 -35 36 -35 104 0 60 4 75 24 100 33 38 115 81 259 132 92 34 116 46 113 59 -2 9 -7 32 -11 51 -12 65 -49 170 -59 170 -6 0 -60 -9 -120 -20 -128 -23 -253 -26 -299 -6 -23 10 -40 30 -61 70 -27 53 -28 60 -17 99 17 57 61 125 154 235 l78 92 -21 29 c-11 16 -50 57 -86 90 l-66 60 -106 -89 c-118 -99 -203 -150 -252 -150 -18 0 -56 13 -85 30 -58 33 -75 68 -75 158 0 45 33 262 46 304 4 14 -10 22 -73 41 -43 14 -98 28 -123 32 l-45 6 -34 -98 c-49 -140 -88 -219 -130 -264 -36 -37 -41 -39 -101 -39 -52 0 -69 4 -96 25 -40 31 -99 145 -144 279 -35 106 -32 104 -115 85z m567 -792 c272 -88 460 -315 498 -601 35 -261 -90 -535 -312 -682 -370 -246 -867 -108 -1054 293 -47 100 -66 190 -66 308 2 341 229 623 567 701 93 21 271 12 367 -19z"/>
<path d="M2683 6376 c-167 -41 -312 -178 -363 -344 -27 -87 -27 -217 0 -305 77 -250 355 -407 604 -342 202 53 355 220 386 423 39 251 -128 500 -381 567 -65 18 -175 18 -246 1z"/>
</g>
<g class="gear-group g2">
<path d="M4365 5304 c-78 -19 -188 -54 -199 -65 -5 -4 4 -70 20 -151 35 -179 40 -362 11 -418 -21 -41 -133 -110 -178 -110 -77 0 -182 63 -349 208 -62 53 -118 101 -126 107 -11 7 -41 -17 -129 -105 -63 -63 -115 -119 -115 -123 0 -5 32 -44 72 -86 147 -157 248 -316 248 -392 0 -58 -65 -163 -115 -186 -62 -28 -242 -22 -423 15 l-142 29 -26 -81 c-30 -97 -54 -193 -54 -223 0 -18 15 -26 113 -59 225 -75 357 -144 397 -208 16 -27 20 -50 20 -115 0 -81 0 -81 -41 -126 -50 -55 -176 -118 -349 -176 -69 -23 -129 -46 -134 -50 -15 -13 50 -289 73 -312 5 -5 71 4 147 19 105 21 170 28 264 28 161 1 177 -5 231 -96 38 -65 41 -75 36 -120 -10 -82 -102 -222 -257 -390 l-62 -68 48 -56 c27 -31 80 -85 118 -119 l70 -63 59 51 c209 184 320 256 406 265 43 4 57 0 120 -37 68 -40 71 -44 87 -99 22 -73 14 -208 -21 -382 -14 -69 -25 -133 -25 -142 0 -13 22 -24 83 -43 72 -23 204 -55 226 -55 5 0 30 62 56 138 74 214 138 334 201 373 45 28 174 27 220 -1 63 -40 126 -159 204 -387 23 -68 46 -123 51 -123 22 0 154 32 227 55 60 19 82 30 82 43 0 9 -11 73 -25 142 -35 174 -43 309 -21 382 16 55 19 59 87 99 63 37 77 41 120 37 86 -9 197 -81 406 -265 l59 -51 70 63 c38 34 91 88 118 119 l48 56 -62 68 c-156 168 -248 310 -257 396 -5 38 0 53 36 114 54 91 70 97 231 96 94 0 159 -7 264 -28 112 -22 141 -25 148 -14 27 43 87 294 72 307 -5 4 -65 27 -134 50 -173 58 -299 121 -349 176 l-41 45 0 82 c0 94 10 117 75 168 54 43 155 89 319 146 l138 47 -6 46 c-6 48 -62 249 -74 268 -5 7 -54 0 -147 -19 -177 -37 -357 -44 -420 -15 -50 23 -115 128 -115 186 0 72 74 193 221 363 40 46 79 91 87 100 14 16 5 28 -98 133 -63 63 -118 115 -123 115 -5 0 -39 -28 -75 -61 -100 -92 -235 -194 -297 -225 -89 -43 -128 -43 -207 3 -94 53 -103 75 -102 228 0 88 8 158 29 263 15 81 24 147 19 152 -20 18 -243 80 -290 80 -18 0 -28 -21 -73 -147 -67 -187 -120 -290 -177 -343 l-44 -40 -85 0 -85 0 -44 40 c-57 53 -110 156 -177 343 -59 167 -49 159 -164 131z m720 -1034 c98 -27 202 -74 286 -130 93 -62 225 -202 283 -298 56 -94 110 -244 127 -352 16 -102 6 -285 -20 -385 -89 -336 -358 -602 -697 -687 -126 -31 -332 -31 -458 0 -283 71 -508 256 -637 525 -54 114 -80 220 -86 357 -7 139 7 232 51 363 46 134 114 243 216 347 147 150 297 233 500 276 99 20 333 12 435 -16z"/>
<path d="M4675 4004 c-95 -23 -216 -88 -291 -157 -362 -331 -269 -914 178 -1116 127 -58 268 -74 405 -45 330 68 557 360 540 694 -15 298 -229 557 -517 625 -81 18 -235 18 -315 -1z"/>
</g>
<g class="gear-group g3">
<path d="M7085 7029 c-129 -31 -175 -49 -175 -67 0 -9 10 -64 21 -122 25 -123 30 -281 11 -326 -16 -38 -110 -94 -156 -94 -51 0 -143 52 -251 142 -54 46 -109 91 -122 102 l-24 18 -95 -96 -96 -96 65 -73 c132 -149 186 -232 200 -305 6 -27 0 -46 -29 -97 -28 -52 -42 -66 -71 -76 -49 -16 -241 -5 -358 20 -49 11 -93 17 -97 13 -10 -11 -56 -163 -63 -213 l-7 -47 109 -36 c131 -44 235 -93 283 -134 33 -28 35 -34 40 -107 4 -61 2 -83 -11 -104 -31 -52 -149 -113 -336 -175 -60 -20 -83 -32 -83 -44 0 -19 43 -183 58 -223 l10 -26 129 23 c138 25 281 31 331 13 23 -8 40 -27 67 -75 l36 -65 -15 -52 c-18 -62 -68 -137 -178 -265 l-80 -92 96 -96 96 -96 37 31 c175 145 215 175 267 201 32 17 74 30 93 30 49 0 138 -53 154 -93 21 -48 14 -212 -14 -345 l-23 -113 30 -13 c53 -22 196 -57 218 -54 16 2 28 25 59 113 52 149 102 247 144 284 33 29 41 31 110 31 64 0 77 -3 104 -26 39 -32 107 -168 151 -302 l35 -104 45 6 c25 3 85 18 133 33 l89 27 -7 30 c-43 214 -55 360 -32 425 15 45 104 101 158 101 66 0 157 -57 316 -198 l73 -63 50 42 c50 42 140 141 140 154 0 3 -32 43 -71 88 -129 149 -189 247 -189 309 0 11 16 47 35 79 43 70 70 81 188 80 68 0 254 -28 319 -47 12 -4 21 9 37 58 23 72 54 199 48 204 -1 2 -57 22 -123 45 -146 50 -245 101 -284 146 -27 30 -30 40 -30 103 0 63 3 73 30 103 38 44 135 94 285 148 66 24 121 44 123 45 5 3 -27 135 -49 202 -16 49 -25 62 -37 58 -60 -18 -259 -46 -329 -46 -113 0 -142 13 -182 85 -26 46 -32 66 -27 93 9 57 52 131 131 227 41 50 86 104 101 122 l26 32 -41 49 c-22 26 -65 69 -96 95 l-55 48 -87 -77 c-147 -129 -240 -184 -305 -184 -51 1 -140 59 -155 101 -23 65 -11 211 33 425 5 25 2 32 -13 37 -93 29 -203 57 -223 57 -23 0 -28 -9 -60 -102 -45 -134 -113 -270 -151 -302 -27 -23 -40 -26 -104 -26 -69 0 -77 2 -110 31 -42 37 -98 149 -150 299 -20 57 -37 105 -38 106 -1 1 -38 -7 -82 -17z m575 -851 c273 -68 482 -275 562 -555 32 -111 32 -295 0 -407 -79 -277 -294 -487 -566 -556 -108 -27 -274 -27 -382 0 -512 128 -752 709 -483 1168 55 92 200 230 294 279 193 99 374 122 575 71z"/>
<path d="M7384 5970 c-203 -31 -370 -169 -444 -365 -28 -74 -37 -216 -20 -298 17 -82 81 -204 138 -264 223 -233 572 -237 797 -9 82 83 118 145 145 252 25 98 25 170 0 268 -28 109 -63 170 -150 256 -127 128 -298 187 -466 160z"/>
</g>
<g class="gear-group g4">
<path d="M9285 5050 c-70 -18 -125 -37 -125 -42 0 -2 9 -49 20 -106 23 -116 26 -245 7 -281 -6 -14 -34 -38 -61 -53 -85 -50 -118 -35 -367 170 l-28 24 -49 -42 c-27 -22 -64 -59 -81 -80 l-32 -40 86 -102 c87 -105 135 -185 135 -224 0 -12 -12 -43 -26 -69 -45 -80 -102 -90 -310 -55 -65 11 -124 18 -130 16 -6 -2 -21 -40 -32 -83 -38 -145 -44 -126 59 -162 137 -48 192 -75 238 -116 40 -36 41 -39 41 -100 0 -61 -1 -64 -41 -100 -47 -42 -123 -79 -246 -119 -94 -31 -89 -13 -51 -159 11 -43 26 -81 32 -83 6 -2 65 5 130 16 201 34 262 24 307 -50 15 -25 28 -57 28 -71 2 -44 -55 -140 -139 -237 l-81 -93 41 -49 c23 -27 59 -63 81 -81 45 -35 33 -39 134 47 86 73 151 115 203 130 44 14 47 13 96 -15 28 -15 57 -39 63 -52 19 -36 16 -165 -7 -281 -11 -56 -16 -106 -12 -110 13 -12 192 -60 206 -55 8 3 26 43 41 89 36 106 82 203 116 239 25 27 33 29 96 29 65 0 71 -2 100 -32 37 -39 77 -120 118 -241 l30 -88 40 7 c48 8 167 43 177 52 3 4 -2 50 -13 102 -22 108 -27 242 -11 282 7 16 32 39 62 56 46 26 56 29 93 20 52 -11 118 -54 222 -145 l80 -70 52 46 c28 25 66 63 83 84 l33 38 -45 47 c-103 107 -178 225 -178 279 0 15 14 49 30 75 44 70 111 83 275 53 44 -9 99 -18 122 -21 l42 -7 22 74 c12 41 23 91 23 112 l1 39 -105 37 c-127 45 -176 70 -218 109 -30 28 -32 35 -32 95 0 59 3 68 30 96 37 36 105 70 231 115 74 26 95 38 97 54 3 22 -33 167 -47 191 -7 11 -29 9 -127 -8 -208 -37 -272 -26 -318 51 -14 25 -26 57 -26 72 0 44 53 132 140 236 l80 94 -77 78 c-43 43 -81 78 -86 78 -5 0 -37 -25 -70 -56 -84 -75 -197 -150 -241 -158 -29 -6 -45 -2 -82 20 -68 40 -78 62 -76 163 1 47 10 129 21 181 11 52 16 98 13 102 -10 9 -129 44 -177 52 l-41 7 -23 -73 c-35 -109 -93 -229 -130 -265 -29 -29 -39 -33 -87 -33 -33 0 -64 6 -79 16 -39 25 -82 103 -129 230 -25 66 -50 120 -58 121 -7 1 -44 -6 -83 -17z m500 -705 c226 -57 407 -230 477 -455 33 -106 32 -264 0 -370 -38 -121 -79 -187 -172 -280 -133 -134 -273 -192 -465 -192 -361 0 -655 294 -655 657 0 176 66 333 194 461 45 44 103 93 130 107 46 26 164 70 211 80 50 11 225 6 280 -8z"/>
<path d="M9516 4159 c-72 -18 -174 -80 -228 -138 -233 -254 -127 -650 202 -761 54 -19 81 -21 162 -18 85 4 105 9 173 41 374 178 354 708 -33 858 -64 25 -210 35 -276 18z"/>
</g>
<g class="gear-group g5">
<path d="M10747 2905 c-27 -7 -51 -16 -54 -18 -2 -3 3 -51 11 -107 21 -131 13 -169 -43 -194 -57 -26 -87 -13 -204 87 l-59 50 -55 -56 -56 -55 57 -69 c31 -37 66 -88 78 -112 l21 -43 -21 -44 c-18 -36 -27 -44 -59 -50 -34 -6 -162 6 -220 22 -20 5 -24 0 -38 -52 -9 -33 -19 -67 -21 -77 -4 -11 1 -19 13 -23 188 -67 233 -98 233 -161 0 -26 -7 -47 -22 -63 -23 -24 -115 -69 -185 -90 -46 -14 -47 -17 -18 -115 13 -45 5 -44 161 -30 105 10 127 4 154 -42 21 -35 21 -38 4 -81 -9 -24 -43 -76 -75 -114 l-59 -70 28 -33 c15 -18 39 -43 54 -55 l28 -21 67 54 c111 89 149 102 204 70 45 -27 54 -76 35 -192 -9 -52 -13 -98 -9 -102 9 -8 110 -39 129 -39 6 0 24 34 39 75 16 42 41 96 57 121 l28 45 57 -3 c53 -3 59 -6 80 -37 13 -19 37 -72 55 -118 l32 -83 35 6 c20 4 52 12 71 19 40 14 40 15 22 139 -15 98 -5 144 37 169 16 9 40 17 53 17 31 0 97 -39 163 -96 l54 -46 28 22 c15 12 41 37 56 55 l28 34 -34 38 c-57 65 -89 111 -102 150 -11 33 -11 42 6 75 24 47 47 53 153 43 153 -14 148 -15 161 30 20 69 25 105 14 105 -28 0 -175 66 -205 92 -28 25 -34 37 -34 70 0 65 44 95 233 162 12 4 17 12 13 23 -2 10 -12 44 -20 76 -9 31 -18 57 -19 57 -1 0 -37 -7 -80 -15 -142 -27 -190 -18 -222 44 -24 48 -3 94 94 209 l45 53 -52 51 c-59 60 -58 60 -156 -22 -79 -66 -115 -78 -167 -55 -56 26 -64 63 -44 196 8 56 14 103 12 105 -6 6 -113 34 -129 34 -10 0 -21 -8 -25 -17 -66 -190 -89 -223 -157 -223 -69 0 -94 35 -159 223 -7 20 -32 21 -100 2z m378 -477 c68 -17 154 -69 205 -125 220 -240 120 -618 -191 -723 -53 -19 -79 -21 -156 -18 -79 5 -102 10 -168 41 -178 85 -280 277 -247 468 45 264 293 422 557 357z"/>
<path d="M10935 2311 c-184 -48 -285 -231 -228 -412 24 -75 117 -169 191 -193 259 -86 496 157 401 411 -26 68 -92 139 -162 171 -53 25 -153 36 -202 23z"/>
</g>
</g>
</svg>
</div>
<!-- Main Menu Buttons (invisible overlays) -->
<button id="start-button" style="top: 40%;">START</button>
<button id="options-button" style="top: 50%;">OPTIONS</button>
<button id="quit-button" style="top: 60%;">QUIT</button>
<!-- Audio Menu Elements (invisible overlays) -->
<input id="master-slider" type="range" min="0" max="1" step="0.01" value="1.0" style="top: 30%; width: 200px; display: none;">
<input id="music-slider" type="range" min="0" max="1" step="0.01" value="1.0" style="top: 40%; width: 200px; display: none;">
<input id="sfx-slider" type="range" min="0" max="1" step="0.01" value="1.0" style="top: 50%; width: 200px; display: none;">
<input id="weapon-slider" type="range" min="0" max="1" step="0.01" value="1.0" style="top: 60%; width: 200px; display: none;">
<input id="rotors-slider" type="range" min="0" max="1" step="0.01" value="1.0" style="top: 70%; width: 200px; display: none;">
<input id="menu-slider" type="range" min="0" max="1" step="0.01" value="1.0" style="top: 80%; width: 200px; display: none;">
<input id="mute-master" type="checkbox" checked style="top: 30%; left: 60%; width: 50px; height: 50px; display: none;">
<input id="mute-music" type="checkbox" checked style="top: 40%; left: 60%; width: 50px; height: 50px; display: none;">
<input id="mute-sfx" type="checkbox" checked style="top: 50%; left: 60%; width: 50px; height: 50px; display: none;">
<input id="mute-weapon" type="checkbox" checked style="top: 60%; left: 60%; width: 50px; height: 50px; display: none;">
<input id="mute-rotors" type="checkbox" checked style="top: 70%; left: 60%; width: 50px; height: 50px; display: none;">
<input id="mute-menu" type="checkbox" checked style="top: 80%; left: 60%; width: 50px; height: 50px; display: none;">
<button id="audio-reset-button" style="top: 80%; width: 150px;">Reset</button>
<button id="audio-back-button">Back</button>
<!-- Options Menu Elements (invisible overlays, shown when menu loads) -->
<button id="controls-button" style="top: 21%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 50px; display: none;">CONTROLS</button>
<button id="audio-button" style="top: 31%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 50px; display: none;">AUDIO</button>
<button id="advanced-button" style="top: 41%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 50px; display: none;">ADVANCED</button>
<button id="gameplay-button" style="top: 51%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 50px; display: none;">GAMEPLAY SETTINGS</button>
<select id="log-level-select" style="top: 55%;">
<option>DEBUG</option>
<option>INFO</option>
<option>WARNING</option>
<option>ERROR</option>
<option>NONE</option>
</select>
<input id="difficulty-slider" type="range" min="0.5" max="2.0" step="0.1" value="1.0" style="top: 45%;">
<button id="options-back-button">Back</button>
<button id="controls-back-button">Back</button>
<button id="advanced-back-button" style="display: none; top: 80%; left: 25%; width: 200px; height: 50px; transform: translate(-50%, -50%);">Back</button>
<button id="advanced-reset-button" style="display: none; top: 80%; left: 75%; width: 200px; height: 50px; transform: translate(-50%, -50%);">Reset</button>
<button id="gameplay-back-button" style="display: none; top: 80%; left: 25%; width: 200px; height: 50px; transform: translate(-50%, -50%);">Back</button>
<button id="gameplay-reset-button" style="display: none; top: 80%; left: 75%; width: 200px; height: 50px; transform: translate(-50%, -50%);">Reset</button>
<script src="$GODOT_URL"></script> <!-- Godot replaces with actual JS file, e.g., tmp_js_export.js -->
<script>
var engine = new Engine($GODOT_CONFIG); // Official placeholder for config
// Start Godot engine (async for stability)
engine.startGame().then(() => {
console.log("Godot engine started successfully!");
// Hide the loading UI
var loadingDiv = document.getElementById('loading');
if (loadingDiv) {
loadingDiv.style.display = 'none';
loadingDiv.setAttribute('aria-hidden', 'true');
}
window.godotInitialized = true;
}).catch(err => {
console.error("Error starting Godot:", err);
// Fallback if engine fails to boot
alert('Error loading SkyLockAssault. Please refresh.');
});
// Hook buttons/sliders to exposed Godot functions
document.getElementById('controls-button').onclick = () => window.controlsPressed([]);
document.getElementById('audio-button').onclick = () => window.audioPressed([]);
document.getElementById('start-button').onclick = () => window.startPressed([]);
document.getElementById('options-button').onclick = () => window.optionsPressed([]);
document.getElementById('gameplay-button').onclick = () => window.gameplayPressed([]);
document.getElementById('advanced-button').onclick = () => window.advancedPressed([]);
document.getElementById('quit-button').onclick = () => window.quitPressed([]);
document.getElementById('difficulty-slider').onchange = (e) => window.changeDifficulty([parseFloat(e.target.value)]);
document.getElementById('log-level-select').onchange = (e) => window.changeLogLevel([e.target.selectedIndex]);
document.getElementById('master-slider').onchange = (e) => window.changeMasterVolume([parseFloat(e.target.value)]);
document.getElementById('music-slider').onchange = (e) => window.changeMusicVolume([parseFloat(e.target.value)]);
document.getElementById('sfx-slider').onchange = (e) => window.changeSfxVolume([parseFloat(e.target.value)]);
document.getElementById('weapon-slider').onchange = (e) => window.changeWeaponVolume([parseFloat(e.target.value)]);
document.getElementById('rotors-slider').onchange = (e) => window.changeRotorsVolume([parseFloat(e.target.value)]);
document.getElementById('menu-slider').onchange = (e) => window.changeMenuVolume([parseFloat(e.target.value)]);
document.getElementById('mute-master').onchange = (e) => window.toggleMuteMaster([e.target.checked]);
document.getElementById('mute-music').onchange = (e) => window.toggleMuteMusic([e.target.checked]);
document.getElementById('mute-sfx').onchange = (e) => window.toggleMuteSfx([e.target.checked]);
document.getElementById('mute-weapon').onchange = (e) => window.toggleMuteWeapon([e.target.checked]);
document.getElementById('mute-menu').onchange = (e) => window.toggleMuteMenu([e.target.checked]);
document.getElementById('mute-rotors').onchange = (e) => window.toggleMuteRotors([e.target.checked]);
document.getElementById('options-back-button').onclick = () => window.optionsBackPressed([]); // Add this for options back
document.getElementById('controls-back-button').onclick = () => window.controlsBackPressed([]); // Add this for controls back
document.getElementById('audio-back-button').onclick = () => window.audioBackPressed([]); // Add this for audio back
document.getElementById('audio-reset-button').onclick = () => window.audioResetPressed([]); // Add for reset
document.getElementById('advanced-back-button').onclick = () => window.advancedBackPressed([]); // Add this for advanced back
document.getElementById('advanced-reset-button').onclick = () => window.advancedResetPressed([]); // Add for reset
document.getElementById('gameplay-back-button').onclick = () => window.gameplayBackPressed([]); // Add this for advanced back
document.getElementById('gameplay-reset-button').onclick = () => window.gameplayResetPressed([]); // Add for reset
</script>
<div class="ime" contenteditable="true" style="background: none; opacity: 0; position: fixed; text-align: left; font-size: 1px; left: 0px; top: 0px; width: 100%; height: 40px; pointer-events: none; display: none;"></div>
</body>
</html>