diff --git a/Mage/src/mage/abilities/costs/common/DiscardTargetCost.java b/Mage/src/mage/abilities/costs/common/DiscardTargetCost.java index 2615a058d82..4e42c9db002 100644 --- a/Mage/src/mage/abilities/costs/common/DiscardTargetCost.java +++ b/Mage/src/mage/abilities/costs/common/DiscardTargetCost.java @@ -94,6 +94,12 @@ public class DiscardTargetCost extends CostImpl { return paid; } + @Override + public void clearPaid() { + super.clearPaid(); + cards.clear(); + } + @Override public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) { return targets.canChoose(sourceId, controllerId, game); diff --git a/Mage/src/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java b/Mage/src/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java index 3834bcc2d9c..8b16737600b 100644 --- a/Mage/src/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java +++ b/Mage/src/mage/abilities/effects/common/SacrificeSourceUnlessPaysEffect.java @@ -25,13 +25,13 @@ public class SacrificeSourceUnlessPaysEffect extends OneShotEffect { public SacrificeSourceUnlessPaysEffect(final SacrificeSourceUnlessPaysEffect effect) { super(effect); - this.cost = effect.cost; + this.cost = effect.cost.copy(); } @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - Permanent permanent = game.getPermanent(source.getSourceId()); + Permanent permanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (player != null && permanent != null) { StringBuilder sb = new StringBuilder(cost.getText()).append("?"); if (!sb.toString().toLowerCase().startsWith("exile ") && !sb.toString().toLowerCase().startsWith("return ") ) {