using DominionBase.Enums; using DominionBase.Players; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Nocturne { public class War : Hex { public War() : base(Source.Nocturne, Traits.Trasher | Traits.Discard) { } public override void Receive(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.Receive(player); bool condition(Card card) => player._Game.ComputeCost(card) == new Currency(3) || player._Game.ComputeCost(card) == new Currency(4); player.BeginDrawing(); while (!player.Revealed[condition].Any() && player.CanDraw) player.Draw(DeckLocation.Revealed); player.EndDrawing(); var cards = player.Revealed[condition]; if (cards.Any()) player.Trash(this, player.RetrieveCardFrom(DeckLocation.Revealed, cards[0])); player.DiscardRevealed(); } } }