Exemple #1
0
        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
            });
        }
Exemple #2
0
        public override void PayPartial(PayCostParameters p)
        {
            var card = Card.Controller.DiscardRandomCard();

            p.Targets.AddCost(card);
        }
Exemple #3
0
 public override void PayPartial(PayCostParameters p)
 {
 }
Exemple #4
0
 public override void PayPartial(PayCostParameters p)
 {
     Card.Discard();
 }
Exemple #5
0
        public override void PayPartial(PayCostParameters p)
        {
            var count = _hasX ? p.X : _count;

            Card.RemoveCounters(_counterType, count);
        }
Exemple #6
0
 public override void PayPartial(PayCostParameters p)
 {
     Card.PutToHand();
 }