private bool ColisionaConZonaReaparicion(Enemigo enemigo)
    {
        float limiteX =
            GameObject.FindGameObjectWithTag("ZonaAparicionEnemigos")
            .GetComponent <Collider2D>().bounds.min.x;
        float maximaX = enemigo.GetComponent <Collider2D>().bounds.max.x;

        return(maximaX >= limiteX ? true : false);
    }
Esempio n. 2
0
 private void Start()
 {
     //Inicialización:
     Enemigo           = this.gameObject;
     TransformEnemigo  = Enemigo.transform;
     CuerpoEnemigo     = Enemigo.GetComponent <Rigidbody2D>();
     AnimatorEnemigo   = Enemigo.GetComponent <Animator>();
     ArmaGuardada      = Arma;
     _LayerSuelo       = GameObject.Find("HUD").GetComponent <PlayerAndHUDController>().LayerSuelo;
     _VerificadorSuelo = this.transform.Find("ComprobadorSuelo");
 }
    // este script lo tiene un obstaculo especial, que se encarga de afectar al jugador, si este se mueve mientras está dentro de su collider


    public void OnTriggerStay(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            if (Input.GetAxis("Horizontal") != 0)
            {
                Sonar(privateAudio);
                other.gameObject.GetComponent <PlayerMovement>().StartCoroutine("Caerse");
                Enemigo.GetComponent <EnemyScript>().StartCoroutine("AdelantarEnemigo");
            }
        }
    }
Esempio n. 4
0
    // este tipo de obstaculo tiene un efecto distinto a otros obstaculos cuando se encuentra con el tag player

    new public void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            Sonar(privateAudio);
            other.gameObject.GetComponent <PlayerMovement>().StartCoroutine("Caerse");
            Enemigo.GetComponent <EnemyScript>().StartCoroutine("AvanzarEnemigo");
        }
        // e igualmente se destruye al colisionar con el tag destructor
        if (other.CompareTag("Destructor"))
        {
            Destroy(gameObject);
        }
    }
Esempio n. 5
0
    //esta clase de obstaculos, tiene unas instrucciones que seguir cuando colisiona con el jugador
    // como atrasar la posicion del enemigo e ingresar a otros scripts y alterar valores que se almacenan en estos

    new public void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            Sonar(privateAudio);
            GameManager.Instance.SubirTurbo();
            GameManager.Instance.AlterarTotalMonedas(1);
            Enemigo.GetComponent <EnemyScript>().StartCoroutine("RetrocederEnemigo");
        }

        if (other.CompareTag("Destructor"))
        {
            Destroy(gameObject);
        }
    }
Esempio n. 6
0
    public void DesactivarSpawn()
    {
        for (int i = 0; i < spawns.Length; i++)
        {
            spawns[i].GetComponent <SpawnerPigs>().enabled = false;
        }

        enemigos = GameObject.FindGameObjectsWithTag("Enemigo");

        foreach (GameObject Enemigo in enemigos)
        {
            if (Enemigo.GetComponent <PigAI>() != null)
            {
                Destroy(Enemigo);
            }
        }
    }
Esempio n. 7
0
 /// <summary>
 /// Activa la Función de Ataque del enemigo, activandole su animación y verificando si se debe lanzar el cuchillo (Que se activa solo cuando el animation event lo indica en
 /// el método de LanzarCuchillo)
 /// </summary>
 private void Atacar()
 {
     //Animación de Ataque:
     AnimatorEnemigo.SetBool("attack", true);
     //Crear el sprite del cuchillo en el segundo:
     if (isLanzarCuchillo)
     {
         isLanzarCuchillo             = false;
         Arma                         = (GameObject)Instantiate(Arma, PosicionadorArma.transform.position, PosicionadorArma.transform.rotation, TransformEnemigo);
         Arma.transform.localPosition = PosicionadorArma.transform.localPosition;
         if (!Enemigo.GetComponent <SpriteRenderer>().flipX)
         {
             Arma.GetComponent <Rigidbody2D> ().velocity = new Vector2(-10, 0);
         }
         else
         {
             Arma.GetComponent <Rigidbody2D> ().velocity = new Vector2(10, 0);
         }
         Arma.name = "Cuchillo1";
         Arma      = ArmaGuardada;
     }
 }
Esempio n. 8
0
    public void Respawn()
    {
        barraVida.transform.localScale = new Vector3(barraVidaInicialX, barraVida.transform.localScale.y, barraVida.transform.localScale.z);
        //Aparición
        if (borracho)
        {
            DisminuirCheck(); //Esto activa seHaDesactivadoUnCheck
            jugaPlayer.setDesnudo(true);
        }

        if (seHaDesactivadoUnCheck)
        {
            CheckPoints[order + 1].ReiniciarCheck(); //Para poder coger el ultimo alcanzado cuando revivamos (a no ser que nos emborrachemos)
            seHaDesactivadoUnCheck = false;
        }

        //Reactivar Objetos
        foreach (GameObject Botella in botellas)
        {
            Botella.SetActive(true);
        }

        ReiniciarStats();

        //Posicion del jugador (checkpoint)
        if (order < 0)
        {
            order = 0;
            CheckPoints[0].cogido = true;
        }

        Jugador.transform.position = CheckPoints[order].transform.position;


        //Barca
        if (movBarca != null)
        {
            movBarca.muerto = true;
            movBarca.fin    = true;
            movBarca.GetComponent <Collider2D>().isTrigger = true;
            movBarca.transform.position = new Vector3(-543.9f, 0.79f, 0.5f);
            movBarca.movX = 9;
        }

        //Enemigos
        int i = 0;

        foreach (GameObject Enemigo in enemigos)
        {
            if (Enemigo.GetComponent <EnemyAI>() != null)
            {
                Enemigo.GetComponent <EnemyAI>().Respawn();
            }

            else if (Enemigo.GetComponent <ShieldEnemyAI>() != null)
            {
                Enemigo.GetComponent <ShieldEnemyAI>().Respawn();
            }

            Enemigo.transform.position = posicionesEnemigos[i];
            Enemigo.SetActive(true);
            Enemigo.transform.eulerAngles = new Vector3(0, 0, 0);
            i++;
        }

        if (desactivaSpawn != null)
        {
            desactivaSpawn.DesactivarSpawn();
        }

        if (bossDelNivel != null)
        {
            if (bossDelNivel.GetComponent <FinalBoss>() != null)
            {
                bossDelNivel.GetComponent <FinalBoss>().Respawn();
            }

            else if (bossDelNivel.GetComponent <FinalBossFase2>() != null)
            {
                bossDelNivel.GetComponent <FinalBossFase2>().Respawn();
            }

            else if (bossDelNivel.GetComponent <BossIA>() != null)
            {
                bossDelNivel.GetComponent <BossIA>().Respawn();
            }
        }

        if (AudioManager.Instance.audioSourceBoss.activeInHierarchy == true)
        {
            AudioManager.Instance.audioSourceBoss.SetActive(false);
            AudioManager.Instance.Musica1();
        }
    }
Esempio n. 9
0
    /// <summary>
    /// Método de Físicas. Se utiliza para mover al enemigo. Hacer que ataque y salte.
    /// </summary>
    private void FixedUpdate()
    {
        //Detectar Suelo:

        _EnSuelo = Physics2D.OverlapCircle(new Vector2(_VerificadorSuelo.position.x, _VerificadorSuelo.position.y), _RangoDetectarSuelo, _LayerSuelo);

        if (Enemigo.GetComponent <SpriteRenderer> ().flipX) //Viendo hacia la derecha:
        {
            velocidadCaminar = Mathf.Abs(velocidadCaminar);
            PosicionadorArma.transform.localPosition = new Vector3(Mathf.Abs(PosicionadorArma.transform.localPosition.x), PosicionadorArma.transform.localPosition.y, PosicionadorArma.transform.localPosition.z);
        }
        else            //Viendo hacia la izquierda:
        {
            velocidadCaminar = velocidadCaminar == Mathf.Abs(velocidadCaminar) ? velocidadCaminar * -1 : velocidadCaminar;
            if (PosicionadorArma.transform.localPosition.x == Mathf.Abs(PosicionadorArma.transform.localPosition.x))
            {
                PosicionadorArma.transform.localPosition = new Vector3(PosicionadorArma.transform.localPosition.x * -1, PosicionadorArma.transform.localPosition.y, PosicionadorArma.transform.localPosition.z);
            }
        }

        if (Estatico && _ContadorAlEstarEstatico <= 0 && !AnimatorEnemigo.GetBool("attack") && !AnimatorEnemigo.GetBool("playerattack"))
        {
            _ContadorAlEstarEstatico = 5;
            Voltear = true;
        }
        else if (Estatico)
        {
            _ContadorAlEstarEstatico -= Time.deltaTime;
        }
        else if (!Estatico)
        {
            _ContadorAlEstarEstatico = 5;
        }

        //Caminar y Atacar:
        if (!JugadorEnPlataforma) // Si el jugador no esta en la plataforma no atacara y caminara o se mantendrá quieto:
        {
            //Verificar si el esqueleto está configurado para caminar o para estar estático:
            if (Estatico)
            {
                _animatorEnemigo.SetFloat("walk", -0.1f);
                DejarAtacar();
            }
            else
            {
                CuerpoEnemigo.velocity = new Vector2(velocidadCaminar, CuerpoEnemigo.velocity.y);
                _animatorEnemigo.SetFloat("walk", 0.1f);
                DejarAtacar();
            }
        }
        else //En cambio si el jugador esta en la plataforma no caminara y atacara:
        {
            Atacar();
        }

        //Voltear al Enemigo
        if (Voltear)
        {
            Enemigo.GetComponent <SpriteRenderer> ().flipX = Enemigo.GetComponent <SpriteRenderer> ().flipX ? false : true;
            Vector2 ColliderEsquivador = transform.Find("ColliderEsquivador").GetComponent <BoxCollider2D>().offset;
            transform.Find("ColliderEsquivador").GetComponent <BoxCollider2D>().offset = new Vector2(Mathf.Abs(ColliderEsquivador.x) == ColliderEsquivador.x ? ColliderEsquivador.x * -1 : Mathf.Abs(ColliderEsquivador.x), ColliderEsquivador.y);
            Voltear = false;
        }

        //Hacer que siempre valla hacia donde mira:
        if (_Saltar)
        {
            AnimatorEnemigo.SetFloat("vspeed", 0.1f);
        }
        else
        {
            CuerpoEnemigo.velocity = new Vector3(CuerpoEnemigo.velocity.x, CuerpoEnemigo.velocity.y - Time.deltaTime);
        }
    }
 public EnemigoDesvanecidoEstado(Enemigo enemigo)
 {
     enem  = enemigo;
     agent = enem.GetComponent <UnityEngine.AI.NavMeshAgent>();
 }