public override void Resolve(TurnContext context, ICard source) { var cardCount = context.ActivePlayer.Hand.CardCount; var gainUtil = new GainUtility(context, context.ActivePlayer); if(cardCount < 2) { context.TrashAll(context.ActivePlayer, context.ActivePlayer.Hand); } else if(cardCount == 2) { context.TrashAll(context.ActivePlayer, context.ActivePlayer.Hand); gainUtil.Gain<Silver>(context.ActivePlayer.Hand); } else { var activity = Activities.SelectXCardsToTrash(context, context.ActivePlayer, 2, source, () => gainUtil.Gain<Silver>(context.ActivePlayer.Hand)); _activities.Add(activity); } }
public override void Resolve(TurnContext context, ICard source) { var cardCount = context.ActivePlayer.Hand.CardCount; if (cardCount == 0) { AddGainActivityForCost(context, source, 0); } else { var selectActivity = Activities.SelectUpToXCardsToTrash(context, context.ActivePlayer, cardCount, source); selectActivity.AfterCardsSelected = cards => { var costToGain = cards.Sum(x => x.Cost.Money); context.TrashAll(context.ActivePlayer, cards); AddGainActivityForCost(context, source, costToGain); }; _activities.Add(selectActivity); } }