using DominionBase.Enums; using DominionBase.Players; using DominionBase.Properties; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Menagerie { public class WayOfTheGoat : Way { public WayOfTheGoat() : base(Source.Menagerie, Traits.DeckReduction | Traits.RemoveCurses | Traits.RemoveFromHand | Traits.Terminal | Traits.Trasher) { } public override void FollowAlternateInstructions(IPlayer player, Card playedCard) { Contract.Requires(player != null, "player cannot be null"); base.FollowAlternateInstructions(player, playedCard); var choiceTrash = new Choice(Resource.ChooseACardToTrash, this, player.Hand, ChoiceOutcome.Trash, player); var resultTrash = player.MakeChoice(choiceTrash); if (resultTrash.Cards.Any()) player.Trash(this, player.RetrieveCardsFrom(DeckLocation.Hand, resultTrash.Cards)); } } }