public static ISelectPileActivity SelectACardForOpponentToGain(TurnContext context, Player player, Player victim, CardCost cost, ICard source) { return(new SelectPileActivity(context.Game.Log, player, string.Format("Select a card for {0} to gain of cost {1}.", victim.Name, cost), SelectionSpecifications.SelectPileCostingExactlyX(cost), source) { AfterPileSelected = pile => { var card = pile.TopCard; card.MoveTo(victim.Discards); context.Game.Log.LogGain(victim, card); }, Hint = ActivityHint.OpponentGainCards }); }
public static GainACardActivity GainACardCostingExactlyX(IGameLog log, Player player, CardCost cost, CardZone destination, ICard source) { return(new GainACardActivity(log, player, string.Format("Select a card to gain with a cost of exactly {0}.", cost), SelectionSpecifications.SelectPileCostingExactlyX(cost), destination, source)); }