From ff41b7631ddd79ec766b6030b46affa359772c50 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 9 Apr 2023 15:44:30 -0400 Subject: [PATCH] fix test failure --- Mage.Sets/src/mage/cards/l/LethalScheme.java | 15 ++++++--------- .../java/mage/watchers/common/ConvokeWatcher.java | 7 ++----- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/Mage.Sets/src/mage/cards/l/LethalScheme.java b/Mage.Sets/src/mage/cards/l/LethalScheme.java index faca4b3d941..429fe2b695f 100644 --- a/Mage.Sets/src/mage/cards/l/LethalScheme.java +++ b/Mage.Sets/src/mage/cards/l/LethalScheme.java @@ -1,5 +1,6 @@ package mage.cards.l; +import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DestroyTargetEffect; @@ -18,6 +19,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreatureOrPlaneswalker; +import mage.watchers.common.ConvokeWatcher; import java.util.*; import java.util.stream.Collectors; @@ -53,15 +55,9 @@ public final class LethalScheme extends CardImpl { // Based loosely on "Venerated Loxodon" and "Change of Plans" class LethalSchemeEffect extends OneShotEffect { - private static final FilterPermanent filter = new FilterCreaturePermanent(); - - static { - filter.add(ConvokedSourcePredicate.SPELL); - } - public LethalSchemeEffect() { super(Outcome.Benefit); - this.staticText = "Each creature that convoked Lethal Scheme connives."; + this.staticText = "Each creature that convoked {this} connives."; } public LethalSchemeEffect(final LethalSchemeEffect effect) { @@ -76,9 +72,10 @@ class LethalSchemeEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Set> playerPermanentsPairs = - game.getBattlefield() - .getActivePermanents(filter, source.getControllerId(), source, game) + ConvokeWatcher.getConvokingCreatures(new MageObjectReference(source),game) .stream() + .map(mor->mor.getPermanentOrLKIBattlefield(game)) + .filter(Objects::nonNull) .map(permanent -> new AbstractMap.SimpleEntry<>(permanent.getControllerId(), permanent)) .collect(Collectors.toSet()); diff --git a/Mage/src/main/java/mage/watchers/common/ConvokeWatcher.java b/Mage/src/main/java/mage/watchers/common/ConvokeWatcher.java index a1ed34ecd48..50a6d563921 100644 --- a/Mage/src/main/java/mage/watchers/common/ConvokeWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/ConvokeWatcher.java @@ -8,10 +8,7 @@ import mage.game.permanent.Permanent; import mage.game.stack.Spell; import mage.watchers.Watcher; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; /** * @author LevelX2 @@ -44,7 +41,7 @@ public class ConvokeWatcher extends Watcher { .getState() .getWatcher(ConvokeWatcher.class) .convokingCreatures - .get(mor); + .getOrDefault(mor, Collections.emptySet()); } public static boolean checkConvoke(MageObjectReference mor, Permanent permanent, Game game) {