Skip to content

Commit

Permalink
Merge pull request #26 from ucudal/documentacion-parcial
Browse files Browse the repository at this point in the history
Documentacion parcial
  • Loading branch information
FacundoPiriz17 authored Nov 7, 2024
2 parents e7df55d + 2aac2ac commit ba55d93
Show file tree
Hide file tree
Showing 12 changed files with 267 additions and 33 deletions.
22 changes: 22 additions & 0 deletions src/Library/Attack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,33 @@ namespace Library;

public class Attack : IAttack
{
/// <summary>
/// Nombre del ataque.
/// </summary>
public string Name { get; private set;}

/// <summary>
/// Tipo del ataque.
/// </summary>
public Type Type { get; }

/// <summary>
/// Precisión del ataque.
/// </summary>
public double Accuracy {get; private set;}

/// <summary>
/// Potencia del ataque.
/// </summary>
public int Power {get; private set;}

/// <summary>
/// Asigna el nombre, tipo, precisión y potencia a un ataque a crear.
/// </summary>
/// <param name="name">Nombre del ataque a crear.</param>
/// <param name="type">Tipo del ataque a crear.</param>
/// <param name="Accuracy">Precisión del ataque a crear.</param>
/// <param name="Power">Potencia del ataque a crear.</param>
public Attack(string name, Type type, int Accuracy, int Power)
{
this.Name = name;
Expand Down
11 changes: 0 additions & 11 deletions src/Library/Facade.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,10 @@ public static string ShowAtacks(string playerName)

Player player = GameList.FindPlayerByName(playerName);
if (player != null)
{
return $"El jugador {playerName} no está en ninguna partida.";
}
string result = "";
foreach (IAttack atack in player.ActivePokemon.GetAttacks())
{
result += atack.Name + "\n";
}

return result;
}

Expand Down Expand Up @@ -121,16 +116,10 @@ public static string RemovePlayerFromWaitingList(string playerName)
public static string GetAllPlayersWaiting()
{
if (WaitingList.Count == 0)
{
return "No hay nadie esperando";
}

string result = "Esperan: ";
foreach (Player player in WaitingList.GetWaitingList())
{
result = result + player.Name + "; ";
}

return result;
}
//historia de usuario 11
Expand Down
20 changes: 14 additions & 6 deletions src/Library/GameList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ namespace Library;
public class GameList
{
/// <summary>
/// Obtiene la lista de partidas.
/// Lista de partidas.
/// </summary>
private List<Game> Games { get; set; } = new List<Game>();

/// <summary>
/// Agrega una partida a la lista de partidas.
/// </summary>
/// <param name="player1"></param>
/// <param name="player2"></param>
/// <param name="player1"> Jugador 1.</param>
/// <param name="player2"> Jugador 2.</param>
/// <returns>La partida agregada.</returns>
public Game AddGame(Player player1, Player player2)
{
Expand All @@ -24,7 +24,7 @@ public Game AddGame(Player player1, Player player2)
/// <summary>
/// Elimina una partida de la lista de partidas.
/// </summary>
/// <param name="game"></param>
/// <param name="game">Partida a remover.</param>
/// <returns>
/// <c>true</c> si la partida fue eliminada. <c>false</c> si no encontró la partida.
/// </returns>
Expand All @@ -38,7 +38,7 @@ public bool RemoveGame(Game game)
/// <summary>
/// Devuelve un jugador buscandolo por su nombre
/// </summary>
/// <param name="playerName"></param>
/// <param name="playerName">Nombre del jugador a buscar.</param>
/// <returns>
/// <c>null</c> si el jugador no está en ninguna partida.
/// </returns>
Expand All @@ -54,7 +54,7 @@ public bool RemoveGame(Game game)
/// <summary>
/// Devuelve la partida en la que se encuentra un jugador.
/// </summary>
/// <param name="player"></param>
/// <param name="player"> Jugador a buscar. </param>
/// <returns>
/// <c>null</c> si el jugador no está en ninguna partida.
/// </returns>
Expand All @@ -65,4 +65,12 @@ public bool RemoveGame(Game game)
return game;
return null;
}

/// <summary>
/// Devuelve la lista de partidas.
/// </summary>
public List<Game> GetGameList()
{
return this.Games;
}
}
12 changes: 11 additions & 1 deletion src/Library/IAttack.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
namespace Library;
// Interfaz creada para subir la cohesión y bajar el acoplamiento.

/// <summary>
/// Interfaz de Ataque. Creada para subir la cohesión y bajar el acoplamiento.
/// </summary>
public interface IAttack: IAction
{
/// <summary>
/// Nombre del ataque.
/// </summary>
public string Name { get; }

/// <summary>
/// Tipo del ataque.
/// </summary>
public Type Type {get;}
}
12 changes: 12 additions & 0 deletions src/Library/IItem.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
namespace Library;

/// <summary>
/// Interfaz de Item. Creada para subir la cohesión y bajar el acoplamiento.
/// </summary>
public interface IItem
{
/// <summary>
/// Nombre del item
/// </summary>
string Name { get; }

/// <summary>
/// Utiliza el item sobre un pokemon.
/// </summary>
/// <param name="pokemon">Pokemon en el que se usará el item</param>
/// <returns>Resultado.</returns>
string Use(Pokemon pokemon);
}
76 changes: 71 additions & 5 deletions src/Library/Player.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,36 @@
namespace Library;
using Library;

/// <summary>
/// Esta clase representa un jugador.
/// </summary>
public class Player
{
/// <summary>
/// Nombre del jugador.
/// </summary>
public string Name { get; }

/// <summary>
/// Lista de Pokemon del jugador
/// </summary>
private List<Pokemon> PokemonTeam { get; set;}

/// <summary>
/// Lista de items del jugador.
/// </summary>
private List<IItem> Items { get; set;}

/// <summary>
/// Pokemon activo del jugador.
/// </summary>
public Pokemon ActivePokemon { get; private set; }

/// <summary>
/// Le asigna un nombre al jugador, crea las listas de pokemons y items
/// agregando items iniciales.
/// </summary>
/// <param name="name">Nombre del jugador a crear.</param>
public Player(string name)
{
this.Name = name;
Expand All @@ -22,6 +45,10 @@ public Player(string name)
this.Items.Add(new FullHealth());
}

/// <summary>
/// Agrega un pokemon a la lista de pokemons del jugador.
/// </summary>
/// <param name="pokemon">Pokemon a agregar</param>
public void AddToTeam(Pokemon pokemon)
{
if (this.PokemonTeam.Count < 6)
Expand All @@ -30,11 +57,30 @@ public void AddToTeam(Pokemon pokemon)
}
}

public void SetActivePokemon(Pokemon pokemon)
/// <summary>
/// Cambia el pokemon activo si está vivo.
/// </summary>
/// <param name="pokemon">Nuevo pokemon activo.</param>
/// <returns>
///<c>true</c> si se cambió el pokemon activo. <c>false</c> si el pokemon elegido no tiene vida.
/// </returns>
public bool SetActivePokemon(Pokemon pokemon)
{
this.ActivePokemon = pokemon;
if (pokemon.CurrentLife > 0)
{
this.ActivePokemon = pokemon;
return true;
}
return false;
}

/// <summary>
/// Devuelve un pokemon de la lista del jugador buscandolo por el nombre.
/// </summary>
/// <param name="strPokemon">Nombre del pokemon a buscar.</param>
/// <returns>
/// <c>null</c> si el pokemon no está en la lista de pokemons.
/// </returns>
public Pokemon? ChoosePokemon(string strPokemon)

Check warning on line 84 in src/Library/Player.cs

View workflow job for this annotation

GitHub Actions / build-test-generate-docs

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
{
foreach (Pokemon pokemon in this.PokemonTeam)
Expand All @@ -44,10 +90,16 @@ public void SetActivePokemon(Pokemon pokemon)
return pokemon;
}
}

return null;
}


/// <summary>
/// Devuelve un item de la lista de items buscandolo por su nombre.
/// </summary>
/// <param name="strItem">Nombre del item a buscar.</param>
/// <returns>
///<c>null</c> si el item no está en la lista items.
/// </returns>
public IItem? ChooseItem(string strItem)

Check warning on line 103 in src/Library/Player.cs

View workflow job for this annotation

GitHub Actions / build-test-generate-docs

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
{
foreach (IItem item in this.Items)
Expand All @@ -61,6 +113,13 @@ public void SetActivePokemon(Pokemon pokemon)
return null;
}

/// <summary>
/// Devuelve un ataque de la lista de ataques del pokemon activo.
/// </summary>
/// <param name="strAttack">Nombre del ataque a buscar.</param>
/// <returns>
/// <c>null</c> si el ataque no se encuentra en la lista de ataques.
/// </returns>
public IAttack? ChooseAttack(string strAttack)

Check warning on line 123 in src/Library/Player.cs

View workflow job for this annotation

GitHub Actions / build-test-generate-docs

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
{
foreach (IAttack attack in this.ActivePokemon.GetAttacks())
Expand All @@ -70,15 +129,22 @@ public void SetActivePokemon(Pokemon pokemon)
return attack;
}
}

return null;
}

/// <summary>
/// Devuelve la lista de pokemons del jugador.
/// </summary>
/// <returns></returns>
public List<Pokemon> GetPokemonTeam()
{
return this.PokemonTeam;
}

/// <summary>
/// Devuelve la lista de items del jugador.
/// </summary>
/// <returns></returns>
public List<IItem> GetItemList()
{
return this.Items;
Expand Down
Loading

0 comments on commit ba55d93

Please sign in to comment.