|
|
@ -1,5 +1,6 @@
|
|
|
|
using System;
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
using TheGameExtreme.model.card;
|
|
|
|
using TheGameExtreme.model.card;
|
|
|
|
using TheGameExtreme.model.deck;
|
|
|
|
using TheGameExtreme.model.deck;
|
|
|
|
using TheGameExtreme.model.@event;
|
|
|
|
using TheGameExtreme.model.@event;
|
|
|
@ -11,7 +12,7 @@ using TheGameExtreme.model.rule.playRules;
|
|
|
|
|
|
|
|
|
|
|
|
namespace TheGameExtreme.model.manager
|
|
|
|
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 */
|
|
|
|
/* 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;
|
|
|
|
protected GameMode gameMode;
|
|
|
|
public readonly int nbPlayer;
|
|
|
|
public readonly int nbPlayer;
|
|
|
|
protected List<Player> players = new List<Player>();
|
|
|
|
protected List<Player> players = new List<Player>();
|
|
|
|
public event EventHandler<TopRangeChangedEventArgs> TopRangeChanged;
|
|
|
|
|
|
|
|
public event EventHandler<PlayerChangedEventArgs> PlayerChanged;
|
|
|
|
|
|
|
|
public Piles ListOrderedStacks { get; set; }
|
|
|
|
public Piles ListOrderedStacks { get; set; }
|
|
|
|
//protected int nbCardAtBeginOfTurn;
|
|
|
|
//protected int nbCardAtBeginOfTurn;
|
|
|
|
protected int nbMaxCard;
|
|
|
|
protected int nbMaxCard;
|
|
|
@ -28,8 +27,33 @@ namespace TheGameExtreme.model.manager
|
|
|
|
public String EndMessage { get; set; }
|
|
|
|
public String EndMessage { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected List<Card> currentHand;
|
|
|
|
|
|
|
|
public List<Card> CurrentHand
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get { return currentHand; }
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
currentHand = value;
|
|
|
|
|
|
|
|
OnPropertyChanged("CurrentHand");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region event
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public event EventHandler<TopRangeChangedEventArgs> TopRangeChanged;
|
|
|
|
|
|
|
|
//public event EventHandler<PlayerChangedEventArgs> 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<Card> CurrentHand { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected GameManager(List<string> playersNames, GameMode gameMode)
|
|
|
|
protected GameManager(List<string> playersNames, GameMode gameMode)
|
|
|
@ -49,17 +73,12 @@ namespace TheGameExtreme.model.manager
|
|
|
|
|
|
|
|
|
|
|
|
public void joue(int valueCard, int orderedStackSelected)
|
|
|
|
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()
|
|
|
|
public bool endTurn()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return gameMode.endTurn(CurrentHand, CurrentCardPlayed, players[0]); // Mettre le joueur actif
|
|
|
|
return gameMode.endTurn(currentHand, CurrentCardPlayed, players[0]); // Mettre le joueur actif
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void OnTopRangeChanged(object source, TopRangeChangedEventArgs args)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
TopRangeChanged?.Invoke(this, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|