//Aplicar polimorfismo public override string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { if (this.TurnosParaUsarPoder > 0) { this.TurnosParaUsarPoder -= 1; return (this.GetType().Name + " (" + this.icono + ") " + " Debe esperar " + this.TurnosParaUsarPoder + " turnos más para usar habilidad"); } //Uso de habilidad this.TurnosParaUsarPoder = this.enfriamiento * 1; int a = new Random().Next(0, 100); if (a < 60) { victima.bandera = this.bandera; return (this.GetType().Name + " (" + this.icono + ") " + " Neo-Wololeó a " + victima.GetType().Name + " (" + victima.icono + ") "); } return (this.GetType().Name + " (" + this.icono + ") " + " Trató de Neo-Wololear a " + victima.GetType().Name + " (" + victima.icono + ") " + " pero no pudo"); }
//Aplicar polimorfismo public override string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { if (victima.bandera != this.bandera) { var dañoRecibido = victima.recibirDaño(this.dañoMecanico, this.dañoNoMecanico); if (victima.hpActual <= 0) { bvictima.eliminarUnidad(mapa, victima); } return (this.GetType().Name + " (" + this.icono + ") " + " Ha hecho " + dañoRecibido + " de daño a " + victima.icono + "(HP=" + victima.hpActual + "/" + victima.hpInicial + ")"); } if (this.TurnosParaUsarPoder > 0) { this.TurnosParaUsarPoder -= 1; return (this.GetType().Name + " (" + this.icono + ") " + " Debe esperar " + this.TurnosParaUsarPoder + " turnos más para usar habilidad"); } //Uso de habilidad //int a = new Random().Next(1, 2); if (victima.hpInicial != victima.hpActual) //Reparar { victima.hpActual += 100; if (victima.hpActual > victima.hpInicial) { victima.hpActual = victima.hpInicial * 1; } this.TurnosParaUsarPoder = this.enfriamiento * 1; return (this.GetType().Name + " (" + this.icono + ") " + " Ha reparado 100 HP a " + victima.GetType().Name + " (" + victima.icono + ") " + "(HP=" + victima.hpActual +"/"+victima.hpInicial+ ")"); } else { victima.dañoMecanico += 15; victima.dañoNoMecanico += 15; this.TurnosParaUsarPoder = this.enfriamiento * 1; return (this.GetType().Name + " (" + this.icono + ") " + " Ha mejorado 15 de ataque a " + victima.GetType().Name + " (" + victima.icono + ") "); } }
//Aplicar polimorfismo public virtual string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { var dañoRecibido = victima.recibirDaño(this.dañoMecanico, this.dañoNoMecanico); Console.SetCursorPosition(0,27); Console.BackgroundColor = ConsoleColor.Black; Console.WriteLine(" "); Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.DarkGreen; if (victima.hpActual <= 0) { bvictima.eliminarUnidad(mapa, victima); } return (this.GetType().Name + " (" + this.icono + ") " + " Ha hecho " + dañoRecibido + " de daño a " + victima.GetType().Name + " (" + victima.icono + ") " + "(HP=" + victima.hpActual + "/" + victima.hpInicial + ")"); }
//Aplicar polimorfismo public override string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { if (this.TurnosParaUsarPoder > 0) { this.TurnosParaUsarPoder -= 1; return (this.GetType().Name + " (" + this.icono + ") " + " Debe esperar " + this.TurnosParaUsarPoder + " turnos más para usar habilidad"); } //Uso de habilidad int a = new Random().Next(1, 2); if (a==1) //Velocidad { victima.velocidad /= 2; this.TurnosParaUsarPoder = this.enfriamiento * 1; return (this.GetType().Name + " (" + this.icono + ") " + " Ha hecho mas lento por 4 turnos a " + victima.GetType().Name + " (" + victima.icono + ") "); } else // Daño { victima.dañoMecanico /= 2; victima.dañoNoMecanico /= 2; this.TurnosParaUsarPoder = this.enfriamiento * 1; return (this.GetType().Name + " (" + this.icono + ") " + " Ha bajado el daño a la mitad a " + victima.GetType().Name + " (" + victima.icono + ") "); } }
//Aplicar polimorfismo public override string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { var dañoRecibido = victima.recibirDaño(this.dañoMecanico, this.dañoNoMecanico); Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.Black; Console.WriteLine(" "); Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.DarkGreen; if (victima.hpActual <= 0) { bvictima.eliminarUnidad(mapa, victima); } this.hpActual = -100; mapa.matrizTerrestre[this.posicion[0] - 1, this.posicion[1] - 1] = null; Console.ForegroundColor = ConsoleColor.Black; Console.SetCursorPosition(this.posicion[0], this.posicion[1]); Console.Write("·"); return (this.GetType().Name + " (" + this.icono + ") " + " Ha hecho " + dañoRecibido + " de daño a " + victima.GetType().Name + " (" + victima.icono + ") " + "(HP=" + victima.hpActual + "/" + victima.hpInicial + ")"); }
//Aplicar polimorfismo public override string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { var dañoRecibido = victima.recibirDaño(this.dañoMecanico, this.dañoNoMecanico); Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.Black; Console.WriteLine(" "); Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.DarkGreen; if (victima.hpActual <= 0) { bvictima.eliminarUnidad(mapa, victima); } //Para empujar a la victima hacia atras: if (Math.Abs(this.posicion[0] - victima.posicion[0]) > Math.Abs(this.posicion[1] - victima.posicion[1])) //Cuando empuja en el eje x { if (this.posicion[0] > victima.posicion[0]) { int[] pos2 = {victima.posicion[0]-1, victima.posicion[1]}; victima.moverse(mapa, pos2); } else { int[] pos2 = { victima.posicion[0] + 1, victima.posicion[1] }; victima.moverse(mapa, pos2); } } else // Cuando empuja en el eje y { if (this.posicion[1] > victima.posicion[1]) { int[] pos2 = { victima.posicion[0], victima.posicion[1]-1 }; victima.moverse(mapa, pos2); } else { int[] pos2 = { victima.posicion[0], victima.posicion[1] + 1 }; victima.moverse(mapa, pos2); } } return (this.GetType().Name + " (" + this.icono + ") " + " Ha hecho " + dañoRecibido + " de daño a " + victima.GetType().Name + " (" + victima.icono + ") " + "(HP=" + victima.hpActual + "/"+victima.hpInicial+")"); }
//Aplicar polimorfismo public override string atacar(Unidad victima, Mapa mapa, Batallon bvictima, Batallon bAtacante) { if (this.TurnosParaUsarPoder > 0) { this.TurnosParaUsarPoder -= 1; return (this.GetType().Name + " (" + this.icono + ") " + " Debe esperar " + this.TurnosParaUsarPoder + " turnos más para curar"); } victima.hpActual += 100; if (victima.hpActual > victima.hpInicial) { victima.hpActual = victima.hpInicial*1; } Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.Black; Console.WriteLine(" "); Console.SetCursorPosition(0, 27); Console.BackgroundColor = ConsoleColor.DarkGreen; this.TurnosParaUsarPoder = this.enfriamiento * 1; return (this.GetType().Name + " (" + this.icono + ") " + " Ha sanado 100 HP a " + victima.GetType().Name + " (" + victima.icono + ") " + "(HP=" + victima.hpActual + "/" + victima.hpInicial + ")"); }