diff --git a/Mage.Sets/src/mage/cards/e/EstridTheMasked.java b/Mage.Sets/src/mage/cards/e/EstridTheMasked.java index fee3b6e092c..485d0ea89ad 100644 --- a/Mage.Sets/src/mage/cards/e/EstridTheMasked.java +++ b/Mage.Sets/src/mage/cards/e/EstridTheMasked.java @@ -9,12 +9,12 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; import mage.abilities.effects.common.UntapAllControllerEffect; -import mage.constants.SubType; -import mage.constants.SuperType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; +import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.FilterPermanent; import mage.filter.common.FilterEnchantmentCard; @@ -107,7 +107,9 @@ class EstridTheMaskedTokenEffect extends OneShotEffect { if (token == null) { continue; } - token.attachTo(source.getFirstTarget(), game); + token.getAbilities().get(0).getTargets().get(0).add(source.getFirstTarget(), game); + token.getAbilities().get(0).getEffects().get(0).apply(game, token.getAbilities().get(0)); + // token.attachTo(source.getFirstTarget(), game); } return true; } diff --git a/Mage/src/main/java/mage/game/GameImpl.java b/Mage/src/main/java/mage/game/GameImpl.java index af68a3a8766..20f6284b9b9 100644 --- a/Mage/src/main/java/mage/game/GameImpl.java +++ b/Mage/src/main/java/mage/game/GameImpl.java @@ -1410,7 +1410,7 @@ public abstract class GameImpl implements Game, Serializable { } } } - + @Override public void resetControlAfterSpellResolve(UUID topId) { // for Word of Command @@ -1958,7 +1958,12 @@ public abstract class GameImpl implements Game, Serializable { } } } else { - SpellAbility spellAbility = perm.getSpellAbility(); + Ability spellAbility = perm.getSpellAbility(); + if (spellAbility == null) { + if (!perm.getAbilities().isEmpty()) { + spellAbility = perm.getAbilities().get(0); // Can happen for created tokens (e.g. Estrid, the Masked) + } + } if (spellAbility.getTargets().isEmpty()) { for (Ability ability : perm.getAbilities(this)) { if ((ability instanceof SpellAbility) diff --git a/Mage/src/main/java/mage/game/permanent/token/MaskToken.java b/Mage/src/main/java/mage/game/permanent/token/MaskToken.java index e133169b7ec..662ee9e0603 100644 --- a/Mage/src/main/java/mage/game/permanent/token/MaskToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/MaskToken.java @@ -1,12 +1,12 @@ package mage.game.permanent.token; -import mage.constants.CardType; -import mage.constants.SubType; import mage.abilities.Ability; import mage.abilities.effects.common.AttachEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TotemArmorAbility; +import mage.constants.CardType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.target.TargetPermanent; /** @@ -27,6 +27,7 @@ public final class MaskToken extends TokenImpl { TargetPermanent auraTarget = new TargetPermanent(); Ability ability = new EnchantAbility(auraTarget.getTargetName()); + ability.addTarget(auraTarget); ability.addEffect(new AttachEffect(Outcome.BoostCreature)); this.addAbility(ability);