Spaces:
Runtime error
Runtime error
| <html lang="es-AR"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>🇦🇷 RETRO LEGENDS: Ultimate Nostalgia Edition 🎮</title> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Orbitron:wght@400;700;900&display=swap'); | |
| :root { | |
| --primary-blue: #0066cc; | |
| --primary-yellow: #ffcc00; | |
| --neon-green: #00ff41; | |
| --neon-pink: #ff1493; | |
| --neon-cyan: #00ffff; | |
| --dark-bg: #0a0a0a; | |
| --glass-bg: rgba(255, 255, 255, 0.1); | |
| } | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Press Start 2P', monospace; | |
| background: linear-gradient(45deg, #0a0a0a, #1a1a2e, #16213e, #0f3460); | |
| background-size: 400% 400%; | |
| animation: cosmicGradient 20s ease infinite; | |
| color: white; | |
| overflow: hidden; | |
| height: 100vh; | |
| cursor: none; | |
| } | |
| @keyframes cosmicGradient { | |
| 0% { background-position: 0% 50%; } | |
| 25% { background-position: 100% 50%; } | |
| 50% { background-position: 100% 100%; } | |
| 75% { background-position: 0% 100%; } | |
| 100% { background-position: 0% 50%; } | |
| } | |
| .game-container { | |
| position: relative; | |
| width: 100vw; | |
| height: 100vh; | |
| display: flex; | |
| flex-direction: column; | |
| background: radial-gradient(circle at 50% 50%, rgba(0, 255, 65, 0.1), transparent 70%); | |
| } | |
| .cosmic-header { | |
| background: linear-gradient(90deg, | |
| rgba(0, 0, 0, 0.9), | |
| rgba(0, 102, 204, 0.3), | |
| rgba(255, 20, 147, 0.3), | |
| rgba(0, 0, 0, 0.9) | |
| ); | |
| padding: 20px; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| border-bottom: 3px solid var(--neon-green); | |
| box-shadow: 0 0 30px rgba(0, 255, 65, 0.5), inset 0 0 20px rgba(0, 0, 0, 0.8); | |
| backdrop-filter: blur(10px); | |
| z-index: 1000; | |
| } | |
| .title-matrix { | |
| font-family: 'Orbitron', monospace; | |
| font-weight: 900; | |
| font-size: clamp(1.2rem, 4vw, 2.5rem); | |
| background: linear-gradient(45deg, | |
| var(--neon-green), | |
| var(--neon-cyan), | |
| var(--neon-pink), | |
| var(--primary-yellow) | |
| ); | |
| background-size: 400% 400%; | |
| background-clip: text; | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| animation: textMatrix 3s ease-in-out infinite, titleFloat 4s ease-in-out infinite alternate; | |
| text-shadow: 0 0 20px rgba(0, 255, 65, 0.8); | |
| filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.6)); | |
| } | |
| @keyframes textMatrix { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| } | |
| @keyframes titleFloat { | |
| from { transform: translateY(-5px) rotate(-0.5deg); } | |
| to { transform: translateY(5px) rotate(0.5deg); } | |
| } | |
| .hud-matrix { | |
| display: flex; | |
| gap: 30px; | |
| align-items: center; | |
| } | |
| .stat-capsule { | |
| background: linear-gradient(135deg, | |
| rgba(0, 255, 65, 0.2), | |
| rgba(0, 0, 0, 0.8), | |
| rgba(0, 255, 255, 0.2) | |
| ); | |
| border: 2px solid var(--neon-green); | |
| border-radius: 25px; | |
| padding: 12px 20px; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| font-size: clamp(0.6rem, 1.5vw, 0.9rem); | |
| box-shadow: | |
| 0 0 15px rgba(0, 255, 65, 0.4), | |
| inset 0 0 10px rgba(0, 0, 0, 0.6); | |
| backdrop-filter: blur(5px); | |
| transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .stat-capsule::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: -100%; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); | |
| transition: left 0.5s; | |
| } | |
| .stat-capsule:hover::before { | |
| left: 100%; | |
| } | |
| .stat-capsule:hover { | |
| transform: scale(1.1) translateY(-2px); | |
| box-shadow: | |
| 0 0 25px rgba(0, 255, 65, 0.8), | |
| 0 10px 20px rgba(0, 0, 0, 0.4); | |
| } | |
| .stat-icon { | |
| font-size: 1.2em; | |
| animation: iconPulse 2s ease-in-out infinite alternate; | |
| } | |
| @keyframes iconPulse { | |
| from { transform: scale(1); filter: brightness(1); } | |
| to { transform: scale(1.2); filter: brightness(1.5); } | |
| } | |
| .game-viewport { | |
| flex: 1; | |
| position: relative; | |
| background: | |
| radial-gradient(circle at 20% 80%, rgba(0, 255, 65, 0.1), transparent 50%), | |
| radial-gradient(circle at 80% 20%, rgba(255, 20, 147, 0.1), transparent 50%), | |
| radial-gradient(circle at 40% 40%, rgba(0, 255, 255, 0.05), transparent 50%); | |
| overflow: hidden; | |
| } | |
| #gameCanvas { | |
| width: 100%; | |
| height: 100%; | |
| display: block; | |
| image-rendering: pixelated; | |
| image-rendering: -moz-crisp-edges; | |
| image-rendering: crisp-edges; | |
| filter: contrast(1.1) saturate(1.2); | |
| } | |
| .ai-companion-matrix { | |
| position: absolute; | |
| bottom: 30px; | |
| left: 30px; | |
| right: 30px; | |
| background: linear-gradient(135deg, | |
| rgba(0, 0, 0, 0.95), | |
| rgba(0, 102, 204, 0.1), | |
| rgba(0, 0, 0, 0.95) | |
| ); | |
| border: 3px solid var(--neon-cyan); | |
| border-radius: 20px; | |
| padding: 25px; | |
| transform: translateY(150%); | |
| transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); | |
| backdrop-filter: blur(15px); | |
| box-shadow: | |
| 0 0 40px rgba(0, 255, 255, 0.4), | |
| inset 0 0 20px rgba(0, 0, 0, 0.8); | |
| z-index: 500; | |
| } | |
| .ai-companion-matrix.active { | |
| transform: translateY(0); | |
| } | |
| .ai-header-matrix { | |
| display: flex; | |
| align-items: center; | |
| gap: 20px; | |
| margin-bottom: 20px; | |
| } | |
| .ai-avatar-matrix { | |
| width: 60px; | |
| height: 60px; | |
| background: linear-gradient(45deg, | |
| var(--neon-pink), | |
| var(--neon-cyan), | |
| var(--neon-green), | |
| var(--primary-yellow) | |
| ); | |
| background-size: 400% 400%; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 28px; | |
| animation: avatarMatrix 3s ease-in-out infinite, avatarRotate 10s linear infinite; | |
| box-shadow: | |
| 0 0 20px rgba(0, 255, 255, 0.8), | |
| inset 0 0 10px rgba(0, 0, 0, 0.3); | |
| border: 2px solid rgba(255, 255, 255, 0.3); | |
| } | |
| @keyframes avatarMatrix { | |
| 0%, 100% { background-position: 0% 50%; transform: scale(1); } | |
| 50% { background-position: 100% 50%; transform: scale(1.1); } | |
| } | |
| @keyframes avatarRotate { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| .ai-info-matrix { | |
| flex: 1; | |
| } | |
| .ai-name-matrix { | |
| font-family: 'Orbitron', monospace; | |
| font-weight: 700; | |
| color: var(--neon-cyan); | |
| font-size: clamp(0.9rem, 2.5vw, 1.3rem); | |
| margin-bottom: 5px; | |
| text-shadow: 0 0 10px var(--neon-cyan); | |
| } | |
| .ai-status-matrix { | |
| font-size: clamp(0.5rem, 1.2vw, 0.7rem); | |
| color: var(--neon-green); | |
| opacity: 0.9; | |
| animation: statusBlink 2s ease-in-out infinite alternate; | |
| } | |
| @keyframes statusBlink { | |
| from { opacity: 0.7; } | |
| to { opacity: 1; } | |
| } | |
| .ai-message-matrix { | |
| background: linear-gradient(135deg, | |
| rgba(0, 255, 65, 0.1), | |
| rgba(0, 0, 0, 0.6), | |
| rgba(0, 255, 255, 0.1) | |
| ); | |
| border: 2px solid var(--neon-green); | |
| border-radius: 15px; | |
| padding: 20px; | |
| font-size: clamp(0.6rem, 1.4vw, 0.8rem); | |
| line-height: 1.6; | |
| color: white; | |
| border-left: 5px solid var(--neon-cyan); | |
| box-shadow: | |
| inset 0 0 15px rgba(0, 255, 65, 0.2), | |
| 0 0 10px rgba(0, 255, 65, 0.3); | |
| animation: messageGlow 4s ease-in-out infinite alternate; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| @keyframes messageGlow { | |
| from { box-shadow: inset 0 0 15px rgba(0, 255, 65, 0.2), 0 0 10px rgba(0, 255, 65, 0.3); } | |
| to { box-shadow: inset 0 0 25px rgba(0, 255, 65, 0.4), 0 0 20px rgba(0, 255, 65, 0.6); } | |
| } | |
| .controls-matrix { | |
| position: absolute; | |
| top: 50%; | |
| right: 30px; | |
| transform: translateY(-50%); | |
| background: linear-gradient(135deg, | |
| rgba(0, 0, 0, 0.9), | |
| rgba(255, 20, 147, 0.1), | |
| rgba(0, 0, 0, 0.9) | |
| ); | |
| border: 2px solid var(--neon-pink); | |
| border-radius: 20px; | |
| padding: 25px; | |
| backdrop-filter: blur(10px); | |
| box-shadow: | |
| 0 0 30px rgba(255, 20, 147, 0.4), | |
| inset 0 0 15px rgba(0, 0, 0, 0.8); | |
| } | |
| .control-group { | |
| margin-bottom: 15px; | |
| } | |
| .control-title { | |
| color: var(--neon-pink); | |
| font-size: clamp(0.5rem, 1.2vw, 0.7rem); | |
| margin-bottom: 8px; | |
| text-shadow: 0 0 5px var(--neon-pink); | |
| } | |
| .control-item { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 8px; | |
| font-size: clamp(0.4rem, 1vw, 0.6rem); | |
| padding: 5px 0; | |
| border-bottom: 1px solid rgba(255, 20, 147, 0.3); | |
| } | |
| .control-key { | |
| background: linear-gradient(45deg, var(--neon-pink), var(--neon-cyan)); | |
| color: black; | |
| padding: 4px 8px; | |
| border-radius: 6px; | |
| font-weight: bold; | |
| box-shadow: 0 0 10px rgba(255, 20, 147, 0.5); | |
| animation: keyGlow 2s ease-in-out infinite alternate; | |
| } | |
| @keyframes keyGlow { | |
| from { box-shadow: 0 0 10px rgba(255, 20, 147, 0.5); } | |
| to { box-shadow: 0 0 20px rgba(255, 20, 147, 0.8); } | |
| } | |
| .intro-matrix { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: | |
| radial-gradient(circle at center, rgba(0, 102, 204, 0.3), transparent 70%), | |
| linear-gradient(45deg, #0a0a0a, #1a1a2e, #16213e); | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 2000; | |
| animation: introSequence 8s ease-in-out forwards; | |
| } | |
| @keyframes introSequence { | |
| 0%, 70% { opacity: 1; transform: scale(1); } | |
| 100% { opacity: 0; transform: scale(1.2); pointer-events: none; } | |
| } | |
| .intro-logo-matrix { | |
| font-family: 'Orbitron', monospace; | |
| font-weight: 900; | |
| font-size: clamp(3rem, 10vw, 8rem); | |
| background: linear-gradient(45deg, | |
| var(--neon-green), | |
| var(--neon-cyan), | |
| var(--neon-pink), | |
| var(--primary-yellow), | |
| var(--primary-blue) | |
| ); | |
| background-size: 500% 500%; | |
| background-clip: text; | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| text-align: center; | |
| margin: 30px; | |
| animation: logoMatrix 3s ease-in-out infinite, logoFloat 5s ease-in-out infinite alternate; | |
| text-shadow: 0 0 50px rgba(0, 255, 65, 1); | |
| filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.8)); | |
| } | |
| @keyframes logoMatrix { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 25% { background-position: 100% 0%; } | |
| 50% { background-position: 100% 100%; } | |
| 75% { background-position: 0% 100%; } | |
| } | |
| @keyframes logoFloat { | |
| from { transform: translateY(-30px) rotate(-1deg) scale(0.95); } | |
| to { transform: translateY(30px) rotate(1deg) scale(1.05); } | |
| } | |
| .intro-subtitle-matrix { | |
| font-size: clamp(1rem, 4vw, 2rem); | |
| color: var(--neon-cyan); | |
| text-align: center; | |
| margin-top: 40px; | |
| animation: subtitleMatrix 4s ease-in-out infinite alternate; | |
| text-shadow: 0 0 20px var(--neon-cyan); | |
| } | |
| @keyframes subtitleMatrix { | |
| from { | |
| text-shadow: 0 0 20px var(--neon-cyan); | |
| transform: scale(1); | |
| } | |
| to { | |
| text-shadow: 0 0 40px var(--neon-cyan), 0 0 60px var(--neon-cyan); | |
| transform: scale(1.05); | |
| } | |
| } | |
| .loading-matrix { | |
| width: 400px; | |
| height: 12px; | |
| background: rgba(0, 0, 0, 0.8); | |
| border: 2px solid var(--neon-green); | |
| border-radius: 8px; | |
| margin-top: 50px; | |
| overflow: hidden; | |
| box-shadow: | |
| 0 0 20px rgba(0, 255, 65, 0.5), | |
| inset 0 0 10px rgba(0, 0, 0, 0.8); | |
| } | |
| .loading-progress-matrix { | |
| height: 100%; | |
| background: linear-gradient(90deg, | |
| var(--neon-green), | |
| var(--neon-cyan), | |
| var(--neon-pink), | |
| var(--primary-yellow) | |
| ); | |
| background-size: 200% 100%; | |
| border-radius: 6px; | |
| animation: loadingMatrix 6s ease-in-out forwards, progressShimmer 2s ease-in-out infinite; | |
| box-shadow: 0 0 15px rgba(0, 255, 65, 0.8); | |
| } | |
| @keyframes loadingMatrix { | |
| from { width: 0%; } | |
| to { width: 100%; } | |
| } | |
| @keyframes progressShimmer { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| } | |
| .custom-cursor { | |
| position: fixed; | |
| width: 20px; | |
| height: 20px; | |
| background: radial-gradient(circle, var(--neon-cyan), transparent 70%); | |
| border-radius: 50%; | |
| pointer-events: none; | |
| z-index: 10000; | |
| mix-blend-mode: difference; | |
| animation: cursorPulse 1s ease-in-out infinite alternate; | |
| } | |
| @keyframes cursorPulse { | |
| from { transform: scale(1); opacity: 0.8; } | |
| to { transform: scale(1.5); opacity: 1; } | |
| } | |
| /* Responsive Design Ultra */ | |
| @media (max-width: 1024px) { | |
| .controls-matrix { | |
| position: static; | |
| transform: none; | |
| margin: 20px; | |
| order: -1; | |
| } | |
| .hud-matrix { | |
| flex-wrap: wrap; | |
| gap: 15px; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .cosmic-header { | |
| flex-direction: column; | |
| gap: 15px; | |
| padding: 15px; | |
| } | |
| .ai-companion-matrix { | |
| left: 15px; | |
| right: 15px; | |
| bottom: 15px; | |
| } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="custom-cursor" id="customCursor"></div> | |
| <div class="game-container"> | |
| <!-- Secuencia de Intro Ultra --> | |
| <div class="intro-matrix" id="introMatrix"> | |
| <div class="intro-logo-matrix">RETRO LEGENDS</div> | |
| <div class="intro-subtitle-matrix">🎮 Ultimate Nostalgia Edition 🇦🇷</div> | |
| <div class="loading-matrix"> | |
| <div class="loading-progress-matrix"></div> | |
| </div> | |
| </div> | |
| <!-- Header Cósmico --> | |
| <div class="cosmic-header"> | |
| <div class="title-matrix"> | |
| 🇦🇷 RETRO LEGENDS: Ultimate Edition 🎮 | |
| </div> | |
| <div class="hud-matrix"> | |
| <div class="stat-capsule"> | |
| <span class="stat-icon">❤️</span> | |
| <span>VIDA: <span id="playerHealth">100</span></span> | |
| </div> | |
| <div class="stat-capsule"> | |
| <span class="stat-icon">🧉</span> | |
| <span>MATE: <span id="mateCount">5</span></span> | |
| </div> | |
| <div class="stat-capsule"> | |
| <span class="stat-icon">⭐</span> | |
| <span>SCORE: <span id="gameScore">0</span></span> | |
| </div> | |
| <div class="stat-capsule"> | |
| <span class="stat-icon">🏆</span> | |
| <span>NIVEL: <span id="currentLevel">Caminito Matrix</span></span> | |
| </div> | |
| <div class="stat-capsule"> | |
| <span class="stat-icon">⚡</span> | |
| <span>COMBO: <span id="comboCount">0</span></span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Viewport del Juego --> | |
| <div class="game-viewport"> | |
| <canvas id="gameCanvas"></canvas> | |
| <!-- Panel de Controles Matrix --> | |
| <div class="controls-matrix"> | |
| <div class="control-group"> | |
| <div class="control-title">MOVIMIENTO</div> | |
| <div class="control-item"> | |
| <span>Mover:</span> | |
| <span><span class="control-key">WASD</span> / <span class="control-key">↑↓←→</span></span> | |
| </div> | |
| <div class="control-item"> | |
| <span>Saltar:</span> | |
| <span><span class="control-key">SPACE</span></span> | |
| </div> | |
| <div class="control-item"> | |
| <span>Dash:</span> | |
| <span><span class="control-key">SHIFT</span></span> | |
| </div> | |
| </div> | |
| <div class="control-group"> | |
| <div class="control-title">ACCIONES</div> | |
| <div class="control-item"> | |
| <span>Atacar:</span> | |
| <span><span class="control-key">Z</span></span> | |
| </div> | |
| <div class="control-item"> | |
| <span>Poder Especial:</span> | |
| <span><span class="control-key">X</span></span> | |
| </div> | |
| <div class="control-item"> | |
| <span>Usar Mate:</span> | |
| <span><span class="control-key">C</span></span> | |
| </div> | |
| </div> | |
| <div class="control-group"> | |
| <div class="control-title">SISTEMA</div> | |
| <div class="control-item"> | |
| <span>Chat IA:</span> | |
| <span><span class="control-key">T</span></span> | |
| </div> | |
| <div class="control-item"> | |
| <span>Pausa:</span> | |
| <span><span class="control-key">P</span></span> | |
| </div> | |
| <div class="control-item"> | |
| <span>Menú:</span> | |
| <span><span class="control-key">ESC</span></span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Compañero IA Matrix --> | |
| <div class="ai-companion-matrix" id="aiCompanionMatrix"> | |
| <div class="ai-header-matrix"> | |
| <div class="ai-avatar-matrix">🤖</div> | |
| <div class="ai-info-matrix"> | |
| <div class="ai-name-matrix">NEXUS PIBE</div> | |
| <div class="ai-status-matrix">IA Compañero Argento Avanzado</div> | |
| </div> | |
| </div> | |
| <div class="ai-message-matrix" id="aiMessageMatrix"> | |
| ¡Ehhh, pibe! Bienvenido a la experiencia más nostálgica y avanzada que vas a vivir. | |
| Soy NEXUS, tu compañero de aventuras con inteligencia artificial de última generación. | |
| ¿Listos para romperla en este universo retro-futurista? ¡Dale que arrancamos! 🚀🇦🇷 | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Scripts del Juego Ultra Avanzados --> | |
| <script> | |
| // =================================================================== | |
| // RETRO LEGENDS: Ultimate Edition - Inicialización | |
| // =================================================================== | |
| // Cursor personalizado | |
| document.addEventListener('mousemove', (e) => { | |
| const cursor = document.getElementById('customCursor'); | |
| cursor.style.left = e.clientX - 10 + 'px'; | |
| cursor.style.top = e.clientY - 10 + 'px'; | |
| }); | |
| // Inicialización del juego | |
| window.addEventListener('load', () => { | |
| console.log('🚀 Iniciando RETRO LEGENDS: Ultimate Edition...'); | |
| // Ocultar intro después de 8 segundos | |
| setTimeout(() => { | |
| document.getElementById('introMatrix').style.display = 'none'; | |
| // Inicializar el motor de juego ultra avanzado | |
| const game = new RetroLegendsUltimateEngine(); | |
| // Mostrar mensaje de bienvenida de la IA | |
| setTimeout(() => { | |
| document.getElementById('aiCompanionMatrix').classList.add('active'); | |
| }, 1000); | |
| console.log('🎮 RETRO LEGENDS: Ultimate Edition - ¡Completamente cargado!'); | |
| }, 8000); | |
| }); | |
| // Efectos de sonido de interfaz | |
| document.addEventListener('click', () => { | |
| // Aquí iría el sistema de audio para clicks | |
| }); | |
| // Efectos de hover para elementos interactivos | |
| document.querySelectorAll('.stat-capsule, .control-key').forEach(element => { | |
| element.addEventListener('mouseenter', () => { | |
| // Aquí irían efectos de sonido de hover | |
| }); | |
| }); | |
| </script> | |
| <!-- Cargar módulos del juego --> | |
| <script src="core-engine-ultra.js"></script> | |
| <script src="physics-advanced.js"></script> | |
| <script src="ai-companion-advanced.js"></script> | |
| <script src="level-generator-procedural.js"></script> | |
| <script src="audio-system-ultra.js"></script> | |
| <script src="particle-system-advanced.js"></script> | |
| <script src="input-handler-pro.js"></script> | |
| <script src="entity-manager-ultra.js"></script> | |
| <script src="save-system-advanced.js"></script> | |
| </body> | |
| </html> | |