diff --git a/src/main/java/forge/card/ability/AbilityUtils.java b/src/main/java/forge/card/ability/AbilityUtils.java index 3090ba40796..d00a0213c41 100644 --- a/src/main/java/forge/card/ability/AbilityUtils.java +++ b/src/main/java/forge/card/ability/AbilityUtils.java @@ -997,6 +997,8 @@ public class AbilityUtils { if (instanceSA != null) { sas.add(instanceSA); } + } else { + sas.add(targetSpell); } } } diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java index 01636eb1d5e..9bd3f0f87b9 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java @@ -35,10 +35,6 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { public void resolve(SpellAbility sa) { final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); final List origin = ZoneType.listValueOf(sa.getParam("Origin")); - - if(origin.contains(ZoneType.Library) && sa.hasParam("Search")) { - sa.getActivatingPlayer().incLibrarySearched(); - } List cards = new ArrayList(); @@ -56,7 +52,6 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { // Search library using changezoneall effect need a param "Search" if (sa.getActivatingPlayer().hasKeyword("LimitSearchLibrary")) { for (final Player p : tgtPlayers) { - cards.addAll(p.getCardsIn(origin)); cards.removeAll(p.getCardsIn(ZoneType.Library)); int fetchNum = Math.min(p.getCardsIn(ZoneType.Library).size(), 4); cards.addAll(p.getCardsIn(ZoneType.Library, fetchNum)); @@ -68,7 +63,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { } } } - + if (origin.contains(ZoneType.Library) && sa.hasParam("Search") && !sa.getActivatingPlayer().hasKeyword("CantSearchLibrary")) { List libCards = CardLists.getValidCards(cards, "Card.inZoneLibrary", sa.getActivatingPlayer(), source); List libCardsYouOwn = CardLists.filterControlledBy(libCards, sa.getActivatingPlayer());