public override void Attack(bool jampAttack, bool specialAttack, bool _doubleDamage) { bool shootDown = false; GameObject go = null; Proyectil proyectil = null; Proyectil.typeProyectil tipoProyectil = Proyectil.typeProyectil.Nulo; if (specialAttack) { Disparo.gameObject.SetActive(true); spriteEnemy.animator.SetBool("AtaqueEspecial", false); } if (!Disparo.gameObject.activeSelf) { if (!specialAttack) { go = poolObjectAttack.GetObject(); proyectil = go.GetComponent <Proyectil>(); proyectil.SetEnemy(gameObject.GetComponent <Enemy>()); proyectil.SetDobleDamage(_doubleDamage); proyectil.disparadorDelProyectil = Proyectil.DisparadorDelProyectil.Enemigo; if (_doubleDamage) { proyectil.damage = proyectil.damageCounterAttack; } } if (!GetIsDuck() && !specialAttack) { tipoProyectil = Proyectil.typeProyectil.ProyectilNormal; if (jampAttack) { tipoProyectil = Proyectil.typeProyectil.ProyectilAereo; shootDown = true; } go.transform.rotation = generadoresProyectiles.transform.rotation; go.transform.position = generadoresProyectiles.transform.position; proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionMedia; } else if (!specialAttack && GetIsDuck()) { tipoProyectil = Proyectil.typeProyectil.ProyectilBajo; go.transform.rotation = generadorProyectilesAgachado.transform.rotation; go.transform.position = generadorProyectilesAgachado.transform.position; proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionBaja; } if (!specialAttack) { proyectil.On(tipoProyectil); if (!shootDown) { proyectil.ShootForward(); } else { proyectil.ShootForwardDown(); } } } }
public override void Attack(bool jampAttack, bool specialAttack, bool _doubleDamage) { bool shootDown = false; GameObject go = null; Proyectil proyectil = null; ProyectilInparable proyectilInparable = null; Proyectil.typeProyectil tipoProyectil = Proyectil.typeProyectil.Nulo; if (!specialAttack) { go = poolObjectAttack.GetObject(); proyectil = go.GetComponent <Proyectil>(); proyectil.SetEnemy(gameObject.GetComponent <Enemy>()); proyectil.SetDobleDamage(_doubleDamage); proyectil.disparadorDelProyectil = Proyectil.DisparadorDelProyectil.Enemigo; if (_doubleDamage) { proyectil.damage = proyectil.damageCounterAttack; } } if (!GetIsDuck() && !specialAttack) { tipoProyectil = Proyectil.typeProyectil.ProyectilNormal; if (jampAttack) { tipoProyectil = Proyectil.typeProyectil.ProyectilAereo; shootDown = true; } go.transform.rotation = generadoresProyectiles.transform.rotation; go.transform.position = generadoresProyectiles.transform.position; proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionMedia; } else if (!specialAttack && GetIsDuck()) { tipoProyectil = Proyectil.typeProyectil.ProyectilBajo; go.transform.rotation = generadorProyectilesAgachado.transform.rotation; go.transform.position = generadorProyectilesAgachado.transform.position; proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionBaja; } if (specialAttack) { //CAMBIAR ESTE NULO POR EL ATAQUE ESPECIAL CORRESPONDIENTE (Ya sea ProyectilParabola o AtaqueEspecial tipoProyectil = Proyectil.typeProyectil.Nulo; go = poolProyectilImparable.GetObject(); proyectilInparable = go.GetComponent <ProyectilInparable>(); proyectilInparable.SetEnemy(gameObject.GetComponent <Enemy>()); proyectilInparable.SetDobleDamage(_doubleDamage); proyectilInparable.disparadorDelProyectil = Proyectil.DisparadorDelProyectil.Enemigo; proyectilInparable.SetEnemy(gameObject.GetComponent <Agresivo>()); if (_doubleDamage) { proyectil.damage = proyectil.damageCounterAttack; } go.transform.position = GeneradorAtaqueEspecial.transform.position; go.transform.rotation = GeneradorAtaqueEspecial.transform.rotation; proyectilInparable.ShootForward(); } if (!specialAttack) { proyectil.On(tipoProyectil); if (!shootDown) { proyectil.ShootForward(); } else { proyectil.ShootForwardDown(); } } }
public override void Attack(bool jampAttack, bool specialAttack, bool _doubleDamage) { bool shootDown = false; GameObject go = null; Proyectil proyectil = null; Proyectil.typeProyectil tipoProyectil = Proyectil.typeProyectil.Nulo; if (!specialAttack) { go = poolObjectAttack.GetObject(); proyectil = go.GetComponent <Proyectil>(); proyectil.SetEnemy(gameObject.GetComponent <Enemy>()); proyectil.SetDobleDamage(_doubleDamage); proyectil.disparadorDelProyectil = Proyectil.DisparadorDelProyectil.Enemigo; if (_doubleDamage) { proyectil.damage = proyectil.damageCounterAttack; } } if (!GetIsDuck() && !specialAttack) { tipoProyectil = Proyectil.typeProyectil.ProyectilNormal; if (jampAttack) { tipoProyectil = Proyectil.typeProyectil.ProyectilAereo; shootDown = true; } go.transform.rotation = generadoresProyectiles.transform.rotation; go.transform.position = generadoresProyectiles.transform.position; proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionMedia; } else if (!specialAttack && GetIsDuck()) { tipoProyectil = Proyectil.typeProyectil.ProyectilBajo; go.transform.rotation = generadorProyectilesAgachado.transform.rotation; go.transform.position = generadorProyectilesAgachado.transform.position; proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionBaja; } if (specialAttack) { //CAMBIAR ESTE NULO POR EL ATAQUE ESPECIAL CORRESPONDIENTE (Ya sea ProyectilParabola o AtaqueEspecial tipoProyectil = Proyectil.typeProyectil.Nulo; int maxRutas = 3; //cantidad total de rutas posibles que seguira la bala al ser disparada. int minRutas = 1; //minima cantidad de rutas que seguira la bala al ser disparada. if (!GetIsDuck()) { CheckSpecialAttackEnemyController(minRutas, maxRutas, generadorProyectilParabola); } else { CheckSpecialAttackEnemyController(minRutas, maxRutas, generadorProyectilParabolaAgachado); } } if (!specialAttack) { proyectil.On(tipoProyectil); if (!shootDown) { proyectil.ShootForward(); } else { proyectil.ShootForwardDown(); } } }