Initial commit: Siege Protocol

Inverted tower-defense browser game — deploy enemies yourself, tower auto-kills them, pocket credits, upgrade weapons. HTML + Canvas + vanilla JS, no build step.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-06-16 11:36:53 -04:00
commit 622a9fd170
31 changed files with 6164 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SIEGE PROTOCOL</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;700;900&display=swap">
<link rel="stylesheet" href="css/main.css?v=20260615r">
<link rel="stylesheet" href="css/dev-console.css?v=20260615r">
</head>
<body>
<canvas id="canvas"></canvas>
<div id="perf-overlay" aria-live="off"></div>
<script defer src="js/utils.js?v=20260615r"></script>
<script defer src="js/defs.js?v=20260615r"></script>
<script defer src="js/state.js?v=20260615r"></script>
<script defer src="js/audio.js?v=20260615r"></script>
<script defer src="js/particles.js?v=20260615r"></script>
<script defer src="js/elements.js?v=20260615r"></script>
<script defer src="js/portals.js?v=20260615r"></script>
<script defer src="js/enemies.js?v=20260615r"></script>
<script defer src="js/weapons.js?v=20260615r"></script>
<script defer src="js/weapon-fire.js?v=20260615r"></script>
<script defer src="js/weapon-projectiles.js?v=20260615r"></script>
<script defer src="js/upgrades.js?v=20260615r"></script>
<script defer src="js/inventory.js?v=20260615r"></script>
<script defer src="js/renderer-world.js?v=20260615r"></script>
<script defer src="js/renderer-tower.js?v=20260615r"></script>
<script defer src="js/renderer-combat.js?v=20260615r"></script>
<script defer src="js/renderer-inventory.js?v=20260615r"></script>
<script defer src="js/renderer-shop-overlay.js?v=20260615r"></script>
<script defer src="js/renderer-shop-sections.js?v=20260615r"></script>
<script defer src="js/renderer-hud.js?v=20260615r"></script>
<script defer src="js/renderer-sidepanel.js?v=20260615r"></script>
<script defer src="js/renderer-overlays.js?v=20260615r"></script>
<script defer src="js/renderer.js?v=20260615r"></script>
<script defer src="js/shop.js?v=20260615r"></script>
<script defer src="js/input.js?v=20260615r"></script>
<script defer src="js/main.js?v=20260615r"></script>
<script defer src="js/dev-console.js?v=20260615r"></script>
<!-- ── DEV CONSOLE ── -->
<div id="dev-console">
<div id="dev-console-header">
<span>▸ DEV CONSOLE</span>
<span id="dev-console-hint">~ to close</span>
</div>
<div id="dev-output"></div>
<div id="dev-input-row">
<span id="dev-prompt">siege&gt;</span>
<input id="dev-input" type="text" autocomplete="off" spellcheck="false" placeholder="type a command...">
</div>
</div>
</body>
</html>