For that you'll need to use Projectile.NewProjectile, which has an annoying number of parameters. I think I have it so for the most part Shoot has parameters in the same order as Projectile.NewProjectile.I can't even get it to shoot multiple projectiles via Shoot, I'm a moron.
Looks like this method is this:
public static int NewProjectile(float X, float Y, float SpeedX, float SpeedY, int Type, int Damage, float KnockBack, int Owner = 255, float ai0 = 0f, float ai1 = 0f)