using DominionBase.Enums; using System.Diagnostics.Contracts; namespace DominionBase.Cards.Menagerie { public class Destrier : Card { public Destrier() : base(Categories.Action, Source.Menagerie, Location.Kingdom, Traits.Cantrip | Traits.ModifyCost | Traits.PlusAction | Traits.PlusCard) { BaseCost = new Cost(6, special: true); Benefit.Cards = 2; Benefit.Actions = 1; } public override void SetupCard(IGame game) { Contract.Requires(game != null, "game cannot be null"); base.SetupCard(game); game.CostCompute += Destrier_CostCompute; } public override void TearDown(IGame game) { Contract.Requires(game != null, "game cannot be null"); base.TearDown(game); game.CostCompute -= Destrier_CostCompute; } private void Destrier_CostCompute(object sender, CostComputeEventArgs e) { if (e.Card != this) return; var game = sender as IGame; if (game.ActivePlayer != null && game.ActivePlayer.CurrentTurn != null) e.Cost.Coin -= game.ActivePlayer.CurrentTurn.CardsGained.Count; } } }