class SchlonzSeekingRocket extends SeekingRocketProj; 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); /////// martaing ///////////////////////////////////////////////////////////////////////////////////////////////////// VelMag = VSize(Velocity); ForceDir = Normal(ForceDir * 5 * VelMag + Velocity); Velocity = VelMag * ForceDir; Acceleration = 25 * ForceDir; /////// my solution ///////////////////////////////////////////////////////////////////////////////////////////////////// // Velocity = VelMag * ForceDir; // Acceleration += 5 * ForceDir; ////// original ////////////////////////////////////////////////////////////////////////////////////////////////////// // VelMag = VSize(Velocity); // ForceDir = Normal(ForceDir * 0.5 * VelMag + Velocity); // Velocity = VelMag * ForceDir; // Acceleration += 5 * ForceDir; } // Update rocket so it faces in the direction its going. SetRotation(rotator(Velocity)); } } defaultproperties { Speed=2000.000000 MaxSpeed=2000.000000 Damage=85.000000 DamageRadius=240.000000 MomentumTransfer=80000.000000 }