diff --git a/Mage/src/mage/abilities/dynamicvalue/common/ManaSpentToCastCount.java b/Mage/src/mage/abilities/dynamicvalue/common/ManaSpentToCastCount.java index f9274b38ffb..a4734cb8daa 100644 --- a/Mage/src/mage/abilities/dynamicvalue/common/ManaSpentToCastCount.java +++ b/Mage/src/mage/abilities/dynamicvalue/common/ManaSpentToCastCount.java @@ -34,7 +34,6 @@ import mage.abilities.effects.Effect; import mage.constants.Zone; import mage.game.Game; import mage.game.stack.Spell; -import mage.game.stack.StackObject; /** * diff --git a/Mage/src/mage/watchers/common/ManaSpentToCastWatcher.java b/Mage/src/mage/watchers/common/ManaSpentToCastWatcher.java index 03a19763d36..608e809d930 100644 --- a/Mage/src/mage/watchers/common/ManaSpentToCastWatcher.java +++ b/Mage/src/mage/watchers/common/ManaSpentToCastWatcher.java @@ -33,6 +33,7 @@ import mage.constants.WatcherScope; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; +import mage.game.events.ZoneChangeEvent; import mage.game.stack.Spell; import mage.watchers.Watcher; @@ -63,6 +64,11 @@ public class ManaSpentToCastWatcher extends Watcher { payment = spell.getSpellAbility().getManaCostsToPay().getPayment(); } } + if (event.getType() == GameEvent.EventType.ZONE_CHANGE && this.getSourceId().equals(event.getSourceId())) { + if (((ZoneChangeEvent) event).getFromZone().equals(Zone.BATTLEFIELD)) { + payment = null; + } + } } @Override @@ -74,11 +80,15 @@ public class ManaSpentToCastWatcher extends Watcher { Mana returnPayment = null; if (payment != null) { returnPayment = payment.copy(); - // reset payment for next check - payment = null; } return returnPayment; } + @Override + public void reset() { + super.reset(); + payment = null; + } + }