+ {/* SVG Crater with depth shading */}
+
+
+
+ {/* Physics-based debris burst */}
+ {debrisPosition && (
+
+ )}
+ {/* The actual explosion GIF */}
+
+
+
+ {/* Rising smoke effect */}
+
+
+ );
+});
diff --git a/client/src/components/ui/ExplosionContainer.tsx b/client/src/components/ui/ExplosionContainer.tsx
new file mode 100644
index 00000000..af8d590a
--- /dev/null
+++ b/client/src/components/ui/ExplosionContainer.tsx
@@ -0,0 +1,24 @@
+import { useExplosions } from "../../hooks/useExplosions";
+import { Explosion } from "./Explosion";
+
+/**
+ * Container component that renders all active explosions.
+ * Handles the explosion state management via the useExplosions hook.
+ */
+export function ExplosionContainer() {
+ const { explosions } = useExplosions();
+
+ return (
+ <>
+ {explosions.map((explosion) => (
+