using DominionBase.Enums; using DominionBase.Properties; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Nocturne { public class Conclave : Card { public Conclave() : base(Categories.Action, Source.Nocturne, Location.Kingdom, Traits.ConditionalBenefit | Traits.PlusCoin) { BaseCost = new Cost(4); Benefit.Currency.Coin.Value = 2; } public override void FollowInstructions(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.FollowInstructions(player); var choice = new Choice(Resource.ChooseActionPlay, this, player.Hand[c => c.Category.HasFlag(Categories.Action) && !player.InPlayAndSetAside.Any(ci => ci.Name == c.Name)], ChoiceOutcome.Select, player, minimum: 0); var result = player.MakeChoice(choice); if (result.Cards.Any()) { player.Actions++; var previousPlayerMode = player.PutCardIntoPlay(result.Cards[0]); var logicalCard = result.Cards[0].LogicalCard; player.PlayCard(logicalCard, previousPlayerMode); player.ReceiveBenefit(this, new CardBenefit { Actions = 1 }); } else player.PlayNothing(); } } }