Exemple #1
0
    IEnumerator Attack()
    {
        while (state == State.Attack && !isDead && health.health > 0 && target.GetComponent <HealthController>().health > 0)
        {
            anim.SetTrigger("Attack");
            if (transform.name.Contains("Gunner"))
            {
                fireProjectile.Shoot();
                yield return(new WaitForSeconds(.5f));

                fireProjectile.Shoot();
                yield return(new WaitForSeconds(.5f));

                fireProjectile.Shoot();
                yield return(new WaitForSeconds(2f));
            }
            else if (transform.name.Contains("Sniper"))
            {
                fireProjectile.Shoot();
                yield return(new WaitForSeconds(6f));
            }
            else if (transform.name.Contains("Rifleman"))
            {
                fireProjectile.Shoot();
                yield return(new WaitForSeconds(2f));
            }
            float dist = Vector3.Distance(transform.position, target.position);
            if (dist > attackDist || GameManager.instance.targetsRemaining == 0)
            {
                state = State.Move;
            }
        }
    }