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();
            }
        }
Пример #2
0
        //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;
            }
        }