# Enemy AI Not Working?

Ok so I have many different varieties of enemies in my game and for some reason, this one isn’t working:

``````var player : GameObject;
var speed : float=6f;
var range : float=15f;
var hitRange : float=6f;
var enemyDamage : float=10f;
var rotationSpeed : float=5f;
var damageTimer : float=0f;
var delta : Vector3;
var distance;
var me : GameObject;
var projectile : Rigidbody;
var initialSpeed = 20.0;
var exit : GameObject;
function Start()
{
player = GameObject.FindGameObjectWithTag("Player");
}

function Update()
{
//calculate the enemy's distance from player and do a check to see if we should
//progress then call the necessary methods

distance = Vector3.Distance(transform.position, player.transform.position);
if(distance<=range)
{
MoveTowards();
RotateTowards();
AttackPlayer();
}
}

function MoveTowards()
{
delta = player.transform.position - transform.position;
delta.Normalize();
delta.y = 0;
if(distance<=(hitRange/1.5))
{
return;
}
var moveSpeed = speed * Time.deltaTime;
transform.position = transform.position + (delta * moveSpeed);
}

function RotateTowards()
{
transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.LookRotation(delta), rotationSpeed);
transform.rotation = Quaternion.Euler(0, transform.eulerAngles.y, 0);
}

function AttackPlayer()
{
damageTimer+=Time.deltaTime;
if (distance < hitRange && damageTimer>=1.5)
{
damageTimer=0f;
Shot();
}
}

function Shot()
{
var instantiatedProjectile : Rigidbody = Instantiate (projectile, exit.position, exit.rotation);

// Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
instantiatedProjectile.velocity = exit.TransformDirection(Vector3 (0, 0, initialSpeed));

// Ignore collisions between the missile and the character controller
Physics.IgnoreCollision(instantiatedProjectile.collider, transform.root.collider);
}
``````

The enemy does move toward the player just fine but the projectile doesn’t instantaniate. Help please???

For

``````if (distance < hitRange && damageTimer>=1.5)
``````

Try

``````if (distance < hitRange && (damageTimer>=1.5))
``````