public static LSProjectile Create(string projCode, LSAgent source, Vector3d offset, AllegianceType targetAllegiance, Func <LSAgent, bool> agentConditional, Action <LSAgent> hitEffect)
        {
            Vector2d relativePos = offset.ToVector2d();
            Vector2d worldPos    = relativePos.Rotated(source.Body.Rotation);
            Vector3d pos         = new Vector3d(worldPos.x, worldPos.y, offset.z + source.Body.HeightPos);

            pos.Add(ref source.Body._position);
            return(Create(projCode, pos, agentConditional, (bite) => ((source.Controller.GetAllegiance(bite) & targetAllegiance) != 0), hitEffect));
        }