public static IPersonaje CrearPersonaje(TipoDePersonaje personaje, string nombre) { IPersonaje obj = null; switch (personaje) { case TipoDePersonaje.Aprendiz: if (_aprendiz == null) { _aprendiz = new Aprendiz(nombre); } obj = _aprendiz; break; case TipoDePersonaje.Hechicera: if (_hechicera == null) { _hechicera = new Hechicera(nombre); } obj = _hechicera; break; case TipoDePersonaje.Mago: if (_mago == null) { _mago = new Mago(nombre); } obj = _mago; break; } return(obj); }
/// <summary> /// Este metodo puede ser simplicado en el btnOK pero /// lo uso como demostracion de interfaz + generics /// </summary> /// <param name="personajeClase"></param> /// <param name="PersonajeCreado"></param> public void CrearPersonaje(Personaje.EClase personajeClase, out Personaje PersonajeCreado) { switch (personajeClase) { case Personaje.EClase.Amazona: PersonajeCreado = new Amazona(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; case Personaje.EClase.Asesina: PersonajeCreado = new Asesina(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; case Personaje.EClase.Barbaro: PersonajeCreado = new Barbaro(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; case Personaje.EClase.Druida: PersonajeCreado = new Druida(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; case Personaje.EClase.Hechicera: PersonajeCreado = new Hechicera(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; case Personaje.EClase.Paladin: PersonajeCreado = new Paladin(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; case Personaje.EClase.Nigromante: PersonajeCreado = new Nigromante(1, txtPersonajeNombre.Text, Personaje.EReino.Normal); break; default: PersonajeCreado = null; break; } }
public List <Personaje> Listar() { try { using (SqlConnection sqlConnection = new SqlConnection(this.connectionString)) { sqlConnection.Open(); string command = "SELECT * FROM Personajes"; SqlCommand sqlCommand = new SqlCommand(command, sqlConnection); SqlDataReader reader = sqlCommand.ExecuteReader(); List <Personaje> personajes = new List <Personaje>(); if (reader.HasRows) { while (reader.Read()) { Amazona Amazona; Asesina Asesina; Barbaro Barbaro; Hechicera Hechicera; Druida Druida; Paladin Paladin; Nigromante Nigromante; string nombre = (string)reader["Nombre"]; int nivel = (int)reader["Nivel"]; Enum.TryParse <Personaje.EClase>((string)reader["Clase"], out Personaje.EClase clase); Enum.TryParse <Personaje.EReino>((string)reader["Reino"], out Personaje.EReino reino); string descripcion = (string)reader["Descripcion"]; switch (clase) { case Personaje.EClase.Amazona: Amazona = new Amazona(nivel, nombre, reino); Amazona.JefesMuertos = descripcion; personajes.Add(Amazona); break; case Personaje.EClase.Asesina: Asesina = new Asesina(nivel, nombre, reino); Asesina.JefesMuertos = descripcion; personajes.Add(Asesina); break; case Personaje.EClase.Barbaro: Barbaro = new Barbaro(nivel, nombre, reino); Barbaro.JefesMuertos = descripcion; personajes.Add(Barbaro); break; case Personaje.EClase.Druida: Druida = new Druida(nivel, nombre, reino); Druida.JefesMuertos = descripcion; personajes.Add(Druida); break; case Personaje.EClase.Hechicera: Hechicera = new Hechicera(nivel, nombre, reino); Hechicera.JefesMuertos = descripcion; personajes.Add(Hechicera); break; case Personaje.EClase.Paladin: Paladin = new Paladin(nivel, nombre, reino); Paladin.JefesMuertos = descripcion; personajes.Add(Paladin); break; case Personaje.EClase.Nigromante: Nigromante = new Nigromante(nivel, nombre, reino); Nigromante.JefesMuertos = descripcion; personajes.Add(Nigromante); break; } } } sqlConnection.Close(); return(personajes); } } catch (ErrorAlConectarException ex) { throw new ErrorAlConectarException(ex); } }