void Start () {
        enemyState = gameObject.GetComponent<Enemy_States>();
        
        gazeInteraction = gameObject.GetComponentInChildren<Enemy_GazeInteraction>();
        gazeInteraction.OnEnemyGazeStay += OnGazeStay;
        gazeInteraction.OnEnemyGazeExited += OnGazeExited;
	}
 // Use this for initialization
 void Start()
 {
     enemyState = gameObject.GetComponent<Enemy_States>();
     enemyState.OnAlert += PlayAlertCue;
     enemyState.OnAngry += PlayAngryCue;
     enemyState.OnFreeze += PlayFrozenCue;
 }
Exemplo n.º 3
0
 // Use this for initialization
 void Start()
 {
     anim = gameObject.GetComponent<Animator>();
     enemyState = gameObject.GetComponent<Enemy_States>();
     enemyState.OnIdle += OnIdle;
     enemyState.OnAlert += OnAlert;
     enemyState.OnAngry += OnAngry;
     enemyState.OnFreeze += OnFreeze;
 }
Exemplo n.º 4
0
    // Use this for initialization
    void Start()
    {
        enemyBody = gameObject.renderer;
        enemyState = gameObject.GetComponent<Enemy_States>();

        enemyState.OnIdle += OnIdle;
        enemyState.OnAlert += OnAlert;
        enemyState.OnAngry += OnAngry;
        enemyState.OnFreeze += OnFreeze;
    }
Exemplo n.º 5
0
    /// <summary>
    /// State machine handling AI logic
    /// </summary>
    /// <returns></returns>
    IEnumerator Update_AI_State()
    {
        while (true)
        {
            distance_To_Player = Vector3.Distance(transform.position, player_Gameobject.transform.position);


            switch (local_Enemy_States)
            {
            case Enemy_States.MOVING_TO_PLAYER:


                local_Nav_Mesh_Agent.destination = player_Gameobject.transform.position;
                // COLM ADD IN MOVING TRIGGER HERE
                if (!is_Playing_Movement_Animation)
                {
                    anim.SetBool("Running", true);
                    if (!local_Base_Enemy.moving_Sound.isPlaying)
                    {
                        //local_Base_Enemy.moving_Sound.Play();
                    }
                    is_Playing_Movement_Animation = true;
                }

                if (distance_To_Player <= attack_Range)
                {
                    local_Enemy_States = Enemy_States.ATTACKING_PLAYER;
                }
                break;

            case Enemy_States.ATTACKING_PLAYER:
                gameObject.transform.LookAt(player_Gameobject.transform);
                gameObject.transform.localEulerAngles = new Vector3(0f, gameObject.transform.localEulerAngles.y, gameObject.transform.localEulerAngles.z);
                local_Nav_Mesh_Agent.destination      = gameObject.transform.position;
                //COLM STOP ENEMY MOVING HERE
                anim.SetBool("Running", false);
                if (local_Base_Enemy.moving_Sound.isPlaying)
                {
                    //local_Base_Enemy.moving_Sound.Stop();
                }
                is_Playing_Movement_Animation = false;


                if (distance_To_Player > attack_Range && !is_Attacking)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_PLAYER;
                }
                else
                {
                    if (!recently_Hit_Player)
                    {
                        current_Target_Index = 0;
                        StartCoroutine("Cast_Attack", player_Gameobject);
                    }
                }


                break;
            }
            yield return(new WaitForSeconds(0.001f));
        }
    }
Exemplo n.º 6
0
    void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player");
        patrolpointsAlert = new Transform[1] { player.transform };
        patrolpoints = patrolpointsIdle;
        currentpoint = 0;

        enemyState = gameObject.GetComponent<Enemy_States>();
        agent = gameObject.GetComponent<NavMeshAgent>();

        agent.speed = idlespeed;
        SetListeners();
    }
Exemplo n.º 7
0
    /// <summary>
    /// State machine handling AI logic
    /// </summary>
    /// <returns></returns>
    IEnumerator Update_AI_State()
    {
        while (true)
        {
            distance_To_Player    = Vector3.Distance(transform.position, player_Gameobject.transform.position);
            distance_To_Objective = Vector3.Distance(transform.position, objective_Gameobject.transform.position);

            switch (local_Enemy_States)
            {
            case Enemy_States.MOVING_TO_OBJECTIVE:
                Set_Target_Objective();
                if (distance_To_Player <= aggro_Range && !is_Attacking)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_PLAYER;
                }
                else if (distance_To_Objective <= attack_Range)
                {
                    local_Enemy_States = Enemy_States.ATTACKING_OBJECTIVE;
                }
                else
                {
                    local_Nav_Mesh_Agent.destination = objective_Gameobject.transform.position;

                    if (!is_Playing_Movement_Animation)
                    {
                        anim.SetBool("Running", true);
                        if (!local_Base_Enemy.moving_Sound.isPlaying)
                        {
                            //local_Base_Enemy.moving_Sound.Play();
                        }

                        is_Playing_Movement_Animation = true;
                    }
                }
                break;

            case Enemy_States.MOVING_TO_PLAYER:
                if (distance_To_Player > attack_Range && distance_To_Player <= max_Attack_Range)
                {
                    local_Nav_Mesh_Agent.destination = player_Gameobject.transform.position;

                    if (!is_Playing_Movement_Animation)
                    {
                        anim.SetBool("Running", true);
                        if (!local_Base_Enemy.moving_Sound.isPlaying)
                        {
                            // local_Base_Enemy.moving_Sound.Play();
                        }
                        is_Playing_Movement_Animation = true;
                    }
                }
                else if (distance_To_Player >= max_Attack_Range)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE;
                }
                else
                {
                    local_Enemy_States = Enemy_States.ATTACKING_PLAYER;
                }
                break;

            case Enemy_States.ATTACKING_PLAYER:
                gameObject.transform.LookAt(player_Gameobject.transform);
                gameObject.transform.localEulerAngles = new Vector3(0f, gameObject.transform.localEulerAngles.y, gameObject.transform.localEulerAngles.z);
                local_Nav_Mesh_Agent.destination      = gameObject.transform.position;
                if (distance_To_Player >= max_Attack_Range)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE;
                }
                else if (distance_To_Player > attack_Range && !is_Attacking)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_PLAYER;
                }
                else
                {
                    if (!recently_Hit_Player)
                    {
                        current_Target_Index = 0;
                        StartCoroutine("Cast_Attack", player_Gameobject);
                    }

                    anim.SetBool("Running", false);
                    if (local_Base_Enemy.moving_Sound.isPlaying)
                    {
                        //local_Base_Enemy.moving_Sound.Stop();
                    }
                    is_Playing_Movement_Animation = false;
                }


                break;

            case Enemy_States.ATTACKING_OBJECTIVE:
                gameObject.transform.LookAt(objective_Gameobject.transform);
                gameObject.transform.localEulerAngles = new Vector3(0f, gameObject.transform.localEulerAngles.y, gameObject.transform.localEulerAngles.z);
                distance_To_Objective            = Vector3.Distance(transform.position, objective_Gameobject.transform.position);
                local_Nav_Mesh_Agent.destination = gameObject.transform.position;

                if (distance_To_Player <= distance_To_Objective && distance_To_Player <= aggro_Range)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_PLAYER;
                }
                else if (objective_Gameobject.GetComponent <Objective_Manager>().is_Destroyed&& !is_Attacking)
                {
                    first_Objective_Is_Destroyed = true;
                    Set_Target_Objective();
                    local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE;
                }
                else if (distance_To_Objective > attack_Range && !is_Attacking)
                {
                    local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE;
                }
                else if (!recently_Hit_Player)
                {
                    current_Target_Index = 1;
                    StartCoroutine("Cast_Attack", objective_Gameobject);
                }

                anim.SetBool("Running", false);
                if (local_Base_Enemy.moving_Sound.isPlaying)
                {
                    // local_Base_Enemy.moving_Sound.Stop();
                }
                is_Playing_Movement_Animation = false;
                Set_Target_Objective();
                break;

            case Enemy_States.DEAD:
                local_Nav_Mesh_Agent.destination = gameObject.transform.position;
                break;
            }
            local_Base_Enemy.health_Bar.transform.LookAt(Camera.main.transform);
            yield return(new WaitForSeconds(0.002f));
        }
    }
Exemplo n.º 8
0
 public void On_Spawn()
 {
     local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE;
     Set_Target_Objective();
 }
Exemplo n.º 9
0
 private void OnEnable()
 {
     local_Enemy_States = Enemy_States.MOVING_TO_OBJECTIVE;
 }
    // Use this for initialization
    void Start()
    {
        currentDelta = idleBecomeInvisible;
        //enemy = gameObject.transform.parent.gameObject;
        enemyState = gameObject.GetComponent<Enemy_States>();
        gazeInteraction = gameObject.GetComponentInChildren<Enemy_GazeInteraction>();

        gazeInteraction.OnEnemyGazeEntered += GazeEnter;
        gazeInteraction.OnEnemyGazeExited += GazeExit;
    }