Skip to content

Commit

Permalink
conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
aaavril committed Nov 26, 2024
2 parents 3058931 + 65ce41c commit e15b503
Show file tree
Hide file tree
Showing 5 changed files with 270 additions and 53 deletions.
37 changes: 27 additions & 10 deletions src/Library/Domain/Domain/GameList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,21 @@ public class GameList
/// </summary>
/// <param name="player1">El primer jugador.</param>
/// <param name="player2">El oponente.</param>
/// <exception cref="ArgumentNullException">El primer jugador no puede ser nulo.</exception>
/// <exception cref="ArgumentNullException">El segundo jugador no puede ser nulo.</exception>
/// <exception cref="PokemonException">El jugador no puede jugar consigo mismo.</exception>
/// <returns>La batalla creada.</returns>
public Game AddGame(Player player1, Player player2)
{
if (player1 == null)
throw new ArgumentNullException(nameof(player1), "Player 1 no puede ser null");

if (player2 == null)
throw new ArgumentNullException(nameof(player2), "Player 2 no puede ser null");

if (player1.DisplayName.Equals(player2.DisplayName, StringComparison.OrdinalIgnoreCase))
{
throw new ApplicationException("El jugador no puede jugar consigo mismo");
throw new PokemonException("El jugador no puede jugar consigo mismo");
}

var game = new Game(player1, player2);
Expand All @@ -38,22 +47,23 @@ public Game AddGame(Player player1, Player player2)
/// <summary>
/// Encuentra un jugador por su nombre para una batalla en curso.
/// </summary>
/// <param name="displayName">El nombre del jugador.</param>
/// <param name="playerDisplayName">El nombre del jugador.</param>
/// <exception cref="ArgumentNullException">El primer jugador no puede ser nulo.</exception>
/// <returns>El objeto Player si se encuentra; de lo contrario, null.</returns>
public Player FindPlayerByDisplayName(string displayName)
public Player FindPlayerByDisplayName(string playerDisplayName)
{
if (string.IsNullOrWhiteSpace(displayName))
if (string.IsNullOrWhiteSpace(playerDisplayName))
{
throw new ArgumentNullException("El jugador no puede estar vacío");
}

foreach (var game in games)
{
if (game.Player1.DisplayName == displayName)
if (game.Player1.DisplayName == playerDisplayName)
{
return game.Player1;
}
else if (game.Player2.DisplayName == displayName)
else if (game.Player2.DisplayName == playerDisplayName)
{
return game.Player2;
}
Expand All @@ -65,15 +75,16 @@ public Player FindPlayerByDisplayName(string displayName)
/// <summary>
/// Encuentra un jugador por el nombre de su oponente para una batalla en curso.
/// </summary>
/// <param name="displayName">El nombre del jugador.</param>
/// <param name="playerDisplayName">El nombre del jugador.</param>
/// <exception cref="ArgumentNullException">El primer jugador no puede ser nulo.</exception>
/// <returns>El objeto Player si se encuentra; de lo contrario, null.</returns>
public Player FindOpponentOfDisplayName(string playerDisplayName)
{
if (string.IsNullOrWhiteSpace(playerDisplayName))
{
throw new ArgumentNullException("El jugador no puede estar vacío");
}

foreach (var game in games)
{
if (game.Player1.DisplayName == playerDisplayName)
Expand All @@ -92,10 +103,16 @@ public Player FindOpponentOfDisplayName(string playerDisplayName)
/// <summary>
/// Encuentra una battala por el nombre de uno de sus jugadores.
/// </summary>
/// <param name="displayName">El nombre del jugador.</param>
/// <param name="playerDisplayName">El nombre del jugador.</param>
/// <exception cref="ArgumentNullException">El primer jugador no puede ser nulo.</exception>
/// <returns> El objeto Game si se encuentra; de lo contrario, null.</returns>
public Game FindGameByPlayerDisplayName(string playerDisplayName)
{
if (string.IsNullOrWhiteSpace(playerDisplayName))
{
throw new ArgumentNullException("El jugador no puede estar vacío");
}

foreach (Game game in games)
{
if (game.Player1.DisplayName == playerDisplayName || game.Player2.DisplayName == playerDisplayName)
Expand Down
47 changes: 31 additions & 16 deletions src/Library/Domain/Domain/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
namespace ClassLibrary;

/// <summary>
/// La clase <c>Player</c> representa a un jugador en el juego,
/// responsable de gestionar los Pokémon disponibles, el Pokémon activo
/// La clase <c>Player</c> representa a un jugador en el juego, responsable de gestionar los Pokémon disponibles, el Pokémon activo
/// y el movimiento activo del jugador.
/// </summary>
public class Player
Expand Down Expand Up @@ -53,25 +52,15 @@ public ReadOnlyCollection<Pokemon> AvailablePokemons
/// </summary>
public Move ActiveMove { get; private set; }

// Referencia al oponente de este jugador.
private Player _opponent;

/// <summary>
/// El oponente del jugador.
/// </summary>
public Player Opponent
{
get => _opponent;
set => _opponent = value;
}


/// <summary>
/// Agrega un Pokémon a la lista de Pokémon disponibles para el jugador.
/// </summary>
/// <param name="pokemon">El Pokémon a agregar a la lista.</param>
public void AddPokemon(Pokemon pokemon)
{
if (pokemon == null)
throw new ArgumentNullException(nameof(pokemon), "Player 1 no puede ser null");
this.availablePokemons.Add(pokemon.Clone());
if (this.availablePokemons.Count == 1) // Es el primer pokemon que se agrega, lo activa por defecto
{
Expand Down Expand Up @@ -131,13 +120,41 @@ public int GetIndexOfMoveInActivePokemon(string moveDisplayName)
/// Activa un movimiento en el Pokémon activo en base a su índice en la lista de movimientos.
/// </summary>
/// <param name="index">Índice del movimiento en la lista de movimientos del Pokémon activo.</param>
/// <exception cref="PokemonException">Se lanza si no hay un Pokémon activo.</exception>
/// <exception cref="ArgumentOutOfRangeException">
/// Se lanza si el índice proporcionado está fuera del rango permitido para los movimientos del Pokémon activo.
/// </exception>
public void ActivateMoveInActivePokemon(int index)
{
if (ActivePokemon == null)
{
throw new PokemonException("No hay un Pokémon activo.");
}

if (index < 0 || index >= ActivePokemon.Moves.Count)
{
throw new ArgumentOutOfRangeException(nameof(index),
"El índice del movimiento está fuera del rango permitido.");
}

this.ActiveMove = this.ActivePokemon.Moves[index];
}

/// <summary>
/// Usa el Ítem del jugador.
/// </summary>
/// <param name="index">Índice del movimiento en la lista de movimientos del Pokémon activo.</param>
/// <exception cref="PokemonException">Se lanza si no hay un Pokémon activo.</exception>
/// <exception cref="ArgumentOutOfRangeException">
/// Se lanza si el índice proporcionado está fuera del rango permitido para los movimientos del Pokémon activo.
/// </exception>
public Item UseItem(string itemName)
{
if (string.IsNullOrWhiteSpace(itemName))
{
throw new ArgumentNullException("El nombre del item no puede estar vacío");
}

Item itemFound = null;
foreach (Item item in this.items)
{
Expand Down Expand Up @@ -210,8 +227,6 @@ public void CheckAndAssignNextActivePokemon()

public void ExecuteMove(Player defender, Player attacker)
{
/////////////////////////////

//Encontrar los pokemones activos
Pokemon attackingPokemon = attacker.ActivePokemon;
Pokemon defendingPokemon = defender.ActivePokemon;
Expand Down
73 changes: 46 additions & 27 deletions src/Library/Library.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit e15b503

Please sign in to comment.