public override void Pay(PayCostParameters p) { var amount = p.PayManaCost ? GetManaCost() : Mana.Zero; if (_hasX) { amount = amount.Add(p.X.Value.Colorless()); } if (_supportsRepetitions) { for (var i = 1; i < p.Repeat; i++) { amount = amount.Add(_amount); } } Controller.Consume( amount, GetManaUsage(), new ConvokeAndDelveOptions { CanUseConvoke = Card.Has().Convoke, CanUseDelve = Card.Has().Delve, UiConvokeSources = p.ConvokeTargets, UiDelveSources = p.DelveTargets }); }
public override void PayPartial(PayCostParameters p) { var card = Card.Controller.DiscardRandomCard(); p.Targets.AddCost(card); }
public override void PayPartial(PayCostParameters p) { }
public override void PayPartial(PayCostParameters p) { Card.Discard(); }
public override void PayPartial(PayCostParameters p) { var count = _hasX ? p.X : _count; Card.RemoveCounters(_counterType, count); }
public override void PayPartial(PayCostParameters p) { Card.PutToHand(); }