Ejemplo n.º 1
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.º 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;
            }
        }