Set texture of object with multiple materials

So I have a gameobject with multiple materials on it. I have this at the start of the class of another object that Max collides with:

    public GameObject max; 
    [SerializeField] private Material[] mats; 
    [SerializeField] private Texture[] textures; 
    private Renderer bodyRender;

and below on a trigger method I have this:

 private void OnTriggerEnter(Collider collider)
    {
        if (collider.gameObject.tag == "Rocket") 
        {
            bodyRender.material = mats[0]; 
            bodyRender.material.mainTexture = textures[1]; 
            bodyRender.material = mats[1]; 
            bodyRender.material.mainTexture = textures[2]; 
            maxControl.maxForm = 1; 
        }
        if (collider.gameObject.tag == "Charge")
        {
            bodyRender.material = mats[0]; 
            bodyRender.material.mainTexture = textures[3];
            bodyRender.material = mats[1]; 
            bodyRender.material.mainTexture = textures[4]; 
            maxControl.maxForm = 2;
        }
        if (collider.gameObject.tag == "Special")
        {
            bodyRender.material = mats[0]; 
            bodyRender.material.mainTexture = textures[5];
            bodyRender.material = mats[1]; 
            bodyRender.material.mainTexture = textures[6]; 
            maxControl.maxForm = 3; 
        }
    }

when my character touches the object with this script on it, it’s supposed to change his texture, but Max has multiple materials, which is why I made a material array. I thought the lines that set the value of the mats array would make that result be used in the following line for setting the texture, but I guess not as Max doesn’t change at all. oh, and I did use bodyRender = max.GetComponent(); in the Start method too. How do I change the texture on the specified material on Max?