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); }
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; }