/// <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();
        }
        public static void Iniciar()
        {
            bool seguirEnMenu = true;

            do
            {
                Menu.HeaderPrincipal();
                Menu.BannerMenu("Menu Modificar Pokemon");
                MenuBox.ResetearFondo();

                OpcionesMenu();

                switch (ValidarIngresoUsuario())
                {
                case OpcionesMenuModificar.Nombre:
                    CambiarNombrePokemon();
                    break;

                case OpcionesMenuModificar.Ataques:
                    CambiarAtaquesPokemon();
                    break;

                case OpcionesMenuModificar.Item:
                    CambiarItemPokemon();
                    break;

                case OpcionesMenuModificar.Volver:
                    seguirEnMenu = false;
                    break;

                default:
                    break;
                }
            } while (seguirEnMenu);
        }
        /// <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();
        }
        /// <summary>
        /// Muestra en una tabla los pokemones pasados por parámetro.
        /// </summary>
        /// <param name="pokemonesAMostrar"></param>
        /// <returns>Un indicador si se pudo o no mostrar la información</returns>
        public static bool Mostrar(Pokemon[] pokemonesAMostrar)
        {
            Menu.HeaderPrincipal();
            MenuBox.ResetearFondo();

            if (pokemonesAMostrar.Length != 0)
            {
                TablaPokemon.GenerarTabla(pokemonesAMostrar);
                return(true);
            }

            return(false);
        }
        static OpcionesMenuMostrar ValidarIngresoUsuario()
        {
            OpcionesMenuMostrar opcionSeleccionada;

            Console.Write("Seleccione una opcion: ");
            while (!EsOpcionValida(Console.ReadKey(), out opcionSeleccionada))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("\nLa opcion seleccionada no es válida, vuelva a intentarlo..");
                MenuBox.ResetearFondo();
                Console.Write("\nSeleccione una  opcion: ");
            }

            return(opcionSeleccionada);
        }
        /// <summary>
        /// Simula una loading screen antes de pasar a la box seleccionada
        /// </summary>
        static void PantallaCargaABox()
        {
            Console.Clear();
            Console.WriteLine($"Ingresando al menu de la box '{LogicaPC.BoxSeleccionada.Nombre}'.");
            Thread.Sleep(500);

            Console.Clear();
            Console.WriteLine($"Ingresando al menu de la box '{LogicaPC.BoxSeleccionada.Nombre}'..");
            Thread.Sleep(500);

            Console.Clear();
            Console.WriteLine($"Ingresando al menu de la box '{LogicaPC.BoxSeleccionada.Nombre}'...");
            Thread.Sleep(500);

            MenuBox.Iniciar();
        }
示例#7
0
        static ConsoleColor ValidarColorBox()
        {
            ConsoleColor colorSeleccionado;

            Console.Write("Ingrese una opcion: ");

            while (!Enum.TryParse <ConsoleColor>(Console.ReadLine(), out colorSeleccionado) || !Enum.IsDefined(typeof(ConsoleColor), colorSeleccionado))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("El color seleccionado no es valido, vuelva a intentarlo...");
                MenuBox.ResetearFondo();
                Console.Write("Seleccione un color: ");
            }

            return(colorSeleccionado);
        }
示例#8
0
        static int ValidarIngresoUsuario()
        {
            int opcionSeleccionada;

            Console.Write("Ingrese su opcion: ");
            while (!EsOpcionValida(Console.ReadLine(), out opcionSeleccionada))
            {
                Menu.CambiarColor(ConsoleColor.Red);
                Console.WriteLine("La opcion ingresada no es válida, vuelva a intentarlo..\n");
                MenuBox.ResetearFondo();
                Console.Write("Ingrese su opcion: ");
            }
            Console.WriteLine();

            return(opcionSeleccionada);
        }
        /// <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();
        }
        /// <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();
        }
        /// <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();
        }
示例#12
0
        static void OpcionesMenu()
        {
            int cont = 0;

            Console.WriteLine("Seleccione un tipo de pokebola: ");
            Menu.CambiarColor(ConsoleColor.Green);
            foreach (string tipoPokebola in Enum.GetNames(typeof(Pokebola)))
            {
                if (cont != 0)
                {
                    Console.WriteLine("{0}{1}. {2}", Menu.Identar(3), cont, tipoPokebola);
                }
                cont++;
            }

            MenuBox.ResetearFondo();
            Console.WriteLine("{0}. Volver al menú mostrar\n", cont);
        }
        public static void Iniciar()
        {
            bool seguirEnMenu = true;

            do
            {
                Menu.HeaderPrincipal();
                Menu.BannerMenu("Mostrar Pokemones");
                MenuBox.ResetearFondo();

                OpcionesMenu();

                switch (ValidarIngresoUsuario())
                {
                case OpcionesMenuMostrar.Todos:
                    MostrarTodos();
                    break;

                case OpcionesMenuMostrar.PorTipo:
                    SubMenuMostrarPorTipo.Iniciar();
                    break;

                case OpcionesMenuMostrar.PorNroDex:
                    MostrarPorNroDex();
                    break;

                case OpcionesMenuMostrar.PorRangoNivel:
                    MostrarPorRangoNivel();
                    break;

                case OpcionesMenuMostrar.PorPokebola:
                    SubMenuMostrarPorPokebola.Iniciar();
                    break;

                case OpcionesMenuMostrar.Huevos:
                    MostrarHuevos();
                    break;

                case OpcionesMenuMostrar.MenuBox:
                    seguirEnMenu = false;
                    break;
                }
            } while (seguirEnMenu);
        }
        /// <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();
        }
        /// <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();
        }
示例#16
0
        public static void Iniciar()
        {
            bool seguirEnMenu = true;

            do
            {
                Menu.HeaderPrincipal();
                Menu.BannerMenu("Tipo de Pokebola");
                MenuBox.ResetearFondo();
                OpcionesMenu();

                int opcionSeleccionada = ValidarIngresoUsuario();

                if (opcionSeleccionada >= 1 && opcionSeleccionada < Enum.GetNames(typeof(Pokebola)).Length)
                {
                    Console.Clear();
                    MostrarPorPokebola((Pokebola)opcionSeleccionada);
                }
                else
                {
                    seguirEnMenu = false;
                }
            } while (seguirEnMenu);
        }