using CoreLibrary.Core;
using CoreLibrary.Events;
using System.Runtime.Serialization;
namespace CoreLibrary.Joueurs
{
///
/// Classe représentant un joueur.
///
[DataContract]
public class Joueur
{
///
/// Le nom du joueur.
///
[DataMember]
public string Nom { get; private init; }
[DataMember]
public int NbCoutTotal { get; set; }
[DataMember]
public int NbPartieGagnee { get; set; }
[DataMember]
public int NbPartieEgalite { get; set; }
[DataMember]
public int NbPartiePerdue { get; set; }
///
/// Crée une nouvelle instance de joueur avec un nom
/// Evénement appelé pour jouer un code.
///
public event EventHandler? JouerCode;
///
/// Appel de l'événement JouerCode.
///
private void QuandJouerCode(Code code) => JouerCode?.Invoke(this, new JouerCodeEventArgs(code));
///
/// Crée une nouvelle instance de joueur avec un nom et un plateau spécifié.
///
/// Le nom du joueur.
public Joueur(string nom)
{
Nom = nom;
NbCoutTotal = 0;
NbPartieGagnee = 0;
NbPartieEgalite = 0;
NbPartiePerdue = 0;
}
public Joueur(string nom, int nbCoutTotal, int nbPartieGagnee, int nbPartieEgalite, int nbPartiePerdue)
{
Nom = nom;
NbCoutTotal = nbCoutTotal;
NbPartieGagnee = nbPartieGagnee;
NbPartieEgalite = nbPartieEgalite;
NbPartiePerdue = nbPartiePerdue;
}
public void Code(Code code)
{
QuandJouerCode(code);
}
public override String ToString()
{
return Nom;
}
}
}