1
0
Fork 0
forked from Simnation/Main
Main/resources/[jobs]/[police]/gs_trackerdart/ui/index.html

122 lines
4.2 KiB
HTML
Raw Normal View History

2025-06-07 08:51:21 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tracker Dart</title>
<style>
body {
margin: 0;
padding: 0;
background: transparent;
font-family: 'Orbitron', sans-serif;
overflow: hidden;
}
.hud-container {
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #111, #333);
border: 2px solid #333;
border-radius: 12px;
padding: 15px 30px;
display: flex;
flex-direction: column;
align-items: center;
color: white;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
opacity: 0;
transition: opacity 0.3s;
pointer-events: none;
}
.target-status {
font-size: 24px;
font-weight: bold;
margin-bottom: 10px;
transition: color 0.3s, text-shadow 0.3s;
}
.target-status.active {
color: #00ff00;
text-shadow: 0 0 10px #00ff00, 0 0 20px #00ff00;
}
.target-status.inactive {
color: #ff0000;
text-shadow: 0 0 10px #ff0000, 0 0 20px #ff0000;
}
.darts-left {
font-size: 18px;
font-weight: 600;
}
</style>
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap" rel="stylesheet" />
</head>
<body>
<div class="hud-container">
<div id="targetStatus" class="target-status inactive">TARGET</div>
<div id="dartsLeft" class="darts-left">Darts Left: 5</div>
</div>
<script>
window.addEventListener('message', (event) => {
const action = event.data.action;
switch (action) {
case 'setOverlayStatus':
toggleOverlay(event.data.active, event.data.options);
break;
case 'setTargetStatus':
updateTargetStatus(event.data.active);
break;
case 'setDartsLeft':
updateDartsLeft(event.data.count);
break;
default:
console.log(`Unknown action: ${action}`);
break;
}
});
const toggleOverlay = (open, options = {}) => {
const overlay = document.querySelector('.hud-container');
if (open) {
overlay.style.opacity = 1;
overlay.style.pointerEvents = 'auto';
overlay.style.bottom = options?.vertical ?? '20px';
overlay.style.left = options?.horizontal ?? '50%';
} else {
overlay.style.opacity = 0;
overlay.style.pointerEvents = 'none';
}
};
let dartsLeft = 0;
let hasTarget = false;
const targetStatusElement = document.getElementById('targetStatus');
const dartsLeftElement = document.getElementById('dartsLeft');
const updateTargetStatus = (active) => {
hasTarget = active;
if (hasTarget) {
targetStatusElement.textContent = 'TARGET';
targetStatusElement.className = 'target-status active';
} else {
targetStatusElement.textContent = 'TARGET';
targetStatusElement.className = 'target-status inactive';
}
};
const updateDartsLeft = (count) => {
dartsLeft = count;
dartsLeftElement.textContent = `Darts Left: ${dartsLeft}`;
};
</script>
</body>
</html>