public override void PayPartial(PayCostParameters p) { var count = _hasX ? p.X : _count; var mp = new ModifierParameters { SourceCard = Card }; Card.AddModifier(new AddCounters( () => new SimpleCounter(_counterType), count), mp); }
public override void PayPartial(PayCostParameters p) { var target = p.Targets.Cost.FirstOrDefault(); if (target != null) { target.Card().Sacrifice(); return; } Card.Sacrifice(); }
public override void Pay(PayCostParameters p) { // if there is a child pay mana cost // additional cost will be payed as // part of it. // if not we must pay it. if (!HasPayMana()) { PayAdditionalCost(); } foreach (var cost in _costs) { cost.PayPartial(p); } }
public virtual void Pay(PayCostParameters p) { PayAdditionalCost(); PayPartial(p); }
public abstract void PayPartial(PayCostParameters p);
public override void PayPartial(PayCostParameters p) { var card = p.Targets.Cost.FirstOrDefault().Card(); card.Discard(); }
public override void PayPartial(PayCostParameters p) { Card.Exile(); }
public override void PayPartial(PayCostParameters p) { Card.Controller.Life -= _getAmount(Card) * p.Repeat; }
public override void PayPartial(PayCostParameters p) { throw new NotSupportedException("Aggregate cost cannot be child of another one."); }