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)); }
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); }
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); }