using DominionBase.Enums; using DominionBase.Properties; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Menagerie { public class Toil : Event { public Toil() : base(Source.Menagerie, 2, Traits.PlusBuy | Traits.RemoveFromHand) { Benefit.Buys = 1; } public override void Bought(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.Bought(player); if (player.Hand[Categories.Action].Any()) { var choice = new Choice(Resource.ChooseActionPlay, this, player.Hand[Categories.Action], ChoiceOutcome.Select, player, minimum: 0); var result = player.MakeChoice(choice); if (result.Cards.Any()) { player.Actions++; var cardToPlay = result.Cards[0]; var previousPlayerMode = player.PutCardIntoPlay(cardToPlay); player.PlayCard(cardToPlay.LogicalCard, previousPlayerMode); return; } } player.PlayNothing(); } } }