@ -13,12 +13,8 @@ namespace TheGameExtreme.model.manager
/* GameMaster implémente un mode de jeu (classe fille de gameMode qui connait les actions a effectué en fonction du mode de jeu */
protected GameMode gameMode ;
public readonly int nbPlayer ;
protected List < Player > players = new List < Player > ( ) ;
protected Parametreur preparateur ;
public Piles ListOrderedStacks { get ; set ; }
//protected int nbCardAtBeginOfTurn;
protected int nbMaxCard ;
protected List < Card > CurrentCardPlayed = new List < Card > ( ) ;
public String EndMessage { get ; set ; }
protected int currentIndexPlayer ;
@ -48,55 +44,50 @@ namespace TheGameExtreme.model.manager
{
TopRangeChanged ? . Invoke ( this , args ) ;
}
protected internal void OnPlayerChanged ( PlayerChangedEventArgs args )
protected internal void OnPlayerChanged ( object source , PlayerChangedEventArgs args )
{
currentIndexPlayer + = 1 ;
if ( currentIndexPlayer = = p layers. Count )
if ( currentIndexPlayer = = p reparateur. p layers. Count )
{
currentIndexPlayer = 0 ;
}
CurrentHand = p layers[ currentIndexPlayer ] . getCardList ( ) ;
PlayerChanged ? . Invoke ( this , args) ;
CurrentHand = p reparateur. p layers[ currentIndexPlayer ] . getCardList ( ) ;
PlayerChanged ? . Invoke ( this , new Pl ayerChangedEventA rgs( CurrentHand , preparateur . players [ currentIndexPlayer ] . Pseudo ) ) ;
}
# endregion
//protected bool win = true;
//public String EndMessage { get; set; }
protected GameManager ( List < string > playersNames , GameMode gameMode )
protected GameManager ( Parametreur parametreur )
{
nbPlayer = playersNames . Count ;
playersNames . ForEach ( playerName = > players . Add ( new Player ( playerName ) ) ) ;
this . preparateur = parametreur ;
parametreur . Prepare ( ) ;
this . gameMode = gameMode ;
gameMode . load ( nbPlayer , players ) ;
parametreur . GameMode . TopRangeChanged + = OnTopRangeChanged ;
gameMode. TopRangeChanged + = OnTopRange Changed;
parametreur. GameMode . PlayerChanged + = OnPlayer Changed;
CurrentHand = p layers[ 0 ] . getCardList ( ) ;
CurrentHand = p arametreur. p layers[ 0 ] . getCardList ( ) ;
}
public void joue ( int valueCard , int orderedStackSelected )
{
g ameMode. playCard ( valueCard , currentHand , orderedStackSelected , players [ currentIndexPlayer ] , CurrentCardPlayed ) ; // Mettre le joueur actif
EndMessage = g ameMode. Message ;
preparateur. G ameMode. playCard ( valueCard , currentHand , orderedStackSelected , preparateur . players [ currentIndexPlayer ] , CurrentCardPlayed ) ; // Mettre le joueur actif
EndMessage = preparateur. G ameMode. Message ;
}
public bool endTurn ( )
{
if ( g ameMode. endTurn ( currentHand , CurrentCardPlayed , players [ currentIndexPlayer ] ) )
if ( preparateur. G ameMode. endTurn ( currentHand , CurrentCardPlayed , preparateur . players [ currentIndexPlayer ] ) )
{
EndMessage = g ameMode. Message ;
EndMessage = preparateur. G ameMode. Message ;
if ( isEndGame ( ) )
{
EndMessage = g ameMode. Message ;
EndMessage = preparateur. G ameMode. Message ;
return true ;
}
else
@ -112,7 +103,7 @@ namespace TheGameExtreme.model.manager
private bool isEndGame ( )
{
return g ameMode. isEndGame ( currentHand ) ;
return preparateur. G ameMode. isEndGame ( currentHand ) ;
}