using DominionBase.Enums; using DominionBase.Players; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Nocturne { public class Goat : Card { public Goat() : base(Categories.Treasure | Categories.Heirloom, Source.Nocturne, Location.Invisible, Traits.DeckReduction | Traits.PlusCoin | Traits.RemoveCurses | Traits.RemoveFromHand | Traits.Trasher) { BaseCost = new Cost(2); Benefit.Currency.Coin.Value = 1; } public override void FollowInstructions(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.FollowInstructions(player); var choiceTrash = new Choice("You may trash a card from your hand", this, player.Hand, ChoiceOutcome.Trash, player, minimum: 0); var resultTrash = player.MakeChoice(choiceTrash); if (resultTrash.Cards.Any()) player.Trash(this, player.RetrieveCardsFrom(DeckLocation.Hand, resultTrash.Cards)); } } }