using DominionBase.Enums; using DominionBase.Piles; using DominionBase.Players; using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Renaissance { public class Swashbuckler : Card { public Swashbuckler() : base(Categories.Action, Source.Renaissance, Location.Kingdom, Traits.Component | Traits.ConditionalBenefit | Traits.NetCardDraw | Traits.PlusCard | Traits.PlusCoffer | Traits.Terminal) { BaseCost = new Cost(5); Benefit.Cards = 3; } public override void FollowInstructions(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.FollowInstructions(player); if (player.DiscardPile.Any()) { player.ReceiveBenefit(this, new CardBenefit { Coffers = 1 }); if (player.Coffers >= 4) player.Take(TypeClass.TreasureChest); } } } }