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;
            }
        }
Exemplo n.º 3
0
        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);
            }
        }