From 35e15d12a0a2c88558a89a0e27796b7eb3a07b90 Mon Sep 17 00:00:00 2001 From: cldupland Date: Fri, 8 Nov 2019 11:52:10 +0100 Subject: [PATCH] Avancement sur le nouveau model --- .../model/gameActions/classic/GameMode.cs | 16 ++++---- TheGameExtreme/model/manager/GameManager.cs | 41 ++++++++++++++----- TheGameExtreme/viewmodel/Main.cs | 2 +- 3 files changed, 39 insertions(+), 20 deletions(-) diff --git a/TheGameExtreme/model/gameActions/classic/GameMode.cs b/TheGameExtreme/model/gameActions/classic/GameMode.cs index f9cf4b9..2845da0 100644 --- a/TheGameExtreme/model/gameActions/classic/GameMode.cs +++ b/TheGameExtreme/model/gameActions/classic/GameMode.cs @@ -78,14 +78,14 @@ namespace TheGameExtreme.model.gameActions.classic } } - public void pioche(List CurrentHand, Player player) + public void pioche(List currentHand, Player player) { - ((Piocher)gameActions[0]).pioche(CurrentHand, deck, player); + ((Piocher)gameActions[0]).pioche(currentHand, deck, player); } - public void playCard(int valueCard, List CurrentHand, int orderedStackSelected, Player player, List CurrentCardPlayed) + public void playCard(int valueCard, List currentHand, int orderedStackSelected, Player player, List CurrentCardPlayed) { - if (((JouerUneCarte)gameActions[1]).play(valueCard, CurrentHand, orderedStackSelected, player, CurrentCardPlayed)) + if (((JouerUneCarte)gameActions[1]).play(valueCard, currentHand, orderedStackSelected, player, CurrentCardPlayed)) { OnTopRangeChanged(new TopRangeChangedEventArgs(piles.getStack(orderedStackSelected).Peek(), ((JouerUneCarte)gameActions[1]).OldCard, orderedStackSelected)); } @@ -96,10 +96,10 @@ namespace TheGameExtreme.model.gameActions.classic TopRangeChanged?.Invoke(this, args); } - public bool endTurn(List CurrentHand, List CurrentCardPlayed, Player player) + public bool endTurn(List currentHand, List CurrentCardPlayed, Player player) { - ((TerminerSonTour)gameActions[2]).end(CurrentHand, nbCardAtBeginOfTurn, CurrentCardPlayed); - pioche(CurrentHand, player); + ((TerminerSonTour)gameActions[2]).end(currentHand, nbCardAtBeginOfTurn, CurrentCardPlayed); + pioche(currentHand, player); //currentIndexPlayer += 1; //if (currentIndexPlayer == playerList.Count) //{ @@ -107,7 +107,7 @@ namespace TheGameExtreme.model.gameActions.classic //} //CurrentHand = playerList[currentIndexPlayer].getCardList(); //OnPlayerChanged(new PlayerChangedEventArgs(CurrentHand, playerList[currentIndexPlayer].Pseudo)); - nbCardAtBeginOfTurn = CurrentHand.Count; + nbCardAtBeginOfTurn = currentHand.Count; CurrentCardPlayed.Clear(); //if (isEndGame()) // Ajouter le score en calculant les cartes restantes dans la pile et dans les mains des joueurs //{ diff --git a/TheGameExtreme/model/manager/GameManager.cs b/TheGameExtreme/model/manager/GameManager.cs index c5e1fa3..28c3b66 100644 --- a/TheGameExtreme/model/manager/GameManager.cs +++ b/TheGameExtreme/model/manager/GameManager.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using TheGameExtreme.model.card; using TheGameExtreme.model.deck; using TheGameExtreme.model.@event; @@ -11,7 +12,7 @@ using TheGameExtreme.model.rule.playRules; namespace TheGameExtreme.model.manager { - public abstract class GameManager + public abstract class GameManager: INotifyPropertyChanged { /* GameMaster implémente un mode de jeu (classe fille de gameMode qui connait les actions a effectué en fonction du mode de jeu */ @@ -19,8 +20,6 @@ namespace TheGameExtreme.model.manager protected GameMode gameMode; public readonly int nbPlayer; protected List players = new List(); - public event EventHandler TopRangeChanged; - public event EventHandler PlayerChanged; public Piles ListOrderedStacks { get; set; } //protected int nbCardAtBeginOfTurn; protected int nbMaxCard; @@ -28,8 +27,33 @@ namespace TheGameExtreme.model.manager public String EndMessage { get; set; } + protected List currentHand; + public List CurrentHand + { + get { return currentHand; } + set + { + currentHand = value; + OnPropertyChanged("CurrentHand"); + } + } + + #region event + + public event EventHandler TopRangeChanged; + //public event EventHandler PlayerChanged; + public event PropertyChangedEventHandler PropertyChanged; + public virtual void OnPropertyChanged(string info) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info)); + } + public void OnTopRangeChanged(object source, TopRangeChangedEventArgs args) + { + TopRangeChanged?.Invoke(this, args); + } + + #endregion - public List CurrentHand { get; set; } protected GameManager(List playersNames, GameMode gameMode) @@ -49,17 +73,12 @@ namespace TheGameExtreme.model.manager public void joue(int valueCard, int orderedStackSelected) { - gameMode.playCard(valueCard, CurrentHand, orderedStackSelected, players[0], CurrentCardPlayed); // Mettre le joueur actif + gameMode.playCard(valueCard, currentHand, orderedStackSelected, players[0], CurrentCardPlayed); // Mettre le joueur actif } public bool endTurn() { - return gameMode.endTurn(CurrentHand, CurrentCardPlayed, players[0]); // Mettre le joueur actif - } - - public void OnTopRangeChanged(object source, TopRangeChangedEventArgs args) - { - TopRangeChanged?.Invoke(this, args); + return gameMode.endTurn(currentHand, CurrentCardPlayed, players[0]); // Mettre le joueur actif } diff --git a/TheGameExtreme/viewmodel/Main.cs b/TheGameExtreme/viewmodel/Main.cs index 34b9085..5212f9b 100644 --- a/TheGameExtreme/viewmodel/Main.cs +++ b/TheGameExtreme/viewmodel/Main.cs @@ -50,7 +50,7 @@ namespace TheGameExtreme.viewmodel gameManager.TopRangeChanged += OnTopRangeChanged; - gameManager.PlayerChanged += OnPlayerChanged; + //gameManager.PlayerChanged += OnPlayerChanged; CurrentHand = gameManager.CurrentHand;