Spawn Shell
public Shell SpawnShell(GameObject shellPrefab, Vector3 position, Quaternion rotation, Unit owner, Unit target)
Shoots a shell: instantiates shellPrefab (a purely visual prefab — no Rigidbody/Collider needed on it) at position/rotation, creates a Shell object and initializes it via Setup with the given owner and target, then starts tracking it so ShellSystem ticks it every frame.
Returns the spawned Shell, so you can, for example, call SetCustomDamage on it right after spawning — this is exactly what ShellAttack does to apply per-attack custom damage.