Ejemplo n.º 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();
                    }
                }
            }
        }
Ejemplo n.º 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;
            }
        }
Ejemplo n.º 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();
                }
            }
        }
Ejemplo n.º 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();
                }
            }
        }
        public void CollisionWhitProyectil(Collider2D collision)
        {
            Proyectil proyectil = collision.GetComponent <Proyectil>();

            if (proyectil.GetComponent <ProyectilInparable>() == null && proyectil.GetComponent <GranadaGaseosa>() == null)
            {
                if (player != null && !inEnemy && inPlayer)
                {
                    bool enableDamagePlayer = true;
                    if (state == StateBoxCollider.Normal)
                    {
                        if (proyectil.GetEnemy() != null)
                        {
                            if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Enemigo)
                            {
                                player.SetEnableCounterAttack(true);
                                if (player.delayCounterAttack > 0)
                                {
                                    player.delayCounterAttack = player.delayCounterAttack - Time.deltaTime;
                                    if (InputPlayerController.DeffenseButton_P1())
                                    {
                                        proyectil.gameObject.SetActive(false);
                                        player.Attack(Proyectil.DisparadorDelProyectil.Jugador1);
                                        player.delayCounterAttack = player.GetAuxDelayCounterAttack();
                                        //proyectil.timeLife = 0;
                                        //enableDamagePlayer = false;
                                        proyectil.AnimationHit();
                                    }
                                }
                                if (player.delayCounterAttack <= 0 && proyectil.timeLife <= 0 && enableDamagePlayer || !ZonaContraAtaque)
                                {
                                    if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetEnemy() != null)
                                    {
                                        proyectil.GetEnemy().SetXpActual(proyectil.GetEnemy().GetXpActual() + proyectil.GetEnemy().xpForHit);
                                        player.PD.lifePlayer = player.PD.lifePlayer - proyectil.damage;
                                    }
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.RecibirDanio;
                                    if (!ZonaContraAtaque)
                                    {
                                        //proyectil.timeLife = 0;
                                        //proyectil.gameObject.SetActive(false);
                                        proyectil.AnimationHit();
                                    }
                                }
                                else if (player.delayCounterAttack <= 0 && proyectil.timeLife > 0 && enableDamagePlayer || !ZonaContraAtaque)
                                {
                                    proyectil.GetEnemy().SetXpActual(proyectil.GetEnemy().GetXpActual() + proyectil.GetEnemy().xpForHit);
                                    player.delayCounterAttack = player.GetAuxDelayCounterAttack();
                                    player.SetEnableCounterAttack(false);
                                    player.PD.lifePlayer = player.PD.lifePlayer - proyectil.damage;
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.RecibirDanio;
                                    //proyectil.timeLife = 0;
                                    //proyectil.gameObject.SetActive(false);
                                    proyectil.AnimationHit();
                                }
                            }
                        }
                        if (proyectil.GetPlayer() != null)
                        {
                            if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador1 ||
                                player.enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player2)
                            {
                                //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer() != null)
                                {
                                    proyectil.GetPlayer().SetXpActual(proyectil.GetPlayer().GetXpActual() + proyectil.GetPlayer().xpForHit);
                                    proyectil.GetPlayer().PD.score = proyectil.GetPlayer().PD.score + proyectil.GetPlayer().PD.scoreForHit;
                                }
                                player.SetEnableCounterAttack(true);
                                if (player.delayCounterAttack > 0)
                                {
                                    player.delayCounterAttack = player.delayCounterAttack - Time.deltaTime;
                                    if (InputPlayerController.DeffenseButton_P2())
                                    {
                                        player.Attack(Proyectil.DisparadorDelProyectil.Jugador2);
                                        player.delayCounterAttack = player.GetAuxDelayCounterAttack();
                                        enableDamagePlayer        = false;
                                        //proyectil.timeLife = 0;
                                        proyectil.AnimationHit();
                                    }
                                }
                                if (player.delayCounterAttack <= 0 && proyectil.timeLife <= 0 && enableDamagePlayer)
                                {
                                    player.PD.lifePlayer = player.PD.lifePlayer - proyectil.damage;
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.RecibirDanio;
                                }
                                else if (player.delayCounterAttack <= 0 && proyectil.timeLife > 0 && enableDamagePlayer)
                                {
                                    player.delayCounterAttack = player.GetAuxDelayCounterAttack();
                                    player.SetEnableCounterAttack(false);
                                    player.PD.lifePlayer = player.PD.lifePlayer - proyectil.damage;
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.RecibirDanio;
                                    //proyectil.timeLife = 0;
                                    //proyectil.gameObject.SetActive(false);
                                    proyectil.AnimationHit();
                                }
                            }
                        }
                        if (proyectil.GetPlayer2() != null)
                        {
                            if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador2 ||
                                player.enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player1 ||
                                proyectil.GetPlayer2() != null)
                            {
                                //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer2() != null)
                                {
                                    proyectil.GetPlayer2().SetXpActual(proyectil.GetPlayer2().GetXpActual() + proyectil.GetPlayer2().xpForHit);
                                    proyectil.GetPlayer2().PD.score = proyectil.GetPlayer2().PD.score + proyectil.GetPlayer2().PD.scoreForHit;
                                }
                                player.SetEnableCounterAttack(true);
                                if (player.delayCounterAttack > 0)
                                {
                                    player.delayCounterAttack = player.delayCounterAttack - Time.deltaTime;
                                    if (InputPlayerController.DeffenseButton_P1())
                                    {
                                        player.Attack(Proyectil.DisparadorDelProyectil.Jugador1);
                                        player.delayCounterAttack = player.GetAuxDelayCounterAttack();
                                        enableDamagePlayer        = false;
                                        //proyectil.timeLife = 0;
                                        proyectil.AnimationHit();
                                    }
                                }
                                if (player.delayCounterAttack <= 0 && proyectil.timeLife <= 0 && enableDamagePlayer)
                                {
                                    player.PD.lifePlayer = player.PD.lifePlayer - proyectil.damage;
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.RecibirDanio;
                                }
                                else if (player.delayCounterAttack <= 0 && proyectil.timeLife > 0 && enableDamagePlayer)
                                {
                                    player.delayCounterAttack = player.GetAuxDelayCounterAttack();
                                    player.SetEnableCounterAttack(false);
                                    player.PD.lifePlayer = player.PD.lifePlayer - proyectil.damage;
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.RecibirDanio;
                                    //proyectil.timeLife = 0;
                                    //proyectil.gameObject.SetActive(false);
                                    //proyectil.GetPoolObject().Recycle();
                                    proyectil.AnimationHit();
                                }
                            }
                        }
                    }
                    else if (state == StateBoxCollider.Defendido)
                    {
                        Player_PvP player_PvP = player.gameObject.GetComponent <Player_PvP>();
                        float      realDamage;
                        if (proyectil.GetPlayer() != null)
                        {
                            if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador1 ||
                                player.enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player2)
                            {
                                //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                //SI SE DEFIENDE CARGA LA MITAD DE LA BARRA DEL ATAQUE ESPECIAL.
                                if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer() != null)
                                {
                                    proyectil.GetPlayer().SetXpActual(proyectil.GetPlayer().GetXpActual() + (proyectil.GetPlayer().xpForHit / 2));
                                    proyectil.GetPlayer().PD.score = proyectil.GetPlayer().PD.score + (proyectil.GetPlayer().PD.scoreForHit / 2);
                                }
                                realDamage           = proyectil.damage - player.pointsDeffence;
                                player.PD.lifePlayer = player.PD.lifePlayer - realDamage;
                                proyectil.damage     = proyectil.GetAuxDamage();
                                //proyectil.timeLife = 0;
                                //proyectil.GetPoolObject().Recycle();
                                //proyectil.gameObject.SetActive(false);
                                proyectil.AnimationHit();
                            }
                        }
                        if (player_PvP != null)
                        {
                            //Debug.Log(proyectil.GetEnemy());
                            if (proyectil.GetPlayer2() != null)
                            {
                                if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador2 ||
                                    player.enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player1)
                                {
                                    //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                    //SI SE DEFIENDE CARGA LA MITAD DE LA BARRA DEL ATAQUE ESPECIAL.
                                    if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer2() != null)
                                    {
                                        proyectil.GetPlayer2().SetXpActual(proyectil.GetPlayer2().GetXpActual() + (proyectil.GetPlayer2().xpForHit / 2));
                                        proyectil.GetPlayer2().PD.score = proyectil.GetPlayer2().PD.score + (proyectil.GetPlayer2().PD.scoreForHit / 2);
                                    }
                                    realDamage           = proyectil.damage - player.pointsDeffence;
                                    player.PD.lifePlayer = player.PD.lifePlayer - realDamage;
                                    proyectil.damage     = proyectil.GetAuxDamage();
                                    //proyectil.timeLife = 0;
                                    //proyectil.GetPoolObject().Recycle();
                                    //proyectil.gameObject.SetActive(false);
                                    proyectil.AnimationHit();
                                }
                            }
                            if (player_PvP.playerSelected == Player_PvP.PlayerSelected.Defensivo)
                            {
                                switch (player_PvP.playerState)
                                {
                                case Player_PvP.State.Defendido:
                                    player.spritePlayerActual.ActualSprite = SpritePlayer.SpriteActual.ContraAtaqueParado;
                                    if (player_PvP.playerActual == Player_PvP.Player.player1)
                                    {
                                        player.Attack(Proyectil.DisparadorDelProyectil.Jugador1);
                                    }
                                    else if (player_PvP.playerActual == Player_PvP.Player.player2)
                                    {
                                        player.Attack(Proyectil.DisparadorDelProyectil.Jugador2);
                                    }
                                    realDamage           = proyectil.damage - player.pointsDeffence;
                                    player.PD.lifePlayer = player.PD.lifePlayer - realDamage;
                                    proyectil.damage     = proyectil.GetAuxDamage();
                                    //proyectil.GetPoolObject().Recycle();
                                    //proyectil.gameObject.SetActive(false);
                                    //proyectil.timeLife = 0;
                                    proyectil.AnimationHit();
                                    break;

                                default:
                                    if (proyectil.GetPlayer() != null)
                                    {
                                        if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador1 ||
                                            player.enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player2)
                                        {
                                            //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                            //SI SE DEFIENDE CARGA LA MITAD DE LA BARRA DEL ATAQUE ESPECIAL.
                                            if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer() != null)
                                            {
                                                proyectil.GetPlayer().SetXpActual(proyectil.GetPlayer().GetXpActual() + (proyectil.GetPlayer().xpForHit / 2));
                                                proyectil.GetPlayer().PD.score = proyectil.GetPlayer().PD.score + (proyectil.GetPlayer().PD.scoreForHit / 2);
                                            }
                                        }
                                    }
                                    else if (proyectil.GetPlayer2() != null)
                                    {
                                        if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador2 ||
                                            player.enumsPlayers.numberPlayer == EnumsPlayers.NumberPlayer.player1)
                                        {
                                            //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                            //SI SE DEFIENDE CARGA LA MITAD DE LA BARRA DEL ATAQUE ESPECIAL.
                                            if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer2() != null)
                                            {
                                                proyectil.GetPlayer2().SetXpActual(proyectil.GetPlayer2().GetXpActual() + (proyectil.GetPlayer2().xpForHit / 2));
                                                proyectil.GetPlayer2().PD.score = proyectil.GetPlayer2().PD.score + (proyectil.GetPlayer2().PD.scoreForHit / 2);
                                            }
                                        }
                                    }
                                    realDamage           = proyectil.damage - player.pointsDeffence;
                                    player.PD.lifePlayer = player.PD.lifePlayer - realDamage;
                                    proyectil.damage     = proyectil.GetAuxDamage();
                                    //proyectil.timeLife = 0;
                                    //proyectil.GetPoolObject().Recycle();
                                    //proyectil.gameObject.SetActive(false);
                                    proyectil.AnimationHit();
                                    break;
                                }
                            }
                            //Debug.Log(proyectil.GetEnemy());
                            if (proyectil.GetEnemy() != null)
                            {
                                //Debug.Log("A LA DEFENSA");
                                proyectil.GetEnemy().SetXpActual(proyectil.GetEnemy().GetXpActual() + (proyectil.GetEnemy().xpForHit / 2));
                                realDamage           = proyectil.damage - player.pointsDeffence;
                                player.PD.lifePlayer = player.PD.lifePlayer - realDamage;
                                proyectil.damage     = proyectil.GetAuxDamage();
                                //proyectil.timeLife = 0;
                                //proyectil.GetPoolObject().Recycle();
                                //proyectil.gameObject.SetActive(false);
                                proyectil.AnimationHit();
                            }
                        }
                    }
                }
                else if (enemy != null && !inPlayer && inEnemy)
                {
                    bool enableDamagePlayer = true;
                    //Debug.Log(disparadorDelProyectil);
                    if (state == StateBoxCollider.Normal)
                    {
                        if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador1)
                        {
                            if (enemy.enumsEnemy.GetMovement() != EnumsEnemy.Movimiento.MoveToPointCombat && enemy.enumsEnemy.GetMovement() != EnumsEnemy.Movimiento.MoveToPointDeath)
                            {
                                enemy.spriteEnemy.ActualSprite = SpriteEnemy.SpriteActual.RecibirDanio;
                                enemy.life = enemy.life - proyectil.damage;

                                //AUMENTO XP PARA EL ATAQUE ESPECIAL
                                if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer() != null)
                                {
                                    proyectil.GetPlayer().SetXpActual(proyectil.GetPlayer().GetXpActual() + proyectil.GetPlayer().xpForHit);
                                    proyectil.GetPlayer().PD.score = proyectil.GetPlayer().PD.score + proyectil.GetPlayer().PD.scoreForHit;
                                }
                                //proyectil.timeLife = 0;
                                //proyectil.gameObject.SetActive(false);
                                //proyectil.GetPoolObject().Recycle();
                                proyectil.AnimationHit();
                            }
                        }
                    }
                    else if (state == StateBoxCollider.Defendido)
                    {
                        if (proyectil.disparadorDelProyectil == Proyectil.DisparadorDelProyectil.Jugador1)
                        {
                            //AUMENTO XP PARA EL ATAQUE ESPECIAL
                            //SI SE DEFIENDE CARGA LA MITAD DE LA BARRA DEL ATAQUE ESPECIAL.
                            if (proyectil.gameObject.activeSelf && gameObject.activeSelf && proyectil != null && proyectil.GetPlayer() != null)
                            {
                                proyectil.GetPlayer().SetXpActual(proyectil.GetPlayer().GetXpActual() + (proyectil.GetPlayer().xpForHit / 2));
                                proyectil.GetPlayer().PD.score = proyectil.GetPlayer().PD.score + (proyectil.GetPlayer().PD.scoreForHit / 2);
                            }
                            if (enemy.enumsEnemy.typeEnemy != EnumsEnemy.TiposDeEnemigo.Defensivo)
                            {
                                float realDamage = proyectil.damage - enemy.pointsDeffence;
                                enemy.life = enemy.life - realDamage;
                            }
                            else
                            {
                                if (enemy.enumsEnemy.GetMovement() == EnumsEnemy.Movimiento.DefensaEnElLugar)
                                {
                                    //MECANICA DEFENSIVA DEL ENEMIGO DEFENSIVO//
                                    if (enemy.GetComponent <Defensivo>() != null)
                                    {
                                        Defensivo enemyDeffended = enemy.GetComponent <Defensivo>();
                                        if (enemyDeffended.GetStateDeffence() == Defensivo.StateDeffence.CounterAttackDeffense)
                                        {
                                            enemy.spriteEnemy.ActualSprite = SpriteEnemy.SpriteActual.ContraAtaque;
                                            //enemy.Attack(false, false, true, cuadrilla);
                                            enemy.Attack(false, false, true, proyectil);
                                            enemyDeffended.SetStateDeffense(Defensivo.StateDeffence.Nulo);
                                            enemyDeffended.delayStateCounterAttackDeffense = 0;
                                            enemyDeffended.delayStateDeffense = enemyDeffended.GetAuxDelayStateDeffense();
                                            enemyDeffended.delayVulnerable    = enemyDeffended.GetAuxDelayVulnerable();
                                            if (enemy.damageCounterAttack)
                                            {
                                                float realDamage = proyectil.damage - enemy.pointsDeffence;
                                                enemy.life = enemy.life - realDamage;
                                            }
                                        }
                                        else if (enemyDeffended.GetStateDeffence() == Defensivo.StateDeffence.NormalDeffense)
                                        {
                                            if (enemy.damageCounterAttack)
                                            {
                                                float realDamage = proyectil.damage - enemy.pointsDeffence;
                                                enemy.life = enemy.life - realDamage;
                                            }
                                        }
                                    }
                                    //-----------------------------------------//
                                }
                                else
                                {
                                    enemy.life = enemy.life - proyectil.damage;
                                }
                            }
                            //proyectil.timeLife = 0;
                            //proyectil.GetPoolObject().Recycle();
                            //proyectil.gameObject.SetActive(false);
                            proyectil.AnimationHit();
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
 public virtual void Attack(bool jampAttack, bool specialAttack, bool _doubleDamage, Proyectil cuadrilla)
 {
 }