using System; using System.Collections.Generic; using TheGameExtreme.model.card; using TheGameExtreme.model.rule; using TheGameExtreme.model.rule.endRule; using TheGameExtreme.model.rule.playRules; namespace TheGameExtreme.model { public class GameMode { private List playRule = new List(); private List endTurnRule = new List(); private List commonRule = new List(); public GameMode() { } public void addPlayRule(PlayRule rule) { playRule?.Add(rule); } public void addEndTurnRule(EndTurnRule rule) { endTurnRule?.Add(rule); } public void addCommonRule(Rule rule) { // Vérifier que se ne soit ni une PlayRule, ni une EndTurnRule ? commonRule?.Add(rule); } public bool checkPlayRule(Card card, Stack orderedStack, bool bottomUp) { foreach(PlayRule rule in playRule) { if (!rule.Test(card, orderedStack, bottomUp)) // Gestion des messages pour savoir qu'elle règle n'est pas respecter. { return false; } } foreach (Rule rule in commonRule) { } return true; } public bool checkEndTurnRule() { foreach (EndTurnRule rule in endTurnRule) { if (!rule.Test()) // Gestion des messages pour savoir qu'elle règle n'est pas respecter. { return false; } } foreach (Rule rule in commonRule) { } return true; } } }