Пример #1
0
        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();
                    }
                }
            }
        }
Пример #2
0
        public void Attack(Proyectil.DisparadorDelProyectil disparador)
        {
            if (enableAttack)
            {
                GameObject go        = structsPlayer.dataAttack.poolProyectil.GetObject();
                Proyectil  proyectil = go.GetComponent <Proyectil>();
                Proyectil.typeProyectil tipoProyectil = Proyectil.typeProyectil.ProyectilAereo;
                switch (enumsPlayers.numberPlayer)
                {
                case EnumsPlayers.NumberPlayer.player1:
                    proyectil.SetPlayer(gameObject.GetComponent <Player>());
                    disparador = Proyectil.DisparadorDelProyectil.Jugador1;
                    break;

                case EnumsPlayers.NumberPlayer.player2:
                    proyectil.SetPlayer2(gameObject.GetComponent <Player>());
                    disparador = Proyectil.DisparadorDelProyectil.Jugador2;
                    break;
                }
                proyectil.SetDobleDamage(doubleDamage);
                if (doubleDamage)
                {
                    proyectil.damage = proyectil.damage * 2;
                }
                if (!isDuck)
                {
                    if (enumsPlayers.movimiento != EnumsPlayers.Movimiento.Saltar &&
                        enumsPlayers.movimiento != EnumsPlayers.Movimiento.SaltoAtaque &&
                        enumsPlayers.movimiento != EnumsPlayers.Movimiento.SaltoDefensa)
                    {
                        tipoProyectil = Proyectil.typeProyectil.ProyectilNormal;
                    }
                    go.transform.position     = generadorProyectiles.transform.position;
                    go.transform.rotation     = generadorProyectiles.transform.rotation;
                    proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionMedia;
                }
                else
                {
                    if (isDuck)
                    {
                        tipoProyectil = Proyectil.typeProyectil.ProyectilBajo;
                    }
                    go.transform.position     = generadorProyectilesAgachado.transform.position;
                    go.transform.rotation     = generadorProyectilesAgachado.transform.rotation;
                    proyectil.posicionDisparo = Proyectil.PosicionDisparo.PosicionBaja;
                }
                proyectil.On(tipoProyectil);
                proyectil.disparadorDelProyectil = disparador;
                proyectil.ShootForward();
                delayAttack = auxDelayAttack;
            }
        }
Пример #3
0
        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();
                }
            }
        }
Пример #4
0
        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();
                }
            }
        }