diff --git a/Mage.Sets/src/mage/cards/k/KotoseTheSilentSpider.java b/Mage.Sets/src/mage/cards/k/KotoseTheSilentSpider.java index 699f22c2d8..5f89cc4ac0 100644 --- a/Mage.Sets/src/mage/cards/k/KotoseTheSilentSpider.java +++ b/Mage.Sets/src/mage/cards/k/KotoseTheSilentSpider.java @@ -122,6 +122,7 @@ class KotoseTheSilentSpiderEffect extends OneShotEffect { Set cardSet = cards.getCards(game); controller.moveCardsToExile(cardSet, source, game, true, exileId, exileName); opponent.shuffleLibrary(source, game); + cardSet.add(card); if (cardSet.isEmpty() || source.getSourcePermanentIfItStillExists(game) == null) { return true; } diff --git a/Mage.Sets/src/mage/cards/m/MarchOfRecklessJoy.java b/Mage.Sets/src/mage/cards/m/MarchOfRecklessJoy.java index 225886ee20..b3d06c514e 100644 --- a/Mage.Sets/src/mage/cards/m/MarchOfRecklessJoy.java +++ b/Mage.Sets/src/mage/cards/m/MarchOfRecklessJoy.java @@ -88,28 +88,22 @@ class MarchOfRecklessJoyEffect extends OneShotEffect { CardUtil.getExileZoneId(game, source), CardUtil.getSourceName(game, source) ); - Condition condition = new MarchOfRecklessJoyCondition(source); for (Card card : cards) { CardUtil.makeCardPlayable( game, source, card, Duration.UntilEndOfYourNextTurn, - false, null, condition + false, null, MarchOfRecklessJoyCondition.instance ); } return true; } } -class MarchOfRecklessJoyCondition implements Condition { - - private final MageObjectReference mor; - - MarchOfRecklessJoyCondition(Ability source) { - this.mor = new MageObjectReference(source); - } +enum MarchOfRecklessJoyCondition implements Condition { + instance; @Override public boolean apply(Game game, Ability source) { - return MarchOfRecklessJoyWatcher.check(mor, game); + return MarchOfRecklessJoyWatcher.check(source, game); } } @@ -133,7 +127,11 @@ class MarchOfRecklessJoyWatcher extends Watcher { ); } - static boolean check(MageObjectReference mor, Game game) { - return game.getState().getWatcher(MarchOfRecklessJoyWatcher.class).morMap.getOrDefault(mor, 0) < 2; + static boolean check(Ability source, Game game) { + return game + .getState() + .getWatcher(MarchOfRecklessJoyWatcher.class) + .morMap + .getOrDefault(new MageObjectReference(source, 1), 0) < 2; } } diff --git a/Mage/src/main/java/mage/abilities/costs/costadjusters/ExileCardsFromHandAdjuster.java b/Mage/src/main/java/mage/abilities/costs/costadjusters/ExileCardsFromHandAdjuster.java index e6f27f7bfe..742e315efc 100644 --- a/Mage/src/main/java/mage/abilities/costs/costadjusters/ExileCardsFromHandAdjuster.java +++ b/Mage/src/main/java/mage/abilities/costs/costadjusters/ExileCardsFromHandAdjuster.java @@ -48,7 +48,7 @@ public class ExileCardsFromHandAdjuster implements CostAdjuster { Zone.ALL, new InfoEffect("as an additional cost to cast this spell, you may exile any number of " + filter.getMessage() + ". This spell costs {2} less to cast for each card exiled this way") - )); + ).setRuleAtTheTop(true)); card.getSpellAbility().setCostAdjuster(new ExileCardsFromHandAdjuster(filter)); } }