Quelques modifs sur la navigation
continuous-integration/drone/push Build is passing Details

master
Céleste BARBOSA 11 months ago
parent bfddf7341f
commit e8a5770d4b

@ -7,50 +7,31 @@ namespace MauiSpark.Pages;
public partial class ConnexionPage : ContentPage public partial class ConnexionPage : ContentPage
{ {
private readonly JoueurBuilder joueurBuilder; private JoueurBuilder? joueurBuilder;
public ConnexionPage(Partie partie, DemanderNomEventArgs e) public ConnexionPage()
{ {
NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasBackButton(this, false);
NavigationPage.SetHasNavigationBar(this, false); NavigationPage.SetHasNavigationBar(this, false);
InitializeComponent(); 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) if(Application.Current != null && Application.Current.MainPage != null && ((NavigationPage)Application.Current.MainPage).CurrentPage != this)
Navigation.PushAsync(new Plateau(sender as Partie, e)); await Application.Current.MainPage.Navigation.PushAsync(this);
}
Nom.Text = "";
joueurBuilder = e.JoueurBuilder;
BindingContext = $"Joueur {e.Indice}";
}
private void QuandSeConnecterPresse(Object sender, EventArgs e) 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) joueurBuilder = null;
{
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));
}
} }
} }

@ -1,12 +1,14 @@
using CoreLibrary; using CoreLibrary;
using CoreLibrary.Events;
using CoreLibrary.Regles; using CoreLibrary.Regles;
namespace MauiSpark.Pages; namespace MauiSpark.Pages;
public partial class Mode : ContentPage public partial class Mode : ContentPage
{ {
public Mode() public static ConnexionPage test;
public Mode()
{ {
NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasBackButton(this, false);
NavigationPage.SetHasNavigationBar(this, false); NavigationPage.SetHasNavigationBar(this, false);
@ -17,13 +19,9 @@ public partial class Mode : ContentPage
private void QuandReglesClassiques(Object? sender, EventArgs e) private void QuandReglesClassiques(Object? sender, EventArgs e)
{ {
Partie partie = new Partie(new ReglesClassiques()); Partie partie = new Partie(new ReglesClassiques());
partie.DemanderNom += QuandDemanderNom;
partie.DemanderNom += new ConnexionPage().QuandDemanderNom;
partie.Jouer(); partie.Jouer();
} }
private void QuandDemanderNom(Object? sender, DemanderNomEventArgs e)
{
if(sender != null && sender is Partie)
Navigation.PushAsync(new ConnexionPage(sender as Partie, e));
}
} }

@ -34,16 +34,19 @@ internal class Tour
public partial class Plateau : ContentPage public partial class Plateau : ContentPage
{ {
private readonly Code code; private Code? code;
private readonly Joueur joueur; private Joueur? joueur;
public Plateau(Partie p, NouveauTourEventArgs e) public Plateau(Partie partie)
{ {
NavigationPage.SetHasBackButton(this, false); NavigationPage.SetHasBackButton(this, false);
NavigationPage.SetHasNavigationBar(this, false); NavigationPage.SetHasNavigationBar(this, false);
InitializeComponent(); InitializeComponent();
}
public void QuandNouveauTour(object? sender, NouveauTourEventArgs e)
{
code = e.Code; code = e.Code;
joueur = e.Joueur; joueur = e.Joueur;

Loading…
Cancel
Save