From d66ef63054f566bb451ca472beb7b68ad3ae7632 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 29 Nov 2017 11:58:01 -0500 Subject: [PATCH] fixed clones of Mairsil, the Pretender gaining its abilities (fixes #4209) --- .../src/mage/cards/m/MairsilThePretender.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/Mage.Sets/src/mage/cards/m/MairsilThePretender.java b/Mage.Sets/src/mage/cards/m/MairsilThePretender.java index 12657930276..5d59ec71636 100644 --- a/Mage.Sets/src/mage/cards/m/MairsilThePretender.java +++ b/Mage.Sets/src/mage/cards/m/MairsilThePretender.java @@ -46,14 +46,12 @@ import mage.constants.Layer; import mage.constants.Outcome; import mage.constants.SubLayer; import mage.constants.SuperType; -import mage.constants.TargetController; import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.FilterCard; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.other.CounterCardPredicate; -import mage.filter.predicate.other.OwnerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; @@ -149,7 +147,6 @@ class MairsilThePretenderGainAbilitiesEffect extends ContinuousEffectImpl { static { filter.add(new CounterCardPredicate(CounterType.CAGE)); - filter.add(new OwnerPredicate(TargetController.YOU)); } public MairsilThePretenderGainAbilitiesEffect() { @@ -164,21 +161,21 @@ class MairsilThePretenderGainAbilitiesEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { Permanent perm = game.getPermanent(source.getSourceId()); - if (perm != null) { - for (Card card : game.getExile().getAllCards(game)) { - if (filter.match(card, game)) { - for (Ability ability : card.getAbilities()) { - if (ability instanceof ActivatedAbility) { - ActivatedAbilityImpl copyAbility = (ActivatedAbilityImpl) ability.copy(); - copyAbility.setMaxActivationsPerTurn(1); - perm.addAbility(copyAbility, card.getId(), game); - } + if (perm == null) { + return false; + } + for (Card card : game.getExile().getAllCards(game)) { + if (filter.match(card, game) && card.getOwnerId() == perm.getControllerId()) { + for (Ability ability : card.getAbilities()) { + if (ability instanceof ActivatedAbility) { + ActivatedAbilityImpl copyAbility = (ActivatedAbilityImpl) ability.copy(); + copyAbility.setMaxActivationsPerTurn(1); + perm.addAbility(copyAbility, card.getId(), game); } } } - return true; } - return false; + return true; } @Override