public void SpecialAttack(bool doubleDamage, bool isDuck, GameObject generadorProyectilesParabola, GameObject generadorProyectilesParabolaAgachado, EnumsEnemy enumsEnemy, StructsEnemys structsEnemys, int randomMax, int randomMin) { GameObject go = poolObjectSpecialAttack.GetObject(); ProyectilParabola proyectil = go.GetComponent <ProyectilParabola>(); proyectil.SetDobleDamage(doubleDamage); proyectil.disparadorDelProyectil = Proyectil.DisparadorDelProyectil.Enemigo; if (doubleDamage) { proyectil.damage = proyectil.damage * 2; } if (!isDuck) { proyectil.TypeRoot = 1; go.transform.position = generadorProyectilesParabola.transform.position; } else { proyectil.TypeRoot = 2; go.transform.position = generadorProyectilesParabolaAgachado.transform.position; } if (enumsEnemy.typeEnemy != EnumsEnemy.TiposDeEnemigo.Jefe) { switch (proyectil.TypeRoot) { case 1: proyectil.rutaParabola_AtaqueEnemigo = generadorProyectilesParabola.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_1; break; case 2: proyectil.rutaParabolaAgachado_AtaqueEnemigo = generadorProyectilesParabolaAgachado.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_1; break; } proyectil.OnParabola(); } else if (enumsEnemy.typeEnemy == EnumsEnemy.TiposDeEnemigo.Jefe) { int random = Random.Range(randomMin, randomMax); switch (proyectil.TypeRoot) { case 1: switch (random) { case 0: proyectil.rutaParabola_AtaqueEnemigo = generadorProyectilesParabola.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_1; break; case 1: proyectil.rutaParabola_AtaqueEnemigo = generadorProyectilesParabola.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_2; break; case 2: proyectil.rutaParabola_AtaqueEnemigo = generadorProyectilesParabola.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_3; break; } break; case 2: switch (random) { case 0: proyectil.rutaParabolaAgachado_AtaqueEnemigo = generadorProyectilesParabolaAgachado.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_1; break; case 1: proyectil.rutaParabolaAgachado_AtaqueEnemigo = generadorProyectilesParabolaAgachado.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_2; break; case 2: proyectil.rutaParabolaAgachado_AtaqueEnemigo = generadorProyectilesParabolaAgachado.GetComponent <StructGenerateProyectilParabolaJefe>().Ruta_3; break; } break; } //Debug.Log(proyectil.rutaParabolaAgachado_AtaqueEnemigo); proyectil.OnParabola(); } }
//ATAQUE EN PARABOLA. public void SpecialAttack(Proyectil.DisparadorDelProyectil disparador) { switch (enumsPlayers.specialAttackEquipped) { case EnumsPlayers.SpecialAttackEquipped.Default: if (enableSpecialAttack) { GameObject go = structsPlayer.dataAttack.poolProyectilParabola.GetObject(); ProyectilParabola proyectil = go.GetComponent <ProyectilParabola>(); proyectil.SetDobleDamage(doubleDamage); proyectil.disparadorDelProyectil = disparador; if (doubleDamage) { proyectil.damage = proyectil.damage * 2; } if (!isDuck) { proyectil.TypeRoot = 1; go.transform.position = generadorProyectilesParabola.transform.position; } else { proyectil.TypeRoot = 2; go.transform.position = generadorProyectilesParabolaAgachado.transform.position; } switch (proyectil.TypeRoot) { case 1: proyectil.rutaParabola_AtaqueJugador = structsPlayer.ruta; break; case 2: proyectil.rutaParabolaAgachado_AtaqueJugador = structsPlayer.rutaAgachado; break; } proyectil.rutaParabola_AtaqueJugador = structsPlayer.ruta; proyectil.OnParabola(); enableSpecialAttack = false; xpActual = 0; } break; case EnumsPlayers.SpecialAttackEquipped.GranadaGaseosa: if (enableSpecialAttack) { GameObject go = structsPlayer.dataAttack.poolGranadaGaseosa.GetObject(); ProyectilParabola proyectil = go.GetComponent <ProyectilParabola>(); proyectil.SetDobleDamage(doubleDamage); proyectil.disparadorDelProyectil = disparador; if (enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player1) { proyectil.SetPlayer(this); } else if (enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player2) { proyectil.SetPlayer2(this); } if (doubleDamage) { proyectil.damage = proyectil.damage * 2; } if (!isDuck) { proyectil.TypeRoot = 1; go.transform.position = generadorProyectilesParabola.transform.position; } else { proyectil.TypeRoot = 2; go.transform.position = generadorProyectilesParabolaAgachado.transform.position; } switch (proyectil.TypeRoot) { case 1: proyectil.rutaParabola_AtaqueJugador = structsPlayer.ruta; break; case 2: proyectil.rutaParabolaAgachado_AtaqueJugador = structsPlayer.rutaAgachado; break; } proyectil.rutaParabola_AtaqueJugador = structsPlayer.ruta; proyectil.OnParabola(); enableSpecialAttack = false; xpActual = 0; } break; case EnumsPlayers.SpecialAttackEquipped.DisparoDeCarga: if (enableSpecialAttack) { if (!isJumping && !isDuck && enumsPlayers.movimiento != EnumsPlayers.Movimiento.Saltar && enumsPlayers.movimiento != EnumsPlayers.Movimiento.SaltoAtaque && enumsPlayers.movimiento != EnumsPlayers.Movimiento.SaltoDefensa) { structsPlayer.dataAttack.DisparoDeCarga.SetActive(true); enableSpecialAttack = false; xpActual = 0; } } break; case EnumsPlayers.SpecialAttackEquipped.ProyectilImparable: if (enableSpecialAttack) { if (!isJumping && !isDuck && enumsPlayers.movimiento != EnumsPlayers.Movimiento.Saltar && enumsPlayers.movimiento != EnumsPlayers.Movimiento.SaltoAtaque && enumsPlayers.movimiento != EnumsPlayers.Movimiento.SaltoDefensa) { GameObject go = structsPlayer.dataAttack.poolProyectilImparable.GetObject(); ProyectilInparable proyectilInparable = go.GetComponent <ProyectilInparable>(); proyectilInparable.SetEnemy(gameObject.GetComponent <Enemy>()); proyectilInparable.disparadorDelProyectil = Proyectil.DisparadorDelProyectil.Enemigo; if (enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player1) { proyectilInparable.SetPlayer(gameObject.GetComponent <Player>()); } else if (enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player2) { proyectilInparable.SetPlayer2(gameObject.GetComponent <Player>()); } go.transform.position = generadorProyectilesAgachado.transform.position; go.transform.rotation = generadorProyectilesAgachado.transform.rotation; proyectilInparable.ShootForward(); enableSpecialAttack = false; xpActual = 0; } } break; } }