public static GameStatePredicate CountAllOwned(Card card, RelativeAmount relativeAmount, int amount) { switch (relativeAmount) { case RelativeAmount.LessThan: return delegate(GameState gameState) { return CountAllOwned(card, gameState) < amount; }; case RelativeAmount.GreaterThan: return delegate(GameState gameState) { return CountAllOwned(card, gameState) > amount; }; case RelativeAmount.LessThanEqual: return delegate(GameState gameState) { return CountAllOwned(card, gameState) <= amount; }; case RelativeAmount.GreaterThanEqual: return delegate(GameState gameState) { return CountAllOwned(card, gameState) >= amount; }; case RelativeAmount.Equal: return delegate(GameState gameState) { return CountAllOwned(card, gameState) == amount; }; default: throw new System.Exception(); } }
public static GameStatePredicate CountAllOwned(Card card, RelativeAmount relativeAmount, int amount) { switch (relativeAmount) { case RelativeAmount.LessThan: return(delegate(GameState gameState) { return CountAllOwned(card, gameState) < amount; }); case RelativeAmount.GreaterThan: return(delegate(GameState gameState) { return CountAllOwned(card, gameState) > amount; }); case RelativeAmount.LessThanEqual: return(delegate(GameState gameState) { return CountAllOwned(card, gameState) <= amount; }); case RelativeAmount.GreaterThanEqual: return(delegate(GameState gameState) { return CountAllOwned(card, gameState) >= amount; }); case RelativeAmount.Equal: return(delegate(GameState gameState) { return CountAllOwned(card, gameState) == amount; }); default: throw new System.Exception(); } }