public void Respond(IGameClient client, ActivityModel activity, GameViewModel state)
        {
            var idsToTrash = state.Hand.Where(c => c.Is<Curse>() || c.Is<Copper>() || c.Is<Estate>())
                .Select(c => c.Id)
                .Take(activity.ParseNumberOfCardsToSelect())
                .ToArray();

            client.AcceptMessage(new SelectCardsMessage(client.PlayerId, idsToTrash));
        }
예제 #2
0
        public void Respond(IGameClient client, ActivityModel activity, GameViewModel state)
        {
            var idsToTrash = state.Hand.Where(c => c.Is <Curse>() || c.Is <Copper>() || c.Is <Estate>())
                             .Select(c => c.Id)
                             .Take(activity.ParseNumberOfCardsToSelect())
                             .ToArray();

            client.AcceptMessage(new SelectCardsMessage(client.PlayerId, idsToTrash));
        }
        protected override IEnumerable <CardViewModel> PrioritiseCards(GameViewModel state, ActivityModel activity)
        {
            var actions = state.Hand
                          .Where(c => c.Is(CardType.Action))
                          .Where(c => AISupportedActions.All.Contains(c.Name))
                          .OrderByDescending(c => c.Cost)
                          .Take(activity.ParseNumberOfCardsToSelect());

            return(actions);
        }
        protected override IEnumerable<CardViewModel> PrioritiseCards(GameViewModel state, ActivityModel activity)
        {
            var actions = state.Hand
              .Where(c => c.Is(CardType.Action))
              .Where(c => AISupportedActions.All.Contains(c.Name))
              .OrderByDescending(c => c.Cost)
              .Take(activity.ParseNumberOfCardsToSelect());

            return actions;
        }       
        public void Respond(IGameClient client, ActivityModel activity, GameViewModel state)
        {
            int count = activity.ParseNumberOfCardsToSelect();

            var ids = PrioritiseCards(state, activity)
                .Take(count)
                .Select(c => c.Id)
                .ToArray();
            
            var message = new SelectCardsMessage(client.PlayerId, ids);
            client.AcceptMessage(message);
        }
예제 #6
0
        public void Respond(IGameClient client, ActivityModel activity, GameViewModel state)
        {
            int count = activity.ParseNumberOfCardsToSelect();

            var ids = PrioritiseCards(state, activity)
                      .Take(count)
                      .Select(c => c.Id)
                      .ToArray();

            if (ids.Length != count)
            {
                Debugger.Break();
            }

            var message = new SelectCardsMessage(client.PlayerId, ids);

            client.AcceptMessage(message);
        }