Esempio n. 1
0
    public void PlayerTurn()
    {
        OpenPanel_Cartas panel = GameObject.Find("ButtonCartas").GetComponent <OpenPanel_Cartas>();

        panel.forceOpen();

        //Actualizar estado de combos
        CartasArray = GameObject.FindGameObjectsWithTag("CartaCampo");
        combosJugador(CartasArray);

        CartasArray = GameObject.FindGameObjectsWithTag("CartaCampo");



        for (int i = 0; i < CartasArray.Length; i++)
        {
            CartasArray[i].GetComponent <ObjetoCarta>().setActiva(true);
            CartasArray[i].GetComponent <ObjetoCarta>().setAtaqueActivo(false);
        }

        TiendaCartas tienda = GameObject.Find("ButtonReroll").GetComponent <TiendaCartas>();

        if (GameObject.FindGameObjectWithTag("Tienda").activeInHierarchy)
        {
            tienda.rerollTurno();
        }

        GameObject.FindGameObjectWithTag("Mano").GetComponent <DropZone>().tipoCarta = Draggable.Slot.MANO;
        zone.tipoCarta     = Draggable.Slot.CAMPO;
        botonPasar.enabled = true;
        TextoTurno.text    = "Tu turno";
        Jugador.GetComponent <ObjetoJugador>().ganarOro(5);

        CartasArray = GameObject.FindGameObjectsWithTag("CartaCampoEn");

        for (int i = 0; i < CartasArray.Length; i++)
        {
            CartasArray[i].GetComponent <ObjetoCarta>().setActiva(true);
        }
    }
Esempio n. 2
0
    async void TurnBatle()//Lucha
    {
        List <GameObject> CartasIA      = new List <GameObject>();
        List <GameObject> CartasJugador = new List <GameObject>();

        GameObject CartaIASelect      = null;
        GameObject CartaJugadorSelect = null;

        int ataquesCompletados = 0;

        string[] tipoDeSituacion = { "FreeKill", "Ablandar", "Intercambio", "Sacrificio", "Cabeza" };
        int      x = 0;
        int      y = 0;

        CartasArray = GameObject.FindGameObjectsWithTag("CartaCampoEn"); // Encuentra todas las cartas en mano de la IA, por primera vez para las combos
        combos(CartasArray);
        do
        {
            CartasIA.Clear();
            CartasJugador.Clear();
            situacionCompatible = false;
            CartasArray         = GameObject.FindGameObjectsWithTag("CartaCampoEn"); // Encuentra todas las cartas en mano de la IA

            for (int i = 0; i < CartasArray.Length; i++)                             //Se mete todas las cartas activas en el ArrayList CartasIA
            {
                if (CartasArray[i].GetComponent <ObjetoCarta>().getActiva())         //Si la carta esta activa, se mete en el array
                {
                    CartasIA.Add(CartasArray[i]);
                }
            }


            CartasArray = GameObject.FindGameObjectsWithTag("CartaCampo"); // Encuentra todas las cartas en mano del Jugador
            for (int i = 0; i < CartasArray.Length; i++)                   //Se mete todas las cartas activas en el ArrayList CartasIA
            {
                CartasJugador.Add(CartasArray[i]);
            }

            for (int i = 0; i < CartasIA.Count; i++)//recorre todas las cartas del jugador
            {
                //  Debug.Log("HOLAAAAA AQUI SE LIMPIAN LOS LIST 3// CartaIASelect: " + i + " // " + CartasIA.Count);
                for (int j = 0; j < CartasJugador.Count; j++)//recorre todas las cartas IA
                {
                    //Aqui se cojen dos cartas y se comprueba si la tipoDeSituacion se da
                    Debug.Log("HOLAAAAA AQUI SE LIMPIAN LOS LIST 4// CartaJugadorSelect: " + j + " // " + CartasJugador.Count);
                    situacionCompatible = situacionDeCombate(CartasIA, CartasJugador, i, j, tipoDeSituacion[x]); //true si atacara false si no


                    if (situacionCompatible == true) //si es true ataca y reinicia el ciclo
                    {
                        if (x != 4)
                        {
                            if (CartasIA[i].GetComponent <ObjetoCarta>().getClase().ToString().Equals("Asesino") && AsesinoIA == true) //Habilidad asesino, ataca a cabeza
                            {
                                Debug.Log("Asesino activo:" + Asesino);
                                Jugador.GetComponent <ObjetoJugador>().perderVida(CartasIA[i].GetComponent <ObjetoCarta>().getAtaque());
                                CartasIA[i].GetComponent <ObjetoCarta>().setActiva(false);
                            }
                            else if (CartasIA[i].GetComponent <ObjetoCarta>().getClase().ToString().Equals("Asesino") && Asesino2IA == true)//Habilidad asesino, ataca a cabeza x2
                            {
                                Debug.Log("Asesino activo:" + Asesino);
                                Jugador.GetComponent <ObjetoJugador>().perderVida(CartasIA[i].GetComponent <ObjetoCarta>().getAtaque() * 2);
                                CartasIA[i].GetComponent <ObjetoCarta>().setActiva(false);
                            }
                            else
                            {
                                Debug.Log("Asesino no activo:" + Asesino);
                                combate(CartasIA[i], CartasJugador[j]);
                                await TimeForAIAsync(2000);
                            }
                        }
                        else
                        {
                            Debug.Log("La Vida del jugador es: " + Jugador.GetComponent <ObjetoJugador>().getVida());
                            Jugador.GetComponent <ObjetoJugador>().perderVida(CartasIA[i].GetComponent <ObjetoCarta>().getAtaque());
                            CartasIA[i].GetComponent <ObjetoCarta>().setActiva(false);
                            Debug.Log("La Vida del jugador es ahora: " + Jugador.GetComponent <ObjetoJugador>().getVida());

                            if (GameObject.Find("Jugador").GetComponent <ObjetoJugador>().getVida() <= 0)
                            {
                                GameObject.Find("MarcoDerrota").transform.position = new Vector3(GameObject.Find("Canvas").transform.position.x, GameObject.Find("Canvas").transform.position.y, 0);
                            }
                        }


                        break;
                    }
                    else
                    {
                    }
                }
                if (situacionCompatible == true)
                {
                    if (x < 2)
                    {
                        x = 0;
                    }

                    break;
                }

                //aqui atacan a cabeza
                if (x == 4)
                {
                    Debug.Log("La Vida del jugador es: " + Jugador.GetComponent <ObjetoJugador>().getVida());
                    Jugador.GetComponent <ObjetoJugador>().perderVida(CartasIA[i].GetComponent <ObjetoCarta>().getAtaque());
                    CartasIA[i].GetComponent <ObjetoCarta>().setActiva(false);
                    Debug.Log("La Vida del jugador es ahora: " + Jugador.GetComponent <ObjetoJugador>().getVida());
                }
            }

            if (situacionCompatible == false)
            {
                x++;
            }
            //   Debug.Log("CartasCompletadas: " + ataquesCompletados);
            //   Debug.Log("CartasContadas: " + CartasIA.Count);
            y++;
        } while (y != 10);

        AtaquePrimeroIA = false;
        ArrollarIA2     = false;
        ArrollarIA4     = false;
        IraIA           = false;
        IraIA2          = false;
        Asesino2IA      = false;
        AsesinoIA       = false;

        OpenPanel_Cartas panel = GameObject.Find("ButtonCartas").GetComponent <OpenPanel_Cartas>();

        panel.forceClose();

        state = BattleState.PLAYERTURN;
        PlayerTurn();
        Debug.Log("Fin del turno del enemigo");
    }