diff --git a/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs b/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs index 9184657..01917f8 100644 --- a/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs +++ b/Sources/MauiSpark/Pages/ConnexionPage.xaml.cs @@ -7,50 +7,31 @@ namespace MauiSpark.Pages; public partial class ConnexionPage : ContentPage { - private readonly JoueurBuilder joueurBuilder; - - public ConnexionPage(Partie partie, DemanderNomEventArgs e) + private JoueurBuilder? joueurBuilder; + + public ConnexionPage() { NavigationPage.SetHasBackButton(this, false); - NavigationPage.SetHasNavigationBar(this, false); + NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); - - joueurBuilder = e.JoueurBuilder; - - if (e.Indice == partie.Regles.NbJoueursMaximum) - { - partie.NouveauTour += QuandNouveauTour; - partie.PartieTerminee += PartieTerminee; - } - - BindingContext = $"Joueur {e.Indice}"; } - private void QuandNouveauTour(object? sender, NouveauTourEventArgs e) + public async void QuandDemanderNom(Object? sender, DemanderNomEventArgs e) { - if (sender != null && sender is Partie) - Navigation.PushAsync(new Plateau(sender as Partie, e)); - } + if(Application.Current != null && Application.Current.MainPage != null && ((NavigationPage)Application.Current.MainPage).CurrentPage != this) + await Application.Current.MainPage.Navigation.PushAsync(this); + + Nom.Text = ""; + joueurBuilder = e.JoueurBuilder; + BindingContext = $"Joueur {e.Indice}"; + } private void QuandSeConnecterPresse(Object sender, EventArgs e) { - joueurBuilder.Nom(Nom.Text); - } + if(joueurBuilder != null) + joueurBuilder.Nom(Nom.Text); - private void PartieTerminee(Object? sender, PartieTermineeEventArgs e) - { - if(e.Gagnants.Count() == 0) - { - Navigation.PushAsync(new Defaite((Partie) sender, e)); - } - else if (e.Gagnants.Count() == 2) - { - Navigation.PushAsync(new Egalite()); - } - else - { - Navigation.PushAsync(new Victoire((Partie)sender, e)); - } + joueurBuilder = null; } } \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/Mode.xaml.cs b/Sources/MauiSpark/Pages/Mode.xaml.cs index bc58cf3..7521745 100644 --- a/Sources/MauiSpark/Pages/Mode.xaml.cs +++ b/Sources/MauiSpark/Pages/Mode.xaml.cs @@ -1,12 +1,14 @@ using CoreLibrary; -using CoreLibrary.Events; using CoreLibrary.Regles; namespace MauiSpark.Pages; public partial class Mode : ContentPage { - public Mode() + public static ConnexionPage test; + + + public Mode() { NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasNavigationBar(this, false); @@ -17,13 +19,9 @@ public partial class Mode : ContentPage private void QuandReglesClassiques(Object? sender, EventArgs e) { Partie partie = new Partie(new ReglesClassiques()); - partie.DemanderNom += QuandDemanderNom; + + partie.DemanderNom += new ConnexionPage().QuandDemanderNom; + partie.Jouer(); } - - private void QuandDemanderNom(Object? sender, DemanderNomEventArgs e) - { - if(sender != null && sender is Partie) - Navigation.PushAsync(new ConnexionPage(sender as Partie, e)); - } } \ No newline at end of file diff --git a/Sources/MauiSpark/Pages/Plateau.xaml.cs b/Sources/MauiSpark/Pages/Plateau.xaml.cs index bf253ae..390954b 100644 --- a/Sources/MauiSpark/Pages/Plateau.xaml.cs +++ b/Sources/MauiSpark/Pages/Plateau.xaml.cs @@ -34,16 +34,19 @@ internal class Tour public partial class Plateau : ContentPage { - private readonly Code code; - private readonly Joueur joueur; + private Code? code; + private Joueur? joueur; - public Plateau(Partie p, NouveauTourEventArgs e) + public Plateau(Partie partie) { NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); + } + public void QuandNouveauTour(object? sender, NouveauTourEventArgs e) + { code = e.Code; joueur = e.Joueur;