using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using TheGameExtreme.model.card; using TheGameExtreme.model.@event; using TheGameExtreme.model.gameActions.classic; using TheGameExtreme.model.manager; namespace TheGameExtreme.viewmodel { public class Main : INotifyPropertyChanged { public event EventHandler BindingChanged; public event PropertyChangedEventHandler PropertyChanged; private string alert = ""; public String Alert { get { return alert; } set { alert = value; OnPropertyChanged("Alert"); } } private string pseudo = "Pseudo"; public String Pseudo { get { return pseudo; } set { pseudo = value; OnPropertyChanged("Pseudo"); } } protected virtual void OnPropertyChanged(string info) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info)); } private GameManager gameManager; public List CurrentHand { get; set; } //private ObservableCollection> ListOrderedStacks; public Main() { gameManager = new SoloGameManager(new List { "Clément", "Baptiste" }, new GameMode()) ; // Donner le nom des joueurs gameManager.TopRangeChanged += OnTopRangeChanged; gameManager.PlayerChanged += OnPlayerChanged; CurrentHand = gameManager.CurrentHand; //ListOrderedStacks = new ObservableCollection>(gameManager.ListOrderedStacks); } protected internal void OnPlayerChanged(object source, PlayerChangedEventArgs args) { CurrentHand = args.NewCurrentHand; Pseudo = args.Pseudo; } public void OnTopRangeChanged(object source, TopRangeChangedEventArgs args) { BindingChanged?.Invoke(this, args); } /** * * * @return booléen de fin de jeu */ public bool played(int numStack, int valueCard) { try { gameManager.joue(valueCard, numStack); if (gameManager.EndMessage != null) { Alert = gameManager.EndMessage; return true; } } catch (Exception e) { // Faire un toast Alert = e.Message; } return false; //if (gameManager.isCanPlay()) //{ // return playOneCard(numStack, valueCard); //} //else //{ // Alert = "Le joueur n'a plus de carte dans sa main!"; // // Faire un toast // return false; //} } public bool endTurn() { try { bool isEnd = gameManager.endTurn(); Alert = gameManager.EndMessage; return isEnd; } catch (Exception e) { Alert = e.Message; return false; } } ///** // * // * // * @return booléen de fin de jeu // */ //private bool playOneCard(int numStack, int valueCard) //{ // try // { // gameManager.joue(valueCard, numStack); // if (gameManager.EndMessage != null) // { // Alert = gameManager.EndMessage; // return true; // } // } // catch(Exception e) // { // // Faire un toast // Alert = e.Message; // } // return false; //} //public bool endTurn() //{ // try // { // bool isEnd = gameManager.endTurn(); // Alert = gameManager.EndMessage; // return isEnd; // } // catch(Exception e) // { // Alert = e.Message; // return false; // } //} } }