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
{
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;
}
}

@ -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));
}
}

@ -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;

Loading…
Cancel
Save