public override void Attack(Player victim, TurnContext context, ICard source) { var revealZone = new RevealZone(victim); victim.Deck.MoveTop(3, revealZone); revealZone.LogReveal(context.Game.Log); revealZone.MoveWhere(c => c is IActionCard || c is ITreasureCard, victim.Discards); if(revealZone.CardCount == 1) victim.Deck.MoveToTop(revealZone.Single()); foreach (var activity in Activities.SelectMultipleRevealedCardsToPutOnTopOfDeck(context.Game.Log, victim, revealZone, source)) _activities.Add(activity); }
public override void Resolve(TurnContext context, ICard source) { var revealZone = new RevealZone(context.ActivePlayer); context.ActivePlayer.Deck.MoveTop(4, revealZone); revealZone.LogReveal(context.Game.Log); revealZone.MoveWhere(c => c is Copper || c is Potion, context.ActivePlayer.Hand); if (revealZone.CardCount == 1) context.ActivePlayer.Deck.MoveToTop(revealZone.Single()); foreach (var activity in Activities.SelectMultipleRevealedCardsToPutOnTopOfDeck(context.Game.Log, context.ActivePlayer, revealZone, source)) _activities.Add(activity); }