when one enemy die, all die?

I have a problem with my enemies when I kill one of my enemies then die all?
I have an enemy script and an enemy healt bar script?

enemy script

using UnityEngine;
using System.Collections;

public class EnemyAI: MonoBehaviour {

		float distance;
private	Transform mainChar;    
		float lookAtDistance = 12.0f;
		float attackRange = 7.0f;
		float moveSpeed = 4.0f;
		float damping = 6.0f;
private bool isItAttacking = false;
private bool isItClose = false;

public Transform myTransform;

new int Damage;

new float AttackTimer = 0.0f;

	void Awake()
{
	//Gör så att man har sin egna transform redo
	myTransform = transform;

}

// Use this for initialization
void Start () 
{
	//target = GameObject.FindWithTag("Gubbe!");
	
}

// Update is called once per frame
void Update () 
{
	
	AttackTimer += 0.1f;
	
	GameObject go = GameObject.FindGameObjectWithTag("Gubbe!");
	mainChar = go.transform;
	
	distance = Vector3.Distance(mainChar.position, transform.position);

	if(distance < lookAtDistance)
	{
		isItAttacking = false;
		isItClose = false;
		renderer.material.color = Color.yellow;
		lookAt ();
	}   
	if(distance > lookAtDistance)
	{
		renderer.material.color = Color.green; 
	}
	if(distance < attackRange)
	{
		attack ();
	}
	/*if(distance < stopDistance)
	{
		
	}*/
	if(isItAttacking)
	{
		renderer.material.color = Color.red;
	}
	
	if(AttackTimer >= 10 && distance < 1.5) 
	 {
		// Kör DamageFunction i "HealthBarScript"
		//Debug.Log("Skada gjord");
		go.GetComponent<HealthBarScript>().DamageFunction();
		AttackTimer = 0.0f;
		
	}
	
	if(distance <= 1.5)
	{
		moveSpeed = 0.0f;
	}
	else
	{
		moveSpeed = 4.0f;	
	}
	
	
	
}

void lookAt ()
{
	var lookDir = mainChar.position - transform.position;

	lookDir.y = 0;

	var rotation = Quaternion.LookRotation(lookDir);
	transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);
}

void attack ()
{
	isItAttacking = true;
	renderer.material.color = Color.red;

	transform.Translate(Vector3.forward * moveSpeed *Time.deltaTime);
}
/*void stopAttack ()
{
	renderer.material.color = Color.cyan;

	transform.Translate(Vector3.back * moveSpeed *Time.deltaTime);
}*/

}

and my enemy health bar script is
using UnityEngine;
using System.Collections;

public class EnemyHealthBarBox : MonoBehaviour
{

public int MaxHP = 4;
public int CurHP = 4;

public Transform Follow;

public Transform DisTest;

public Transform DisTest2;



public float distance;

public Transform DontChange;


new int Damage;

new float AttackTimer = 0.0f;



	

void Awake()
{
	//Gör så att man har sin egna transform redo
	DontChange = transform;

}

// Use this for initialization
void Start () 
{
	//Hittar fienderna samt sätter deras transform till den korrekta variabeln

	
	renderer.material.color = Color.red;
}

// Update is called once per frame
void Update () 
{
	GameObject go = GameObject.FindGameObjectWithTag("Fiende");
	GameObject go2 = GameObject.FindGameObjectWithTag("Gubbe!");
	DisTest = go.transform;
	DisTest2 = go2.transform;
	Follow = go.transform;
	
	AdjustCurHP(0);
	
	if(Input.GetKeyDown(KeyCode.T))
	{
		CurHP -=1;
		transform.localScale -= new Vector3(0.5F, 0, 0);
	}

	
	if(CurHP == 0)
	{
		//Destroy(transform.Follow);
		Destroy(gameObject);
		Destroy(gameObject.GetComponent<EnemyAI>());
	}
	
	//Flyttar healthBaren så att den sitter där den ska. Den följer skarpt i Xled men inte i Zled. Yled rörs ej.

	
	//Vector3 viewPos = camera.WorldToViewportPoint(Enemy.position);
	
	
	

	
	distance = Vector3.Distance(DisTest.position, DisTest2.position);
	transform.position = new Vector3(Follow.position.x, Follow.position.y + 2, Follow.position.z);
	
	if(Input.GetKeyDown(KeyCode.Z) && distance <= 3) 
	{
		// Kör DamageFunction i "HealthBarScript"
		Debug.Log("Skada gjord");
		CurHP -=1;
		transform.localScale -= new Vector3(0.5F, 0, 0);
	}
}

	public void AdjustCurHP(int adj)
{
	CurHP += adj;
	
	if(CurHP < 0)
	{
		CurHP = 0;
	}
	
	if(CurHP > 100)
	{
		CurHP = MaxHP;	
	}
	
	if(MaxHP < 1)
	{
		MaxHP = 1;
	}
}

}

The problem here is that you do not have enough seperation between keyboard inputs and enemy damage. From the looks of things, your enemies take damage whenever you press the attack button- so, obviously they will all die at once. Add in functionality for picking which enemy to attack, and some kind of interface for doing so (for example, clicking on them or shooting some kind of projectile into them).

the thing is that, I have distance test, but the HP on all of my enemies goes down ?

I have if(Input.GetKeyDown(KeyCode.Z) && distance <= 3)
so I have distance and key?