/// <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(); }
/// <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(); }
/// <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> /// 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(); }
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(); }
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(); }
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(); }
/// <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(); }
/// <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> /// 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(); }
/// <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(); }
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()); }
/// <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(); }