示例#1
0
 void Ataque()
 {
     //mientras hayan enemigos dentro de la lista de enemigos para realizar daño
     while (lista.DamePrimeroParaEmpujar() != null)
     {
         //cojo sus componentes rIgidbody
         GameObject  enemigo = lista.DamePrimeroParaEmpujar();
         Rigidbody2D enemy   = enemigo.GetComponent <Rigidbody2D>();
         //en caso de que este tenfga rigidbody
         if (enemy != null)
         {
             //le realizo daño
             EnemyHealth vidaEnmigo = enemy.GetComponent <EnemyHealth>();
             vidaEnmigo.TakeDamage(amount);
         }
     }
     // "apago" la animación para evitar que se pueda repetir
     anim.SetBool("Ataque", false);
 }
示例#2
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;
    }