Spaces:
Running
Running
Add 2 files
Browse files- index.html +424 -61
- prompts.txt +3 -1
index.html
CHANGED
@@ -3,17 +3,62 @@
|
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
-
<title>Nebula Drift -
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
<style>
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
:root {
|
13 |
--neon-blue: #00f7ff;
|
14 |
--neon-purple: #b300ff;
|
15 |
--deep-space: #0a0a1a;
|
16 |
--star-dust: #e0e0e0;
|
|
|
|
|
|
|
|
|
|
|
17 |
}
|
18 |
|
19 |
body {
|
@@ -34,7 +79,7 @@
|
|
34 |
position: relative;
|
35 |
width: 100%;
|
36 |
height: 100vh;
|
37 |
-
background-image: url('https://images.unsplash.com/photo-
|
38 |
background-size: cover;
|
39 |
background-position: center;
|
40 |
}
|
@@ -139,42 +184,177 @@
|
|
139 |
border-top: 1px solid var(--neon-blue);
|
140 |
}
|
141 |
|
142 |
-
.
|
143 |
position: absolute;
|
|
|
|
|
144 |
transition: all 0.5s ease;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
cursor: pointer;
|
146 |
}
|
147 |
|
148 |
-
.
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
}
|
151 |
</style>
|
152 |
</head>
|
153 |
<body>
|
154 |
<div class="game-container" id="gameContainer">
|
155 |
-
<!-- Game Scene (
|
156 |
<div class="absolute inset-0 flex items-center justify-center">
|
157 |
-
<div class="w-full h-full bg-black bg-opacity-
|
158 |
-
<!--
|
159 |
-
<div class="flex-1 relative overflow-hidden">
|
160 |
-
<!--
|
161 |
-
<div id="
|
162 |
|
163 |
-
<!--
|
164 |
-
<div class="
|
165 |
-
<div class="
|
166 |
-
|
167 |
-
|
168 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
<div>
|
170 |
-
<
|
171 |
-
<
|
|
|
|
|
|
|
|
|
|
|
172 |
</div>
|
173 |
</div>
|
174 |
-
<div class="
|
175 |
-
<
|
176 |
-
<
|
177 |
-
|
|
|
|
|
|
|
178 |
</div>
|
179 |
</div>
|
180 |
</div>
|
@@ -247,7 +427,7 @@
|
|
247 |
// Initialize game elements
|
248 |
initPartyCards();
|
249 |
initNodeMap();
|
250 |
-
|
251 |
|
252 |
// UI Toggles
|
253 |
const mapToggle = document.getElementById('mapToggle');
|
@@ -255,7 +435,10 @@
|
|
255 |
const closeMap = document.getElementById('closeMap');
|
256 |
const menuToggle = document.getElementById('menuToggle');
|
257 |
const quickMenu = document.getElementById('quickMenu');
|
258 |
-
const
|
|
|
|
|
|
|
259 |
|
260 |
mapToggle.addEventListener('click', function() {
|
261 |
mapOverlay.classList.toggle('hidden');
|
@@ -271,20 +454,21 @@
|
|
271 |
quickMenu.classList.toggle('hidden');
|
272 |
});
|
273 |
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
}
|
281 |
});
|
282 |
|
283 |
-
//
|
284 |
-
document.
|
285 |
-
if (e.target.closest('.
|
286 |
-
|
287 |
-
|
|
|
|
|
288 |
}
|
289 |
});
|
290 |
});
|
@@ -391,33 +575,212 @@
|
|
391 |
});
|
392 |
}
|
393 |
|
394 |
-
function
|
395 |
-
const
|
|
|
|
|
|
|
|
|
396 |
|
397 |
-
// Sample
|
398 |
-
const
|
399 |
-
{
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
404 |
];
|
405 |
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
}
|
422 |
</script>
|
423 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=weltenschmid/nebuladrift" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
|
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Nebula Drift - Planetary Explorer</title>
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
<style>
|
10 |
+
/* Inlined Orbitron and Roboto fonts from Google Fonts */
|
11 |
+
@font-face {
|
12 |
+
font-family: 'Orbitron';
|
13 |
+
font-style: normal;
|
14 |
+
font-weight: 400;
|
15 |
+
font-display: swap;
|
16 |
+
src: url(https://fonts.gstatic.com/s/orbitron/v25/yMJRMIlzdpvBhQQL_Qq7dy0.woff2) format('woff2');
|
17 |
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
18 |
+
}
|
19 |
+
@font-face {
|
20 |
+
font-family: 'Orbitron';
|
21 |
+
font-style: normal;
|
22 |
+
font-weight: 700;
|
23 |
+
font-display: swap;
|
24 |
+
src: url(https://fonts.gstatic.com/s/orbitron/v25/yMJRMIlzdpvBhQQL_Qq7dy0.woff2) format('woff2');
|
25 |
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
26 |
+
}
|
27 |
+
@font-face {
|
28 |
+
font-family: 'Roboto';
|
29 |
+
font-style: normal;
|
30 |
+
font-weight: 300;
|
31 |
+
font-display: swap;
|
32 |
+
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
|
33 |
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
34 |
+
}
|
35 |
+
@font-face {
|
36 |
+
font-family: 'Roboto';
|
37 |
+
font-style: normal;
|
38 |
+
font-weight: 400;
|
39 |
+
font-display: swap;
|
40 |
+
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
|
41 |
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
42 |
+
}
|
43 |
+
@font-face {
|
44 |
+
font-family: 'Roboto';
|
45 |
+
font-style: normal;
|
46 |
+
font-weight: 500;
|
47 |
+
font-display: swap;
|
48 |
+
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2');
|
49 |
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
50 |
+
}
|
51 |
|
52 |
:root {
|
53 |
--neon-blue: #00f7ff;
|
54 |
--neon-purple: #b300ff;
|
55 |
--deep-space: #0a0a1a;
|
56 |
--star-dust: #e0e0e0;
|
57 |
+
--planet-1: #ff6b6b;
|
58 |
+
--planet-2: #48dbfb;
|
59 |
+
--planet-3: #1dd1a1;
|
60 |
+
--planet-4: #feca57;
|
61 |
+
--planet-5: #5f27cd;
|
62 |
}
|
63 |
|
64 |
body {
|
|
|
79 |
position: relative;
|
80 |
width: 100%;
|
81 |
height: 100vh;
|
82 |
+
background-image: url('https://images.unsplash.com/photo-1462331940025-496dfbfc7564?q=80&w=1000');
|
83 |
background-size: cover;
|
84 |
background-position: center;
|
85 |
}
|
|
|
184 |
border-top: 1px solid var(--neon-blue);
|
185 |
}
|
186 |
|
187 |
+
.planet {
|
188 |
position: absolute;
|
189 |
+
border-radius: 50%;
|
190 |
+
cursor: pointer;
|
191 |
transition: all 0.5s ease;
|
192 |
+
display: flex;
|
193 |
+
flex-direction: column;
|
194 |
+
align-items: center;
|
195 |
+
}
|
196 |
+
|
197 |
+
.planet:hover {
|
198 |
+
transform: scale(1.1);
|
199 |
+
}
|
200 |
+
|
201 |
+
.planet-1 {
|
202 |
+
background: radial-gradient(circle at 30% 30%, var(--planet-1), #cc0000);
|
203 |
+
box-shadow: 0 0 20px var(--planet-1);
|
204 |
+
}
|
205 |
+
|
206 |
+
.planet-2 {
|
207 |
+
background: radial-gradient(circle at 30% 30%, var(--planet-2), #0099cc);
|
208 |
+
box-shadow: 0 0 20px var(--planet-2);
|
209 |
+
}
|
210 |
+
|
211 |
+
.planet-3 {
|
212 |
+
background: radial-gradient(circle at 30% 30%, var(--planet-3), #00997a);
|
213 |
+
box-shadow: 0 0 20px var(--planet-3);
|
214 |
+
}
|
215 |
+
|
216 |
+
.planet-4 {
|
217 |
+
background: radial-gradient(circle at 30% 30%, var(--planet-4), #cc9900);
|
218 |
+
box-shadow: 0 0 20px var(--planet-4);
|
219 |
+
}
|
220 |
+
|
221 |
+
.planet-5 {
|
222 |
+
background: radial-gradient(circle at 30% 30%, var(--planet-5), #4a0099);
|
223 |
+
box-shadow: 0 0 20px var(--planet-5);
|
224 |
+
}
|
225 |
+
|
226 |
+
.planet-label {
|
227 |
+
margin-top: 5px;
|
228 |
+
font-size: 0.8rem;
|
229 |
+
background: rgba(0, 0, 0, 0.7);
|
230 |
+
padding: 2px 6px;
|
231 |
+
border-radius: 10px;
|
232 |
+
white-space: nowrap;
|
233 |
+
}
|
234 |
+
|
235 |
+
.inhabitants-panel {
|
236 |
+
position: absolute;
|
237 |
+
bottom: 80px;
|
238 |
+
left: 50%;
|
239 |
+
transform: translateX(-50%);
|
240 |
+
width: 80%;
|
241 |
+
max-height: 200px;
|
242 |
+
background: rgba(10, 10, 26, 0.95);
|
243 |
+
border: 1px solid var(--neon-purple);
|
244 |
+
border-radius: 8px;
|
245 |
+
padding: 15px;
|
246 |
+
display: none;
|
247 |
+
flex-wrap: wrap;
|
248 |
+
justify-content: center;
|
249 |
+
gap: 10px;
|
250 |
+
overflow-y: auto;
|
251 |
+
box-shadow: 0 0 20px rgba(179, 0, 255, 0.5);
|
252 |
+
}
|
253 |
+
|
254 |
+
.inhabitant {
|
255 |
+
width: 60px;
|
256 |
+
text-align: center;
|
257 |
cursor: pointer;
|
258 |
}
|
259 |
|
260 |
+
.inhabitant img {
|
261 |
+
width: 50px;
|
262 |
+
height: 50px;
|
263 |
+
border-radius: 50%;
|
264 |
+
object-fit: cover;
|
265 |
+
border: 2px solid var(--neon-blue);
|
266 |
+
margin-bottom: 5px;
|
267 |
+
}
|
268 |
+
|
269 |
+
.inhabitant-name {
|
270 |
+
font-size: 0.7rem;
|
271 |
+
white-space: nowrap;
|
272 |
+
overflow: hidden;
|
273 |
+
text-overflow: ellipsis;
|
274 |
+
}
|
275 |
+
|
276 |
+
.planet-details {
|
277 |
+
position: absolute;
|
278 |
+
top: 50%;
|
279 |
+
left: 50%;
|
280 |
+
transform: translate(-50%, -50%);
|
281 |
+
width: 70%;
|
282 |
+
max-width: 500px;
|
283 |
+
background: rgba(10, 10, 26, 0.95);
|
284 |
+
border: 1px solid var(--neon-purple);
|
285 |
+
border-radius: 8px;
|
286 |
+
padding: 20px;
|
287 |
+
display: none;
|
288 |
+
z-index: 100;
|
289 |
+
box-shadow: 0 0 30px rgba(179, 0, 255, 0.7);
|
290 |
+
}
|
291 |
+
|
292 |
+
.close-panel {
|
293 |
+
position: absolute;
|
294 |
+
top: 10px;
|
295 |
+
right: 10px;
|
296 |
+
color: var(--neon-blue);
|
297 |
+
cursor: pointer;
|
298 |
+
}
|
299 |
+
|
300 |
+
.planet-ring {
|
301 |
+
position: absolute;
|
302 |
+
border-radius: 50%;
|
303 |
+
border: 2px solid rgba(255, 255, 255, 0.5);
|
304 |
+
transform-origin: center;
|
305 |
+
}
|
306 |
+
|
307 |
+
.pulse {
|
308 |
+
animation: pulse 2s infinite;
|
309 |
+
}
|
310 |
+
|
311 |
+
@keyframes pulse {
|
312 |
+
0% { transform: scale(1); opacity: 0.7; }
|
313 |
+
50% { transform: scale(1.05); opacity: 1; }
|
314 |
+
100% { transform: scale(1); opacity: 0.7; }
|
315 |
}
|
316 |
</style>
|
317 |
</head>
|
318 |
<body>
|
319 |
<div class="game-container" id="gameContainer">
|
320 |
+
<!-- Game Scene (Planetary View) -->
|
321 |
<div class="absolute inset-0 flex items-center justify-center">
|
322 |
+
<div class="w-full h-full bg-black bg-opacity-30 flex flex-col">
|
323 |
+
<!-- Space Background with Planets -->
|
324 |
+
<div class="flex-1 relative overflow-hidden" id="spaceView">
|
325 |
+
<!-- Planets will be dynamically added here -->
|
326 |
+
<div id="planetsContainer"></div>
|
327 |
|
328 |
+
<!-- Inhabitants Panel -->
|
329 |
+
<div class="inhabitants-panel" id="inhabitantsPanel">
|
330 |
+
<div class="close-panel" id="closeInhabitants"><i class="fas fa-times"></i></div>
|
331 |
+
<h3 class="w-full text-center sci-fi-font text-neon-blue mb-3">Planetary Inhabitants</h3>
|
332 |
+
<!-- Inhabitants will be dynamically added here -->
|
333 |
+
<div id="inhabitantsList"></div>
|
334 |
+
</div>
|
335 |
+
|
336 |
+
<!-- Planet Details Panel -->
|
337 |
+
<div class="planet-details" id="planetDetails">
|
338 |
+
<div class="close-panel" id="closePlanetDetails"><i class="fas fa-times"></i></div>
|
339 |
+
<div class="flex items-start">
|
340 |
+
<div class="w-20 h-20 rounded-full mr-4" id="planetDetailImage"></div>
|
341 |
<div>
|
342 |
+
<h2 class="sci-fi-font text-xl text-neon-purple mb-2" id="planetDetailName"></h2>
|
343 |
+
<div class="text-sm mb-3" id="planetDetailDescription"></div>
|
344 |
+
<div class="flex space-x-4 text-xs">
|
345 |
+
<div><span class="text-neon-blue">Population:</span> <span id="planetDetailPopulation"></span></div>
|
346 |
+
<div><span class="text-neon-blue">Tech Level:</span> <span id="planetDetailTech"></span></div>
|
347 |
+
<div><span class="text-neon-blue">Status:</span> <span id="planetDetailStatus"></span></div>
|
348 |
+
</div>
|
349 |
</div>
|
350 |
</div>
|
351 |
+
<div class="mt-4 pt-4 border-t border-neon-blue">
|
352 |
+
<h4 class="sci-fi-font text-neon-blue mb-2">Notable Locations</h4>
|
353 |
+
<div class="flex flex-wrap gap-2" id="planetLocations"></div>
|
354 |
+
</div>
|
355 |
+
<div class="mt-4 pt-4 border-t border-neon-blue">
|
356 |
+
<h4 class="sci-fi-font text-neon-blue mb-2">Planetary Resources</h4>
|
357 |
+
<div class="flex flex-wrap gap-2" id="planetResources"></div>
|
358 |
</div>
|
359 |
</div>
|
360 |
</div>
|
|
|
427 |
// Initialize game elements
|
428 |
initPartyCards();
|
429 |
initNodeMap();
|
430 |
+
initPlanets();
|
431 |
|
432 |
// UI Toggles
|
433 |
const mapToggle = document.getElementById('mapToggle');
|
|
|
435 |
const closeMap = document.getElementById('closeMap');
|
436 |
const menuToggle = document.getElementById('menuToggle');
|
437 |
const quickMenu = document.getElementById('quickMenu');
|
438 |
+
const closeInhabitants = document.getElementById('closeInhabitants');
|
439 |
+
const closePlanetDetails = document.getElementById('closePlanetDetails');
|
440 |
+
const inhabitantsPanel = document.getElementById('inhabitantsPanel');
|
441 |
+
const planetDetails = document.getElementById('planetDetails');
|
442 |
|
443 |
mapToggle.addEventListener('click', function() {
|
444 |
mapOverlay.classList.toggle('hidden');
|
|
|
454 |
quickMenu.classList.toggle('hidden');
|
455 |
});
|
456 |
|
457 |
+
closeInhabitants.addEventListener('click', function() {
|
458 |
+
inhabitantsPanel.style.display = 'none';
|
459 |
+
});
|
460 |
+
|
461 |
+
closePlanetDetails.addEventListener('click', function() {
|
462 |
+
planetDetails.style.display = 'none';
|
|
|
463 |
});
|
464 |
|
465 |
+
// Close panels when clicking outside
|
466 |
+
document.addEventListener('click', function(e) {
|
467 |
+
if (!inhabitantsPanel.contains(e.target) && !e.target.closest('.planet')) {
|
468 |
+
inhabitantsPanel.style.display = 'none';
|
469 |
+
}
|
470 |
+
if (!planetDetails.contains(e.target) && !e.target.closest('.planet') && !e.target.closest('.inhabitant')) {
|
471 |
+
planetDetails.style.display = 'none';
|
472 |
}
|
473 |
});
|
474 |
});
|
|
|
575 |
});
|
576 |
}
|
577 |
|
578 |
+
function initPlanets() {
|
579 |
+
const planetsContainer = document.getElementById('planetsContainer');
|
580 |
+
const inhabitantsPanel = document.getElementById('inhabitantsPanel');
|
581 |
+
const inhabitantsList = document.getElementById('inhabitantsList');
|
582 |
+
const planetDetails = document.getElementById('planetDetails');
|
583 |
+
const planetResources = document.getElementById('planetResources');
|
584 |
|
585 |
+
// Sample planetary data
|
586 |
+
const planets = [
|
587 |
+
{
|
588 |
+
id: 1,
|
589 |
+
name: "Pyronis",
|
590 |
+
type: "planet-1",
|
591 |
+
x: 20,
|
592 |
+
y: 30,
|
593 |
+
size: 80,
|
594 |
+
description: "A molten world with rivers of lava and towering obsidian spires. Home to the heat-resistant Pyronians.",
|
595 |
+
population: "12.7 billion",
|
596 |
+
tech: "Industrial",
|
597 |
+
status: "Allied",
|
598 |
+
resources: ["Magma Crystals", "Obsidian", "Thermal Energy"],
|
599 |
+
inhabitants: [
|
600 |
+
{ id: 1, name: "Ignar", img: "https://i.pravatar.cc/150?img=11", role: "High Priest" },
|
601 |
+
{ id: 2, name: "Vulthra", img: "https://i.pravatar.cc/150?img=12", role: "Miner Guildmaster" },
|
602 |
+
{ id: 3, name: "Flarxis", img: "https://i.pravatar.cc/150?img=13", role: "Diplomat" }
|
603 |
+
],
|
604 |
+
locations: ["Obsidian Citadel", "Magma Forges", "The Eternal Caldera"]
|
605 |
+
},
|
606 |
+
{
|
607 |
+
id: 2,
|
608 |
+
name: "Aquarion",
|
609 |
+
type: "planet-2",
|
610 |
+
x: 50,
|
611 |
+
y: 60,
|
612 |
+
size: 100,
|
613 |
+
description: "A water world with floating cities and deep ocean trenches hiding ancient secrets.",
|
614 |
+
population: "8.3 billion",
|
615 |
+
tech: "Advanced",
|
616 |
+
status: "Neutral",
|
617 |
+
resources: ["Aqua Crystals", "Deep Sea Minerals", "Hydro Energy"],
|
618 |
+
inhabitants: [
|
619 |
+
{ id: 4, name: "Marei", img: "https://i.pravatar.cc/150?img=14", role: "Oceanographer" },
|
620 |
+
{ id: 5, name: "Tidalis", img: "https://i.pravatar.cc/150?img=15", role: "Fleet Admiral" },
|
621 |
+
{ id: 6, name: "Nerissa", img: "https://i.pravatar.cc/150?img=16", role: "Historian" }
|
622 |
+
],
|
623 |
+
locations: ["Neptune Spire", "Abyssal Station", "The Coral Bazaar"]
|
624 |
+
},
|
625 |
+
{
|
626 |
+
id: 3,
|
627 |
+
name: "Verdantis",
|
628 |
+
type: "planet-3",
|
629 |
+
x: 70,
|
630 |
+
y: 40,
|
631 |
+
size: 90,
|
632 |
+
description: "A lush jungle planet with towering flora and diverse ecosystems. The Verdans live in harmony with nature.",
|
633 |
+
population: "5.2 billion",
|
634 |
+
tech: "Pre-Warp",
|
635 |
+
status: "Friendly",
|
636 |
+
resources: ["Bio-Organic Compounds", "Rare Herbs", "Solar Energy"],
|
637 |
+
inhabitants: [
|
638 |
+
{ id: 7, name: "Silva", img: "https://i.pravatar.cc/150?img=17", role: "Elder" },
|
639 |
+
{ id: 8, name: "Terrax", img: "https://i.pravatar.cc/150?img=18", role: "Hunter" },
|
640 |
+
{ id: 9, name: "Flora", img: "https://i.pravatar.cc/150?img=19", role: "Herbalist" }
|
641 |
+
],
|
642 |
+
locations: ["Canopy City", "Root Nexus", "The Shimmering Falls"]
|
643 |
+
},
|
644 |
+
{
|
645 |
+
id: 4,
|
646 |
+
name: "Aurelia",
|
647 |
+
type: "planet-4",
|
648 |
+
x: 30,
|
649 |
+
y: 70,
|
650 |
+
size: 70,
|
651 |
+
description: "A desert planet with golden sands and ancient ruins. The Aurelians are nomadic traders and scholars.",
|
652 |
+
population: "3.9 billion",
|
653 |
+
tech: "Medieval",
|
654 |
+
status: "Cautious",
|
655 |
+
resources: ["Golden Sand", "Ancient Artifacts", "Solar Power"],
|
656 |
+
inhabitants: [
|
657 |
+
{ id: 10, name: "Solon", img: "https://i.pravatar.cc/150?img=20", role: "Archaeologist" },
|
658 |
+
{ id: 11, name: "Dunea", img: "https://i.pravatar.cc/150?img=21", role: "Merchant Queen" },
|
659 |
+
{ id: 12, name: "Ozymar", img: "https://i.pravatar.cc/150?img=22", role: "Star Gazer" }
|
660 |
+
],
|
661 |
+
locations: ["The Golden Pyramid", "Oasis of Mirrors", "The Singing Dunes"]
|
662 |
+
},
|
663 |
+
{
|
664 |
+
id: 5,
|
665 |
+
name: "Umbrax",
|
666 |
+
type: "planet-5",
|
667 |
+
x: 80,
|
668 |
+
y: 20,
|
669 |
+
size: 60,
|
670 |
+
description: "A dark planet shrouded in perpetual twilight. The Umbrians are secretive and technologically advanced.",
|
671 |
+
population: "1.1 billion",
|
672 |
+
tech: "Cutting Edge",
|
673 |
+
status: "Hostile",
|
674 |
+
resources: ["Dark Matter", "Void Crystals", "Zero-Point Energy"],
|
675 |
+
inhabitants: [
|
676 |
+
{ id: 13, name: "Noctis", img: "https://i.pravatar.cc/150?img=23", role: "Shadow Minister" },
|
677 |
+
{ id: 14, name: "Eclipsa", img: "https://i.pravatar.cc/150?img=24", role: "Scientist" },
|
678 |
+
{ id: 15, name: "Voidar", img: "https://i.pravatar.cc/150?img=25", role: "Security Chief" }
|
679 |
+
],
|
680 |
+
locations: ["The Dark Spire", "Twilight Archives", "The Veil Gate"]
|
681 |
+
}
|
682 |
];
|
683 |
|
684 |
+
// Create planets
|
685 |
+
planets.forEach(planet => {
|
686 |
+
const planetEl = document.createElement('div');
|
687 |
+
planetEl.className = `planet ${planet.type} pulse`;
|
688 |
+
planetEl.style.width = `${planet.size}px`;
|
689 |
+
planetEl.style.height = `${planet.size}px`;
|
690 |
+
planetEl.style.left = `${planet.x}%`;
|
691 |
+
planetEl.style.top = `${planet.y}%`;
|
692 |
+
planetEl.dataset.planetId = planet.id;
|
693 |
+
|
694 |
+
// Add rings for some planets
|
695 |
+
if (planet.id === 2 || planet.id === 5) {
|
696 |
+
const ring = document.createElement('div');
|
697 |
+
ring.className = 'planet-ring';
|
698 |
+
ring.style.width = `${planet.size * 1.8}px`;
|
699 |
+
ring.style.height = `${planet.size * 0.4}px`;
|
700 |
+
ring.style.transform = `rotate(${Math.random() * 60}deg)`;
|
701 |
+
planetEl.appendChild(ring);
|
702 |
+
}
|
703 |
+
|
704 |
+
// Add planet label
|
705 |
+
const label = document.createElement('div');
|
706 |
+
label.className = 'planet-label sci-fi-font';
|
707 |
+
label.textContent = planet.name;
|
708 |
+
planetEl.appendChild(label);
|
709 |
+
|
710 |
+
// Add click event to show inhabitants
|
711 |
+
planetEl.addEventListener('click', function(e) {
|
712 |
+
e.stopPropagation();
|
713 |
+
|
714 |
+
// Position inhabitants panel near the planet
|
715 |
+
inhabitantsPanel.style.left = `${planet.x}%`;
|
716 |
+
inhabitantsPanel.style.transform = 'translateX(-50%)';
|
717 |
+
inhabitantsPanel.style.display = 'flex';
|
718 |
+
|
719 |
+
// Populate inhabitants
|
720 |
+
inhabitantsList.innerHTML = '';
|
721 |
+
planet.inhabitants.forEach(inhabitant => {
|
722 |
+
const inhabitantEl = document.createElement('div');
|
723 |
+
inhabitantEl.className = 'inhabitant';
|
724 |
+
inhabitantEl.innerHTML = `
|
725 |
+
<img src="${inhabitant.img}" alt="${inhabitant.name}">
|
726 |
+
<div class="inhabitant-name">${inhabitant.name}</div>
|
727 |
+
<div class="text-xxs text-neon-blue">${inhabitant.role}</div>
|
728 |
+
`;
|
729 |
+
inhabitantEl.addEventListener('click', function() {
|
730 |
+
showPlanetDetails(planet);
|
731 |
+
});
|
732 |
+
inhabitantsList.appendChild(inhabitantEl);
|
733 |
+
});
|
734 |
+
});
|
735 |
+
|
736 |
+
// Add double click for planet details
|
737 |
+
planetEl.addEventListener('dblclick', function() {
|
738 |
+
showPlanetDetails(planet);
|
739 |
+
});
|
740 |
+
|
741 |
+
planetsContainer.appendChild(planetEl);
|
742 |
});
|
743 |
+
|
744 |
+
function showPlanetDetails(planet) {
|
745 |
+
const planetDetailImage = document.getElementById('planetDetailImage');
|
746 |
+
const planetDetailName = document.getElementById('planetDetailName');
|
747 |
+
const planetDetailDescription = document.getElementById('planetDetailDescription');
|
748 |
+
const planetDetailPopulation = document.getElementById('planetDetailPopulation');
|
749 |
+
const planetDetailTech = document.getElementById('planetDetailTech');
|
750 |
+
const planetDetailStatus = document.getElementById('planetDetailStatus');
|
751 |
+
const planetLocations = document.getElementById('planetLocations');
|
752 |
+
const planetResources = document.getElementById('planetResources');
|
753 |
+
|
754 |
+
// Set planet details
|
755 |
+
planetDetailImage.className = `w-20 h-20 rounded-full mr-4 ${planet.type}`;
|
756 |
+
planetDetailName.textContent = planet.name;
|
757 |
+
planetDetailDescription.textContent = planet.description;
|
758 |
+
planetDetailPopulation.textContent = planet.population;
|
759 |
+
planetDetailTech.textContent = planet.tech;
|
760 |
+
planetDetailStatus.textContent = planet.status;
|
761 |
+
|
762 |
+
// Add locations
|
763 |
+
planetLocations.innerHTML = '';
|
764 |
+
planet.locations.forEach(location => {
|
765 |
+
const locationEl = document.createElement('div');
|
766 |
+
locationEl.className = 'px-3 py-1 bg-neon-blue bg-opacity-20 rounded-full text-xs';
|
767 |
+
locationEl.textContent = location;
|
768 |
+
planetLocations.appendChild(locationEl);
|
769 |
+
});
|
770 |
+
|
771 |
+
// Add resources
|
772 |
+
planetResources.innerHTML = '';
|
773 |
+
planet.resources.forEach(resource => {
|
774 |
+
const resourceEl = document.createElement('div');
|
775 |
+
resourceEl.className = 'px-3 py-1 bg-neon-purple bg-opacity-20 rounded-full text-xs';
|
776 |
+
resourceEl.textContent = resource;
|
777 |
+
planetResources.appendChild(resourceEl);
|
778 |
+
});
|
779 |
+
|
780 |
+
// Show panel
|
781 |
+
planetDetails.style.display = 'block';
|
782 |
+
inhabitantsPanel.style.display = 'none';
|
783 |
+
}
|
784 |
}
|
785 |
</script>
|
786 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=weltenschmid/nebuladrift" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
prompts.txt
CHANGED
@@ -1 +1,3 @@
|
|
1 |
-
Can you design a game interface for a round-based sci-fi rpg with a blend of visual novel? The map is a node-based array of scenes. Characters may freely roam the map. Maximum 15 visible characters on the screen. The players 5 characters are callable cards placed on the bottom of the screen. The interface should be as lightweight as possible on first sight. But may be expanded, blended in or slid in as needed or when hovered over. A layer for the world map is for easy navigation between previously explored map elements. The game view should be maximised and having the player immersed in the point of view of the avatar. This means a little space below the whole game screen to have the player look on herself to view her status.
|
|
|
|
|
|
1 |
+
Can you design a game interface for a round-based sci-fi rpg with a blend of visual novel? The map is a node-based array of scenes. Characters may freely roam the map. Maximum 15 visible characters on the screen. The players 5 characters are callable cards placed on the bottom of the screen. The interface should be as lightweight as possible on first sight. But may be expanded, blended in or slid in as needed or when hovered over. A layer for the world map is for easy navigation between previously explored map elements. The game view should be maximised and having the player immersed in the point of view of the avatar. This means a little space below the whole game screen to have the player look on herself to view her status.
|
2 |
+
Nice! Now this looks like the map overview. Could the people be replaced by planets and instead shown as inhabitants of such planets?
|
3 |
+
Is it possible to inline css and fonts or having them locally accessible?
|