121 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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>
 | 
