feat(integrations): add retro doom web engine and agy proxy nginx config

This commit is contained in:
2026-09-22 09:25:23 +00:00
parent b8db5a123d
commit 50eadb4b5e
15 changed files with 6397 additions and 0 deletions
+178
View File
@@ -0,0 +1,178 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>DOOM 3D - WebGL Retro FPS</title>
<link rel="stylesheet" href="css/style.css?v=2">
</head>
<body>
<div id="game-container">
<!-- Center Aiming Reticle -->
<div id="crosshair"></div>
<!-- Dynamic Damage & Slime Screen Flash -->
<div id="damage-flash"></div>
<!-- Retro CRT Scanline Shader Overlay -->
<div id="crt-scanlines"></div>
<!-- HUD Message Ticker -->
<div id="hud-ticker"></div>
<!-- Authentic DOOM Status Bar (Bottom HUD) -->
<div id="doom-hud">
<div class="hud-panel">
<!-- AMMO -->
<div class="hud-stat-box">
<div class="hud-label">AMMO</div>
<div id="stat-ammo" class="hud-value">50</div>
</div>
<!-- HEALTH -->
<div class="hud-stat-box">
<div class="hud-label">HEALTH</div>
<div id="stat-health" class="hud-value">100%</div>
</div>
<!-- ARMS MATRIX (1-7) -->
<div class="hud-arms-box">
<div class="hud-label">ARMS</div>
<div class="arms-grid">
<div id="arm-slot-1" class="arm-num active">1</div>
<div id="arm-slot-2" class="arm-num active selected">2</div>
<div id="arm-slot-3" class="arm-num active">3</div>
<div id="arm-slot-4" class="arm-num inactive">4</div>
<div id="arm-slot-5" class="arm-num inactive">5</div>
<div id="arm-slot-6" class="arm-num inactive">6</div>
<div id="arm-slot-7" class="arm-num inactive">7</div>
</div>
</div>
<!-- DOOMGUY ANIMATED FACE -->
<div class="hud-face-box">
<canvas id="doomguy-face"></canvas>
</div>
<!-- ARMOR -->
<div class="hud-stat-box">
<div class="hud-label">ARMOR</div>
<div id="stat-armor" class="hud-value">0%</div>
</div>
<!-- KEYS -->
<div class="hud-keys-box">
<div class="hud-label">KEYS</div>
<div class="keys-grid">
<div id="key-blue" class="key-slot" title="Blue Keycard"></div>
<div id="key-red" class="key-slot" title="Red Keycard"></div>
<div id="key-yellow" class="key-slot" title="Yellow Keycard"></div>
</div>
</div>
</div>
</div>
<!-- Mobile Touch Virtual Controls -->
<div id="mobile-controls" class="hidden">
<div id="joystick-base">
<div id="joystick-knob"></div>
</div>
<div id="mobile-look-zone"></div>
<div class="mobile-action-buttons">
<div class="mobile-weapon-row">
<button id="btn-mobile-prev" class="btn-mobile-act">◀ WPN</button>
<button id="btn-mobile-next" class="btn-mobile-act">WPN ▶</button>
</div>
<div class="mobile-weapon-row">
<button id="btn-mobile-use" class="btn-mobile-act">USE [E]</button>
<button id="btn-mobile-jump" class="btn-mobile-act">JUMP</button>
</div>
<button id="btn-mobile-fire" class="btn-mobile-act btn-mobile-fire">FIRE</button>
</div>
</div>
<!-- Start Game Screen Modal -->
<div id="start-screen" class="modal-overlay">
<div class="modal-content">
<h1 class="doom-title">DOOM 3D</h1>
<p class="doom-subtitle">FULL 3D WEBGL RETRO FPS</p>
<div class="instructions-box">
<p>🕹️ <span>W, A, S, D</span> : Move around</p>
<p>🖱️ <span>MOUSE</span> : Aim / Look around</p>
<p>💥 <span>LEFT CLICK</span> : Fire weapon</p>
<p>🚀 <span>SPACE</span> : Jump / Ascend stairs</p>
<p>⚡ <span>SHIFT</span> : Sprint run (2x speed)</p>
<p>🚪 <span>E</span> : Open doors & interact</p>
<p>🔫 <span>1 - 7</span> : Switch Weapons</p>
<p>⚙️ <span>ESC</span> : Pause / Settings</p>
<p>☠️ Cheats: Type <span>IDDQD</span>, <span>IDKFA</span>, <span>IDCLIP</span></p>
</div>
<button id="btn-start-game" class="btn-doom">CLICK TO PLAY</button>
<button id="btn-settings" class="btn-doom" style="background:#444; border-color:#888;">SETTINGS</button>
</div>
</div>
<!-- Pause Menu Modal -->
<div id="pause-menu" class="modal-overlay hidden">
<div class="modal-content">
<h1 class="doom-title">PAUSED</h1>
<p class="doom-subtitle">MISSION IN PROGRESS</p>
<button id="btn-resume" class="btn-doom">RESUME GAME</button>
<button id="btn-restart" class="btn-doom">RESTART LEVEL</button>
</div>
</div>
<!-- Game Over Modal -->
<div id="game-over-modal" class="modal-overlay hidden">
<div class="modal-content">
<h1 class="doom-title" style="color:#ff0000; text-shadow: 0 0 20px #ff0000;">YOU DIED</h1>
<p class="doom-subtitle">THE DEMONS OVERWHELMED YOU...</p>
<button id="btn-restart" class="btn-doom" onclick="window.game && window.game.restartGame()">RESPAWN</button>
</div>
</div>
<!-- Settings Modal -->
<div id="settings-modal" class="modal-overlay hidden">
<div class="modal-content">
<h2 class="doom-title" style="font-size:24px;">SETTINGS</h2>
<div class="setting-row">
<span>SFX VOLUME</span>
<input type="range" id="slider-sfx" min="0" max="1" step="0.05" value="0.8">
</div>
<div class="setting-row">
<span>MUSIC VOLUME</span>
<input type="range" id="slider-music" min="0" max="1" step="0.05" value="0.5">
</div>
<div class="setting-row">
<span>MOUSE SENSITIVITY</span>
<input type="range" id="slider-sens" min="0.5" max="3" step="0.1" value="1.0">
</div>
<div class="setting-row">
<span>CRT SCANLINES</span>
<input type="checkbox" id="toggle-crt" checked style="width:20px; height:20px; accent-color:#ff2200;">
</div>
<button id="btn-close-settings" class="btn-doom" style="margin-top:20px;">BACK</button>
</div>
</div>
</div>
<!-- Standalone Three.js r128 Library -->
<script src="js/lib/three.min.js"></script>
<!-- Game Modules -->
<script src="js/audio.js?v=2"></script>
<script src="js/engine.js?v=2"></script>
<script src="js/player.js?v=2"></script>
<script src="js/weapons.js?v=2"></script>
<script src="js/map.js?v=2"></script>
<script src="js/enemies.js?v=2"></script>
<script src="js/items.js?v=2"></script>
<script src="js/hud.js?v=2"></script>
<script src="js/mobile.js?v=2"></script>
<script src="js/main.js?v=2"></script>
</body>
</html>