using DominionBase.Enums; using DominionBase.Piles; using DominionBase.Players; using System.Diagnostics.Contracts; namespace DominionBase.Cards.Nocturne { public class Famine : Hex { public Famine() : base(Source.Nocturne, Traits.CardOrdering | Traits.Discard) { } public override void Receive(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.Receive(player); player.Draw(3, DeckLocation.Revealed); player.Discard(DeckLocation.Revealed, c => c.Category.HasFlag(Categories.Action)); player.AddCardsToDeck(player.RetrieveCardsFrom(DeckLocation.Revealed), DeckPosition.Top); player.ShuffleDrawPile(); } } }