コード例 #1
0
        /// <summary>
        /// Libera al pokemon, es decir, lo elimina de los pokemones listados en la box.
        /// </summary>
        static void LiberarPokemon()
        {
            Menu.HeaderPrincipal();
            ResetearFondo();

            LogicaBox box       = new LogicaBox(LogicaPC.BoxSeleccionada);
            int       idPokemon = Validaciones.ValidarId();

            try
            {
                TablaPokemon.GenerarTabla(box.ObtenerPokemon(idPokemon));
                ResetearFondo();

                #region Confirmando la eliminacion
                if (Validaciones.ValidarSoN("Desea eliminar el pokemon?"))
                {
                    box.Liberar(idPokemon);
                    Menu.CambiarColor(ConsoleColor.Yellow);
                    Console.WriteLine("\nEl pokemon ha sido liberado");
                }
                else
                {
                    Menu.CambiarColor(ConsoleColor.Red);
                    Console.WriteLine("\nLa liberacion se ha cancelado");
                }
                #endregion
            }
            catch (NoExistePokemonException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine(e.Message);
            }

            Menu.EspereUnaTecla();
        }
コード例 #2
0
        /// <summary>
        /// Permite reubicar al pokemon en otra posicion de la BOX. Si no está ocupada la posicion, lo almacena ahi. En caso contrario, intercambia posiciones.
        /// </summary>
        static void MoverPokemon()
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Menu.HeaderPrincipal();
            ResetearFondo();

            try
            {
                Console.Write("Pokemon a mover: ");
                Pokemon pokemonAMover = box.ObtenerPokemon(Validaciones.ValidarId());

                Console.Write("Posicion a donde desea moverlo: ");
                int posicionSeleccionada = Validaciones.ValidarId();

                box.Mover(pokemonAMover, posicionSeleccionada);
                Menu.CambiarColor(ConsoleColor.Yellow);
                Console.WriteLine("\nEl pokemon ha sido movido a la posicion seleccionada");
            }
            catch (NoExistePokemonException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("\nError al mover porque {0}", e.Message.ToLower());
            }

            Menu.EspereUnaTecla();
        }
コード例 #3
0
        /// <summary>
        /// Cambia el nombre del pokemon. Si se ingresa un huevo, muestra el mensaje de error.
        /// </summary>
        static void CambiarNombrePokemon()
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);
            string    nuevoNombre;

            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            try
            {
                Pokemon pokemon = box.ObtenerPokemon(Validaciones.ValidarId());

                if (pokemon is Huevo)
                {
                    Menu.CambiarColor(ConsoleColor.Red);
                    Console.WriteLine("\nNo se pueden modificar el nombre de un huevo");
                }
                else
                {
                    nuevoNombre = Validaciones.ValidarCadena("Ingrese el nuevo nombre del pokemon");
                    box.CambiarNombre(pokemon, nuevoNombre);
                    Menu.CambiarColor(ConsoleColor.Yellow);
                    Console.WriteLine("\nEl nombre ha sido modificado");
                }
            }
            catch (NoExistePokemonException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine(e.Message);
            }

            Menu.EspereUnaTecla();
        }
コード例 #4
0
        /// <summary>
        /// Permite modificar el moveset del pokemon
        /// </summary>
        static void CambiarAtaquesPokemon()
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            string[] nuevosAtaques;

            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            try
            {
                nuevosAtaques = new string[Pokemon.LimiteAtaques];
                Pokemon pokemon = box.ObtenerPokemon(Validaciones.ValidarId());

                if (pokemon is Huevo)
                {
                    Menu.CambiarColor(ConsoleColor.Red);
                    Console.WriteLine("\nNo se pueden modificar los ataques de un huevo");
                }
                else
                {
                    nuevosAtaques = Validaciones.ValidarAtaques();
                    box.CambiarAtaques(pokemon, nuevosAtaques);
                    Menu.CambiarColor(ConsoleColor.Yellow);
                    Console.WriteLine("\nEl moveset del pokemon ha sido modificado");
                }
            }
            catch (NoExistePokemonException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine(e.Message);
            }

            Menu.EspereUnaTecla();
        }
コード例 #5
0
        static void ContadorBox(Box box)
        {
            LogicaBox boxLogica         = new LogicaBox(box);
            int       cantidadAtrapados = boxLogica.ObtenerTodosLosCapturados().Length;

            Console.ForegroundColor = (cantidadAtrapados == Box.Capacidad) ? ConsoleColor.Red : Console.ForegroundColor;
            Console.Write("[{0}/{1}]\n", cantidadAtrapados, Box.Capacidad);
            Menu.ResetearColor();
        }
コード例 #6
0
        static void MostrarPorPokebola(Pokebola pokebola)
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Pokemon[] pokemonPorPokebola = box.ObtenerPorPokebola(pokebola);

            if (!MenuMostrarPokemon.Mostrar(pokemonPorPokebola))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine($"No hay pokemones capturados con la '{pokebola.ToString().ToLower()}' en esta box.");
            }

            Menu.EspereUnaTecla();
        }
コード例 #7
0
        static void MostrarPorTipo(Tipo tipo)
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Pokemon[] pokemonPorTipo = box.ObtenerPorTipo(tipo);

            if (!MenuMostrarPokemon.Mostrar(pokemonPorTipo))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine($"No hay pokemones capturados del tipo '{tipo}' en esta box.");
            }

            Menu.EspereUnaTecla();
        }
コード例 #8
0
        /// <summary>
        /// Muestra los huevos que estan alojados en la box
        /// </summary>
        static void MostrarHuevos()
        {
            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Pokemon[] huevosPokemon = box.ObtenerHuevos();

            if (!Mostrar(huevosPokemon))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("No existen huevos en esta box");
            }

            Menu.EspereUnaTecla();
        }
コード例 #9
0
        /// <summary>
        /// Muestra todos los pokemones capturados. Se informa si no hay capturados.
        /// </summary>
        static void MostrarTodos()
        {
            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Pokemon[] pokemonesCapturados = box.ObtenerTodosLosCapturados();

            if (!Mostrar(pokemonesCapturados))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("No hay pokemones capturados en esta box");
            }

            Menu.EspereUnaTecla();
        }
コード例 #10
0
        /// <summary>
        /// Muestra todos los pokemones que tengan ese mismo nro de dex. Se informa si no hay capturados.
        /// </summary>
        static void MostrarPorNroDex()
        {
            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Pokemon[] pokemonConMismaDex = box.ObtenerPorNroPokedex(Validaciones.ValidarNroDex());

            if (!Mostrar(pokemonConMismaDex))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("No hay pokemones con esa dex en esta box");
            }

            Menu.EspereUnaTecla();
        }
コード例 #11
0
        /// <summary>
        /// Muestra pokemon por rango de nivel
        /// </summary>
        static void MostrarPorRangoNivel()
        {
            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            byte nivelMinimo = Validaciones.ValidarNivel($"Ingresa un nivel minimo [1-{PC.NivelMaximo}]");
            byte nivelMaximo = Validaciones.ValidarNivel($"Ingresa un nivel maximo [1-{PC.NivelMaximo}]");

            Pokemon[] pokemonesEnRango = box.ObtenerPorRangoNivel(nivelMinimo, nivelMaximo);

            if (!Mostrar(pokemonesEnRango))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("No hay pokemones con ese rango de nivel dentro de esta box");
            }

            Menu.EspereUnaTecla();
        }
コード例 #12
0
        /// <summary>
        /// Busca un pokemon en la box basandose en su Id y muestra el resultado
        /// </summary>
        static void BuscarPokemon()
        {
            Menu.HeaderPrincipal();
            ResetearFondo();

            LogicaBox box       = new LogicaBox(LogicaPC.BoxSeleccionada);
            int       pokemonId = Validaciones.ValidarId();

            try
            {
                Pokemon pokemonEncontrado = box.ObtenerPokemon(pokemonId);
                TablaPokemon.GenerarTabla(pokemonEncontrado);
            }
            catch (NoExistePokemonException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine(e.Message);
            }

            Menu.EspereUnaTecla();
        }
コード例 #13
0
        /// <summary>
        /// Equipa o quita el item del pokemon
        /// </summary>
        static void CambiarItemPokemon()
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            try
            {
                Pokemon pokemon = box.ObtenerPokemon(Validaciones.ValidarId());

                if (pokemon is Huevo)
                {
                    Menu.CambiarColor(ConsoleColor.Red);
                    Console.WriteLine("\nNo se pueden cambiar el item de un huevo");
                }
                else
                {
                    box.CambiarStatusItem(pokemon);
                    Menu.CambiarColor(ConsoleColor.Yellow);

                    if (pokemon.TieneItem)
                    {
                        Console.WriteLine("\nEl item fue desequipado");
                    }
                    else
                    {
                        Console.WriteLine("\nEl item fue equipado");
                    }
                }
            }
            catch (NoExistePokemonException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine(e.Message);
            }

            Menu.EspereUnaTecla();
        }
コード例 #14
0
        public static string GenerarFila(Pokemon pokemon)
        {
            LogicaBox box = new LogicaBox(LogicaPC.BoxSeleccionada);

            string[] ataques = box.ObtenerAtaques(pokemon);

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(" {0,-4}|", pokemon.Id + 1);
            sb.AppendFormat(" {0,-6}|", pokemon.NroDex);
            sb.AppendFormat(" {0,-15}|", pokemon.Nombre);
            sb.AppendFormat(" {0,-6}|", pokemon.Nivel);
            sb.AppendFormat(" {0,-12}|", pokemon.Genero);
            sb.AppendFormat(" {0,-12}|", pokemon.Tipo);
            sb.AppendFormat(" {0,-12}|", pokemon.AtrapadoCon);
            sb.AppendFormat(" {0,-12}|", pokemon.Entrenador.NombreOT);

            #region Generando un campo para los ataques
            if (ataques.Length != 0)
            {
                foreach (string ataque in ataques)
                {
                    sb.AppendFormat(" {0,-10} -", ataque);
                }
            }
            else
            {
                sb.AppendFormat(" {0,-40}", "SIN ATAQUES");
            }
            #endregion

            //No fue agregado porque supera el ancho de la consola
            //sb.Append(string.Format("{0,-10}|", pokemon.TieneItem ? "Si" : "No"));

            return(sb.ToString());
        }
コード例 #15
0
        /// <summary>
        /// Guarda el pokemon en un espacio de la box actual. En caso de no lograrse el guardado, muestra el mensaje de error.
        ///</summary>
        static void GuardarPokemon()
        {
            Menu.HeaderPrincipal();
            ResetearFondo();

            LogicaBox box          = new LogicaBox(LogicaPC.BoxSeleccionada);
            string    mensajeError = "El pokemon no puede ser guardado porque";

            try
            {
                if (Validaciones.ValidarSoN("El pokemon a guardar es un huevo?"))
                {
                    #region Cargar un huevo
                    ResetearFondo();
                    short cantidadPasos = Validaciones.ValidarCantPasos();
                    box.Guardar(new Huevo(cantidadPasos));
                    Menu.CambiarColor(ConsoleColor.Yellow);
                    Console.WriteLine("\nEl huevo ha sido cargado");
                    #endregion
                }
                else
                {
                    #region Cargar un pokemon
                    ResetearFondo();
                    Pokemon pokemonNuevo = CargaDatosPokemon();
                    Menu.HeaderPrincipal();
                    TablaPokemon.GenerarTabla(pokemonNuevo);
                    ResetearFondo();

                    if (Validaciones.ValidarSoN("Desea guardar este pokemon?"))
                    {
                        ResetearFondo();
                        box.Guardar(pokemonNuevo);
                        Menu.CambiarColor(ConsoleColor.Yellow);
                        Console.WriteLine("\nEl pokemon ha sido cargado");
                    }
                    else
                    {
                        Menu.CambiarColor(ConsoleColor.Red);
                        Console.WriteLine("\nSe ha cancelado la carga del pokemon");
                    }
                    #endregion
                }
            }
            catch (BoxLlenaException e)
            {
                //Cargar en otra box disponible??
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("{0} {1}", mensajeError, e.Message.ToLower());
            }
            catch (MasterBallUnicaException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("{0} {1}", mensajeError, e.Message.ToLower());
            }
            catch (LegendarioUnicoException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("{0} {1}", mensajeError, e.Message.ToLower());
            }
            catch (NroDexSuperadoException e)
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("{0} {1}", mensajeError, e.Message.ToLower());
            }

            Menu.EspereUnaTecla();
        }