protected override void DiscardCards(int count, GameViewModel currentState) { var discardPreference = new List<string> { "Estate", "Duchy", "Province", "Curse", "Colony", "Copper", "Silver", "Gold", "Platinum" }; var orderedHand = currentState.Hand .OrderBy(c => discardPreference.IndexOf(c.Name)).ToList(); var cardIdsToDiscard = orderedHand.Take(count).Select(c => c.Id).ToArray(); var discardAction = new SelectCardsMessage(_client.PlayerId, cardIdsToDiscard.ToArray()); _client.AcceptMessage(discardAction); }
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); }