private static Vector2 Overstear(Context cx, Pod pod, out double?angle) { angle = null; var node = pod.NextNode(cx); if (pod.Velocity.Magnitude() < 50) { return(node.Pos); } var targetVector = node.Pos - pod.Pos; angle = pod.Velocity.Angle(targetVector); angle += (angle * 0.15);// * Math.Sign(angle.Value); var newT = pod.Velocity.Normalize().Rotate(angle.Value) * targetVector.Magnitude(); return(newT + pod.Pos); }