// Este metodo abre el modo batalla simple internal void ataqueSimple(Personaje agresor, Personaje victima, ConstructorTablero.LadoTablero orientacionAgresor) { // Estas variables se usan en varios metodos durante el ataque this.agresor = agresor; this.victima = victima; this.orientacionAgresor = orientacionAgresor; spritesBatalla = new Sprite[3]; // Se crea un nuevo arreglo con los sprites que se van a ver durante la batalla // Se carga los sprites que se van a mostrar durante la batalla spritesBatalla[0] = new Sprite(idImagen_Interfaz_FondoBatallaDerecho, 0, 0, 5); // Se carga los sprites que se van a mostrar durante la batalla switch (orientacionAgresor) { case ConstructorTablero.LadoTablero.derecha: spritesBatalla[1] = new Sprite(victima.IdImagenDelPersonaje, -300, 100, 0, 300, 300); spritesBatalla[2] = new Sprite(agresor.IdImagenDelPersonaje, 800, 100, 0, 300, 300); break; case ConstructorTablero.LadoTablero.izquierda: spritesBatalla[1] = new Sprite(agresor.IdImagenDelPersonaje, -300, 100, 0, 300, 300); spritesBatalla[2] = new Sprite(victima.IdImagenDelPersonaje, 800, 100, 0, 300, 300); break; } hiloBatalla = new Thread(new ThreadStart(batallaSimple)); // Se crea un nuevo hilo que sera la que mostrara la animacion en pantalla, y en el instante dado ejecurtara el ataque // Oculta el tablero y mostrar la batalla mostrarElTablero = false; mostrarBatalla = true; hiloBatalla.Start(); // Incia el hilo }
private void setPersonajes(string[] personajes, bool EsLocal) { ConstructorTablero.LadoTablero ladoTablero = anfitrion ^ EsLocal ? ConstructorTablero.LadoTablero.derecha : ConstructorTablero.LadoTablero.izquierda; Coordenada[] coordenadasPersonajes = form1.ConstructorTablero.obtenerCoordenadasPersonajes(form1.NombreTablero, ladoTablero); // Obtener las coordenadas donde se colocará a los personajes if (EsLocal) { personajesLocales[0] = crearPersonaje(personajes[0], ladoTablero); personajesLocales[1] = crearPersonaje(personajes[1], ladoTablero); personajesLocales[2] = crearPersonaje(personajes[2], ladoTablero); personajesLocales[3] = crearPersonaje(personajes[3], ladoTablero); personajesLocales[4] = crearPersonaje(personajes[4], ladoTablero); //colocar a los personajes locales en el tablero for (int i = 0; i < coordenadasPersonajes.Length; i++) { tablero[coordenadasPersonajes[i].X, coordenadasPersonajes[i].Y].Personaje = personajesLocales[4 - i]; } } else { personajesRemotos[0] = crearPersonaje(personajes[0], ladoTablero); personajesRemotos[1] = crearPersonaje(personajes[1], ladoTablero); personajesRemotos[2] = crearPersonaje(personajes[2], ladoTablero); personajesRemotos[3] = crearPersonaje(personajes[3], ladoTablero); personajesRemotos[4] = crearPersonaje(personajes[4], ladoTablero); //colocar a los personajes remotos en el tablero for (int i = 0; i < coordenadasPersonajes.Length; i++) { tablero[coordenadasPersonajes[i].X, coordenadasPersonajes[i].Y].Personaje = personajesRemotos[4 - i]; } } }
// Metodo que recibe una cadena que describe el tipo de personaje y devuelve un obejeto private Personaje crearPersonaje(string TipoPersonaje, ConstructorTablero.LadoTablero ladoTablero) { int img; bool lado = ladoTablero == ConstructorTablero.LadoTablero.derecha ^ anfitrion; Personaje personaje; switch (TipoPersonaje) { case "Arquero": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_Arquero_Derecha : grafico.idImagen_Arquero_Izquierda; personaje = new Arquero(img, lado); break; case "Caballero": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_Caballero_Derecha : grafico.idImagen_Caballero_Izquierda; personaje = new Caballero(img, lado); break; case "Mago": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_Mago_Derecha : grafico.idImagen_Mago_Izquierda; personaje = new Mago(img, lado); break; case "Ninja": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_Ninja_Derecha : grafico.idImagen_Ninja_Izquierda; personaje = new Ninja(img, lado, ladoTablero); break; case "Paladin Espada": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_PaladinEspada_Derecha : grafico.idImagen_PaladinEspada_Izquierda; personaje = new Paladin_Espada(img, lado); break; case "Paladin Lanza": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_PaladinLanza_Derecha : grafico.idImagen_PaladinLanza_Izquierda; personaje = new Paladin_Lanza(img, lado); break; case "Paladin Mazo": img = ladoTablero == ConstructorTablero.LadoTablero.derecha ? grafico.idImagen_PaladinMazo_Derecha : grafico.idImagen_PaladinMazo_Izquierda; personaje = new Paladin_Mazo(img, lado); break; default: throw new Exception("El tipo de personaje no existe"); } return(personaje); }
internal Ninja(int idImagenDelPersonaje, bool esLocal, ConstructorTablero.LadoTablero ladoAtaca) : base(idImagenDelPersonaje, esLocal, 1, 5) { this.ladoAtaca = ladoAtaca; //adpatacion de las estadisticas base al las estadisticas del ninja Salud -= 50; SaludBase = Salud; Ataque = 30; Defensa -= 50; Velocidad += 100; }
internal void iniciarTimer(int duracion, ConstructorTablero.LadoTablero ladoTablero) { duracionTimer = (duracion / 1000); if (ladoTablero == ConstructorTablero.LadoTablero.izquierda) { lblTiempoRestanteizq.Visible = true; lblTiempoRestanteDer.Visible = false; } else { lblTiempoRestanteDer.Visible = true; lblTiempoRestanteizq.Visible = false; } timerAtq.Enabled = true; }