function Guerrero(nombrePersonaje, imagenPersonaje, vidaPersonaje, idPantalla, fuerzaGuerrero) {
/*Con el metodo call heredamos los atributos de "Ser",
pasandole primero el objeto que las tendra ("this" en este caso por que queremos que erede el Guerrero) mas los atributos*/
Ser.call(this, nombrePersonaje, imagenPersonaje, vidaPersonaje, idPantalla);
/*Seguidamente ponemos el atributo unico del guerrero*/
this.fuerzaGuerrero = fuerzaGuerrero;
}
Guerrero.prototype.Pintar = function () {
/*Seleccionamos el id (div) donde introduciremos los elementos (pasado por los parametros del constructor)*/
var divPrincipal = document.getElementById(this.idPantalla);
/*Creamos un elemento (div) con una clase (para usarlo en el css mas adelante)
y lo introducimos en el elemento seleccionado arriba (el div principal)*/
var divPersonaje = document.createElement("div");
divPersonaje.className = "clasePersonaje";
divPrincipal.appendChild(divPersonaje);
/*Creamos un div para la imagen que extiende del div del personaje creado justo encima*/
var divImagenPersonaje = document.createElement("div");
divImagenPersonaje.className = "divImagenPersonaje";
divPersonaje.appendChild(divImagenPersonaje);
/*Creamos la imagen, le ponemos el nombre de la clase,
le pasamos la ruta de donde la cargara (this.imagenPersonaje)
y le decimos que es hijo del div de la imagen creado encima*/
var imagen = document.createElement("img");
imagen.className = "imagenPersonaje";
imagen.src = this.imagenPersonaje;
divImagenPersonaje.appendChild(imagen);
/*Creamos un div para los datos del personaje que extiende del div del personaje creado al principio*/
var divDatosPersonaje = document.createElement("div");
divDatosPersonaje.className = "divDatosPersonaje";
divPersonaje.appendChild(divDatosPersonaje);
/*Creamos los elementos ("p" para texto), le añadimos los valores
y ponemos extienda del div de los datos del personaje creado justo encima*/
var nombre = document.createElement("p");
nombre.innerHTML = "Nombre: " + this.nombrePersonaje;
divDatosPersonaje.appendChild(nombre);
var vida = document.createElement("p");
vida.innerHTML = "Vida: " + this.vidaPersonaje;
vida.id = "vida"+this.nombrePersonaje; /**/
divDatosPersonaje.appendChild(vida);
var fuerza = document.createElement("p");
fuerza.innerHTML = "Fuerza: " + this.fuerzaGuerrero;
divDatosPersonaje.appendChild(fuerza);
/*Creamos un elemento de tipo button, le ponemos el texto y seguidamente
añadimos su metono onclick y le indicamos que sera la funcion Atacar.
Una vez definido lo añadimos como hijo al div de los datos del personaje creado justo encima
(Si usamos Atacar() no copiaremos la funcion si no que tendremos el resultado de la ejecucion de la funcion)*/
var boton = document.createElement("button");
boton.innerHTML = "Atacar";
boton.onclick = this.Atacar;
boton.id = this.nombrePersonaje;/*Le ponemos de ID el nombre para usarlo a la hora de calcular los ataques*/
divDatosPersonaje.appendChild(boton);
}
Guerrero.prototype.Atacar = function () {
//Pedimos el nombre del personaje al que atacar
var nombrePersonajeElegido = prompt('Escribe el nombre del personaje al que quieres atacar');
//Comprobamos si existe el nombre escrito (key) en el array "Seres"
if(nombrePersonajeElegido in Seres){
//Guardamos la ruta de la imagen
var nombreImagen = Seres[nombrePersonajeElegido].imagenPersonaje;
//Quitamos los 4 primeros caracteres de la ruta (img/) y los cuatro ultimos (.jpg o .png) y lo guardamos en mayuscula.
var tipo = nombreImagen.slice(4,-4).toUpperCase();
//Comprobamos si es guerrero
if(tipo=="GUERRERO"){
/*Guardamos el resultado del calculo entre la vida del personaje y la fuerza del que ataca
("this.id" devuelve el ID del boton (definido arriba) que sera el nombre del atacante)*/
var vidaRestante= (parseInt(Seres[nombrePersonajeElegido].vidaPersonaje)) - (parseInt(Seres[this.id].fuerzaGuerrero));
/*Guardamos la vida restante que le queda al personaje atacado*/
Seres[nombrePersonajeElegido].vidaPersonaje = vidaRestante;
this.MostrarDatos();
}
}else{
alert('No existe ningun personaje con ese nombre');
}
}
Guerrero.prototype.MostrarDatos = function () {
/*Si pongo contenido aquí, ya no me funciona*/
}