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); } }
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"); }