using DominionBase.Enums; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Nocturne { public class Misery : Hex { public Misery() : base(Source.Nocturne, Traits.None) { } public override void Receive(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.Receive(player); var miserable = player.Takeables.FirstOrDefault(s => s is Miserable); if (miserable != null) { player.Return(TypeClass.Miserable); player.Take(TypeClass.TwiceMiserable); } else if (!player.Takeables.Any(s => s is TwiceMiserable)) player.Take(TypeClass.Miserable); } } }