i have problem with repeat attack he just attack one time please i need help faster you can

that my script `void Start()
{
col = GetComponent();
col.enabled = true;
Enable.heiad += 1;
agent = this.GetComponent();
Anim = GetComponent();
SNDSource = GetComponent();

    player = GameObject.FindWithTag("Player").transform;
    agent.speed = moveSpeed;
    agent.acceleration = moveSpeed * 40;
    agent.angularSpeed = 999;

}
private float nextAttack = 0.0f;
float attackInterval = 0.7f;
private float attackTimer = 0.8f;

void FixedUpdate()
{
    hp = DamageHandler.CurrentHealth;
    if (hp > 0 && isDeath == false)
    {
        Anim.SetBool("isDead", false);
        if (Anim.GetCurrentAnimatorStateInfo(0).IsName("Spawn"))
            return;

        checkView();

        if (playerChase && Anim.GetBool("isChasing"))
        {
            chasePlayer();

        }

        AnimatorStateInfo state = Anim.GetCurrentAnimatorStateInfo(0);
        if (!state.IsName("Attack") && playerChase && reachedPathEnd())
        {
            if (!Anim.GetBool("attace"))
                Anim.SetFloat("AttackType", Random.Range(0, 2));
            Anim.SetBool("attace", true);
            agent.Stop();
            Anim.SetBool("isIdle", false);
            Anim.SetBool("isChasing", false);
            Anim.SetBool("isEating", false);

Attack();

            playerChase = false;
        }
        if (state.IsName("Attack") && state.normalizedTime >= 1.50f)
        {
            chasePlayer();
          
        }

    }
    else
    {

        playerChase = false;

        Anim.SetBool("attace", false);
        Anim.SetBool("isIdle", false);
        Anim.SetBool("isChasing", false);
        Anim.SetBool("isEating", false);

        BroadcastMessage("ActivateR", SendMessageOptions.RequireReceiver);
      
      col.enabled = false;
        isDeath = true;
    }
}
void checkView()
{
    Vector3 direction = player.position - transform.position;
    if (direction.magnitude >= 1.5f)
    {
        chasePlayer();

    }

}
void chasePlayer()
{
    Anim.SetBool("isChasing", true);
    if (canRun)
        Anim.SetBool("isRunning", true);
    Anim.SetBool("attace", false);
    Anim.SetBool("isIdle", false);
    playerChase = true;
    agent.SetDestination(player.position);
    agent.Resume();
    playSound(audioClips[1], false, false, true, true);
}
void playSound(AudioClip sound, bool loop, bool randomStart = false, bool checkSameClip = false, bool isPlayingCheck = false)
{
    if (checkSameClip && SNDSource.clip == sound && !SNDSource.isPlaying)
        return;
    if (isPlayingCheck && SNDSource.clip == sound && SNDSource.isPlaying)
        return;
    SNDSource.clip = sound;
    SNDSource.loop = loop;
    if (randomStart)
        SNDSource.time = Random.Range(0.0f, sound.length);
    SNDSource.Play();
}
void Attack()
{
    if (!meleeDistance())
        return;
    agent.updateRotation = false;
    transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(agent.destination - transform.position, transform.up), 7.0f * Time.deltaTime);
    agent.updateRotation = true;
    if (attackTimer > 0)
        attackTimer -= Time.deltaTime;

    if (attackTimer < 0)
        attackTimer = 0;

   
    // only repeat attack after attackInterval

        nextAttack = Time.time + attackInterval;
    player.SendMessage("Damage", damage, SendMessageOptions.RequireReceiver);

}

bool reachedPathEnd()
{
    if (!agent.pathPending && agent.remainingDistance <= agent.stoppingDistance)
    {
        if (!agent.hasPath || agent.velocity.sqrMagnitude == 0.0f)
        {
            return true;
        }
        return true;
    }
    return false;
}

bool meleeDistance()
{
    if (Vector3.Distance(transform.position, player.position) < 1.5f)
    {
        return true;
    }

    return false;
}`

void Start()
{
col = GetComponent();
col.enabled = true;
Enable.heiad += 1;
agent = this.GetComponent();
Anim = GetComponent();
SNDSource = GetComponent();

        player = GameObject.FindWithTag("Player").transform;
        agent.speed = moveSpeed;
        agent.acceleration = moveSpeed * 40;
        agent.angularSpeed = 999;


    }
    private float nextAttack = 0.0f;
    float attackInterval = 0.7f;
    private float attackTimer = 0.8f;

    void FixedUpdate()
    {
        hp = DamageHandler.CurrentHealth;
        if (hp > 0 && isDeath == false)
        {
            Anim.SetBool("isDead", false);
            if (Anim.GetCurrentAnimatorStateInfo(0).IsName("Spawn"))
                return;

            checkView();

            if (playerChase && Anim.GetBool("isChasing"))
            {
                chasePlayer();

            }

            AnimatorStateInfo state = Anim.GetCurrentAnimatorStateInfo(0);
            if (!state.IsName("Attack") && playerChase && reachedPathEnd())
            {
                if (!Anim.GetBool("attace"))
                    Anim.SetFloat("AttackType", Random.Range(0, 2));
                Anim.SetBool("attace", true);
                agent.Stop();
                Anim.SetBool("isIdle", false);
                Anim.SetBool("isChasing", false);
                Anim.SetBool("isEating", false);
           
  Attack();
                
                playerChase = false;
            }
            if (state.IsName("Attack") && state.normalizedTime >= 1.50f)
            {
                chasePlayer();
              
            }

        }
        else
        {

            playerChase = false;

            Anim.SetBool("attace", false);
            Anim.SetBool("isIdle", false);
            Anim.SetBool("isChasing", false);
            Anim.SetBool("isEating", false);

            BroadcastMessage("ActivateR", SendMessageOptions.RequireReceiver);
          
          col.enabled = false;
            isDeath = true;
        }
    }
    void checkView()
    {
        Vector3 direction = player.position - transform.position;
        if (direction.magnitude >= 1.5f)
        {
            chasePlayer();

        }

    }
    void chasePlayer()
    {
        Anim.SetBool("isChasing", true);
        if (canRun)
            Anim.SetBool("isRunning", true);
        Anim.SetBool("attace", false);
        Anim.SetBool("isIdle", false);
        playerChase = true;
        agent.SetDestination(player.position);
        agent.Resume();
        playSound(audioClips[1], false, false, true, true);
    }
    void playSound(AudioClip sound, bool loop, bool randomStart = false, bool checkSameClip = false, bool isPlayingCheck = false)
    {
        if (checkSameClip && SNDSource.clip == sound && !SNDSource.isPlaying)
            return;
        if (isPlayingCheck && SNDSource.clip == sound && SNDSource.isPlaying)
            return;
        SNDSource.clip = sound;
        SNDSource.loop = loop;
        if (randomStart)
            SNDSource.time = Random.Range(0.0f, sound.length);
        SNDSource.Play();
    }
    void Attack()
    {
        if (!meleeDistance())
            return;
        agent.updateRotation = false;
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(agent.destination - transform.position, transform.up), 7.0f * Time.deltaTime);
        agent.updateRotation = true;
        if (attackTimer > 0)
            attackTimer -= Time.deltaTime;

        if (attackTimer < 0)
            attackTimer = 0;

       
        // only repeat attack after attackInterval

            nextAttack = Time.time + attackInterval;
        player.SendMessage("Damage", damage, SendMessageOptions.RequireReceiver);
    
}

    bool reachedPathEnd()
    {
        if (!agent.pathPending && agent.remainingDistance <= agent.stoppingDistance)
        {
            if (!agent.hasPath || agent.velocity.sqrMagnitude == 0.0f)
            {
                return true;
            }
            return true;
        }
        return false;
    }

    bool meleeDistance()
    {
        if (Vector3.Distance(transform.position, player.position) < 1.5f)
        {
            return true;
        }

        return false;
    }