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.
58 lines
1.8 KiB
58 lines
1.8 KiB
using CoreLibrary.Events;
|
|
using CoreLibrary.Joueurs;
|
|
using CoreLibrary.Persistance;
|
|
using System.Collections.Generic;
|
|
|
|
namespace CoreLibrary.Manager
|
|
{
|
|
public class Manageur
|
|
{
|
|
private readonly List<Joueur> joueurs;
|
|
private readonly List<Partie> parties;
|
|
private readonly IPersistance persistance;
|
|
private Partie? partie;
|
|
|
|
public IReadOnlyCollection<Joueur> Joueurs => joueurs;
|
|
public IReadOnlyCollection<Partie> Parties => parties;
|
|
public Partie? Partie => partie;
|
|
|
|
public Manageur(IPersistance persistance)
|
|
{
|
|
this.persistance = persistance;
|
|
joueurs = persistance.Charger<Joueur>().ToList();
|
|
parties = persistance.Charger<Partie>().ToList();
|
|
}
|
|
|
|
public void NouvellePartie(Partie partie)
|
|
{
|
|
this.partie = partie;
|
|
|
|
parties.Add(partie);
|
|
|
|
partie.PasserMain += (object? sender, PasserMainEventArgs e) =>
|
|
{
|
|
persistance.Enregistrer<Partie>(parties.ToArray());
|
|
persistance.Enregistrer<Joueur>(joueurs.ToArray());
|
|
};
|
|
|
|
partie.PartieTerminee += (object? sender, PartieTermineeEventArgs e) =>
|
|
{
|
|
persistance.Enregistrer<Partie>(parties.ToArray());
|
|
persistance.Enregistrer<Joueur>(joueurs.ToArray());
|
|
};
|
|
}
|
|
|
|
public Joueur DemanderJoueur(string nom)
|
|
{
|
|
foreach (Joueur joueur in joueurs)
|
|
{
|
|
if (joueur.Nom == nom)
|
|
return joueur;
|
|
}
|
|
Joueur nouveauJoueur = new Joueur(nom);
|
|
joueurs.Add(nouveauJoueur);
|
|
return nouveauJoueur;
|
|
}
|
|
}
|
|
}
|