How to disable Fire button while Reloading

i want to disable my fire button while i am reloading my gun. I am working on FPS first time.
here is my shooting script need your help Thanks
using UnityEngine;
using UnityEngine.UI;

public class PlayerShooting : MonoBehaviour
{

public int damagePerShot = 20;                  // The damage inflicted by each bullet.
public float timeBetweenBullets = 0.5f;        // The time between each shot.
public float range = 50f;                      // The distance the gun can fire.
public GameObject bullet;
float timer;                                    // A timer to determine when to fire.
Ray shootRay;                                   // A ray from the gun end forwards.
RaycastHit shootHit;                            // A raycast hit to get information about what was hit.
int shootableMask;                              // A layer mask so the raycast only hits things on the shootable layer.
ParticleSystem gunParticles;                    // Reference to the particle system.
LineRenderer gunLine;                           // Reference to the line renderer.
AudioSource gunAudio;  							// Reference to the audio source.
Light gunLight;                                 // Reference to the light component.
float effectsDisplayTime = 0.2f;                // The proportion of the timeBetweenBullets that the effects will display for.
Text bullettesxt;
public GameObject bullets;
public int negative= 0;
public int positive = 0;
public int totalBullets;
public GameObject reloader;
AudioSource reloadAudio;

void Update()
{


	bullettesxt = bullets.GetComponent<Text> ();
	bullettesxt.text =  "Count: "+ count.ToString()+"/"+totalBullets.ToString();

}

void Awake ()
{

	// Create a layer mask for the Shootable layer.
	shootableMask = LayerMask.GetMask ("Shootable");
	
	// Set up the references.
	gunParticles = GetComponent<ParticleSystem> ();
	gunLine = GetComponent<LineRenderer> ();
	gunAudio = GetComponent<AudioSource> ();
	reloadAudio = GetComponent<AudioSource> ();

	gunLight = GetComponent<Light> ();
}
  
public int count = 0;
public void shooting()
{
	timer += Time.deltaTime;
	
	// If the Fire1 button is being press and it's time to fire...
	if(Input.GetButton ("Fire1") && count > 0 && timer >= timeBetweenBullets)
		//if( timer >= timeBetweenBullets)
		
	{
		// ... shoot the gun.
		Shoot ();
		//countBullet= count;
		count--;
		negative = count ;
	}
	
	// If the timer has exceeded the proportion of timeBetweenBullets that the effects should be displayed for...
	if(timer >= timeBetweenBullets * effectsDisplayTime)
	{
		// ... disable the effects.
		DisableEffects ();
	}
}


public void Reload () 
{

	//yield return new WaitForSeconds(2);

	if (totalBullets > 0)
	{
		//yield return new WaitForSeconds (3.0);
		positive = 30 - negative;

		totalBullets = totalBullets - (positive / 2);
		count = 30;

	}

	
}

public void displayBullet()
{
	//bullets.text = "Bullet" + a;  
	totalBullets = count;
	
}

public void DisableEffects ()
{
	// Disable the line renderer and the light.
	gunLine.enabled = false;
	gunLight.enabled = false;
}

void Shoot ()
{
	// Reset the timer.
	timer = 0f;
	
	// Play the gun shot audioclip.
gunAudio.Play();
	
	// Enable the light.
	gunLight.enabled = true;
	
	// Stop the particles from playing if they were, then start the particles.
	gunParticles.Stop ();
	gunParticles.Play ();
	
	// Enable the line renderer and set it's first position to be the end of the gun.
	gunLine.enabled = true;
	gunLine.SetPosition (0, transform.position);
	
	// Set the shootRay so that it starts at the end of the gun and points forward from the barrel.
	shootRay.origin = transform.position;
	shootRay.direction = transform.forward;
	
	// Perform the raycast against gameobjects on the shootable layer and if it hits something...
	if(Physics.Raycast (shootRay, out shootHit, range, shootableMask))
	{
		// Try and find an EnemyHealth script on the gameobject hit.
		 EnemyHealth enemyHealth = shootHit.collider.GetComponent <EnemyHealth> ();
		
		// If the EnemyHealth component exist...
		   if(enemyHealth != null)
		   {
		//    // ... the enemy should take damage.
		    enemyHealth.TakeDamage (damagePerShot, shootHit.point);
		   }
		
		// Set the second position of the line renderer to the point the raycast hit.
		gunLine.SetPosition (1, shootHit.point);
	}
	// If the raycast didn't hit anything on the shootable layer...
	else
	{
		// ... set the second position of the line renderer to the fullest extent of the gun's range.
		gunLine.SetPosition (1, shootRay.origin + shootRay.direction * range);
	}
}

}

I have not read your code, but this is a simple thing to accomplish.

if (Input.GetKeyDown("r"))
{
     if (ammo < maxAmmove)
    {
        reload = true;
        reloadTime = 2;
    }
}

if (reload == false)
{
     //The shoot code
}
if (reload == true)
{
     reloadTime -= Time.deltaTime;
     if (reloadTime <= 0)
     {
          ammo = maxAmmo;
          reload = false;
     }
}

bool canFire;

void Reload ()
{
    canFire = false;
    .
    . //your reload code goes here
    .
    canFire = true;
}

void Fire ()
{
    if(canFire)
    {
        //fire here
    }
}

Did not read your code. Generally if you want people to read your long scripts and make suggestions, forum is a better place. For implementing reload you have multiple options. There can be a Shoot() method which is called whenever you press fire and that method can keep track of when to fire and when not, you can use time or a canShoot flag to let it know if it can shoot or not. Also other answers on this post work well. You can track it at the time that you are deciding to call the Shoot method after press of the button or not. It depends on how you want to structure your code, If you want to share it with AI NPC code or not and …

I usually use a Coroutine for reloading. Example (C#):

    [SerializeField] private float reloadTime;
    private bool isReloading = false;


	void Update()
	{
		if(Input.GetButtonDown("Shoot") && isReloading == false) 
		{
			//shoot the bullet
		}
		if(Input.GetButtonDown("Reload"))
		{
			StartCoroutine("Reload");
		}

	}
	IEnumerator Reload()
	{
		isReloading = true;

		//do reload stuff. start animaton, etc.

		yield return new WaitForSeconds (reloadTime); //wait the reload time

		isReloading = false;
	}
    //call this if you need to stop reloading for whatever reason. weapon switch, etc.
	void StopReloading()
	{
		isReloading = false;
        StopCoroutine("Reload");
	}