diff --git a/Mage.Sets/src/mage/cards/a/AchHansRun.java b/Mage.Sets/src/mage/cards/a/AchHansRun.java index 69985502ea7..198dac5c4b1 100644 --- a/Mage.Sets/src/mage/cards/a/AchHansRun.java +++ b/Mage.Sets/src/mage/cards/a/AchHansRun.java @@ -21,6 +21,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -82,7 +83,7 @@ class AchHansRunEffect extends OneShotEffect { if (card == null || !controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/a/AethermagesTouch.java b/Mage.Sets/src/mage/cards/a/AethermagesTouch.java index 76784a34140..461311e8726 100644 --- a/Mage.Sets/src/mage/cards/a/AethermagesTouch.java +++ b/Mage.Sets/src/mage/cards/a/AethermagesTouch.java @@ -17,6 +17,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -73,7 +74,7 @@ class AethermagesTouchEffect extends OneShotEffect { cards.remove(card); if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { // It gains \"At the beginning of your end step, return this creature to its owner's hand.\" - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { Ability ability = new BeginningOfEndStepTriggeredAbility(TargetController.YOU, new ReturnToHandSourceEffect(true), false, null); ContinuousEffect effect = new GainAbilityTargetEffect(ability, Duration.Custom); diff --git a/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java b/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java index 28202eee797..e86e878dd0f 100644 --- a/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java +++ b/Mage.Sets/src/mage/cards/a/AnimistsAwakening.java @@ -77,7 +77,7 @@ class AnimistsAwakeningEffect extends OneShotEffect { if (SpellMasteryCondition.instance.apply(game, source)) { for (Card card : toBattlefield) { - Permanent land = game.getPermanent(card.getId()); + Permanent land = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (land != null) { land.untap(game); } diff --git a/Mage.Sets/src/mage/cards/a/AnzragsRampage.java b/Mage.Sets/src/mage/cards/a/AnzragsRampage.java index c44f0cf95af..952af58845d 100644 --- a/Mage.Sets/src/mage/cards/a/AnzragsRampage.java +++ b/Mage.Sets/src/mage/cards/a/AnzragsRampage.java @@ -157,7 +157,7 @@ class AnzragsRampageEffect extends OneShotEffect { } if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return true; } diff --git a/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java b/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java index a34f82b88ec..ee20c52dacd 100644 --- a/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java +++ b/Mage.Sets/src/mage/cards/a/ApprenticeNecromancer.java @@ -25,6 +25,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -80,7 +81,7 @@ class ApprenticeNecromancerEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { // Gains haste ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); diff --git a/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java b/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java index daa5840197f..5a07a7bfc80 100644 --- a/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java +++ b/Mage.Sets/src/mage/cards/a/ArbiterOfTheIdeal.java @@ -19,6 +19,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -86,7 +87,7 @@ class ArbiterOfTheIdealEffect extends OneShotEffect { controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); if (filter.match(card, game) && controller.chooseUse(outcome, "Put " + card.getName() + " onto the battlefield?", source, game)) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.addCounters(CounterType.MANIFESTATION.createInstance(), source.getControllerId(), source, game); ContinuousEffect effect = new AddCardTypeTargetEffect(Duration.Custom, CardType.ENCHANTMENT); diff --git a/Mage.Sets/src/mage/cards/a/ArmoredSkyhunter.java b/Mage.Sets/src/mage/cards/a/ArmoredSkyhunter.java index c42b1cb811b..42e84e7e205 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoredSkyhunter.java +++ b/Mage.Sets/src/mage/cards/a/ArmoredSkyhunter.java @@ -18,6 +18,7 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -94,7 +95,7 @@ class ArmoredSkyhunterEffect extends OneShotEffect { } player.moveCards(card, Zone.BATTLEFIELD, source, game); cards.removeIf(uuid -> game.getState().getZone(uuid) != Zone.LIBRARY); - Permanent equipment = game.getPermanent(card.getId()); + Permanent equipment = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (equipment == null || !equipment.hasSubtype(SubType.EQUIPMENT, game)) { return player.putCardsOnBottomOfLibrary(cards, game, source, false); } diff --git a/Mage.Sets/src/mage/cards/a/ArniMetalbrow.java b/Mage.Sets/src/mage/cards/a/ArniMetalbrow.java index 1c7dd738f22..f0aa7bf6029 100644 --- a/Mage.Sets/src/mage/cards/a/ArniMetalbrow.java +++ b/Mage.Sets/src/mage/cards/a/ArniMetalbrow.java @@ -16,6 +16,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -131,7 +132,7 @@ class ArniMetalbrowEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { game.getCombat().addAttackingCreature(creature.getId(), game); } diff --git a/Mage.Sets/src/mage/cards/a/ArthurMarigoldKnight.java b/Mage.Sets/src/mage/cards/a/ArthurMarigoldKnight.java index 19f76cb9ee1..d6c99fba983 100644 --- a/Mage.Sets/src/mage/cards/a/ArthurMarigoldKnight.java +++ b/Mage.Sets/src/mage/cards/a/ArthurMarigoldKnight.java @@ -19,6 +19,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -111,7 +112,7 @@ class ArthurMarigoldKnightEffect extends OneShotEffect { )) { return player.putCardsOnBottomOfLibrary(cards, game, source, false); } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return player.putCardsOnBottomOfLibrary(cards, game, source, false); } @@ -129,4 +130,4 @@ class ArthurMarigoldKnightEffect extends OneShotEffect { public ArthurMarigoldKnightEffect copy() { return new ArthurMarigoldKnightEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/a/AscentOfTheWorthy.java b/Mage.Sets/src/mage/cards/a/AscentOfTheWorthy.java index 0148dab9270..f3fdf2d8b6c 100644 --- a/Mage.Sets/src/mage/cards/a/AscentOfTheWorthy.java +++ b/Mage.Sets/src/mage/cards/a/AscentOfTheWorthy.java @@ -22,6 +22,7 @@ import mage.target.TargetPermanent; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -172,7 +173,7 @@ class AscentOfTheWorthyReturnEffect extends OneShotEffect { countersToAdd.addCounter(CounterType.FLYING.createInstance()); game.setEnterWithCounters(card.getId(), countersToAdd); player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java b/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java index d23eb46706a..5f218c29fc8 100644 --- a/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java +++ b/Mage.Sets/src/mage/cards/a/AshiokNightmareWeaver.java @@ -125,7 +125,7 @@ class AshiokNightmareWeaverPutIntoPlayEffect extends OneShotEffect { return true; } controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.addEffect(new AddCardSubTypeTargetEffect( SubType.NIGHTMARE, Duration.EndOfTurn diff --git a/Mage.Sets/src/mage/cards/a/AspiringChampion.java b/Mage.Sets/src/mage/cards/a/AspiringChampion.java index efe48abeebf..69a845b6374 100644 --- a/Mage.Sets/src/mage/cards/a/AspiringChampion.java +++ b/Mage.Sets/src/mage/cards/a/AspiringChampion.java @@ -13,6 +13,7 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.util.CardUtil; import java.util.UUID; @@ -81,7 +82,8 @@ class AspiringChampionEffect extends OneShotEffect { toReveal.retainZone(Zone.LIBRARY, game); player.putCardsOnBottomOfLibrary(toReveal, game, source, false); player.shuffleLibrary(source, game); - Permanent creature = game.getPermanent(card.getId()); + game.processAction(); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature == null || !creature.hasSubtype(SubType.DEMON, game) || creature.getPower().getValue() < 1) { diff --git a/Mage.Sets/src/mage/cards/b/BackForMore.java b/Mage.Sets/src/mage/cards/b/BackForMore.java index 6d2ee7840d9..36c549a9b10 100644 --- a/Mage.Sets/src/mage/cards/b/BackForMore.java +++ b/Mage.Sets/src/mage/cards/b/BackForMore.java @@ -19,6 +19,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInYourGraveyard; +import mage.util.CardUtil; import java.util.UUID; @@ -79,7 +80,7 @@ class BackForMoreEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/b/BalduvianAtrocity.java b/Mage.Sets/src/mage/cards/b/BalduvianAtrocity.java index 581df06cbdd..09b72a49a57 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianAtrocity.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianAtrocity.java @@ -24,6 +24,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -98,7 +99,7 @@ class BalduvianAtrocityEffect extends OneShotEffect { return false; } controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/b/BronzehideLion.java b/Mage.Sets/src/mage/cards/b/BronzehideLion.java index eac53bc1526..66472601850 100644 --- a/Mage.Sets/src/mage/cards/b/BronzehideLion.java +++ b/Mage.Sets/src/mage/cards/b/BronzehideLion.java @@ -24,6 +24,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import mage.util.CardUtil; /** * @author LevelX2, TheElk801 @@ -94,7 +95,7 @@ class BronzehideLionReturnEffect extends OneShotEffect { } game.addEffect(new BronzehideLionContinuousEffect(game.getState().getZoneChangeCounter(source.getSourceId()) + 1), source); controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent aura = game.getPermanent(card.getId()); + Permanent aura = CardUtil.getPermanentFromCardPutToBattlefield(card, game); Permanent creature = game.getPermanent(target.getFirstTarget()); if (aura == null || creature == null) { return true; diff --git a/Mage.Sets/src/mage/cards/c/CauldronDance.java b/Mage.Sets/src/mage/cards/c/CauldronDance.java index 7f14a074b8d..7329ac8e4ff 100644 --- a/Mage.Sets/src/mage/cards/c/CauldronDance.java +++ b/Mage.Sets/src/mage/cards/c/CauldronDance.java @@ -22,6 +22,7 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @author nomage @@ -76,7 +77,7 @@ class CauldronDanceReturnFromGraveyardToBattlefieldTargetEffect extends OneShotE Card card = game.getCard(targetId); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { ContinuousEffect hasteEffect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); hasteEffect.setTargetPointer(new FixedTarget(creature, game)); @@ -123,7 +124,7 @@ class CauldronDancePutCreatureFromHandOntoBattlefieldEffect extends OneShotEffec Card card = game.getCard(target.getFirstTarget()); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/c/ClericClass.java b/Mage.Sets/src/mage/cards/c/ClericClass.java index 2f6fabe7124..23e9bebf612 100644 --- a/Mage.Sets/src/mage/cards/c/ClericClass.java +++ b/Mage.Sets/src/mage/cards/c/ClericClass.java @@ -24,6 +24,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetControlledCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -98,7 +99,7 @@ class ClericClassReturnEffect extends OneShotEffect { } player.moveCards(card, Zone.BATTLEFIELD, source, game); game.processAction(); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); int toughness = permanent != null ? permanent.getToughness().getValue() : card.getToughness().getValue(); player.gainLife(toughness, game, source); return true; diff --git a/Mage.Sets/src/mage/cards/c/CoilingRebirth.java b/Mage.Sets/src/mage/cards/c/CoilingRebirth.java index 5b7fec0fb6b..889baa323f9 100644 --- a/Mage.Sets/src/mage/cards/c/CoilingRebirth.java +++ b/Mage.Sets/src/mage/cards/c/CoilingRebirth.java @@ -18,6 +18,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -74,7 +75,7 @@ class CoilingRebirthEffect extends OneShotEffect { controller.moveCards(card, Zone.BATTLEFIELD, source, game); if (GiftWasPromisedCondition.TRUE.apply(game, source)) { game.processAction(); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null && !permanent.isLegendary(game)) { CreateTokenCopyTargetEffect effect = new CreateTokenCopyTargetEffect( null, null, false, 1, false, false, diff --git a/Mage.Sets/src/mage/cards/c/ComeBackWrong.java b/Mage.Sets/src/mage/cards/c/ComeBackWrong.java index 6a055cfcfaf..78da560cc9c 100644 --- a/Mage.Sets/src/mage/cards/c/ComeBackWrong.java +++ b/Mage.Sets/src/mage/cards/c/ComeBackWrong.java @@ -18,6 +18,7 @@ import mage.target.targetpointer.FixedTarget; import java.util.UUID; import mage.game.permanent.PermanentToken; +import mage.util.CardUtil; /** * @author TheElk801 @@ -81,7 +82,7 @@ class ComeBackWrongEffect extends OneShotEffect { return true; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { game.addDelayedTriggeredAbility(new AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility( new SacrificeTargetEffect("sacrifice it") diff --git a/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java b/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java index f4afb6f8b80..9eac5551ec9 100644 --- a/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DawnOfTheDead.java @@ -22,6 +22,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -74,7 +75,7 @@ class DawnOfTheDeadEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { // gains haste ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); diff --git a/Mage.Sets/src/mage/cards/d/Defossilize.java b/Mage.Sets/src/mage/cards/d/Defossilize.java index d221733195d..97a3a97adbd 100644 --- a/Mage.Sets/src/mage/cards/d/Defossilize.java +++ b/Mage.Sets/src/mage/cards/d/Defossilize.java @@ -14,6 +14,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import mage.util.CardUtil; import java.util.UUID; @@ -66,7 +67,7 @@ class DefossilizeEffect extends OneShotEffect { } player.moveCards(card, Zone.BATTLEFIELD, source, game); game.processAction(); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/d/DoorsOfDurin.java b/Mage.Sets/src/mage/cards/d/DoorsOfDurin.java index b7e7095c1e4..c83af125c6a 100644 --- a/Mage.Sets/src/mage/cards/d/DoorsOfDurin.java +++ b/Mage.Sets/src/mage/cards/d/DoorsOfDurin.java @@ -17,6 +17,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -81,7 +82,7 @@ class DoorsOfDurinEffect extends OneShotEffect { return true; } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return true; } diff --git a/Mage.Sets/src/mage/cards/d/DreamsOfTheDead.java b/Mage.Sets/src/mage/cards/d/DreamsOfTheDead.java index 59b35d7d9ca..521ecc7018a 100644 --- a/Mage.Sets/src/mage/cards/d/DreamsOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DreamsOfTheDead.java @@ -25,6 +25,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -82,7 +83,7 @@ class DreamsOfTheDeadEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { ContinuousEffect effect = new GainAbilityTargetEffect(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{2}")), Duration.Custom); effect.setTargetPointer(new FixedTarget(creature, game)); diff --git a/Mage.Sets/src/mage/cards/e/ElspethConquersDeath.java b/Mage.Sets/src/mage/cards/e/ElspethConquersDeath.java index d420c4a7eee..8cdb14c7329 100644 --- a/Mage.Sets/src/mage/cards/e/ElspethConquersDeath.java +++ b/Mage.Sets/src/mage/cards/e/ElspethConquersDeath.java @@ -139,7 +139,7 @@ class ElspethConquersDeathReturnEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/e/ElspethResplendent.java b/Mage.Sets/src/mage/cards/e/ElspethResplendent.java index c3065a7799c..cebcda8a2d3 100644 --- a/Mage.Sets/src/mage/cards/e/ElspethResplendent.java +++ b/Mage.Sets/src/mage/cards/e/ElspethResplendent.java @@ -19,6 +19,7 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; import java.util.*; @@ -136,7 +137,7 @@ class ElspethResplendentLookEffect extends OneShotEffect { Card card = game.getCard(target.getFirstTarget()); if (card != null) { player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.addCounters(CounterType.SHIELD.createInstance(), source, game); } diff --git a/Mage.Sets/src/mage/cards/e/ExtractionSpecialist.java b/Mage.Sets/src/mage/cards/e/ExtractionSpecialist.java index 9a77fe5e04f..010b2004d7d 100644 --- a/Mage.Sets/src/mage/cards/e/ExtractionSpecialist.java +++ b/Mage.Sets/src/mage/cards/e/ExtractionSpecialist.java @@ -18,6 +18,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -86,7 +87,7 @@ class ExtractionSpecialistEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null && source.getSourcePermanentIfItStillExists(game) != null && source.isControlledBy(game.getControllerId(source.getSourceId()))) { diff --git a/Mage.Sets/src/mage/cards/f/FierceInvocation.java b/Mage.Sets/src/mage/cards/f/FierceInvocation.java index 175959b8312..fee6b97a158 100644 --- a/Mage.Sets/src/mage/cards/f/FierceInvocation.java +++ b/Mage.Sets/src/mage/cards/f/FierceInvocation.java @@ -17,6 +17,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -64,7 +65,7 @@ class FierceInvocationEffect extends OneShotEffect { Card card = controller.getLibrary().getFromTop(game); if (card != null) { new ManifestEffect(1).apply(game, source); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/f/Flash.java b/Mage.Sets/src/mage/cards/f/Flash.java index 1b7310b5ef1..d2b94341c78 100644 --- a/Mage.Sets/src/mage/cards/f/Flash.java +++ b/Mage.Sets/src/mage/cards/f/Flash.java @@ -80,7 +80,7 @@ class FlashEffect extends OneShotEffect { } game.processAction(); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.sacrifice(source, game); } diff --git a/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java b/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java index dd04d4f00ee..30c89b3c630 100644 --- a/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java +++ b/Mage.Sets/src/mage/cards/f/FootstepsOfTheGoryo.java @@ -20,6 +20,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -69,7 +70,7 @@ class FootstepsOfTheGoryoEffect extends OneShotEffect { Card card = game.getCard(getTargetPointer().getFirst(game, source)); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { // Sacrifice it at end of turn Effect sacrificeEffect = new SacrificeTargetEffect("Sacrifice that creature at the beginning of next end step", source.getControllerId()); diff --git a/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java b/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java index be6eff2ac28..42167e6db99 100644 --- a/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java +++ b/Mage.Sets/src/mage/cards/g/GiftOfImmortality.java @@ -23,6 +23,7 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -86,7 +87,7 @@ class GiftOfImmortalityEffect extends OneShotEffect { } controller.moveCards(card, Zone.BATTLEFIELD, source, game, false, false, true, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/g/GoryosVengeance.java b/Mage.Sets/src/mage/cards/g/GoryosVengeance.java index 33a9d0421e3..61d3dde5201 100644 --- a/Mage.Sets/src/mage/cards/g/GoryosVengeance.java +++ b/Mage.Sets/src/mage/cards/g/GoryosVengeance.java @@ -21,6 +21,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -83,7 +84,7 @@ class GoryosVengeanceEffect extends OneShotEffect { if (card == null || !controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/g/GreasefangOkibaBoss.java b/Mage.Sets/src/mage/cards/g/GreasefangOkibaBoss.java index 31de0775b43..31d7d797b58 100644 --- a/Mage.Sets/src/mage/cards/g/GreasefangOkibaBoss.java +++ b/Mage.Sets/src/mage/cards/g/GreasefangOkibaBoss.java @@ -21,6 +21,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -83,7 +84,7 @@ class GreasefangOkibaBossEffect extends OneShotEffect { return false; } controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect hasteEffect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); hasteEffect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/g/GruesomeEncore.java b/Mage.Sets/src/mage/cards/g/GruesomeEncore.java index d8f55cec1f5..dd794449349 100644 --- a/Mage.Sets/src/mage/cards/g/GruesomeEncore.java +++ b/Mage.Sets/src/mage/cards/g/GruesomeEncore.java @@ -22,6 +22,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInOpponentsGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -78,7 +79,7 @@ class GruesomeEncoreEffect extends OneShotEffect { Card card = game.getCard(getTargetPointer().getFirst(game, source)); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/h/HansEriksson.java b/Mage.Sets/src/mage/cards/h/HansEriksson.java index b89a7d5ea46..3ff28910d61 100644 --- a/Mage.Sets/src/mage/cards/h/HansEriksson.java +++ b/Mage.Sets/src/mage/cards/h/HansEriksson.java @@ -23,6 +23,7 @@ import mage.target.common.TargetPlayerOrPlaneswalker; import java.util.UUID; import mage.abilities.effects.Effect; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @author TheElk801 @@ -88,7 +89,7 @@ class HansErikssonEffect extends OneShotEffect { return player.moveCards(card, Zone.HAND, source, game); } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return true; } diff --git a/Mage.Sets/src/mage/cards/h/HavengulMystery.java b/Mage.Sets/src/mage/cards/h/HavengulMystery.java index bb1dbe2aa08..24cca60c3b1 100644 --- a/Mage.Sets/src/mage/cards/h/HavengulMystery.java +++ b/Mage.Sets/src/mage/cards/h/HavengulMystery.java @@ -91,7 +91,7 @@ class HavengulMysteryEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/h/HellkiteCourser.java b/Mage.Sets/src/mage/cards/h/HellkiteCourser.java index 9edad9883b4..aa8a646a657 100644 --- a/Mage.Sets/src/mage/cards/h/HellkiteCourser.java +++ b/Mage.Sets/src/mage/cards/h/HellkiteCourser.java @@ -20,6 +20,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -90,7 +91,7 @@ class HellkiteCourserEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/h/HowlpackPiper.java b/Mage.Sets/src/mage/cards/h/HowlpackPiper.java index 37ad6c14dd9..577c869a305 100644 --- a/Mage.Sets/src/mage/cards/h/HowlpackPiper.java +++ b/Mage.Sets/src/mage/cards/h/HowlpackPiper.java @@ -21,6 +21,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -92,7 +93,7 @@ class HowlpackPiperEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); Permanent sourcePermanent = source.getSourcePermanentIfItStillExists(game); if (permanent == null || sourcePermanent == null) { return true; diff --git a/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java b/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java index 7515f26bc15..bdcba733714 100644 --- a/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java +++ b/Mage.Sets/src/mage/cards/i/IlhargTheRazeBoar.java @@ -20,6 +20,7 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -89,7 +90,7 @@ class IlhargTheRazeBoarEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, true, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java b/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java index 36315657699..269c70f4304 100644 --- a/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java +++ b/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java @@ -28,6 +28,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -90,7 +91,7 @@ class ImpromptuRaidEffect extends OneShotEffect { return true; } if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/i/InfernalVessel.java b/Mage.Sets/src/mage/cards/i/InfernalVessel.java index 41408b1b061..5050807b7ba 100644 --- a/Mage.Sets/src/mage/cards/i/InfernalVessel.java +++ b/Mage.Sets/src/mage/cards/i/InfernalVessel.java @@ -17,6 +17,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -94,7 +95,7 @@ class InfernalVesselReturnEffect extends OneShotEffect { effect.setTargetPointer(new FixedTarget(card, game)); effect.apply(game, source); game.processAction(); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.addEffect(new AddCardSubTypeTargetEffect( SubType.DEMON, Duration.Custom diff --git a/Mage.Sets/src/mage/cards/k/KamiOfIndustry.java b/Mage.Sets/src/mage/cards/k/KamiOfIndustry.java index 1aa23bac775..2c4cb8b4acb 100644 --- a/Mage.Sets/src/mage/cards/k/KamiOfIndustry.java +++ b/Mage.Sets/src/mage/cards/k/KamiOfIndustry.java @@ -20,6 +20,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -83,7 +84,7 @@ class KamiOfIndustryEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/k/KarnLiberated.java b/Mage.Sets/src/mage/cards/k/KarnLiberated.java index 8e46cccba02..183348ed2c8 100644 --- a/Mage.Sets/src/mage/cards/k/KarnLiberated.java +++ b/Mage.Sets/src/mage/cards/k/KarnLiberated.java @@ -201,7 +201,7 @@ class KarnLiberatedDelayedEffect extends OneShotEffect { controller.moveCards(cards, Zone.BATTLEFIELD, source, game); for (Card card : cards.getCards(game)) { if (card != null) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ((PermanentImpl) permanent).removeSummoningSickness(); } diff --git a/Mage.Sets/src/mage/cards/k/KheruLichLord.java b/Mage.Sets/src/mage/cards/k/KheruLichLord.java index 6079b97837e..ee72c41cc72 100644 --- a/Mage.Sets/src/mage/cards/k/KheruLichLord.java +++ b/Mage.Sets/src/mage/cards/k/KheruLichLord.java @@ -23,6 +23,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -79,7 +80,7 @@ class KheruLichLordEffect extends OneShotEffect { Card card = cards.getRandom(game); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { FixedTarget blueprintTarget = new FixedTarget(permanent, game); ContinuousEffect effect = new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn); diff --git a/Mage.Sets/src/mage/cards/k/KillerInstinct.java b/Mage.Sets/src/mage/cards/k/KillerInstinct.java index 877ac5baf9f..dfa17cdc4d9 100644 --- a/Mage.Sets/src/mage/cards/k/KillerInstinct.java +++ b/Mage.Sets/src/mage/cards/k/KillerInstinct.java @@ -25,6 +25,7 @@ import mage.game.permanent.Permanent; import mage.players.Library; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -82,7 +83,7 @@ class KillerInstinctEffect extends OneShotEffect { } player.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); if (card.isCreature(game) && player.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { FixedTarget blueprintTarget = new FixedTarget(permanent, game); ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); diff --git a/Mage.Sets/src/mage/cards/k/KodamaOfTheEastTree.java b/Mage.Sets/src/mage/cards/k/KodamaOfTheEastTree.java index 0d07e5dca56..a012f1f02d9 100644 --- a/Mage.Sets/src/mage/cards/k/KodamaOfTheEastTree.java +++ b/Mage.Sets/src/mage/cards/k/KodamaOfTheEastTree.java @@ -25,6 +25,7 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.*; @@ -134,7 +135,7 @@ class KodamaOfTheEastTreeEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent otherPermanent = game.getPermanent(card.getId()); + Permanent otherPermanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (otherPermanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java b/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java index 96cae253c0d..ad25e1f1b72 100644 --- a/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java +++ b/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java @@ -16,12 +16,12 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.FilterPermanent; import mage.filter.StaticFilters; -import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -88,7 +88,7 @@ class LimDulTheNecromancerEffect extends OneShotEffect { if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game) && card.isCreature(game)) { - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); ContinuousEffect effect = new AddCardSubTypeTargetEffect(SubType.ZOMBIE, Duration.WhileOnBattlefield); effect.setTargetPointer(new FixedTarget(creature.getId(), game)); game.addEffect(effect, source); diff --git a/Mage.Sets/src/mage/cards/m/MacabreMockery.java b/Mage.Sets/src/mage/cards/m/MacabreMockery.java index d33b140b12d..76e1b60ab6c 100644 --- a/Mage.Sets/src/mage/cards/m/MacabreMockery.java +++ b/Mage.Sets/src/mage/cards/m/MacabreMockery.java @@ -22,6 +22,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInOpponentsGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -75,7 +76,7 @@ class MacabreMockeryEffect extends OneShotEffect { if (controller == null || !controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/m/MilaCraftyCompanion.java b/Mage.Sets/src/mage/cards/m/MilaCraftyCompanion.java index 162e0b54cc6..1ebe00d09ab 100644 --- a/Mage.Sets/src/mage/cards/m/MilaCraftyCompanion.java +++ b/Mage.Sets/src/mage/cards/m/MilaCraftyCompanion.java @@ -26,6 +26,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.Objects; import java.util.UUID; @@ -185,7 +186,7 @@ class LukkaWaywardBonderReturnEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java b/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java index 6420b9064e4..da230db6b23 100644 --- a/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java +++ b/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java @@ -18,6 +18,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -88,7 +89,7 @@ class MinionOfTheMightyEffect extends OneShotEffect { card, Zone.BATTLEFIELD, source, game, true, false, true, null ); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.getCombat().addAttackingCreature(permanent.getId(), game); } diff --git a/Mage.Sets/src/mage/cards/m/MoiraAndTeshar.java b/Mage.Sets/src/mage/cards/m/MoiraAndTeshar.java index 94122d6d173..2abe1bb1625 100644 --- a/Mage.Sets/src/mage/cards/m/MoiraAndTeshar.java +++ b/Mage.Sets/src/mage/cards/m/MoiraAndTeshar.java @@ -24,6 +24,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -91,7 +92,7 @@ class MoiraAndTesharEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { // It gains haste ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); diff --git a/Mage.Sets/src/mage/cards/n/NahiriTheHarbinger.java b/Mage.Sets/src/mage/cards/n/NahiriTheHarbinger.java index d8e5e460afa..cad767499d9 100644 --- a/Mage.Sets/src/mage/cards/n/NahiriTheHarbinger.java +++ b/Mage.Sets/src/mage/cards/n/NahiriTheHarbinger.java @@ -34,6 +34,7 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -113,7 +114,7 @@ class NahiriTheHarbingerEffect extends SearchEffect { Card card = controller.getLibrary().getCard(target.getFirstTarget(), game); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); effect.setTargetPointer(new FixedTarget(permanent.getId(), permanent.getZoneChangeCounter(game))); diff --git a/Mage.Sets/src/mage/cards/n/NimDeathmantle.java b/Mage.Sets/src/mage/cards/n/NimDeathmantle.java index 3dca6eb6eeb..0d54b48cc5d 100644 --- a/Mage.Sets/src/mage/cards/n/NimDeathmantle.java +++ b/Mage.Sets/src/mage/cards/n/NimDeathmantle.java @@ -26,6 +26,7 @@ import mage.game.permanent.PermanentToken; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import mage.util.ManaUtil; import java.util.UUID; @@ -144,7 +145,7 @@ class NimDeathmantleEffect extends OneShotEffect { // check if it's still in graveyard if (card != null && game.getState().getZone(card.getId()) == Zone.GRAVEYARD) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.addAttachment(equipment.getId(), source, game); } diff --git a/Mage.Sets/src/mage/cards/n/NissaWorldwaker.java b/Mage.Sets/src/mage/cards/n/NissaWorldwaker.java index f5b4ec8d455..f399233fcb9 100644 --- a/Mage.Sets/src/mage/cards/n/NissaWorldwaker.java +++ b/Mage.Sets/src/mage/cards/n/NissaWorldwaker.java @@ -22,6 +22,7 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -93,7 +94,7 @@ class NissaWorldwakerSearchEffect extends OneShotEffect { Card card = controller.getLibrary().getCard(cardId, game); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent land = game.getPermanent(card.getId()); + Permanent land = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (land != null) { ContinuousEffect effect = new BecomesCreatureTargetEffect(new NissaWorldwakerToken(), false, true, Duration.Custom); effect.setTargetPointer(new FixedTarget(land, game)); diff --git a/Mage.Sets/src/mage/cards/n/NotDeadAfterAll.java b/Mage.Sets/src/mage/cards/n/NotDeadAfterAll.java index 9d58d02de3a..ef5e9f47054 100644 --- a/Mage.Sets/src/mage/cards/n/NotDeadAfterAll.java +++ b/Mage.Sets/src/mage/cards/n/NotDeadAfterAll.java @@ -14,6 +14,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -76,7 +77,7 @@ class NotDeadAfterAllEffect extends OneShotEffect { } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, true, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } @@ -86,4 +87,4 @@ class NotDeadAfterAllEffect extends OneShotEffect { .apply(game, source); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/o/OkibaSalvage.java b/Mage.Sets/src/mage/cards/o/OkibaSalvage.java index 7fc74ead283..747c8ecff5d 100644 --- a/Mage.Sets/src/mage/cards/o/OkibaSalvage.java +++ b/Mage.Sets/src/mage/cards/o/OkibaSalvage.java @@ -18,6 +18,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import mage.util.CardUtil; import java.util.UUID; @@ -79,7 +80,7 @@ class OkibaSalvageEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null && ControlArtifactAndEnchantmentCondition.instance.apply(game, source)) { permanent.addCounters(CounterType.P1P1.createInstance(2), source, game); } diff --git a/Mage.Sets/src/mage/cards/o/OldGrowthTroll.java b/Mage.Sets/src/mage/cards/o/OldGrowthTroll.java index 912bdff5417..ad5a4db08f8 100644 --- a/Mage.Sets/src/mage/cards/o/OldGrowthTroll.java +++ b/Mage.Sets/src/mage/cards/o/OldGrowthTroll.java @@ -32,6 +32,7 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.TrollWarriorToken; import mage.players.Player; import mage.target.TargetPermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -117,7 +118,7 @@ class OldGrowthTrollReturnEffect extends OneShotEffect { } game.addEffect(new OldGrowthTrollContinuousEffect(game.getState().getZoneChangeCounter(source.getSourceId()) + 1), source); controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent aura = game.getPermanent(card.getId()); + Permanent aura = CardUtil.getPermanentFromCardPutToBattlefield(card, game); Permanent creature = game.getPermanent(target.getFirstTarget()); if (aura == null || creature == null) { return true; diff --git a/Mage.Sets/src/mage/cards/o/OliviaCrimsonBride.java b/Mage.Sets/src/mage/cards/o/OliviaCrimsonBride.java index ee3d654841e..a13aef8b44d 100644 --- a/Mage.Sets/src/mage/cards/o/OliviaCrimsonBride.java +++ b/Mage.Sets/src/mage/cards/o/OliviaCrimsonBride.java @@ -22,6 +22,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -89,7 +90,7 @@ class OliviaCrimsonBrideEffect extends OneShotEffect { return false; } controller.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/o/OviyaAutomechArtisan.java b/Mage.Sets/src/mage/cards/o/OviyaAutomechArtisan.java index 14865f03ca6..7d4882b2ba5 100644 --- a/Mage.Sets/src/mage/cards/o/OviyaAutomechArtisan.java +++ b/Mage.Sets/src/mage/cards/o/OviyaAutomechArtisan.java @@ -25,6 +25,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -120,7 +121,7 @@ class OviyaAutomechArtisanEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null && permanent.isArtifact(game)) { permanent.addCounters(CounterType.P1P1.createInstance(2), source, game); } diff --git a/Mage.Sets/src/mage/cards/o/OwlbearCub.java b/Mage.Sets/src/mage/cards/o/OwlbearCub.java index eeb98af5694..10f8af835bd 100644 --- a/Mage.Sets/src/mage/cards/o/OwlbearCub.java +++ b/Mage.Sets/src/mage/cards/o/OwlbearCub.java @@ -17,6 +17,7 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -116,7 +117,7 @@ class OwlbearCubEffect extends OneShotEffect { Card card = game.getCard(target.getFirstTarget()); if (card != null) { player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.getCombat().addAttackerToCombat(permanent.getId(), getTargetPointer().getFirst(game, source), game); } diff --git a/Mage.Sets/src/mage/cards/p/PaladinElizabethTaggerdy.java b/Mage.Sets/src/mage/cards/p/PaladinElizabethTaggerdy.java index 44f5e78d200..9548a0a9b8b 100644 --- a/Mage.Sets/src/mage/cards/p/PaladinElizabethTaggerdy.java +++ b/Mage.Sets/src/mage/cards/p/PaladinElizabethTaggerdy.java @@ -16,6 +16,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -79,7 +80,7 @@ class PaladinElizabethTaggerdyEffect extends OneShotEffect { Card card = controller.getHand().get(cardId, game); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, true, null)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.getCombat().addAttackingCreature(permanent.getId(), game); } diff --git a/Mage.Sets/src/mage/cards/p/PheliaExuberantShepherd.java b/Mage.Sets/src/mage/cards/p/PheliaExuberantShepherd.java index 70c0fa47b49..63f6fdba3df 100644 --- a/Mage.Sets/src/mage/cards/p/PheliaExuberantShepherd.java +++ b/Mage.Sets/src/mage/cards/p/PheliaExuberantShepherd.java @@ -106,7 +106,7 @@ class PheliaExuberantShepherdEffect extends OneShotEffect { boolean enteredUnderYourControl = false; for (Card card : cards) { // Try to find the permanent that card became - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null && permanent.getControllerId().equals(source.getControllerId())) { enteredUnderYourControl = true; break; diff --git a/Mage.Sets/src/mage/cards/p/PlaneboundAccomplice.java b/Mage.Sets/src/mage/cards/p/PlaneboundAccomplice.java index acfe5033a1b..2cd15c08492 100644 --- a/Mage.Sets/src/mage/cards/p/PlaneboundAccomplice.java +++ b/Mage.Sets/src/mage/cards/p/PlaneboundAccomplice.java @@ -22,6 +22,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -91,7 +92,7 @@ class PlaneboundAccompliceEffect extends OneShotEffect { if (!controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return true; } @@ -102,4 +103,4 @@ class PlaneboundAccompliceEffect extends OneShotEffect { game.addDelayedTriggeredAbility(delayedAbility, source); return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PostmortemLunge.java b/Mage.Sets/src/mage/cards/p/PostmortemLunge.java index 1267092a481..fc5556482bc 100644 --- a/Mage.Sets/src/mage/cards/p/PostmortemLunge.java +++ b/Mage.Sets/src/mage/cards/p/PostmortemLunge.java @@ -21,6 +21,7 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetadjustment.XManaValueTargetAdjuster; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -73,7 +74,7 @@ class PostmortemLungeEffect extends OneShotEffect { return false; } if (cardOwner.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/p/PreWarFormalwear.java b/Mage.Sets/src/mage/cards/p/PreWarFormalwear.java index 6686688cf4e..a52ada586b6 100644 --- a/Mage.Sets/src/mage/cards/p/PreWarFormalwear.java +++ b/Mage.Sets/src/mage/cards/p/PreWarFormalwear.java @@ -21,6 +21,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -90,7 +91,7 @@ class PreWarFormalwerEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { new AttachEffect(Outcome.BoostCreature) .setTargetPointer(new FixedTarget(permanent.getId())) diff --git a/Mage.Sets/src/mage/cards/p/PreeminentCaptain.java b/Mage.Sets/src/mage/cards/p/PreeminentCaptain.java index 759499df687..52a27a5fbba 100644 --- a/Mage.Sets/src/mage/cards/p/PreeminentCaptain.java +++ b/Mage.Sets/src/mage/cards/p/PreeminentCaptain.java @@ -17,6 +17,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -77,7 +78,7 @@ class PreeminentCaptainEffect extends OneShotEffect { Card card = controller.getHand().get(cardId, game); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, true, null)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.getCombat().addAttackingCreature(permanent.getId(), game); } diff --git a/Mage.Sets/src/mage/cards/p/PresumedDead.java b/Mage.Sets/src/mage/cards/p/PresumedDead.java index d5593cc391e..cb319fc9216 100644 --- a/Mage.Sets/src/mage/cards/p/PresumedDead.java +++ b/Mage.Sets/src/mage/cards/p/PresumedDead.java @@ -16,6 +16,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -71,7 +72,7 @@ class PresumedDeadEffect extends OneShotEffect { } controller.moveCards(card, Zone.BATTLEFIELD, source, game, false, false, true, null); game.processAction(); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.setSuspected(true, game, source); } diff --git a/Mage.Sets/src/mage/cards/p/PuppeteerClique.java b/Mage.Sets/src/mage/cards/p/PuppeteerClique.java index 6e874521b63..aa5ac379349 100644 --- a/Mage.Sets/src/mage/cards/p/PuppeteerClique.java +++ b/Mage.Sets/src/mage/cards/p/PuppeteerClique.java @@ -24,6 +24,7 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInOpponentsGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -89,7 +90,7 @@ class PuppeteerCliqueEffect extends OneShotEffect { if (controller == null || !controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/p/PurphorosBronzeBlooded.java b/Mage.Sets/src/mage/cards/p/PurphorosBronzeBlooded.java index 51d72791039..dce14584cbd 100644 --- a/Mage.Sets/src/mage/cards/p/PurphorosBronzeBlooded.java +++ b/Mage.Sets/src/mage/cards/p/PurphorosBronzeBlooded.java @@ -28,6 +28,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -114,7 +115,7 @@ class PurphurosBronzeBloodedEffect extends OneShotEffect { if (card == null || !controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return true; } diff --git a/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java b/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java index c010b787e1a..a2bec259701 100644 --- a/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java +++ b/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java @@ -24,6 +24,7 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -91,7 +92,7 @@ class QuestForTheHolyRelicEffect extends OneShotEffect { if (controller.searchLibrary(target, source, game)) { Card card = controller.getLibrary().getCard(target.getFirstTarget(), game); if (card != null && controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent equipment = game.getPermanent(card.getId()); + Permanent equipment = CardUtil.getPermanentFromCardPutToBattlefield(card, game); Target targetCreature = new TargetControlledCreaturePermanent(); if (equipment != null && controller.choose(Outcome.BoostCreature, targetCreature, source, game)) { Permanent permanent = game.getPermanent(targetCreature.getFirstTarget()); diff --git a/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java b/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java index 8e7492b429f..e847ebaa09b 100644 --- a/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java +++ b/Mage.Sets/src/mage/cards/r/RallyTheAncestors.java @@ -81,7 +81,7 @@ class RallyTheAncestorsEffect extends OneShotEffect { List toExile = new ArrayList<>(cards.size()); for (Card card : cards) { if (card != null) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { toExile.add(permanent); } diff --git a/Mage.Sets/src/mage/cards/r/RampagingGrowth.java b/Mage.Sets/src/mage/cards/r/RampagingGrowth.java index 5c7ef1b571b..e6def5abe3d 100644 --- a/Mage.Sets/src/mage/cards/r/RampagingGrowth.java +++ b/Mage.Sets/src/mage/cards/r/RampagingGrowth.java @@ -16,6 +16,7 @@ import mage.game.permanent.token.custom.CreatureToken; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -72,7 +73,7 @@ class RampagingGrowthEffect extends OneShotEffect { return true; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.addEffect(new BecomesCreatureTargetEffect( new CreatureToken(4, 3, "", SubType.INSECT diff --git a/Mage.Sets/src/mage/cards/r/RealmbreakerTheInvasionTree.java b/Mage.Sets/src/mage/cards/r/RealmbreakerTheInvasionTree.java index fa73e1def6f..662d159dc30 100644 --- a/Mage.Sets/src/mage/cards/r/RealmbreakerTheInvasionTree.java +++ b/Mage.Sets/src/mage/cards/r/RealmbreakerTheInvasionTree.java @@ -25,6 +25,7 @@ import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -103,7 +104,7 @@ class RealmbreakerTheInvasionTreeEffect extends OneShotEffect { return false; } controller.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/r/ReturnTriumphant.java b/Mage.Sets/src/mage/cards/r/ReturnTriumphant.java index 4f534e62ffb..1ac80cf0ca9 100644 --- a/Mage.Sets/src/mage/cards/r/ReturnTriumphant.java +++ b/Mage.Sets/src/mage/cards/r/ReturnTriumphant.java @@ -15,6 +15,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -72,7 +73,7 @@ class ReturnTriumphantAbility extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } @@ -82,4 +83,4 @@ class ReturnTriumphantAbility extends OneShotEffect { .apply(game, source); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java b/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java index bc6eb45acd0..feb5364baf1 100644 --- a/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java +++ b/Mage.Sets/src/mage/cards/r/ReturnUponTheTide.java @@ -16,6 +16,7 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.ElfWarriorToken; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import mage.util.CardUtil; import java.util.UUID; @@ -70,7 +71,7 @@ class ReturnUponTheTideEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/s/SavageOrder.java b/Mage.Sets/src/mage/cards/s/SavageOrder.java index 533a1b6d964..4cc0385b01d 100644 --- a/Mage.Sets/src/mage/cards/s/SavageOrder.java +++ b/Mage.Sets/src/mage/cards/s/SavageOrder.java @@ -1,36 +1,26 @@ package mage.cards.s; -import java.util.UUID; - -import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.DelayedTriggeredAbility; -import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.ContinuousEffect; -import mage.abilities.effects.Effect; import mage.abilities.effects.SearchEffect; -import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; -import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; -import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreatureCard; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.PowerPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; -import mage.util.SubTypes; +import mage.util.CardUtil; + +import java.util.UUID; /** * @@ -92,7 +82,7 @@ class SavageOrderEffect extends SearchEffect { Card card = controller.getLibrary().getCard(target.getFirstTarget(), game); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Duration.UntilYourNextTurn); effect.setTargetPointer(new FixedTarget(permanent.getId(), permanent.getZoneChangeCounter(game))); diff --git a/Mage.Sets/src/mage/cards/s/ScrapWelder.java b/Mage.Sets/src/mage/cards/s/ScrapWelder.java index 8d19b814347..39f518599f7 100644 --- a/Mage.Sets/src/mage/cards/s/ScrapWelder.java +++ b/Mage.Sets/src/mage/cards/s/ScrapWelder.java @@ -25,6 +25,7 @@ import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetadjustment.XManaValueTargetAdjuster; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -84,7 +85,7 @@ class ScrapWelderEffect extends OneShotEffect { return false; } controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance()); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/s/ShadowfaxLordOfHorses.java b/Mage.Sets/src/mage/cards/s/ShadowfaxLordOfHorses.java index 5eeb03f8b0a..4256be9eb53 100644 --- a/Mage.Sets/src/mage/cards/s/ShadowfaxLordOfHorses.java +++ b/Mage.Sets/src/mage/cards/s/ShadowfaxLordOfHorses.java @@ -19,6 +19,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; /** * @@ -99,7 +100,7 @@ class ShadowfaxLordOfHorsesEffect extends OneShotEffect { } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, true, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { game.getCombat().addAttackingCreature(permanent.getId(), game); } diff --git a/Mage.Sets/src/mage/cards/s/ShiftingShadow.java b/Mage.Sets/src/mage/cards/s/ShiftingShadow.java index 59cca89b89a..a43a53b55e0 100644 --- a/Mage.Sets/src/mage/cards/s/ShiftingShadow.java +++ b/Mage.Sets/src/mage/cards/s/ShiftingShadow.java @@ -16,6 +16,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -135,7 +136,7 @@ class ShiftingShadowEffect extends OneShotEffect { Permanent creature; if (card != null) { player.moveCards(card, Zone.BATTLEFIELD, source, game); - creature = game.getPermanent(card.getId()); + creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); } else { creature = null; } diff --git a/Mage.Sets/src/mage/cards/s/ShiftyDoppelganger.java b/Mage.Sets/src/mage/cards/s/ShiftyDoppelganger.java index 719c08d3d3d..4404cf0a4c9 100644 --- a/Mage.Sets/src/mage/cards/s/ShiftyDoppelganger.java +++ b/Mage.Sets/src/mage/cards/s/ShiftyDoppelganger.java @@ -20,6 +20,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -87,7 +88,7 @@ class ShiftyDoppelgangerExileEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/s/SithMagic.java b/Mage.Sets/src/mage/cards/s/SithMagic.java index f43dd8ff16e..e3d335f9c53 100644 --- a/Mage.Sets/src/mage/cards/s/SithMagic.java +++ b/Mage.Sets/src/mage/cards/s/SithMagic.java @@ -31,6 +31,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import mage.watchers.common.LifeLossOtherFromCombatWatcher; /** @@ -85,7 +86,7 @@ class SithMagicEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { // gains haste ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); diff --git a/Mage.Sets/src/mage/cards/s/StonehewerGiant.java b/Mage.Sets/src/mage/cards/s/StonehewerGiant.java index b68c1b31b85..af781b25e30 100644 --- a/Mage.Sets/src/mage/cards/s/StonehewerGiant.java +++ b/Mage.Sets/src/mage/cards/s/StonehewerGiant.java @@ -22,6 +22,7 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -90,7 +91,7 @@ class StonehewerGiantEffect extends OneShotEffect { Card card = controller.getLibrary().getCard(target.getFirstTarget(), game); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent equipment = game.getPermanent(card.getId()); + Permanent equipment = CardUtil.getPermanentFromCardPutToBattlefield(card, game); Target targetCreature = new TargetControlledCreaturePermanent(); targetCreature.withNotTarget(true); if (equipment != null && controller.choose(Outcome.BoostCreature, targetCreature, source, game)) { diff --git a/Mage.Sets/src/mage/cards/s/StrefanMaurerProgenitor.java b/Mage.Sets/src/mage/cards/s/StrefanMaurerProgenitor.java index 9def4f0a77c..ad37091dd74 100644 --- a/Mage.Sets/src/mage/cards/s/StrefanMaurerProgenitor.java +++ b/Mage.Sets/src/mage/cards/s/StrefanMaurerProgenitor.java @@ -30,6 +30,7 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import mage.watchers.common.PlayerLostLifeWatcher; import java.util.*; @@ -121,7 +122,7 @@ class StrefanMaurerProgenitorPlayVampireEffect extends OneShotEffect { player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, true, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/s/SurpriseDeployment.java b/Mage.Sets/src/mage/cards/s/SurpriseDeployment.java index f82dde223d6..0ccf05b99a0 100644 --- a/Mage.Sets/src/mage/cards/s/SurpriseDeployment.java +++ b/Mage.Sets/src/mage/cards/s/SurpriseDeployment.java @@ -24,6 +24,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -85,7 +86,7 @@ class SurpriseDeploymentEffect extends OneShotEffect { Card card = game.getCard(target.getFirstTarget()); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ReturnToHandTargetEffect effect = new ReturnToHandTargetEffect(); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/t/TeferisTimeTwist.java b/Mage.Sets/src/mage/cards/t/TeferisTimeTwist.java index 6997269a619..79f88bf5e5d 100644 --- a/Mage.Sets/src/mage/cards/t/TeferisTimeTwist.java +++ b/Mage.Sets/src/mage/cards/t/TeferisTimeTwist.java @@ -16,6 +16,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledPermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -111,7 +112,7 @@ class TeferisTimeTwistReturnEffect extends OneShotEffect { if (!player.moveCards(card, Zone.BATTLEFIELD, source, game)) { return true; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null && permanent.isCreature(game)) { // TODO: This is technically wrong as it should enter with the counters, // however there's currently no way to know that for sure @@ -120,4 +121,4 @@ class TeferisTimeTwistReturnEffect extends OneShotEffect { } return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/TheBeamtownBullies.java b/Mage.Sets/src/mage/cards/t/TheBeamtownBullies.java index 010311874c6..23b12fb7432 100644 --- a/Mage.Sets/src/mage/cards/t/TheBeamtownBullies.java +++ b/Mage.Sets/src/mage/cards/t/TheBeamtownBullies.java @@ -29,6 +29,7 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -104,7 +105,7 @@ class TheBeamtownBulliesEffect extends OneShotEffect { } // Add continuous effects - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/t/TheDeckOfManyThings.java b/Mage.Sets/src/mage/cards/t/TheDeckOfManyThings.java index f07f860e66b..6145636776a 100644 --- a/Mage.Sets/src/mage/cards/t/TheDeckOfManyThings.java +++ b/Mage.Sets/src/mage/cards/t/TheDeckOfManyThings.java @@ -23,6 +23,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -122,7 +123,7 @@ class TheDeckOfManyThingsReturnEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/t/TheGrimCaptain.java b/Mage.Sets/src/mage/cards/t/TheGrimCaptain.java index e8ca7add470..3ec8f196b3f 100644 --- a/Mage.Sets/src/mage/cards/t/TheGrimCaptain.java +++ b/Mage.Sets/src/mage/cards/t/TheGrimCaptain.java @@ -102,7 +102,7 @@ class TheGrimCaptainEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/t/TheNightOfTheDoctor.java b/Mage.Sets/src/mage/cards/t/TheNightOfTheDoctor.java index 0a3d98cceb3..104facba54a 100644 --- a/Mage.Sets/src/mage/cards/t/TheNightOfTheDoctor.java +++ b/Mage.Sets/src/mage/cards/t/TheNightOfTheDoctor.java @@ -18,6 +18,7 @@ import mage.filter.common.FilterCreatureCard; import mage.filter.StaticFilters; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import mage.util.CardUtil; import java.util.*; /** @@ -90,7 +91,7 @@ class TheNightOfTheDoctorEffect extends OneShotEffect { if (card == null || !controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/t/TheWarInHeaven.java b/Mage.Sets/src/mage/cards/t/TheWarInHeaven.java index 43898175052..b8e1ebd88f9 100644 --- a/Mage.Sets/src/mage/cards/t/TheWarInHeaven.java +++ b/Mage.Sets/src/mage/cards/t/TheWarInHeaven.java @@ -97,7 +97,7 @@ class TheWarInHeavenEffect extends OneShotEffect { Card card = game.getCard(targetId); if (card != null) { card.moveToZone(Zone.BATTLEFIELD, source, game, false); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.addCounters(CounterType.NECRODERMIS.createInstance(), source, game); game.addEffect(new AddCardTypeTargetEffect(Duration.Custom, CardType.ARTIFACT) diff --git a/Mage.Sets/src/mage/cards/t/TooGreedilyTooDeep.java b/Mage.Sets/src/mage/cards/t/TooGreedilyTooDeep.java index bc68de63da7..2ce19c286c7 100644 --- a/Mage.Sets/src/mage/cards/t/TooGreedilyTooDeep.java +++ b/Mage.Sets/src/mage/cards/t/TooGreedilyTooDeep.java @@ -8,13 +8,12 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.FilterCard; import mage.filter.StaticFilters; -import mage.filter.common.FilterCreatureCard; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInGraveyard; +import mage.util.CardUtil; import java.util.UUID; @@ -66,7 +65,7 @@ class TooGreedilyTooDeepEffect extends OneShotEffect { } controller.moveCards(card, Zone.BATTLEFIELD, source, game); game.processAction(); - Permanent returnedCreature = game.getPermanent(card.getId()); + Permanent returnedCreature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (returnedCreature != null && returnedCreature.getPower().getValue() > 0) { for (Permanent creature : game.getBattlefield().getActivePermanents(StaticFilters.FILTER_PERMANENT_CREATURE, source.getControllerId(), source, game)) { if (!creature.getId().equals(returnedCreature.getId())) { diff --git a/Mage.Sets/src/mage/cards/t/TreacherousUrge.java b/Mage.Sets/src/mage/cards/t/TreacherousUrge.java index dcb297c2e0c..2b60523a9df 100644 --- a/Mage.Sets/src/mage/cards/t/TreacherousUrge.java +++ b/Mage.Sets/src/mage/cards/t/TreacherousUrge.java @@ -24,6 +24,7 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -81,7 +82,7 @@ class TreacherousUrgeEffect extends OneShotEffect { card = opponent.getHand().get(target.getFirstTarget(), game); if (card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage.Sets/src/mage/cards/u/UltraMagnusTactician.java b/Mage.Sets/src/mage/cards/u/UltraMagnusTactician.java index 34637d112ad..88775f8e8b6 100644 --- a/Mage.Sets/src/mage/cards/u/UltraMagnusTactician.java +++ b/Mage.Sets/src/mage/cards/u/UltraMagnusTactician.java @@ -20,6 +20,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetCardInHand; +import mage.util.CardUtil; import java.util.UUID; @@ -97,7 +98,7 @@ class UltraMagnusTacticianEffect extends OneShotEffect { card, Zone.BATTLEFIELD, source, game, true, false, false, null ); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return true; } diff --git a/Mage.Sets/src/mage/cards/v/Vault101BirthdayParty.java b/Mage.Sets/src/mage/cards/v/Vault101BirthdayParty.java index 782e74392f4..39b51284dea 100644 --- a/Mage.Sets/src/mage/cards/v/Vault101BirthdayParty.java +++ b/Mage.Sets/src/mage/cards/v/Vault101BirthdayParty.java @@ -18,6 +18,7 @@ import mage.players.Player; import mage.target.TargetCard; import mage.target.TargetPermanent; import mage.target.common.TargetControlledCreaturePermanent; +import mage.util.CardUtil; /** * @@ -103,7 +104,7 @@ class Vault101BirthdayPartyEffect extends OneShotEffect { return false; } player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent equipment = game.getPermanent(card.getId()); + Permanent equipment = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (equipment == null || !equipment.hasSubtype(SubType.EQUIPMENT, game)) { return true; } diff --git a/Mage.Sets/src/mage/cards/v/ViviensInvocation.java b/Mage.Sets/src/mage/cards/v/ViviensInvocation.java index 037f26f73c9..5eb5c4a09a3 100644 --- a/Mage.Sets/src/mage/cards/v/ViviensInvocation.java +++ b/Mage.Sets/src/mage/cards/v/ViviensInvocation.java @@ -15,6 +15,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetCard; import mage.target.common.TargetOpponentsCreaturePermanent; +import mage.util.CardUtil; import java.util.UUID; @@ -78,7 +79,7 @@ class ViviensInvocationEffect extends OneShotEffect { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { cards.remove(card); } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { controller.putCardsOnBottomOfLibrary(cards, game, source, false); return true; diff --git a/Mage.Sets/src/mage/cards/w/WhipOfErebos.java b/Mage.Sets/src/mage/cards/w/WhipOfErebos.java index ef7df36a913..24f82bd8460 100644 --- a/Mage.Sets/src/mage/cards/w/WhipOfErebos.java +++ b/Mage.Sets/src/mage/cards/w/WhipOfErebos.java @@ -25,6 +25,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -88,7 +89,7 @@ class WhipOfErebosEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null && card != null) { if (controller.moveCards(card, Zone.BATTLEFIELD, source, game)) { - Permanent creature = game.getPermanent(card.getId()); + Permanent creature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (creature != null) { // gains haste ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); diff --git a/Mage.Sets/src/mage/cards/w/WinotaJoinerOfForces.java b/Mage.Sets/src/mage/cards/w/WinotaJoinerOfForces.java index b8b6f6427cc..4ed6dfa21c3 100644 --- a/Mage.Sets/src/mage/cards/w/WinotaJoinerOfForces.java +++ b/Mage.Sets/src/mage/cards/w/WinotaJoinerOfForces.java @@ -17,6 +17,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -98,7 +99,7 @@ class WinotaJoinerOfForcesEffect extends OneShotEffect { )) { return player.putCardsOnBottomOfLibrary(cards, game, source, false); } - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return player.putCardsOnBottomOfLibrary(cards, game, source, false); } @@ -109,4 +110,4 @@ class WinotaJoinerOfForcesEffect extends OneShotEffect { ).setTargetPointer(new FixedTarget(permanent, game)), source); return player.putCardsOnBottomOfLibrary(cards, game, source, false); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/y/YarusRoarOfTheOldGods.java b/Mage.Sets/src/mage/cards/y/YarusRoarOfTheOldGods.java index 9cc4eff08fe..44e33f09b20 100644 --- a/Mage.Sets/src/mage/cards/y/YarusRoarOfTheOldGods.java +++ b/Mage.Sets/src/mage/cards/y/YarusRoarOfTheOldGods.java @@ -28,6 +28,7 @@ import mage.filter.predicate.card.FaceDownPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.util.CardUtil; /** * @@ -109,7 +110,7 @@ class YarusRoarOfTheOldGodsEffect extends OneShotEffect { BecomesFaceDownCreatureEffect.FaceDownType.MANUAL), newSource); controller.moveCards(card, Zone.BATTLEFIELD, source, game, false, true, true, null); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.turnFaceUp(source, game, source.getControllerId()); } diff --git a/Mage.Sets/src/mage/cards/y/YggdrasilRebirthEngine.java b/Mage.Sets/src/mage/cards/y/YggdrasilRebirthEngine.java index 7d771534a02..1758f7fe54a 100644 --- a/Mage.Sets/src/mage/cards/y/YggdrasilRebirthEngine.java +++ b/Mage.Sets/src/mage/cards/y/YggdrasilRebirthEngine.java @@ -133,7 +133,7 @@ class YggdrasilRebirthEngineReturnCreatureEffect extends OneShotEffect { if (!player.moveCards(card, Zone.BATTLEFIELD, source, game)) { return false; } - Permanent movedCard = game.getPermanent(card.getId()); + Permanent movedCard = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (movedCard == null){ return false; } @@ -141,4 +141,4 @@ class YggdrasilRebirthEngineReturnCreatureEffect extends OneShotEffect { .setTargetPointer(new FixedTarget(movedCard, game)), source); return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/z/ZaraRenegadeRecruiter.java b/Mage.Sets/src/mage/cards/z/ZaraRenegadeRecruiter.java index 2af062d23a0..31d9612fb30 100644 --- a/Mage.Sets/src/mage/cards/z/ZaraRenegadeRecruiter.java +++ b/Mage.Sets/src/mage/cards/z/ZaraRenegadeRecruiter.java @@ -21,6 +21,7 @@ import mage.players.Player; import mage.target.common.TargetCardInHand; import mage.target.common.TargetPlayerOrPlaneswalker; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import java.util.UUID; @@ -94,7 +95,7 @@ class ZaraRenegadeRecruiterEffect extends OneShotEffect { card, Zone.BATTLEFIELD, source, game, true, false, false, null ); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java b/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java index aaefa4c9f1e..f012c8275c9 100644 --- a/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java +++ b/Mage.Sets/src/mage/cards/z/ZirilanOfTheClaw.java @@ -24,6 +24,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; /** * @@ -83,7 +84,7 @@ class ZirilanOfTheClawEffect extends OneShotEffect { Card card = controller.getLibrary().getCard(target.getFirstTarget(), game); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { // gains haste ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn); diff --git a/Mage/src/main/java/mage/abilities/common/BecomesAuraAttachToManifestSourceEffect.java b/Mage/src/main/java/mage/abilities/common/BecomesAuraAttachToManifestSourceEffect.java index c05b37a1831..ccf51904b2b 100644 --- a/Mage/src/main/java/mage/abilities/common/BecomesAuraAttachToManifestSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/common/BecomesAuraAttachToManifestSourceEffect.java @@ -13,6 +13,7 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; /** * @author LevelX2 @@ -42,7 +43,7 @@ public class BecomesAuraAttachToManifestSourceEffect extends OneShotEffect { Card card = controller.getLibrary().getFromTop(game); if (card != null) { new ManifestEffect(1).apply(game, source); - Permanent enchantedCreature = game.getPermanent(card.getId()); + Permanent enchantedCreature = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (enchantedCreature != null) { enchantedCreature.addAttachment(enchantment.getId(), source, game); FilterCreaturePermanent filter = new FilterCreaturePermanent(); diff --git a/Mage/src/main/java/mage/abilities/effects/common/ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect.java index 8e852cbae62..c9f895f8fc0 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect.java @@ -13,6 +13,7 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; public class ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect extends OneShotEffect { @@ -39,7 +40,7 @@ public class ReturnCreatureFromGraveyardToBattlefieldAndGainHasteEffect extends Card card = game.getCard(source.getFirstTarget()); if (card != null) { controller.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); effect.setTargetPointer(new FixedTarget(permanent, game)); diff --git a/Mage/src/main/java/mage/game/command/dungeons/UndercityDungeon.java b/Mage/src/main/java/mage/game/command/dungeons/UndercityDungeon.java index f69bf70fdd5..80eed0d95ce 100644 --- a/Mage/src/main/java/mage/game/command/dungeons/UndercityDungeon.java +++ b/Mage/src/main/java/mage/game/command/dungeons/UndercityDungeon.java @@ -30,6 +30,7 @@ import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import mage.util.RandomUtil; /** @@ -158,7 +159,7 @@ class ThroneOfTheDeadThreeEffect extends OneShotEffect { } if (card != null) { player.moveCards(card, Zone.BATTLEFIELD, source, game); - Permanent permanent = game.getPermanent(card.getId()); + Permanent permanent = CardUtil.getPermanentFromCardPutToBattlefield(card, game); if (permanent != null) { permanent.addCounters(CounterType.P1P1.createInstance(3), source, game); game.addEffect(new GainAbilityTargetEffect(HexproofAbility.getInstance(), Duration.UntilYourNextTurn)