edu / index.html
Pnkj01's picture
Create a Free Fire enhancement web panel with these elements: weapon-class tabs (AR/SMG/Shotgun/Pistol) showing real-time recoil compensation strength (visual percentage bars), aimlock precision indicators (headshot/center-mass icons), connection status to local bridge (🟢/🔴), live battle metrics (distance/hit probability), canvas-based recoil pattern visualizer, weapon-specific settings (sliders for sensitivity/humanization), performance dashboard (system latency/FPS), safety toggles (auto-disable/cooldown), local bridge installer button ("INSTALL FF_ENHANCER_SUITE"), real-time combat log ("Target locked: 87m"), threat-level color coding (green<50m/yellow>100m/red>100m), dark tactical UI (#0a0a12 background with weapon-class accents: AR-red/SMG-blue/Shotgun-orange/Pistol-purple), and neural decision display showing targeting logic; implement WebSocket controls sending JSON commands: {"weapon":"AK47","mode":"aimlock+recoil","params":{"vertical":0.85}}; include prominent disclaimer: "⚠️ REQUIRES LOCAL COMPONENTS - EXPERIMENTAL USE ONLY". - Initial Deployment
92021fb verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FF ENHANCER SUITE | Tactical Combat Enhancement Panel</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Roboto+Mono:wght@300;400;600&display=swap');
body {
font-family: 'Roboto Mono', monospace;
background-color: #0a0a12;
color: #e0e0e0;
overflow-x: hidden;
}
.header-font {
font-family: 'Orbitron', sans-serif;
}
.weapon-tab.active {
border-bottom-width: 3px;
}
.recoil-bar {
height: 12px;
border-radius: 6px;
background: linear-gradient(90deg, #4ade80, #f59e0b, #ef4444);
}
.recoil-fill {
height: 100%;
border-radius: 6px;
background-color: #3b82f6;
transition: width 0.3s ease;
}
.canvas-container {
position: relative;
}
.recoil-canvas {
background-color: #1a1a2e;
border-radius: 8px;
}
.combat-log-entry {
animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(5px); }
to { opacity: 1; transform: translateY(0); }
}
.neural-node {
width: 8px;
height: 8px;
border-radius: 50%;
background-color: #10b981;
position: absolute;
}
.neural-connection {
position: absolute;
height: 2px;
background-color: rgba(16, 185, 129, 0.3);
transform-origin: 0 0;
}
.threat-green { color: #10b981; }
.threat-yellow { color: #f59e0b; }
.threat-red { color: #ef4444; }
</style>
</head>
<body class="min-h-screen">
<div class="container mx-auto px-4 py-6">
<!-- Header -->
<div class="flex flex-col md:flex-row justify-between items-center mb-8">
<div class="flex items-center mb-4 md:mb-0">
<div class="w-12 h-12 bg-red-600 rounded-lg flex items-center justify-center mr-3">
<i class="fas fa-crosshairs text-white text-2xl"></i>
</div>
<h1 class="header-font text-2xl md:text-3xl font-bold text-white">FF ENHANCER SUITE</h1>
</div>
<div class="flex items-center space-x-4">
<div class="flex items-center">
<span class="text-sm mr-2">BRIDGE:</span>
<span id="bridgeStatus" class="text-xl">🔴</span>
</div>
<button id="installBridge" class="bg-gradient-to-r from-purple-600 to-blue-500 hover:from-purple-700 hover:to-blue-600 text-white px-4 py-2 rounded-md font-semibold text-sm transition-all duration-300">
INSTALL FF_ENHANCER_SUITE
</button>
</div>
</div>
<!-- Disclaimer -->
<div class="bg-yellow-900/30 border border-yellow-700 rounded-lg p-4 mb-6 flex items-start">
<div class="text-yellow-400 mr-3 text-xl">⚠️</div>
<div class="text-yellow-200 text-sm">
<strong>REQUIRES LOCAL COMPONENTS - EXPERIMENTAL USE ONLY</strong><br>
This panel requires the FF Enhancer Bridge to be installed and running locally. All features are experimental and provided for educational purposes only.
</div>
</div>
<!-- Main Content -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Left Column -->
<div class="lg:col-span-2 space-y-6">
<!-- Weapon Tabs -->
<div class="bg-gray-900 rounded-xl p-1">
<div class="flex overflow-x-auto">
<button class="weapon-tab active px-6 py-3 font-medium text-sm flex-shrink-0 border-b-2 border-red-500 text-white bg-gray-800/50" data-weapon="AR">
<i class="fas fa-gun mr-2"></i> Assault Rifles
</button>
<button class="weapon-tab px-6 py-3 font-medium text-sm flex-shrink-0 border-b-2 border-transparent text-gray-400 hover:text-white" data-weapon="SMG">
<i class="fas fa-gun mr-2"></i> SMGs
</button>
<button class="weapon-tab px-6 py-3 font-medium text-sm flex-shrink-0 border-b-2 border-transparent text-gray-400 hover:text-white" data-weapon="Shotgun">
<i class="fas fa-gun mr-2"></i> Shotguns
</button>
<button class="weapon-tab px-6 py-3 font-medium text-sm flex-shrink-0 border-b-2 border-transparent text-gray-400 hover:text-white" data-weapon="Pistol">
<i class="fas fa-gun mr-2"></i> Pistols
</button>
</div>
<!-- Weapon Content -->
<div class="p-4">
<!-- Weapon Selector -->
<div class="mb-6">
<label class="block text-sm font-medium mb-2">Select Weapon</label>
<select id="weaponSelect" class="w-full bg-gray-800 border border-gray-700 rounded-md py-2 px-3 text-white focus:outline-none focus:ring-2 focus:ring-blue-500">
<option value="AK47">AK47</option>
<option value="M4A1">M4A1</option>
<option value="SCAR">SCAR</option>
<option value="XM8">XM8</option>
<option value="FAMAS">FAMAS</option>
</select>
</div>
<!-- Recoil Compensation -->
<div class="mb-6">
<div class="flex justify-between items-center mb-2">
<label class="text-sm font-medium">Recoil Compensation</label>
<span id="recoilValue" class="text-sm font-mono">85%</span>
</div>
<div class="recoil-bar mb-2">
<div id="recoilFill" class="recoil-fill" style="width: 85%"></div>
</div>
<div class="flex justify-between text-xs text-gray-400">
<span>Light</span>
<span>Moderate</span>
<span>Heavy</span>
</div>
</div>
<!-- Aimlock Precision -->
<div class="mb-6">
<label class="block text-sm font-medium mb-3">Aimlock Precision</label>
<div class="flex space-x-4">
<div class="flex-1 bg-gray-800 rounded-lg p-3 flex flex-col items-center cursor-pointer border-2 border-transparent hover:border-blue-500 aimlock-precision" data-precision="headshot">
<i class="fas fa-skull text-xl mb-2 text-red-400"></i>
<span class="text-xs">Headshot</span>
</div>
<div class="flex-1 bg-gray-800 rounded-lg p-3 flex flex-col items-center cursor-pointer border-2 border-blue-500 aimlock-precision" data-precision="center-mass">
<i class="fas fa-bullseye text-xl mb-2 text-blue-400"></i>
<span class="text-xs">Center Mass</span>
</div>
<div class="flex-1 bg-gray-800 rounded-lg p-3 flex flex-col items-center cursor-pointer border-2 border-transparent hover:border-purple-500 aimlock-precision" data-precision="dynamic">
<i class="fas fa-brain text-xl mb-2 text-purple-400"></i>
<span class="text-xs">Dynamic</span>
</div>
</div>
</div>
<!-- Recoil Pattern Visualizer -->
<div class="mb-6">
<label class="block text-sm font-medium mb-2">Recoil Pattern</label>
<div class="canvas-container bg-gray-900 rounded-lg p-4">
<canvas id="recoilCanvas" class="recoil-canvas w-full h-64"></canvas>
</div>
</div>
</div>
</div>
<!-- Weapon Settings -->
<div class="bg-gray-900 rounded-xl p-6">
<h3 class="text-lg font-semibold mb-4">Weapon Configuration</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<!-- Sensitivity Settings -->
<div>
<label class="block text-sm font-medium mb-2">Vertical Sensitivity</label>
<input type="range" min="0" max="100" value="75" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="verticalSensitivity">
<div class="flex justify-between text-xs text-gray-400 mt-1">
<span>0%</span>
<span>50%</span>
<span>100%</span>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-2">Horizontal Sensitivity</label>
<input type="range" min="0" max="100" value="65" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="horizontalSensitivity">
<div class="flex justify-between text-xs text-gray-400 mt-1">
<span>0%</span>
<span>50%</span>
<span>100%</span>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-2">Humanization Jitter</label>
<input type="range" min="0" max="100" value="30" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="humanizationJitter">
<div class="flex justify-between text-xs text-gray-400 mt-1">
<span>None</span>
<span>Moderate</span>
<span>High</span>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-2">Trigger Delay (ms)</label>
<input type="range" min="0" max="500" value="150" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="triggerDelay">
<div class="flex justify-between text-xs text-gray-400 mt-1">
<span>0ms</span>
<span>250ms</span>
<span>500ms</span>
</div>
</div>
</div>
</div>
</div>
<!-- Right Column -->
<div class="space-y-6">
<!-- Performance Dashboard -->
<div class="bg-gray-900 rounded-xl p-6">
<h3 class="text-lg font-semibold mb-4">Performance Dashboard</h3>
<div class="space-y-4">
<div>
<div class="flex justify-between text-sm mb-1">
<span>System Latency</span>
<span id="latencyValue" class="font-mono">18ms</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-green-500 h-2 rounded-full" style="width: 92%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Game FPS</span>
<span id="fpsValue" class="font-mono">59 FPS</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-blue-500 h-2 rounded-full" style="width: 98%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Processing Load</span>
<span id="loadValue" class="font-mono">24%</span>
</div>
<div class="w-full bg-gray-700 rounded-full h-2">
<div class="bg-purple-500 h-2 rounded-full" style="width: 24%"></div>
</div>
</div>
</div>
<div class="mt-6 pt-4 border-t border-gray-800">
<h4 class="text-sm font-medium mb-3">Battle Metrics</h4>
<div class="grid grid-cols-2 gap-4">
<div class="bg-gray-800 rounded-lg p-3">
<div class="text-xs text-gray-400 mb-1">Current Distance</div>
<div class="text-xl font-mono" id="currentDistance">87m</div>
</div>
<div class="bg-gray-800 rounded-lg p-3">
<div class="text-xs text-gray-400 mb-1">Hit Probability</div>
<div class="text-xl font-mono" id="hitProbability">92%</div>
</div>
</div>
</div>
</div>
<!-- Safety Controls -->
<div class="bg-gray-900 rounded-xl p-6">
<h3 class="text-lg font-semibold mb-4">Safety Controls</h3>
<div class="space-y-4">
<div class="flex items-center justify-between">
<div>
<label class="text-sm font-medium">Auto-Disable</label>
<p class="text-xs text-gray-400">Disable after 5 kills</p>
</div>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer" checked>
<div class="w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-green-600"></div>
</label>
</div>
<div class="flex items-center justify-between">
<div>
<label class="text-sm font-medium">Cooldown Timer</label>
<p class="text-xs text-gray-400">Random pauses</p>
</div>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer" checked>
<div class="w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
</label>
</div>
<div class="flex items-center justify-between">
<div>
<label class="text-sm font-medium">Spectator Mode</label>
<p class="text-xs text-gray-400">Disable when spectated</p>
</div>
<label class="relative inline-flex items-center cursor-pointer">
<input type="checkbox" class="sr-only peer" checked>
<div class="w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-purple-600"></div>
</label>
</div>
</div>
<button id="applySettings" class="mt-6 w-full bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700 text-white py-2 px-4 rounded-md font-medium text-sm transition-all duration-300">
APPLY SETTINGS
</button>
</div>
<!-- Neural Decision Display -->
<div class="bg-gray-900 rounded-xl p-6">
<h3 class="text-lg font-semibold mb-4">Neural Targeting</h3>
<div class="relative h-40 mb-4" id="neuralNetwork">
<!-- Neural network visualization will be generated here -->
</div>
<div class="text-xs font-mono bg-gray-800 p-3 rounded-lg h-20 overflow-y-auto" id="neuralDecisionText">
Analyzing target at 87m...<br>
Calculating bullet drop...<br>
Adjusting for movement...<br>
Optimal aim point: upper chest (92% HS chance)
</div>
</div>
</div>
</div>
<!-- Combat Log -->
<div class="mt-6 bg-gray-900 rounded-xl p-6">
<h3 class="text-lg font-semibold mb-4">Combat Log</h3>
<div class="bg-gray-800 rounded-lg p-3 h-48 overflow-y-auto space-y-2" id="combatLog">
<div class="combat-log-entry text-sm font-mono">
<span class="text-green-400">[12:45:23]</span> Target locked: <span class="threat-green">87m</span> | HS probability: 92%
</div>
<div class="combat-log-entry text-sm font-mono">
<span class="text-green-400">[12:45:24]</span> Recoil compensation active (vertical: 0.85)
</div>
<div class="combat-log-entry text-sm font-mono">
<span class="text-green-400">[12:45:25]</span> Firing sequence initiated (3-round burst)
</div>
<div class="combat-log-entry text-sm font-mono">
<span class="text-yellow-400">[12:45:26]</span> New threat detected: <span class="threat-yellow">112m</span> | Switching priority
</div>
<div class="combat-log-entry text-sm font-mono">
<span class="text-green-400">[12:45:27]</span> Target eliminated: <span class="threat-green">87m</span> | 2 headshots
</div>
<div class="combat-log-entry text-sm font-mono">
<span class="text-red-400">[12:45:28]</span> Warning: High threat detected: <span class="threat-red">153m</span> | Sniper
</div>
</div>
</div>
</div>
<script>
// Initialize canvas
const canvas = document.getElementById('recoilCanvas');
const ctx = canvas.getContext('2d');
// Set canvas dimensions
function resizeCanvas() {
const container = canvas.parentElement;
canvas.width = container.clientWidth;
canvas.height = container.clientHeight;
drawRecoilPattern();
}
// Draw recoil pattern
function drawRecoilPattern() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
// Draw crosshair
ctx.strokeStyle = 'rgba(255, 255, 255, 0.2)';
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(canvas.width / 2, 0);
ctx.lineTo(canvas.width / 2, canvas.height);
ctx.moveTo(0, canvas.height / 2);
ctx.lineTo(canvas.width, canvas.height / 2);
ctx.stroke();
// Draw recoil pattern (AK47 example)
const centerX = canvas.width / 2;
const centerY = canvas.height / 2;
const scale = canvas.height / 30;
ctx.strokeStyle = '#3b82f6';
ctx.lineWidth = 2;
ctx.beginPath();
ctx.moveTo(centerX, centerY);
// AK47 recoil pattern (simplified)
const pattern = [
{x: 0, y: 1}, {x: 0.2, y: 2}, {x: 0.5, y: 3},
{x: 0.8, y: 4}, {x: 1.2, y: 5}, {x: 1.5, y: 6},
{x: 1.2, y: 7}, {x: 0.8, y: 8}, {x: 0.5, y: 9},
{x: 0.2, y: 10}, {x: -0.2, y: 11}, {x: -0.5, y: 12}
];
pattern.forEach((point, i) => {
ctx.lineTo(centerX + point.x * scale, centerY + point.y * scale);
});
ctx.stroke();
// Draw dots at each bullet point
ctx.fillStyle = '#ef4444';
pattern.forEach((point, i) => {
ctx.beginPath();
ctx.arc(centerX + point.x * scale, centerY + point.y * scale, 3, 0, Math.PI * 2);
ctx.fill();
});
}
// Generate neural network visualization
function generateNeuralNetwork() {
const container = document.getElementById('neuralNetwork');
container.innerHTML = '';
const width = container.clientWidth;
const height = container.clientHeight;
// Create layers
const layers = 5;
const nodesPerLayer = [3, 4, 5, 4, 2];
// Draw connections
for (let l = 0; l < layers - 1; l++) {
for (let n1 = 0; n1 < nodesPerLayer[l]; n1++) {
const x1 = (width / (layers - 1)) * l;
const y1 = (height / (nodesPerLayer[l] + 1)) * (n1 + 1);
for (let n2 = 0; n2 < nodesPerLayer[l + 1]; n2++) {
const x2 = (width / (layers - 1)) * (l + 1);
const y2 = (height / (nodesPerLayer[l + 1] + 1)) * (n2 + 1);
const line = document.createElement('div');
line.className = 'neural-connection';
// Calculate line position and length
const length = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
const angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
line.style.width = `${length}px`;
line.style.left = `${x1}px`;
line.style.top = `${y1}px`;
line.style.transform = `rotate(${angle}deg)`;
container.appendChild(line);
}
}
}
// Draw nodes
for (let l = 0; l < layers; l++) {
for (let n = 0; n < nodesPerLayer[l]; n++) {
const x = (width / (layers - 1)) * l;
const y = (height / (nodesPerLayer[l] + 1)) * (n + 1);
const node = document.createElement('div');
node.className = 'neural-node';
node.style.left = `${x - 4}px`;
node.style.top = `${y - 4}px`;
// Animate nodes
node.style.animation = `pulse ${1 + Math.random()}s infinite alternate`;
container.appendChild(node);
}
}
}
// Update combat log with random entries
function updateCombatLog() {
const log = document.getElementById('combatLog');
const now = new Date();
const timeStr = `[${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}]`;
const actions = [
{text: `Target locked: ${Math.floor(Math.random() * 150)}m`, class: 'green'},
{text: `Recoil compensation adjusted`, class: 'green'},
{text: `Firing sequence initiated (${Math.floor(Math.random() * 5) + 1}-round burst)`, class: 'green'},
{text: `New threat detected: ${Math.floor(Math.random() * 150)}m | Switching priority`, class: 'yellow'},
{text: `Target eliminated: ${Math.floor(Math.random() * 100)}m | ${Math.floor(Math.random() * 3) + 1} headshots`, class: 'green'},
{text: `Warning: High threat detected: ${Math.floor(Math.random() * 200)}m | Sniper`, class: 'red'}
];
const action = actions[Math.floor(Math.random() * actions.length)];
const distance = action.text.match(/\d+m/);
let distanceClass = 'threat-green';
if (distance) {
const dist = parseInt(distance[0]);
if (dist > 100) distanceClass = 'threat-red';
else if (dist > 50) distanceClass = 'threat-yellow';
}
const entry = document.createElement('div');
entry.className = 'combat-log-entry text-sm font-mono';
entry.innerHTML = `
<span class="text-${action.class}-400">${timeStr}</span> ${action.text.replace(/\d+m/, `<span class="${distanceClass}">$&</span>`)}
`;
log.insertBefore(entry, log.firstChild);
if (log.children.length > 20) {
log.removeChild(log.lastChild);
}
}
// Update performance metrics randomly
function updatePerformanceMetrics() {
document.getElementById('latencyValue').textContent = `${Math.floor(Math.random() * 10) + 15}ms`;
document.getElementById('fpsValue').textContent = `${Math.floor(Math.random() * 5) + 55} FPS`;
document.getElementById('loadValue').textContent = `${Math.floor(Math.random() * 15) + 20}%`;
const distance = Math.floor(Math.random() * 200);
document.getElementById('currentDistance').textContent = `${distance}m`;
// Update threat color
let threatClass = 'threat-green';
if (distance > 100) threatClass = 'threat-red';
else if (distance > 50) threatClass = 'threat-yellow';
document.getElementById('currentDistance').className = `text-xl font-mono ${threatClass}`;
// Update hit probability based on distance
const hitProb = Math.max(10, 100 - distance / 3 + (Math.random() * 20 - 10));
document.getElementById('hitProbability').textContent = `${Math.round(hitProb)}%`;
}
// Handle weapon tab switching
document.querySelectorAll('.weapon-tab').forEach(tab => {
tab.addEventListener('click', function() {
document.querySelectorAll('.weapon-tab').forEach(t => t.classList.remove('active'));
this.classList.add('active');
// Change border color based on weapon class
const weaponClass = this.dataset.weapon;
let borderColor = 'border-red-500';
if (weaponClass === 'SMG') borderColor = 'border-blue-500';
else if (weaponClass === 'Shotgun') borderColor = 'border-orange-500';
else if (weaponClass === 'Pistol') borderColor = 'border-purple-500';
this.classList.add(borderColor);
// Update weapon select options
const weaponSelect = document.getElementById('weaponSelect');
weaponSelect.innerHTML = '';
let weapons = [];
if (weaponClass === 'AR') {
weapons = ['AK47', 'M4A1', 'SCAR', 'XM8', 'FAMAS'];
} else if (weaponClass === 'SMG') {
weapons = ['MP5', 'P90', 'UMP', 'Vector', 'Thompson'];
} else if (weaponClass === 'Shotgun') {
weapons = ['M1014', 'SPAS12', 'KSG', 'AA12', 'M870'];
} else if (weaponClass === 'Pistol') {
weapons = ['Desert Eagle', 'Glock', 'USP', 'P250', 'Five-Seven'];
}
weapons.forEach(weapon => {
const option = document.createElement('option');
option.value = weapon;
option.textContent = weapon;
weaponSelect.appendChild(option);
});
// Redraw recoil pattern for new weapon class
drawRecoilPattern();
});
});
// Handle aimlock precision selection
document.querySelectorAll('.aimlock-precision').forEach(btn => {
btn.addEventListener('click', function() {
document.querySelectorAll('.aimlock-precision').forEach(b => {
b.classList.remove('border-blue-500');
b.classList.add('border-transparent');
});
this.classList.add('border-blue-500');
this.classList.remove('border-transparent');
});
});
// Handle sliders
document.querySelectorAll('input[type="range"]').forEach(slider => {
slider.addEventListener('input', function() {
if (this.id === 'verticalSensitivity' || this.id === 'horizontalSensitivity') {
document.getElementById('recoilValue').textContent = `${this.value}%`;
document.getElementById('recoilFill').style.width = `${this.value}%`;
}
});
});
// Handle apply settings button
document.getElementById('applySettings').addEventListener('click', function() {
const weapon = document.getElementById('weaponSelect').value;
const verticalSens = document.getElementById('verticalSensitivity').value;
const horizontalSens = document.getElementById('horizontalSensitivity').value;
const jitter = document.getElementById('humanizationJitter').value;
const delay = document.getElementById('triggerDelay').value;
const precision = document.querySelector('.aimlock-precision.border-blue-500').dataset.precision;
// Create JSON command
const command = {
weapon: weapon,
mode: "aimlock+recoil",
params: {
vertical: parseFloat(verticalSens / 100).toFixed(2),
horizontal: parseFloat(horizontalSens / 100).toFixed(2),
jitter: parseFloat(jitter / 100).toFixed(2),
delay: parseInt(delay),
precision: precision
}
};
// In a real app, this would send via WebSocket
console.log("Sending command:", JSON.stringify(command, null, 2));
// Show success message
const log = document.getElementById('combatLog');
const now = new Date();
const timeStr = `[${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}]`;
const entry = document.createElement('div');
entry.className = 'combat-log-entry text-sm font-mono';
entry.innerHTML = `
<span class="text-green-400">${timeStr}</span> Settings applied for ${weapon} | ${precision} precision
`;
log.insertBefore(entry, log.firstChild);
});
// Handle bridge install button
document.getElementById('installBridge').addEventListener('click', function() {
// Simulate bridge connection
document.getElementById('bridgeStatus').textContent = "🟢";
this.textContent = "BRIDGE CONNECTED";
this.classList.remove('from-purple-600', 'to-blue-500', 'hover:from-purple-700', 'hover:to-blue-600');
this.classList.add('from-green-600', 'to-green-500', 'hover:from-green-700', 'hover:to-green-600');
// Add to combat log
const log = document.getElementById('combatLog');
const now = new Date();
const timeStr = `[${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}]`;
const entry = document.createElement('div');
entry.className = 'combat-log-entry text-sm font-mono';
entry.innerHTML = `
<span class="text-green-400">${timeStr}</span> Bridge connected successfully
`;
log.insertBefore(entry, log.firstChild);
});
// Initialize
window.addEventListener('load', function() {
resizeCanvas();
generateNeuralNetwork();
// Update metrics periodically
setInterval(updatePerformanceMetrics, 3000);
setInterval(updateCombatLog, 5000);
});
window.addEventListener('resize', function() {
resizeCanvas();
generateNeuralNetwork();
});
</script>
<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=Pnkj01/edu" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>