You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ohara_MAUI/Sources/Model/Classes/Bestiaire.cs

121 lines
4.7 KiB

/// \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;
}
}
}