using CoreLibrary.Evenements; using CoreLibrary.Joueurs; namespace MauiSpark.Pages; partial class Message { public string Titre { get; init; } = ""; public string Texte { get; init; } = ""; public string Image { get; init; } = ""; } public partial class VictoirePage : ContentPage { public VictoirePage() { NavigationPage.SetHasNavigationBar(this, false); InitializeComponent(); } public async void QuandPartieTerminee(object? sender, PartiePartieTermineeEventArgs e) { if (Application.Current == null || Application.Current.MainPage == null) return; if (((NavigationPage)Application.Current.MainPage).CurrentPage != this) await Application.Current.MainPage.Navigation.PushAsync(this); IEnumerable pages = Application.Current.MainPage.Navigation.NavigationStack.Reverse().Skip(1); foreach (Page page in pages) { if (page is AccueilPage) break; Application.Current.MainPage.Navigation.RemovePage(page); } IReadOnlyList gagnants = e.Gagnants; IReadOnlyList perdants = e.Perdants; if (gagnants.Count == 1) BindingContext = new Message() { Titre = "Victoire", Texte = $"Le joueur {gagnants[0]} a gagné", Image = "trophy.jpg" }; else if (gagnants.Count > 1) BindingContext = new Message() { Titre = "Egalité", Texte = $"Les joueurs {string.Join(' ', gagnants)} ont gagné", Image = "egalite.jpg" }; else BindingContext = new Message() { Titre = "Défaite", Texte = "Personne n'a trouvé le code...", Image = "defaite.png" }; } public async void QuandMenuPresse(object sender, EventArgs e) { await Navigation.PopAsync(); } }