You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.6 KiB

using System;
using System.Collections.Generic;
using TheGameExtreme.model.card;
using TheGameExtreme.model.deck;
using TheGameExtreme.model.gameActions.abstractRules;
using TheGameExtreme.model.piles;
namespace TheGameExtreme.model.gameActions.classic
{
public class GameModeClassic : GameMode
{
public GameModeClassic(Piles piles, Deck deck) : base(piles, deck)
{
}
override public void load(int nbPlayer, List<Player> players)
{
gameActions.Add(new PiocherClassic(Piles));
gameActions.Add(new JouerUneCarteClassic(Piles));
gameActions.Add(new TerminerSonTourClassic(Piles));
defineNbMaxCard(nbPlayer);
distribueCard(players);
}
override public void pioche(List<Card> currentHand, Player player)
{
Message = null;
((PiocherClassic)gameActions[0]).pioche(currentHand, deck, player, nbMaxCard);
quickSort(currentHand, 0, currentHand.Count - 1);
}
override public bool playCard(decimal valueCard, List<Card> currentHand, int orderedStackSelected, Player player, List<Card> CurrentCardPlayed)
{
Message = null;
if (((JouerUneCarteClassic)gameActions[1]).play(valueCard, currentHand, orderedStackSelected, player, CurrentCardPlayed))
{
return true;
}
else
{
TestEndGame(currentHand);
if (!end)
{
Message = ((JouerUneCarteClassic)gameActions[1]).ErrorMessage;
}
return false;
}
}
override public bool endTurn(List<Card> currentHand, List<Card> CurrentCardPlayed, Player player)
{
Message = null;
if (((TerminerSonTourClassic)gameActions[2]).end(currentHand, CurrentCardPlayed))
{
pioche(currentHand, player);
CurrentCardPlayed.Clear();
OnPlayerChanged(null);
return end;
}
else
{
Message = ((TerminerSonTourClassic)gameActions[2]).ErrorMessage;
return false;
}
}
override public void TestEndGame(List<Card> currentHand)
{
if (((TerminerSonTourClassic)gameActions[2]).Test(currentHand))
{
end = false;
}
else
{
OnEndGame(new EventArgs());
end = true;
}
}
}
}