/// \file Bestiaire.cs /// \brief Contient la définition de la classe Bestiaire. /// /// La classe Bestiaire représente toutes les races présents dans l'univers de One Piece avec leur nom, leur origine, une description ainsi que les caractéristiques de la race. /// using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace Model.Classes { [DataContract(Name = "bestiaire")] /// \class Bestiaire /// \brief Représente les différents bestiaires avec leur nom, leur origine ... /// ///La classe Bateau représente les différents bateaux avec leur nom, leur affiliation à un équipage (Implémentation de la classe Equipage), quand on les voit pour la première fois dans le manga et dans l'anime. public class Bestiaire : ObjetOhara { [DataMember(Name = "origine")] private string? origine; /// \property Origine /// \brief Chaine de caractère représentant l'origine du bestiaire. public string? Origine { get=>origine; set { if (origine == value) return; origine = value; OnPropertyChanged(); } } [DataMember(Name = "description")] private string? description; /// \property Description /// \brief Chaine de caractère représentant la description du bestiaire. public string? Description { get=>description; set { if (description == value) return; description = value; OnPropertyChanged(); } } [DataMember(Name = "caracteristique")] private string? caracteristique; /// \property Caracteristique /// \brief Chaine de caractère représentant les caractéristiques du bestiaire. public string? Caracteristique { get=>caracteristique; set { if(caracteristique == value) return; caracteristique = value; OnPropertyChanged(); } } /// \brief Constructeur de la classe Bestiaire sans image. /// \param nom Le nom du bestiaire. /// \param origine Origine du bestiaire. /// \param description La description du bestiaire. /// \param caracteristique Les caractéristiques du bestiaire. public Bestiaire(string nom, string origine, string description, string caracteristique) : base(nom) { if (String.IsNullOrEmpty(origine)) origine = "Grand Line"; Origine = origine; if (String.IsNullOrEmpty(description)) description = "Pour décrire ..."; Description = description; if (String.IsNullOrEmpty(caracteristique)) caracteristique = "Les caracteristiques ..."; Caracteristique = caracteristique; } /// \brief Constructeur de la classe Bestiaire avec image. /// \param nom Le nom du bestiaire. /// \param origine Origine du bestiaire. /// \param description La description du bestiaire. /// \param caracteristique Les caractéristiques du bestiaire. /// \param image Le nom de l'image du bestiaire. public Bestiaire(string nom, string origine, string description, string caracteristique, string image) : this(nom, origine, description, caracteristique) { if (String.IsNullOrWhiteSpace(image)) image = "baseimage.png"; Image = image; } /// \brief Renvoie un booléen permettant de savoir si deux bateaux sont égaux. /// \param obj bateau à comparer. /// \return bool Booléen exprimant l'égalité ou non. public override bool Equals(object? obj) { if (obj == null) return false; if (this.GetType() != obj.GetType()) { return false; } else { Bestiaire o = (Bestiaire)obj; return o.Nom == Nom; } } public override int GetHashCode() { return HashCode.Combine(Origine, Description, Caracteristique); } public override string ToString() { return "Bestiaire : " + Nom +" "+EstFavori+ " " + Origine + " " + Description + " " + Caracteristique +" " + Image; } } }