Esempio n. 1
0
    public void ActivarEnemigos(Collider2D collision)
    {
        mov8d = collision.GetComponent <Movimiento8D>();


        x = transform.childCount;
        //es un bucle que va decrementando la x ya que van saliendo los hijos
        //según van siendo activados y se les pasa  una referencia al jugador
        while (x > 0)
        {
            hijo      = transform.GetChild(x - 1).gameObject;
            movEnemig = hijo.GetComponent <MovEnemig>();
            bomb      = hijo.GetComponent <Bomba>();
            arquero   = hijo.GetComponent <Arquer>();
            if (movEnemig != null)
            {
                movEnemig.CogerJugador(collision.gameObject);
                movEnemig.Activar(true);
            }
            if (bomb != null)
            {
                bomb.enabled = true;
                bomb.CogerJugador(collision.gameObject);
            }
            if (arquero != null)
            {
                arquero.enabled = true;
                arquero.CogeJugador(collision.gameObject);
            }

            hijo.transform.SetParent(null);
            x = transform.childCount;
        }
    }
Esempio n. 2
0
    //Este metodo no se usa, pero puede ser util, no borrar
    void  EnciendeHijos()
    {
        x = transform.childCount;
        //es un bucle que va decrementando la x ya que van saliendo los hijos
        while (x > 0)
        {
            hijo      = transform.GetChild(x - 1).gameObject;
            movEnemig = hijo.GetComponent <MovEnemig>();

            movEnemig.Activar(true);
            hijo.transform.SetParent(null);
            Debug.Log("Enciende hijo" + x);
            Debug.Log(x);
            x = transform.childCount;
        }
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Rigidbody2D enemy = collision.gameObject.GetComponent <Rigidbody2D>();

        if (collision.gameObject.GetComponent <Movimiento8D>() != null)
        {
            if (enemy != null)
            {
                movplayer         = enemy.GetComponent <Movimiento8D>();
                movplayer.enabled = false;
                Debug.Log("Entra personaje");
                Vector2 difference = collision.transform.position - transform.position;
                enemy.AddForce(difference.normalized * fuerza, ForceMode2D.Impulse);
                Invoke("ActivaMov8D", 2f);
                GameManager.instance.TakeDamage(damage);
            }
        }

        else if (collision.gameObject.GetComponent <MovEnemig>() != null)
        {
            if (enemy != null)
            {
                movenemig         = enemy.GetComponent <MovEnemig>();
                movenemig.enabled = false;

                Vector2 difference = collision.transform.position - transform.position;
                enemy.AddForce(difference.normalized * fuerza, ForceMode2D.Impulse);
                EnemyHealth enemyHealth = collision.GetComponent <EnemyHealth>();
                enemyHealth.TakeDamage(damage);
            }
        }

        /*
         * if (collision.gameObject.tag == "Mapa")
         * {
         *  Debug.Log("ChocaPared");
         *  if (ejeX)
         *  {
         *      dirX = dirX  * -1;
         *  }
         *
         *  else
         *      dirY = dirY  * -1;
         * }
         */
    }
Esempio n. 4
0
    private void Ataca()
    {
        ataque = true;
        while (lista.DamePrimeroParaEmpujar() != null)
        {
            // para que este if si lo haces true en el mismo metodo
            if (ataque)
            {
                GameObject enemigo = lista.DamePrimeroParaEmpujar();
                if (enemigo != null)
                {
                    Rigidbody2D enemy = enemigo.GetComponent <Rigidbody2D>();
                    if (enemy != null)
                    {
                        //Para saber de que tipo es cada enemigo
                        movenemig   = enemigo.GetComponent <MovEnemig>();
                        movenemig1  = enemigo.GetComponent <MovEnemig1>();
                        arquero     = enemigo.GetComponent <Arquer>();
                        bomb        = enemigo.GetComponent <Bomba>();
                        bossarquero = enemigo.GetComponent <BossManager2>();



                        //Dependiendo del enemigo con el que luche hace un a cosa u otra
                        if (movenemig != null)
                        {
                            movenemig.enabled = false;
                            Vector2 difference = enemigo.transform.position - transform.position;
                            enemy.AddForce(difference.normalized * fuerza, ForceMode2D.Impulse);
                            EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>();
                            vidaEnmigo.TakeDamage(damage);
                        }

                        else if (movenemig1 != null)
                        {
                            EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>();
                            vidaEnmigo.TakeDamage(damage);
                        }

                        else if (arquero != null)
                        {
                            //no le emuja ya que lo mata de un toque
                            EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>();
                            vidaEnmigo.TakeDamage(damage);
                            arquero.enabled = false;
                        }
                        else if (bomb != null)
                        {
                            EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>();
                            vidaEnmigo.TakeDamage(damage);
                        }
                        else if (bossarquero != null)
                        {
                            EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>();
                            vidaEnmigo.TakeDamage(damage);
                        }
                    }
                }
            }
            lista.AvanzaPrimer(); //Hace que el primer enemigo de la lista sea el segundo, eliminando el primero
        }
        VelOriginal();
        trigger.enabled = false;//para que si se ha quedado alguien en el trigger se veulva a meter en la lista tras atacar
        trigger.enabled = true;
    }