diff --git a/app.js b/app.js index a630eb8..0a36c8c 100644 --- a/app.js +++ b/app.js @@ -1273,6 +1273,24 @@ const energyBeam = new THREE.Mesh(beamGeometry, beamMaterial); energyBeam.position.set(10, 50, 10); // Positioned at Batcave terminal area scene.add(energyBeam); +// Energy beam from Batcave terminal to sky, representing Timmy's connection +const beamGeometry2 = new THREE.CylinderGeometry(0.5, 2, 1000, 32); +const beamMaterial2 = new THREE.MeshBasicMaterial({ + color: NEXUS.colors.accent, + emissive: NEXUS.colors.accent, + emissiveIntensity: 0.8, + transparent: true, + opacity: 0.6 +}); +const energyBeam2 = new THREE.Mesh(beamGeometry2, beamMaterial2); +energyBeam2.position.set(-40, 500, -40); // Centered above Batcave terminal area +energyBeam2.rotation.x = Math.PI / 2; +scene.add(energyBeam2); +NEXUS.animations = NEXUS.animations || []; +NEXUS.animations.push(() => { + beamMaterial2.opacity = 0.6 + 0.2 * Math.sin(Date.now() * 0.002); +}); + // Animation variable for beam pulse effect let beamPulse = 0; // Holographic arc gauge floating above the platform; reads from sovereignty-status.json