diff --git a/Mage.Sets/src/mage/sets/eventide/Flickerwisp.java b/Mage.Sets/src/mage/sets/eventide/Flickerwisp.java index a50aab361a..6050a85dc1 100644 --- a/Mage.Sets/src/mage/sets/eventide/Flickerwisp.java +++ b/Mage.Sets/src/mage/sets/eventide/Flickerwisp.java @@ -44,6 +44,7 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.players.Player; import mage.target.TargetPermanent; /** @@ -98,8 +99,10 @@ class FlickerwispEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getFirstTarget()); - if (permanent != null) { - if (permanent.moveToExile(source.getSourceId(), "Flickerwisp Exile", source.getId(), game)) { + Player controller = game.getPlayer(source.getControllerId()); + Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); + if (controller != null && permanent != null && sourcePermanent != null) { + if (controller.moveCardToExileWithInfo(permanent, source.getSourceId(), sourcePermanent.getName(), source.getSourceId(), game, Zone.BATTLEFIELD)) { //create delayed triggered ability AtEndOfTurnDelayedTriggeredAbility delayedAbility = new AtEndOfTurnDelayedTriggeredAbility(new ReturnFromExileEffect(source.getSourceId(), Zone.BATTLEFIELD, false)); delayedAbility.setSourceId(source.getSourceId()); diff --git a/Mage.Sets/src/mage/sets/innistrad/LordOfLineage.java b/Mage.Sets/src/mage/sets/innistrad/LordOfLineage.java index eb28f6c315..c0e9504985 100644 --- a/Mage.Sets/src/mage/sets/innistrad/LordOfLineage.java +++ b/Mage.Sets/src/mage/sets/innistrad/LordOfLineage.java @@ -49,7 +49,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; * @author Loki */ public class LordOfLineage extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Other Vampire creatures"); static { filter.add(new SubtypePredicate("Vampire")); @@ -71,7 +71,6 @@ public class LordOfLineage extends CardImpl { // Other Vampire creatures you control get +2/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, filter, true))); // {tap}: Put a 2/2 black Vampire creature token with flying onto the battlefield. - // {tap}: Put a 2/2 black Vampire creature token with flying onto the battlefield. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new VampireToken()), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/journeyintonyx/KruphixsInsight.java b/Mage.Sets/src/mage/sets/journeyintonyx/KruphixsInsight.java index bdd61b6565..1181cbf4d7 100644 --- a/Mage.Sets/src/mage/sets/journeyintonyx/KruphixsInsight.java +++ b/Mage.Sets/src/mage/sets/journeyintonyx/KruphixsInsight.java @@ -43,7 +43,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; */ public class KruphixsInsight extends CardImpl { - private static final FilterCard filter = new FilterCard("enchantment cards"); + private static final FilterCard filter = new FilterCard("up to three enchantment cards"); static { filter.add(new CardTypePredicate(CardType.ENCHANTMENT)); diff --git a/Mage.Sets/src/mage/sets/lorwyn/MirrorEntity.java b/Mage.Sets/src/mage/sets/lorwyn/MirrorEntity.java index 701d97296b..735430d67a 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/MirrorEntity.java +++ b/Mage.Sets/src/mage/sets/lorwyn/MirrorEntity.java @@ -38,6 +38,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.VariableManaCost; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.continious.GainAbilityAllEffect; import mage.abilities.effects.common.continious.SetPowerToughnessAllEffect; import mage.abilities.keyword.ChangelingAbility; @@ -50,6 +51,8 @@ import mage.filter.common.FilterControlledCreaturePermanent; */ public class MirrorEntity extends CardImpl { + static private FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Creatures you control"); + public MirrorEntity(UUID ownerId) { super(ownerId, 31, "Mirror Entity", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{W}"); this.expansionSetCode = "LRW"; @@ -62,9 +65,13 @@ public class MirrorEntity extends CardImpl { // Changeling this.addAbility(ChangelingAbility.getInstance()); // {X}: Creatures you control become X/X and gain all creature types until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ChangelingAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you control")),new VariableManaCost()); DynamicValue variableMana = new ManacostVariableValue(); - ability.addEffect(new SetPowerToughnessAllEffect(variableMana, variableMana, Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you control"), true)); + Effect effect = new SetPowerToughnessAllEffect(variableMana, variableMana, Duration.EndOfTurn, filter, true); + effect.setText("Creatures you control become X/X"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new VariableManaCost()); + effect = new GainAbilityAllEffect(ChangelingAbility.getInstance(), Duration.EndOfTurn, filter); + effect.setText("and gain all creature types until end of turn"); + ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage/src/mage/abilities/effects/common/ExileCardYouChooseTargetOpponentEffect.java b/Mage/src/mage/abilities/effects/common/ExileCardYouChooseTargetOpponentEffect.java index 38ab1aeedb..3e9602233f 100644 --- a/Mage/src/mage/abilities/effects/common/ExileCardYouChooseTargetOpponentEffect.java +++ b/Mage/src/mage/abilities/effects/common/ExileCardYouChooseTargetOpponentEffect.java @@ -64,7 +64,7 @@ public class ExileCardYouChooseTargetOpponentEffect extends OneShotEffect @Override public boolean apply(Game game, Ability source) { ExileZone exile = game.getExile().getExileZone(exileId); - if (exile != null) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null && exile != null) { exile = exile.copy(); for (UUID cardId: exile) { Card card = game.getCard(cardId); - card.moveToZone(zone, source.getId(), game, tapped); + card.moveToZone(zone, source.getSourceId(), game, tapped); + game.informPlayers(new StringBuilder(controller.getName()).append(" moves ").append(card.getName()).append(" to ").append(zone.toString()).toString()); } game.getExile().getExileZone(exileId).clear(); return true; @@ -97,8 +103,9 @@ public class ReturnFromExileEffect extends OneShotEffect switch(zone) { case BATTLEFIELD: sb.append("to the battlefield under its owner's control"); - if (tapped) + if (tapped) { sb.append(" tapped"); + } break; case HAND: sb.append("to their owner's hand");