void Swoop(ffc this, npc ghost, bool numSweeps)
{
float a=Link->X;
float b=Link->Y;
float x=Ghost_X;
float y=Ghost_Y;
float endx=GetEndX(x);
float endy=GetEndY(y);
float angle=Angle(x,y,endx,endy); //Axis Angle
int counter=0;
//Descend
while(counter<TBIRD_SWEEP_TIME && Ghost_HP>0)
{
counter++;
Ghost_X=SmoothStep(x,a,counter/TBIRD_SWEEP_TIME);
Ghost_Y=SmoothStep(y,b,counter/TBIRD_SWEEP_TIME);
//Vector Projection
TBird_Waitframe(this,ghost);
}
//Fire
if(numSweeps==1 && (ghost->Attributes[TBIRD_ATTRIBUTES_FLAGS] & TBIRD_NO_SBOLT)==0)
SBolt(this, ghost);
else
Fire(this, ghost);
//Ascend
}