//Este método activa un efecto de habilidad: public virtual void Habilidad(string habilidad, int x, List <Objeto> objetivos) { if (habilidad == "druida") { (objetivos[0] as Heroe).ataque += 1; (objetivos[0] as Heroe).armadura += 1; } else if (habilidad == "equipa") { (objetivos[0] as Heroe).ataque = 1; (objetivos[0] as Heroe).duracion = 2; } else if (habilidad == "invoca") { for (int i = 0; i < x; i++) { Esbirro invocado = (Esbirro)objetivos[1]; (objetivos[0] as Heroe).campo.Add(new Esbirro(invocado.nombre, invocado.costo, invocado.dueño, invocado.vida, invocado.ataque, invocado.provocacion, invocado.habilidades, invocado.objetivo, invocado.canthabilidad, invocado.descripcion, invocado.imagen)); } } else if (habilidad != null) { foreach (Objeto objetivo in objetivos) { if (objetivo is Heroe heroe) { if (habilidad == "daña") { heroe.RecibirDaño(x); } else if (habilidad == "suma vida") { if (heroe.vida + x > heroe.maxvida) { heroe.vida = heroe.maxvida; } else { heroe.vida += x; } } else if (habilidad == "suma mana") { heroe.mana += x; } else if (habilidad == "suma ataque") { heroe.ataque += x; } else if (habilidad == "suma armadura") { heroe.armadura += x; } else if (habilidad == "roba carta") { for (int i = 1; i <= x; i++) { heroe.Robar(); } } else { habilidad = null; } } if (objetivo is Esbirro esbirro) { if (habilidad == "daña") { esbirro.RecibirDaño(x); } else if (habilidad == "suma vida") { if (esbirro.vida + x > esbirro.maxvida) { esbirro.vida = esbirro.maxvida; } else { esbirro.vida += x; if (esbirro.vida <= 0) { esbirro.Morir(); } } } else { habilidad = null; } } } } }
//Método para definir las caracteristicas de un héroe a un jugador: public void DefinirHeroe(Heroe jug, string nombre, string heroe) { //Verificando que se haya ingresado un nombre y no sea el mismo del jugador anterior: if (TBOnombre.Text == "") { Lporfa.Visibility = Visibility.Visible; } else if (TBOnombre.Text == jug.enemigo.nombre) { Lporfa2.Visibility = Visibility.Visible; } else { //Se modifica la ventana: Lporfa.Visibility = Visibility.Hidden; Lporfa.Visibility = Visibility.Hidden; TBLjugador.Text = "Jugador2"; TBOnombre.Text = ""; List <Carta> tempmazo = new List <Carta>(); List <string> temphabilidad = new List <string>(); List <int> tempcanthabilidad = new List <int>(); List <List <Objeto> > tempobjetivos = new List <List <Objeto> >(); //Se modifica las caracteristicas del heroe según la opción elegida (cambiar imagen para cada uno): if (heroe == "cazador") { jug.descripcion = "Inflige 2 de daño al heroe enemigo"; jug.heroe = "Cazador"; temphabilidad.Add("daña"); List <Objeto> tempobjetivo = new List <Objeto>(); tempobjetivo.Add(jug.enemigo); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(2); } else if (heroe == "guerrero") { jug.descripcion = "Obtiene 2 de armadura"; jug.heroe = "Guerrero"; temphabilidad.Add("suma armadura"); List <Objeto> tempobjetivo = new List <Objeto>(); tempobjetivo.Add(jug); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(2); } else if (heroe == "paladin") { jug.heroe = "Paladin"; jug.descripcion = "Invoca un Recluta de la Mano de Plata 1/1"; temphabilidad.Add("invoca"); List <Objeto> tempobjetivo = new List <Objeto>(); Esbirro tempesbirro1 = new Esbirro("Recluta de la Mano de Plata", 1, jug, 1, 1, false, null, null, null, null, null); //Cambiar null final por imagen. tempobjetivo.Add(jug); tempobjetivo.Add(tempesbirro1); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(1); } else if (heroe == "mago") { jug.descripcion = "Inflige 1 de daño"; jug.heroe = "Mago"; temphabilidad.Add("daña"); tempcanthabilidad.Add(1); } else if (heroe == "sacerdote") { jug.descripcion = "Restaura 2 de vida"; jug.heroe = "Sacerdote"; temphabilidad.Add("suma vida"); tempcanthabilidad.Add(2); } else if (heroe == "brujo") { jug.descripcion = "Pierdes 2 de vida, roba una carta"; jug.heroe = "Brujo"; temphabilidad.Add("daña"); List <Objeto> tempobjetivo = new List <Objeto>(); tempobjetivo.Add(jug); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(2); temphabilidad.Add("roba carta"); tempobjetivo = new List <Objeto>(); tempobjetivo.Add(jug); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(1); } else if (heroe == "rogue") { jug.heroe = "Pícaro"; jug.descripcion = "Equipas una Daga 1/2"; temphabilidad.Add("equipa"); List <Objeto> tempobjetivo = new List <Objeto>(); tempobjetivo.Add(jug); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(2); } else if (heroe == "druida") { jug.heroe = "Druida"; jug.descripcion = "Obtienes 1 de ataque y armadura"; temphabilidad.Add("druida"); List <Objeto> tempobjetivo = new List <Objeto>(); tempobjetivo.Add(jug); tempobjetivos.Add(tempobjetivo); tempcanthabilidad.Add(2); } jug.mazo = tempmazo; jug.objetivo = tempobjetivos; jug.habilidades = temphabilidad; jug.canthabilidad = tempcanthabilidad; jug.nombre = nombre; //Creando el mazo (cambiar imagen para cada uno): Esbirro tempesbirro = null; //3 wisp: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Wisp", 0, jug, 1, 1, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 murloc raider: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Murloc raider", 1, jug, 1, 2, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 Bloodfen Raptor: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Bloodfen Raptor", 2, jug, 2, 3, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 River Crocolist: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("River Crocolist", 2, jug, 3, 2, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 Magma Rager: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Magma Rager", 3, jug, 1, 5, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 ChillWind Yeti: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Chillwind Yeti", 4, jug, 5, 4, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 Oasis Snapjaw: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Oasis Snapjaw", 4, jug, 7, 2, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 Boulderfist Ogre: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Boulderfist Ogre", 6, jug, 7, 6, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 War Golem: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("War Golem", 7, jug, 7, 7, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } //3 Core Hound: for (int ii = 0; ii <= 2; ii++) { tempesbirro = new Esbirro("Core Hound", 7, jug, 5, 9, false, null, null, null, null, null); jug.mazo.Add(tempesbirro); } jug.mazo = DesordenarLista(jug.mazo); //Cada jugador roba 3 cartas: for (int ii = 0; ii <= 2; ii++) { jug.Robar(); } coin.Add(jug); if (jug == j1) { TBLnj1.Text = jug.nombre; TBLhj1.Text = jug.heroe; } if (jug == j2) { TBLnj2.Text = jug.nombre; TBLhj2.Text = jug.heroe; //Seguro()// EmpezarPartida(); } } }