using DominionBase.Enums; using DominionBase.Piles; using System.Diagnostics.Contracts; using System.Linq; namespace DominionBase.Cards.Menagerie { public class Paddock : Card { public Paddock() : base(Categories.Action, Source.Menagerie, Location.Kingdom, Traits.ConditionalBenefit | Traits.Gainer | Traits.IncludesExtraPiles | Traits.PlusAction | Traits.PlusCoin | Traits.PlusMultipleActions) { BaseCost = new Cost(5); Benefit.Currency.Coin.Value = 2; } public override void SetupSupply(IGame game, ISupply supply) { Contract.Requires(game != null, "game cannot be null"); base.SetupSupply(game, supply); Horse.SetupSupply(game); } public override void FollowInstructions(IPlayer player) { Contract.Requires(player != null, "player cannot be null"); base.FollowInstructions(player); player.Gain((ISupply)player._Game.Table.SpecialPiles[TypeClass.Horse], this, 2); var emptyPiles = player._Game.Table.TableEntities.Count(te => (te.Value.Location == Location.Kingdom || te.Value.Location == Location.General) && te.Value.Count == 0); if (emptyPiles > 0) player.ReceiveBenefit(this, new CardBenefit { Actions = emptyPiles }); } } }