Example #1
0
        public ActionResult Index(GameParameters parameters)
        {
            var model = new IndexViewModel { Parameters = parameters };

            if (model.IsValid())
            {
                var game = new GameGenerator();
                var gameGeneratorParameters = MapGameParametersToGameGeneratorParameters(parameters);
                var cards = game.GetGameCards(gameGeneratorParameters);

                switch (parameters.SortBy)
                {
                    case "Cost":
                        model.Cards = cards.OrderBy(x => x.Cost).ToList();
                        break;
                    case "Name":
                        model.Cards = cards.OrderBy(x => x.Name).ToList();
                        break;
                    case "Set":
                        model.Cards = cards.OrderBy(x => x.Set).ToList();
                        break;
                    default:
                        model.Cards = cards.ToList();
                        break;
                }
            }
            return View(model);
        }
Example #2
0
        public ActionResult Index(GameParameters parameters)
        {
            var model = new IndexViewModel {
                Parameters = parameters
            };

            if (model.IsValid())
            {
                var game = new GameGenerator();
                var gameGeneratorParameters = MapGameParametersToGameGeneratorParameters(parameters);
                var cards = game.GetGameCards(gameGeneratorParameters);

                switch (parameters.SortBy)
                {
                case "Cost":
                    model.Cards = cards.OrderBy(x => x.Cost).ToList();
                    break;

                case "Name":
                    model.Cards = cards.OrderBy(x => x.Name).ToList();
                    break;

                case "Set":
                    model.Cards = cards.OrderBy(x => x.Set).ToList();
                    break;

                default:
                    model.Cards = cards.ToList();
                    break;
                }
            }
            return(View(model));
        }
        public void Pick10RandomCardsWithNoRules()
        {
            var game = new GameGenerator();
            var parameters = (GameGeneratorParameters.GetInstance());
            parameters.FindSet("Dominion").IsSet = true;
            parameters.FindSet("Intrigue").IsSet = true;

            var cards = game.GetGameCards(parameters);

            Assert.AreEqual(10, cards.Count);
        }
        public void Pick10RandomCardsThatRequiresTwoToFiveCostCards()
        {
            var game = new GameGenerator();
            var parameters = GameGeneratorParameters.GetInstance();
            parameters.FindSet("Dominion").IsSet = true;
            parameters.FindRule("RequireTwoToFiveCostCards").IsSet = true;

            var cards = game.GetGameCards(parameters);

            Assert.IsTrue(cards.Where(x => x.Cost == 2).Count() >= 1);
            Assert.IsTrue(cards.Where(x => x.Cost == 3).Count() >= 1);
            Assert.IsTrue(cards.Where(x => x.Cost == 4).Count() >= 1);
            Assert.IsTrue(cards.Where(x => x.Cost == 5).Count() >= 1);
        }
        public void Pick10RandomCardsThatRequireAReactionCardIfAttackCardPresent()
        {
            var game = new GameGenerator();
            var parameters = GameGeneratorParameters.GetInstance();
            parameters.FindSet("Dominion").IsSet = true;
            parameters.FindRule("RequireReactionToAttack").IsSet = true;

            var cards = game.GetGameCards(parameters);

            if (cards.Where(x => x.Type == CardType.Attack).Count() > 0)
                Assert.IsTrue(cards.Where(x => x.Type == CardType.Reaction).Count() > 0);
            else
                Assert.IsTrue(cards.Where(x => x.Type == CardType.Attack).Count() == 0);
        }
        public void Pick10RandomCardsWithTwoToFiveCostAndRequireReactionIfAttackCardPresent()
        {
            var game = new GameGenerator();
            var parameters = GameGeneratorParameters.GetInstance();
            parameters.FindSet("Dominion").IsSet = true;
            parameters.FindRule("RequireTwoToFiveCostCards").IsSet = true;
            parameters.FindRule("RequireReactionToAttack").IsSet = true;

            var cards = game.GetGameCards(parameters);

            if (cards.Where(x => x.Type == CardType.Attack).Count() > 0)
                Assert.IsTrue(cards.Where(x => x.Type == CardType.Reaction).Count() > 0);
            else
                Assert.IsTrue(cards.Where(x => x.Type == CardType.Attack).Count() == 0);

            Assert.IsTrue(cards.Where(x => x.Cost == 2).Count() >= 1);
            Assert.IsTrue(cards.Where(x => x.Cost == 3).Count() >= 1);
            Assert.IsTrue(cards.Where(x => x.Cost == 4).Count() >= 1);
            Assert.IsTrue(cards.Where(x => x.Cost == 5).Count() >= 1);
        }