From 41cbe0ce81b51f0f5cbe25326931179002c59a0f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Nov 2024 17:55:55 -0300 Subject: [PATCH] testfacade --- src/Library/Facade.cs | 9 +++-- src/Library/Library.xml | 57 +++++++++++++++++++++++++++--- src/Library/Player.cs | 16 +++++++++ src/Program/Program.cs | 4 +-- test/LibraryTests/FacadeTest.cs | 8 ++++- test/LibraryTests/LibraryTests.xml | 24 ++----------- 6 files changed, 85 insertions(+), 33 deletions(-) diff --git a/src/Library/Facade.cs b/src/Library/Facade.cs index a50c7ff..a3c61a0 100644 --- a/src/Library/Facade.cs +++ b/src/Library/Facade.cs @@ -220,13 +220,18 @@ public static string ChooseTeam(string playerName, string cPokemon) { foreach (Pokemon pokemon in PokemonCatalogue.SetCatalogue()) { - if (pokemon.Name == cPokemon && !player.GetPokemonTeam().Contains(pokemon)) + if (pokemon.Name == cPokemon && !player.CheckPokemonInTeam(cPokemon)) { player.AddToTeam(pokemon); + if (player.GetPokemonTeam().Count == 1) + { + player.SetActivePokemon(pokemon); + } return $"El pokemon {cPokemon} fue añadido al equipo"; } - return $"El pokemon {cPokemon} ya está en el equipo, no puedes volver a añadirlo"; + } + return $"El pokemon {cPokemon} ya está en el equipo, no puedes volver a añadirlo"; } return $"El pokemon {cPokemon} no fue encontrado"; } diff --git a/src/Library/Library.xml b/src/Library/Library.xml index ab00655..51c2448 100644 --- a/src/Library/Library.xml +++ b/src/Library/Library.xml @@ -108,6 +108,13 @@ Obtiene la cantidad de turnos que lleva la partida. + + + Constructor de la clase. Agrega a los jugadores a la partida y determina de forma aleatoria cual comienza la partida. Inicializa el contador de turnos en 0. + + Primer jugador. + Segundo jugador. + Obtiene la lista de jugadores de la partida. @@ -132,6 +139,46 @@ string indicando al ganador y al perdedor de la partida. + + + Reduce el tiempo de enfriamiento (cooldown) de todos los ataques especiales de cada Pokemon en los equipos de los jugadores. + + + + + Avanza al siguiente turno del juego. Actualiza el contador de turnos, reduce el cooldown de los ataques especiales + y cambia al siguiente jugador activo, siempre que el juego esté en curso. + + + + Ejecuta un ataque por parte del Pokemon activo del jugador actual, siempre y cuando no se encuentre dormido ni paralizado. + + El ataque que se va a ejecutar. + + stringUn mensaje que indica el daño infligido al Pokemon objetivo o el estado actual que impidió el ataque. + Devuelve null si no se proporciona un ataque válido. + + + + + Permite que un jugador use un item en un Pokemon específico de su equipo, verificando la validez del item y del Pokemon. + + El item que se va a usar. + El Pokemon sobre el que se usará el item. + + Un mensaje indicando el resultado del uso del objeto, o un mensaje de error si el objeto o el Pokemon no son válidos. + + + + + Cambia el Pokemon activo del jugador actual por otro de su equipo, verificando si el cambio es válido. + + El nuevo Pokemon que se intentará establecer como activo. + + stringUn mensaje indicando que el cambio fue exitoso, o un mensaje de error si el Pokemon proporcionado no es válido + o si no tiene vida. + + Esta clase representa la lista de partidas en curso. @@ -252,7 +299,7 @@ - Le asigna un nombre al jugador, crea las listas de pokemons y items + Le asigna un nombre al jugador, crea las listas de pokemons e items agregando items iniciales. Nombre del jugador a crear. @@ -272,7 +319,7 @@ true si se cambió el pokemon activo. false si el pokemon elegido no tiene vida. - + Devuelve un pokemon de la lista del jugador buscandolo por el nombre. @@ -281,7 +328,7 @@ null si el pokemon no está en la lista de pokemons. - + Devuelve un item de la lista de items buscandolo por su nombre. @@ -290,7 +337,7 @@ null si el item no está en la lista items. - + Devuelve un ataque de la lista de ataques del pokemon activo. @@ -365,7 +412,7 @@ Ataque 3. Ataque 4. - + Suma puntos de vida a la vida actual, considerando que la vida actual no puede ser mayor a la vida base del Pokemon. diff --git a/src/Library/Player.cs b/src/Library/Player.cs index 93e077f..ae1e32f 100644 --- a/src/Library/Player.cs +++ b/src/Library/Player.cs @@ -162,5 +162,21 @@ public string GetPokemonAttacks() } return result; } + + public bool CheckPokemonInTeam(string pokemonName) + { + if (this.PokemonTeam.Count == 0) + { + return false; + } + + foreach (Pokemon pokemon in this.PokemonTeam) + { + if (pokemon.Name == pokemonName) + return true; + } + + return false; + } } diff --git a/src/Program/Program.cs b/src/Program/Program.cs index b59a037..01b2ac4 100644 --- a/src/Program/Program.cs +++ b/src/Program/Program.cs @@ -5,7 +5,7 @@ //-------------------------------------------------------------------------------- using System; -using ClassLibrary; +using Library; namespace ConsoleApplication { @@ -19,8 +19,6 @@ public static class Program /// public static void Main() { - var train = new Train(); - train.StartEngines(); Console.WriteLine("Hello World!"); } } diff --git a/test/LibraryTests/FacadeTest.cs b/test/LibraryTests/FacadeTest.cs index f3599ba..57135f8 100644 --- a/test/LibraryTests/FacadeTest.cs +++ b/test/LibraryTests/FacadeTest.cs @@ -18,7 +18,13 @@ public void TestShowAttacks() Facade.CreateGame("mateo", "ines"); Facade.StartBattle("mateo", "ines"); Facade.ChooseTeam("mateo", "Caterpie"); - string result = "Bug bite\nTackle\nBug Stomp\nString Shot"; + string result = "Bug bite\nTackle\nBug stomp\nString shot\n"; Assert.That(Facade.ShowAtacks("mateo"), Is.EqualTo(result)); } + + [Test] + public void TestShowPokemonsHP() + { + + } } \ No newline at end of file diff --git a/test/LibraryTests/LibraryTests.xml b/test/LibraryTests/LibraryTests.xml index 3ee0fae..0527437 100644 --- a/test/LibraryTests/LibraryTests.xml +++ b/test/LibraryTests/LibraryTests.xml @@ -4,29 +4,9 @@ LibraryTests - + - Prueba de la clase . - - - - - El tren para probar. - - - - - Crea un tren para probar. - - - - - Prueba que el tren arranque. - - - - - Prueba que el tren se detenga. + Test de la historia de usuario 2.