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/FruitDuDemon.cs

225 lines
8.1 KiB

/// \file FruitDuDemon.cs
/// \brief Contient la définition de la classe FruitDuDemon.
///
/// La classe FruitDuDemon représente les différents fruit du démons avec leur nom, nom romanisé, leur type, apparition du premier chapitre/premier épisode, une description et leurs forces et leurs faiblesses.
///
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Model.Classes
{
/// <summary>
/// Représente un Fruit du Démon.
/// </summary>
[DataContract(Name = "fruitdudemon")]
public class FruitDuDemon : ObjetOhara
{
/// <summary>
/// Obtient ou définit le nom romanisé du Fruit du Démon.
/// </summary>
[DataMember(Name = "nomromanise")]
private string? nomromanise;
public string? NomRomanise {
get=>nomromanise;
set
{
nomromanise = value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit le type du Fruit du Démon.
/// </summary>
[DataMember(Name = "type")]
private string? type;
public string? Type {
get=>type;
set
{
type = value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit le numéro du premier chapitre où le Fruit du Démon est mentionné.
/// </summary>
[DataMember(Name = "premierchap")]
private int premierchap;
public int PremierChap {
get=>premierchap;
set
{
premierchap = value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit le numéro du premier épisode où le Fruit du Démon est mentionné.
/// </summary>
[DataMember(Name = "premierep")]
private int premierep;
public int PremierEp {
get=>premierep;
set
{
premierep=value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit la description du Fruit du Démon.
/// </summary>
[DataMember(Name = "description")]
private string? description;
public string? Description {
get=>description;
set
{
description = value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit les forces du Fruit du Démon.
/// </summary>
[DataMember(Name = "forces")]
private string? forces;
public string? Forces {
get=>forces;
set
{
forces = value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit les faiblesses du Fruit du Démon.
/// </summary>
[DataMember(Name = "faiblesses")]
private string? faiblesses;
public string? Faiblesses {
get=>faiblesses;
set
{
faiblesses = value;
OnPropertyChanged();
}
}
/// <summary>
/// Obtient ou définit les utilisateurs du Fruit du Démon.
/// </summary>
[DataMember(Name = "utilisateur", EmitDefaultValue = false)]
public List<Personnage> Utilisateur { get; set; } = new List<Personnage>();
/// <summary>
/// Initialise une nouvelle instance de la classe <see cref="FruitDuDemon"/> avec les paramètres spécifiés.
/// </summary>
/// <param name="nom">Le nom du Fruit du Démon.</param>
/// <param name="nomRomanise">Le nom romanisé du Fruit du Démon.</param>
/// <param name="type">Le type du Fruit du Démon.</param>
/// <param name="premierChap">Le numéro du premier chapitre où le Fruit du Démon est mentionné.</param>
/// <param name="premierEp">Le numéro du premier épisode où le Fruit du Démon est mentionné.</param>
/// <param name="description">La description du Fruit du Démon.</param>
/// <param name="forces">Les forces du Fruit du Démon.</param>
/// <param name="faiblesses">Les faiblesses du Fruit du Démon.</param>
public FruitDuDemon(string nom, string nomRomanise, string type, int premierChap, int premierEp, string description, string forces, string faiblesses) : base(nom)
{
NomRomanise = nomRomanise;
Type = type;
if (premierEp < 0)
{
PremierEp = 0;
}
else
{
PremierEp = premierEp;
}
if (premierChap < 0)
{
PremierChap = 0;
}
else
{
PremierChap = premierChap;
}
Description = description;
Forces = forces;
Faiblesses = faiblesses;
}
/// <summary>
/// Initialise une nouvelle instance de la classe <see cref="FruitDuDemon"/> avec les paramètres spécifiés.
/// </summary>
/// <param name="nom">Le nom du Fruit du Démon.</param>
/// <param name="nomRomanise">Le nom romanisé du Fruit du Démon.</param>
/// <param name="type">Le type du Fruit du Démon.</param>
/// <param name="premierChap">Le numéro du premier chapitre où le Fruit du Démon est mentionné.</param>
/// <param name="premierEp">Le numéro du premier épisode où le Fruit du Démon est mentionné.</param>
/// <param name="description">La description du Fruit du Démon.</param>
/// <param name="forces">Les forces du Fruit du Démon.</param>
/// <param name="faiblesses">Les faiblesses du Fruit du Démon.</param>
/// <param name="image">Le chemin de l'image du Fruit du Démon.</param>
public FruitDuDemon(string nom, string nomRomanise, string type, int premierChap, int premierEp, string description, string forces, string faiblesses, string image) : this(nom, nomRomanise, type, premierChap, premierEp, description, forces, faiblesses)
{
if (String.IsNullOrWhiteSpace(image))
image = "baseimage.png";
Image = image;
}
/// <summary>
/// Détermine si l'objet spécifié est égal à l'objet actuel.
/// </summary>
/// <param name="obj">L'objet à comparer avec l'objet actuel.</param>
/// <returns><see langword="true"/> si l'objet spécifié est égal à l'objet actuel ; sinon, <see langword="false"/>.</returns>
public override bool Equals(object? obj)
{
if (obj == null) return false;
if (this.GetType() != obj.GetType())
{
return false;
}
else
{
FruitDuDemon o = (FruitDuDemon)obj;
return o.Nom == Nom;
}
}
/// <summary>
/// Retourne le code de hachage de l'objet actuel.
/// </summary>
/// <returns>Code de hachage calculé à partir des propriétés de l'objet.</returns>
public override int GetHashCode()
{
return HashCode.Combine(NomRomanise, Type, PremierChap, PremierEp, Description, Forces, Faiblesses);
}
/// <summary>
/// Retourne une chaîne qui représente l'objet actuel.
/// </summary>
/// <returns>Chaîne représentant l'objet actuel.</returns>
public override string ToString()
{
return "FruitDuDemon : " + Nom +" " +EstFavori+" " + NomRomanise + " " + Type + " " + PremierChap + " " + PremierEp + " " + Description + " " + Forces +" "+Faiblesses+ " " + Image;
}
}
}