class NiceSeekerSixSeekingRocketProjectile extends NiceSeekerSixRocketProjectile;
var Actor Seeking;
var vector InitialDir;
replication
{
    reliable if( bNetInitial && (Role==ROLE_Authority) )
       Seeking, InitialDir;
}
simulated function Timer()
{
    local vector ForceDir;
    local float VelMag;
    if ( InitialDir == vect(0,0,0) )
       InitialDir = Normal(Velocity);
    Acceleration = vect(0,0,0);
    Super.Timer();
    if ( (Seeking != none) && (Seeking != Instigator) )
    {
       // Do normal guidance to target.
       ForceDir = Normal(Seeking.Location - Location);

       if( (ForceDir Dot InitialDir) > 0 )
       {
           VelMag = VSize(Velocity);
           // Increase the multiplier that is currently 0.8 to make the rocket track better if you need to
           ForceDir = Normal(ForceDir * 0.8 * VelMag + Velocity);
           Velocity =  VelMag * ForceDir;
           Acceleration += 5 * ForceDir;
       }
       // Update rocket so it faces in the direction its going.
       SetRotation(rotator(Velocity));
    }
}
simulated function PostBeginPlay()
{
    Super.PostBeginPlay();
    SetTimer(0.1, true);
}
defaultproperties
{
}
