diff --git a/Mage.Sets/src/mage/sets/avacynrestored/BurnAtTheStake.java b/Mage.Sets/src/mage/sets/avacynrestored/BurnAtTheStake.java index 666a042a4e..016e1a2e0b 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/BurnAtTheStake.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/BurnAtTheStake.java @@ -158,13 +158,13 @@ class BurnAtTheStakeEffect extends OneShotEffect<BurnAtTheStakeEffect> { public boolean apply(Game game, Ability source) { int amount = (new GetXValue()).calculate(game, source) * 3; - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(amount, source.getSourceId(), game, true, false); return true; } - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.damage(amount, source.getSourceId(), game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/avacynrestored/GallowsAtWillowHill.java b/Mage.Sets/src/mage/sets/avacynrestored/GallowsAtWillowHill.java index a5e766e6d8..4b4fed0ac7 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/GallowsAtWillowHill.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/GallowsAtWillowHill.java @@ -104,8 +104,8 @@ class GallowsAtWillowHillEffect extends OneShotEffect<GallowsAtWillowHillEffect> @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - if (targetPointer.getTargets(source).size() > 0) { - for (UUID permanentId : targetPointer.getTargets(source)) { + if (targetPointer.getTargets(game, source).size() > 0) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { Player controller = game.getPlayer(permanent.getControllerId()); diff --git a/Mage.Sets/src/mage/sets/avacynrestored/GhostlyFlicker.java b/Mage.Sets/src/mage/sets/avacynrestored/GhostlyFlicker.java index 8ef4e8e01f..500af6ecbd 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/GhostlyFlicker.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/GhostlyFlicker.java @@ -96,7 +96,7 @@ class GhostlyFlickerEffect extends OneShotEffect<GhostlyFlickerEffect> { @Override public boolean apply(Game game, Ability source) { UUID exileId = source.getSourceId(); - for (UUID permanentId : targetPointer.getTargets(source)) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent target = game.getPermanent(permanentId); if (target != null) { target.moveToExile(exileId, "Ghostly Flicker", source.getId(), game); diff --git a/Mage.Sets/src/mage/sets/avacynrestored/JointAssault.java b/Mage.Sets/src/mage/sets/avacynrestored/JointAssault.java index af6eb8dda5..e37bf175b1 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/JointAssault.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/JointAssault.java @@ -92,7 +92,7 @@ class JointAssaultBoostTargetEffect extends ContinuousEffectImpl<JointAssaultBoo @Override public void init(Ability source, Game game) { super.init(source, game); - UUID permanentId = targetPointer.getFirst(source); + UUID permanentId = targetPointer.getFirst(game, source); Permanent target = game.getPermanent(permanentId); if (target != null) { if (target.getPairedCard() != null) { @@ -104,7 +104,7 @@ class JointAssaultBoostTargetEffect extends ContinuousEffectImpl<JointAssaultBoo @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - UUID permanentId = targetPointer.getFirst(source); + UUID permanentId = targetPointer.getFirst(game, source); Permanent target = game.getPermanent(permanentId); if (target != null) { diff --git a/Mage.Sets/src/mage/sets/avacynrestored/StolenGoods.java b/Mage.Sets/src/mage/sets/avacynrestored/StolenGoods.java index 747340dbb5..02dfb2010b 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/StolenGoods.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/StolenGoods.java @@ -88,7 +88,7 @@ class StolenGoodsEffect extends OneShotEffect<StolenGoodsEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null && player.getLibrary().size() > 0) { Library library = player.getLibrary(); Card card; diff --git a/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java b/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java index 55ba2beb9c..3b6ce7cb14 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java @@ -199,7 +199,7 @@ class TamiyoTheMoonSageEffect extends OneShotEffect<TamiyoTheMoonSageEffect> { @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(this.targetPointer.getFirst(source)); + Card card = game.getCard(this.targetPointer.getFirst(game, source)); if (card != null) { return card.moveToZone(Zone.HAND, source.getId(), game, true); } diff --git a/Mage.Sets/src/mage/sets/avacynrestored/TibaltTheFiendBlooded.java b/Mage.Sets/src/mage/sets/avacynrestored/TibaltTheFiendBlooded.java index 74e6810918..082caa41ea 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/TibaltTheFiendBlooded.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/TibaltTheFiendBlooded.java @@ -177,7 +177,7 @@ class TibaltTheFiendBloodedControlEffect extends ContinuousEffectImpl<TibaltTheF @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null && controllerId != null) { return permanent.changeControllerId(controllerId, game); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java b/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java index 81c893821a..3d02edc2d6 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/BudokaGardener.java @@ -97,7 +97,7 @@ class BudokaGardenerEffect extends OneShotEffect<BudokaGardenerEffect> { @Override public boolean apply(Game game, Ability source) { - Card c = game.getCard(targetPointer.getFirst(source)); + Card c = game.getCard(targetPointer.getFirst(game, source)); if (c != null) { c.moveToZone(Constants.Zone.BATTLEFIELD, source.getSourceId(), game, false); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/CranialExtraction.java b/Mage.Sets/src/mage/sets/championsofkamigawa/CranialExtraction.java index e54d3c6b4b..e579a8e8e2 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/CranialExtraction.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/CranialExtraction.java @@ -86,7 +86,7 @@ class CranialExtractionEffect extends OneShotEffect<CranialExtractionEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); Player controller = game.getPlayer(source.getControllerId()); if (player != null && controller != null) { Choice cardChoice = new ChoiceImpl(); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HeartbeatOfSpring.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HeartbeatOfSpring.java index b2f000f801..90e6a55e36 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HeartbeatOfSpring.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HeartbeatOfSpring.java @@ -124,7 +124,7 @@ class HeartbeatOfSpringEffect extends ManaEffect<HeartbeatOfSpringEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent land = game.getPermanent(this.targetPointer.getFirst(source)); + Permanent land = game.getPermanent(this.targetPointer.getFirst(game, source)); Abilities<ManaAbility> mana = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD); Mana types = new Mana(); for (ManaAbility ability: mana) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HisokaMinamoSensei.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HisokaMinamoSensei.java index 86f96e3333..9b359a8c76 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HisokaMinamoSensei.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HisokaMinamoSensei.java @@ -140,11 +140,11 @@ class HisokaMinamoSenseiCounterEffect extends OneShotEffect<HisokaMinamoSenseiCo @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { HisokaMinamoSenseiDiscardTargetCost cost = (HisokaMinamoSenseiDiscardTargetCost) source.getCosts().get(0); if (cost != null && cost.getConvertedCosts() == spell.getManaCost().convertedManaCost()) { - return game.getStack().counter(targetPointer.getFirst(source), source.getSourceId(), game); + return game.getStack().counter(targetPointer.getFirst(game, source), source.getSourceId(), game); } } return false; diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HisokasGuard.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HisokasGuard.java index 672322927d..af6f782426 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HisokasGuard.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HisokasGuard.java @@ -110,7 +110,7 @@ class HisokasGuardGainAbilityTargetEffect extends ContinuousEffectImpl<HisokasGu @Override public void init(Ability source, Game game) { // remember the guarded creature - Permanent guardedCreature = game.getPermanent(this.getTargetPointer().getFirst(source)); + Permanent guardedCreature = game.getPermanent(this.getTargetPointer().getFirst(game, source)); Permanent hisokasGuard = game.getPermanent(source.getSourceId()); if (guardedCreature != null && hisokasGuard != null) { hisokasGuard.addConnectedCard("HisokasGuard", guardedCreature.getId()); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KikuNightsFlower.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KikuNightsFlower.java index 8773bb717e..d05420052d 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KikuNightsFlower.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KikuNightsFlower.java @@ -100,7 +100,7 @@ class KikuNightsFlowerEffect extends OneShotEffect<KikuNightsFlowerEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(permanent.getPower().getValue(), permanent.getId(), game, true, false); return true; diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/Mindblaze.java b/Mage.Sets/src/mage/sets/championsofkamigawa/Mindblaze.java index 37e7a3282d..bacff50a96 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/Mindblaze.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/Mindblaze.java @@ -90,7 +90,7 @@ class MindblazeEffect extends OneShotEffect<MindblazeEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); Player playerControls = game.getPlayer(source.getControllerId()); if (player != null && playerControls != null) { Choice cardChoice = new ChoiceImpl(); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java b/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java index 602b623cbc..f2ed03e811 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/NezumiGraverobber.java @@ -99,7 +99,7 @@ class NezumiGraverobberFlipEffect extends OneShotEffect<NezumiGraverobberFlipEff @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); if (card != null) { Player player = game.getPlayer(card.getOwnerId()); if (player != null) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/SosukeSonOfSeshiro.java b/Mage.Sets/src/mage/sets/championsofkamigawa/SosukeSonOfSeshiro.java index 248eef79a7..4f03e3fdf5 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/SosukeSonOfSeshiro.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/SosukeSonOfSeshiro.java @@ -139,7 +139,7 @@ class SosukeSonOfSeshiroEffect extends OneShotEffect<SosukeSonOfSeshiroEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent targetCreature = game.getPermanent(this.getTargetPointer().getFirst(source)); + Permanent targetCreature = game.getPermanent(this.getTargetPointer().getFirst(game, source)); if (targetCreature != null) { AtTheEndOfCombatDelayedTriggeredAbility delayedAbility = new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyTargetEffect()); delayedAbility.setSourceId(source.getSourceId()); diff --git a/Mage.Sets/src/mage/sets/conflux/DarkTemper.java b/Mage.Sets/src/mage/sets/conflux/DarkTemper.java index 628aca46f8..44e40703c9 100644 --- a/Mage.Sets/src/mage/sets/conflux/DarkTemper.java +++ b/Mage.Sets/src/mage/sets/conflux/DarkTemper.java @@ -85,7 +85,7 @@ class DarkTemperEffect extends OneShotEffect<DarkTemperEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent == null) { return false; } diff --git a/Mage.Sets/src/mage/sets/darkascension/AfflictedDeserter.java b/Mage.Sets/src/mage/sets/darkascension/AfflictedDeserter.java index 64782193d2..cde072d26e 100644 --- a/Mage.Sets/src/mage/sets/darkascension/AfflictedDeserter.java +++ b/Mage.Sets/src/mage/sets/darkascension/AfflictedDeserter.java @@ -152,8 +152,8 @@ class WerewolfRansackerEffect extends OneShotEffect<WerewolfRansackerEffect> { @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - if (targetPointer.getTargets(source).size() > 0) { - for (UUID permanentId : targetPointer.getTargets(source)) { + if (targetPointer.getTargets(game, source).size() > 0) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { if (permanent.destroy(source.getId(), game, false)) { diff --git a/Mage.Sets/src/mage/sets/darkascension/CurseOfEchoes.java b/Mage.Sets/src/mage/sets/darkascension/CurseOfEchoes.java index 73e1c3ebb7..c5d5831c10 100644 --- a/Mage.Sets/src/mage/sets/darkascension/CurseOfEchoes.java +++ b/Mage.Sets/src/mage/sets/darkascension/CurseOfEchoes.java @@ -142,7 +142,7 @@ class CurseOfEchoesEffect extends OneShotEffect<CurseOfEchoesEffect> { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { String chooseMessage = "Copy target spell? You may choose new targets for the copy."; for (UUID playerId: game.getPlayerList()) { diff --git a/Mage.Sets/src/mage/sets/darkascension/DungeonGeists.java b/Mage.Sets/src/mage/sets/darkascension/DungeonGeists.java index a430fef4b3..193f038b51 100644 --- a/Mage.Sets/src/mage/sets/darkascension/DungeonGeists.java +++ b/Mage.Sets/src/mage/sets/darkascension/DungeonGeists.java @@ -136,7 +136,7 @@ class DungeonGeistsEffect extends ReplacementEffectImpl<DungeonGeistsEffect> { if (game.getTurn().getStepType() == Constants.PhaseStep.UNTAP && event.getType() == GameEvent.EventType.UNTAP) { - if (event.getTargetId().equals(targetPointer.getFirst(source))) { + if (event.getTargetId().equals(targetPointer.getFirst(game, source))) { return true; } } diff --git a/Mage.Sets/src/mage/sets/darkascension/HavengulLich.java b/Mage.Sets/src/mage/sets/darkascension/HavengulLich.java index 2c7a268da2..c37545a704 100644 --- a/Mage.Sets/src/mage/sets/darkascension/HavengulLich.java +++ b/Mage.Sets/src/mage/sets/darkascension/HavengulLich.java @@ -115,7 +115,7 @@ class HavengulLichPlayEffect extends AsThoughEffectImpl<HavengulLichPlayEffect> public boolean applies(UUID sourceId, Ability source, Game game) { Card card = game.getCard(sourceId); if (card != null && game.getState().getZone(card.getId()) == Constants.Zone.GRAVEYARD) { - if (targetPointer.getFirst(source).equals(card.getId())) + if (targetPointer.getFirst(game, source).equals(card.getId())) return true; } return false; @@ -136,7 +136,7 @@ class HavengulLichPlayedEffect extends OneShotEffect<HavengulLichPlayedEffect> { @Override public boolean apply(Game game, Ability source) { - DelayedTriggeredAbility ability = new HavengulLichDelayedTriggeredAbility(targetPointer.getFirst(source)); + DelayedTriggeredAbility ability = new HavengulLichDelayedTriggeredAbility(targetPointer.getFirst(game, source)); ability.setSourceId(source.getSourceId()); ability.setControllerId(source.getControllerId()); game.addDelayedTriggeredAbility(ability); diff --git a/Mage.Sets/src/mage/sets/darkascension/IncreasingSavagery.java b/Mage.Sets/src/mage/sets/darkascension/IncreasingSavagery.java index 8ced3a12c0..c3886a10f8 100644 --- a/Mage.Sets/src/mage/sets/darkascension/IncreasingSavagery.java +++ b/Mage.Sets/src/mage/sets/darkascension/IncreasingSavagery.java @@ -91,7 +91,7 @@ class IncreasingSavageryEffect extends OneShotEffect<IncreasingSavageryEffect> { if (spell.getFromZone() == Constants.Zone.GRAVEYARD) { amount = 10; } - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.addCounters(CounterType.P1P1.createInstance(amount), game); } diff --git a/Mage.Sets/src/mage/sets/darkascension/IncreasingVengeance.java b/Mage.Sets/src/mage/sets/darkascension/IncreasingVengeance.java index bb1ee8ebab..f0762faaaf 100644 --- a/Mage.Sets/src/mage/sets/darkascension/IncreasingVengeance.java +++ b/Mage.Sets/src/mage/sets/darkascension/IncreasingVengeance.java @@ -94,7 +94,7 @@ class IncreasingVengeanceEffect extends OneShotEffect<IncreasingVengeanceEffect> @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { Spell copy = spell.copySpell(); copy.setControllerId(source.getControllerId()); diff --git a/Mage.Sets/src/mage/sets/darkascension/LostInTheWoods.java b/Mage.Sets/src/mage/sets/darkascension/LostInTheWoods.java index 6e4518ed3e..86d809cdb3 100644 --- a/Mage.Sets/src/mage/sets/darkascension/LostInTheWoods.java +++ b/Mage.Sets/src/mage/sets/darkascension/LostInTheWoods.java @@ -97,7 +97,7 @@ class LostInTheWoodsEffect extends OneShotEffect<LostInTheWoodsEffect> { if (card != null) { if (card.getSubtype().contains("Forest")) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.removeFromCombat(game); } diff --git a/Mage.Sets/src/mage/sets/darkascension/SoulSeizer.java b/Mage.Sets/src/mage/sets/darkascension/SoulSeizer.java index 2b8c32c639..fcdb4a7bdf 100644 --- a/Mage.Sets/src/mage/sets/darkascension/SoulSeizer.java +++ b/Mage.Sets/src/mage/sets/darkascension/SoulSeizer.java @@ -136,7 +136,7 @@ class SoulSeizerEffect extends OneShotEffect<SoulSeizerEffect> { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null && permanent.canTransform()) { if (permanent.transform(game)) { - Permanent attachTo = game.getPermanent(targetPointer.getFirst(source)); + Permanent attachTo = game.getPermanent(targetPointer.getFirst(game, source)); if (attachTo != null) { return attachTo.addAttachment(source.getSourceId(), game); } diff --git a/Mage.Sets/src/mage/sets/darkascension/SpitefulShadows.java b/Mage.Sets/src/mage/sets/darkascension/SpitefulShadows.java index 5e512a29cc..203c9f8b12 100644 --- a/Mage.Sets/src/mage/sets/darkascension/SpitefulShadows.java +++ b/Mage.Sets/src/mage/sets/darkascension/SpitefulShadows.java @@ -132,7 +132,7 @@ class SpitefulShadowsEffect extends OneShotEffect<SpitefulShadowsEffect> { @Override public boolean apply(Game game, Ability source) { Integer damageAmount = (Integer) this.getValue("damageAmount"); - UUID targetId = this.targetPointer.getFirst(source); + UUID targetId = this.targetPointer.getFirst(game, source); if (damageAmount != null && targetId != null) { Permanent permanent = game.getPermanent(targetId); if (permanent == null) { diff --git a/Mage.Sets/src/mage/sets/darkascension/WrackWithMadness.java b/Mage.Sets/src/mage/sets/darkascension/WrackWithMadness.java index 4cdb68d455..a9923cb850 100644 --- a/Mage.Sets/src/mage/sets/darkascension/WrackWithMadness.java +++ b/Mage.Sets/src/mage/sets/darkascension/WrackWithMadness.java @@ -83,7 +83,7 @@ class WrackWithMadnessEffect extends OneShotEffect<WrackWithMadnessEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(permanent.getPower().getValue(), permanent.getId(), game, true, false); return true; diff --git a/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java b/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java index 2e592d301f..298920e699 100644 --- a/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java +++ b/Mage.Sets/src/mage/sets/darksteel/EmissaryOfHope.java @@ -93,7 +93,7 @@ class EmissaryOfHopeEffect extends OneShotEffect<EmissaryOfHopeEffect> { @Override public boolean apply(Game game, Ability source) { - Player targetPlayer = game.getPlayer(targetPointer.getFirst(source)); + Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); Player sourcePlayer = game.getPlayer(source.getControllerId()); if (targetPlayer != null && sourcePlayer != null) { int amount = game.getBattlefield().count(filter, targetPlayer.getId(), game); diff --git a/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java b/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java index 1a73eb354f..e210fc13c0 100644 --- a/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java +++ b/Mage.Sets/src/mage/sets/eventide/DeathbringerLiege.java @@ -108,7 +108,7 @@ class DeathbringerLiegeEffect extends OneShotEffect<DeathbringerLiegeEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent p = game.getPermanent(targetPointer.getFirst(source)); + Permanent p = game.getPermanent(targetPointer.getFirst(game, source)); if (p != null && p.isTapped()) { p.destroy(source.getSourceId(), game, false); } diff --git a/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java b/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java index 5738cbd527..7dd3ccd2cc 100644 --- a/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java +++ b/Mage.Sets/src/mage/sets/innistrad/BackFromTheBrink.java @@ -87,7 +87,7 @@ class BackFromTheBrinkEffect extends OneShotEffect<BackFromTheBrinkEffect> { @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(this.targetPointer.getFirst(source)); + Card card = game.getCard(this.targetPointer.getFirst(game, source)); if (card != null) { EmptyToken token = new EmptyToken(); CardUtil.copyTo(token).from(card); diff --git a/Mage.Sets/src/mage/sets/innistrad/BalefireDragon.java b/Mage.Sets/src/mage/sets/innistrad/BalefireDragon.java index 3400e96124..966e4d9aea 100644 --- a/Mage.Sets/src/mage/sets/innistrad/BalefireDragon.java +++ b/Mage.Sets/src/mage/sets/innistrad/BalefireDragon.java @@ -86,7 +86,7 @@ class BalefireDragonEffect extends OneShotEffect<BalefireDragonEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { int amount = (Integer)getValue("damage"); if (amount > 0) { diff --git a/Mage.Sets/src/mage/sets/innistrad/BrimstoneVolley.java b/Mage.Sets/src/mage/sets/innistrad/BrimstoneVolley.java index 1718b82404..95e822f638 100644 --- a/Mage.Sets/src/mage/sets/innistrad/BrimstoneVolley.java +++ b/Mage.Sets/src/mage/sets/innistrad/BrimstoneVolley.java @@ -86,12 +86,12 @@ class BrimstoneVolleyEffect extends OneShotEffect<BrimstoneVolleyEffect> { if (watcher.conditionMet()) { damage = 5; } - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(damage, source.getSourceId(), game, true, false); return true; } - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.damage(damage, source.getSourceId(), game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/innistrad/CacklingCounterpart.java b/Mage.Sets/src/mage/sets/innistrad/CacklingCounterpart.java index 4b3943886d..391c2dd5bd 100644 --- a/Mage.Sets/src/mage/sets/innistrad/CacklingCounterpart.java +++ b/Mage.Sets/src/mage/sets/innistrad/CacklingCounterpart.java @@ -85,7 +85,7 @@ class CacklingCounterpartEffect extends OneShotEffect<CacklingCounterpartEffect> @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(this.targetPointer.getFirst(source)); + Card card = game.getCard(this.targetPointer.getFirst(game, source)); if (card != null) { EmptyToken token = new EmptyToken(); CardUtil.copyTo(token).from(card); diff --git a/Mage.Sets/src/mage/sets/innistrad/CreepyDoll.java b/Mage.Sets/src/mage/sets/innistrad/CreepyDoll.java index d9ede6935c..6d227fd639 100644 --- a/Mage.Sets/src/mage/sets/innistrad/CreepyDoll.java +++ b/Mage.Sets/src/mage/sets/innistrad/CreepyDoll.java @@ -123,7 +123,7 @@ class CreepyDollEffect extends OneShotEffect<CreepyDollEffect> { Player player = game.getPlayer(source.getControllerId()); if (player != null) { if (player.flipCoin(game)) { - UUID targetId = getTargetPointer().getFirst(source); + UUID targetId = getTargetPointer().getFirst(game, source); Permanent permanent = game.getPermanent(targetId); if (permanent != null) { permanent.destroy(source.getId(), game, false); diff --git a/Mage.Sets/src/mage/sets/innistrad/ElderCathar.java b/Mage.Sets/src/mage/sets/innistrad/ElderCathar.java index 3aa0b418da..2e4bf0687d 100644 --- a/Mage.Sets/src/mage/sets/innistrad/ElderCathar.java +++ b/Mage.Sets/src/mage/sets/innistrad/ElderCathar.java @@ -94,7 +94,7 @@ class ElderCatharAddCountersTargetEffect extends OneShotEffect<ElderCatharAddCou @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { if (counter != null) { if (permanent.hasSubtype("Human")) { diff --git a/Mage.Sets/src/mage/sets/innistrad/FrightfulDelusion.java b/Mage.Sets/src/mage/sets/innistrad/FrightfulDelusion.java index b8567a19a0..b7e1d8bb1c 100644 --- a/Mage.Sets/src/mage/sets/innistrad/FrightfulDelusion.java +++ b/Mage.Sets/src/mage/sets/innistrad/FrightfulDelusion.java @@ -87,7 +87,7 @@ class FrightfulDelusionEffect extends OneShotEffect<FrightfulDelusionEffect> { @Override public boolean apply(Game game, Ability source) { StackObject spell = game.getStack().getStackObject( - targetPointer.getFirst(source)); + targetPointer.getFirst(game, source)); Cost cost = new GenericManaCost(1); if (spell != null) { Player player = game.getPlayer(spell.getControllerId()); diff --git a/Mage.Sets/src/mage/sets/innistrad/GarrukRelentless.java b/Mage.Sets/src/mage/sets/innistrad/GarrukRelentless.java index d033aff22f..d6240f215f 100644 --- a/Mage.Sets/src/mage/sets/innistrad/GarrukRelentless.java +++ b/Mage.Sets/src/mage/sets/innistrad/GarrukRelentless.java @@ -135,7 +135,7 @@ class GarrukRelentlessDamageEffect extends OneShotEffect<GarrukRelentlessDamageE @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { int damage = permanent.getPower().getValue(); permanent.damage(3, source.getSourceId(), game, true, false); diff --git a/Mage.Sets/src/mage/sets/innistrad/HereticsPunishment.java b/Mage.Sets/src/mage/sets/innistrad/HereticsPunishment.java index ec2d4c6521..12e979875d 100644 --- a/Mage.Sets/src/mage/sets/innistrad/HereticsPunishment.java +++ b/Mage.Sets/src/mage/sets/innistrad/HereticsPunishment.java @@ -96,12 +96,12 @@ class HereticsPunishmentEffect extends OneShotEffect<HereticsPunishmentEffect> { maxCost = test; } } - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(maxCost, source.getSourceId(), game, true, false); return true; } - Player targetPlayer = game.getPlayer(targetPointer.getFirst(source)); + Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); if (targetPlayer != null) { targetPlayer.damage(maxCost, source.getSourceId(), game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/innistrad/SeverTheBloodline.java b/Mage.Sets/src/mage/sets/innistrad/SeverTheBloodline.java index 4313a0dd44..b891c3f1cb 100644 --- a/Mage.Sets/src/mage/sets/innistrad/SeverTheBloodline.java +++ b/Mage.Sets/src/mage/sets/innistrad/SeverTheBloodline.java @@ -90,7 +90,7 @@ class SeverTheBloodlineEffect extends OneShotEffect<SeverTheBloodlineEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent targetPermanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent targetPermanent = game.getPermanent(targetPointer.getFirst(game, source)); if (targetPermanent != null) { FilterCreaturePermanent filter = new FilterCreaturePermanent(); filter.getName().add(targetPermanent.getName()); diff --git a/Mage.Sets/src/mage/sets/innistrad/SkaabRuinator.java b/Mage.Sets/src/mage/sets/innistrad/SkaabRuinator.java index f4f1ef40ba..ca80654f4a 100644 --- a/Mage.Sets/src/mage/sets/innistrad/SkaabRuinator.java +++ b/Mage.Sets/src/mage/sets/innistrad/SkaabRuinator.java @@ -138,7 +138,7 @@ class SkaabRuinatorEffect extends OneShotEffect<SkaabRuinatorEffect> { @Override public boolean apply(Game game, Ability source) { - Card target = (Card) game.getObject(targetPointer.getFirst(source)); + Card target = (Card) game.getObject(targetPointer.getFirst(game, source)); if (target != null) { Player controller = game.getPlayer(target.getOwnerId()); if (controller != null) { diff --git a/Mage.Sets/src/mage/sets/innistrad/SnapcasterMage.java b/Mage.Sets/src/mage/sets/innistrad/SnapcasterMage.java index db8182a6ab..91df7ef935 100644 --- a/Mage.Sets/src/mage/sets/innistrad/SnapcasterMage.java +++ b/Mage.Sets/src/mage/sets/innistrad/SnapcasterMage.java @@ -108,7 +108,7 @@ class SnapcasterMageEffect extends ContinuousEffectImpl<SnapcasterMageEffect> { @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); if (card != null) { FlashbackAbility ability; if (card.getCardType().contains(CardType.INSTANT)) diff --git a/Mage.Sets/src/mage/sets/magic2010/ConsumeSpirit.java b/Mage.Sets/src/mage/sets/magic2010/ConsumeSpirit.java index be55c050ee..ea81575f72 100644 --- a/Mage.Sets/src/mage/sets/magic2010/ConsumeSpirit.java +++ b/Mage.Sets/src/mage/sets/magic2010/ConsumeSpirit.java @@ -90,11 +90,11 @@ class ConsumeSpiritEffect extends OneShotEffect<ConsumeSpiritEffect> { public boolean apply(Game game, Ability source) { int damage = source.getManaCostsToPay().getX(); if (damage > 0) { - Permanent permanent = game.getPermanent(getTargetPointer().getFirst(source)); + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); if (permanent != null) { permanent.damage(damage, source.getSourceId(), game, true, false); } else { - Player player = game.getPlayer(getTargetPointer().getFirst(source)); + Player player = game.getPlayer(getTargetPointer().getFirst(game, source)); if (player != null) { player.damage(damage, source.getSourceId(), game, false, true); } diff --git a/Mage.Sets/src/mage/sets/magic2010/Fireball.java b/Mage.Sets/src/mage/sets/magic2010/Fireball.java index 0e45428b0e..e4b75cd70f 100644 --- a/Mage.Sets/src/mage/sets/magic2010/Fireball.java +++ b/Mage.Sets/src/mage/sets/magic2010/Fireball.java @@ -86,12 +86,12 @@ class FireballEffect extends OneShotEffect<FireballEffect> { @Override public boolean apply(Game game, Ability source) { - int numTargets = targetPointer.getTargets(source).size(); + int numTargets = targetPointer.getTargets(game, source).size(); int damage = source.getManaCostsToPay().getX(); if (numTargets > 0) { int damagePer = damage/numTargets; if (damagePer > 0) { - for (UUID targetId: targetPointer.getTargets(source)) { + for (UUID targetId: targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(targetId); if (permanent != null) { permanent.damage(damagePer, source.getSourceId(), game, true, false); diff --git a/Mage.Sets/src/mage/sets/magic2010/HiveMind.java b/Mage.Sets/src/mage/sets/magic2010/HiveMind.java index 1cb62089c3..d233d21723 100644 --- a/Mage.Sets/src/mage/sets/magic2010/HiveMind.java +++ b/Mage.Sets/src/mage/sets/magic2010/HiveMind.java @@ -121,7 +121,7 @@ class HiveMindEffect extends OneShotEffect<HiveMindEffect> { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); Player player = game.getPlayer(source.getControllerId()); if (spell != null && player != null) { Set<UUID> players = player.getInRange(); diff --git a/Mage.Sets/src/mage/sets/magic2010/SphinxAmbassador.java b/Mage.Sets/src/mage/sets/magic2010/SphinxAmbassador.java index ee67ed047b..66f401af17 100644 --- a/Mage.Sets/src/mage/sets/magic2010/SphinxAmbassador.java +++ b/Mage.Sets/src/mage/sets/magic2010/SphinxAmbassador.java @@ -96,7 +96,7 @@ class SphinxAmbassadorEffect extends OneShotEffect<SphinxAmbassadorEffect> { @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); - Player targetPlayer = game.getPlayer(targetPointer.getFirst(source)); + Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null && targetPlayer != null) { TargetCardInLibrary target = new TargetCardInLibrary(); diff --git a/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java b/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java index 8f29a4fa9e..a0394cbdb6 100644 --- a/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java +++ b/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java @@ -87,7 +87,7 @@ class MerfolkSpyEffect extends OneShotEffect<MerfolkSpyEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null && player.getHand().size() > 0) { Cards revealed = new CardsImpl(); revealed.add(player.getHand().getRandom(game)); diff --git a/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java b/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java index e46c03f15d..9c1c0d0688 100644 --- a/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java +++ b/Mage.Sets/src/mage/sets/magic2012/BloodlordOfVaasgoth.java @@ -108,7 +108,7 @@ class BloodlordOfVaasgothEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { - Spell object = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell object = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (object != null) { Permanent permanent = game.getPermanent(object.getSourceId()); if (permanent != null) { diff --git a/Mage.Sets/src/mage/sets/magic2012/CrownOfEmpires.java b/Mage.Sets/src/mage/sets/magic2012/CrownOfEmpires.java index a3c43a1bd7..6ebb8f0234 100644 --- a/Mage.Sets/src/mage/sets/magic2012/CrownOfEmpires.java +++ b/Mage.Sets/src/mage/sets/magic2012/CrownOfEmpires.java @@ -85,7 +85,7 @@ class CrownOfEmpiresEffect extends OneShotEffect<CrownOfEmpiresEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent target = game.getPermanent(targetPointer.getFirst(source)); + Permanent target = game.getPermanent(targetPointer.getFirst(game, source)); boolean scepter = false; boolean throne = false; for (Permanent permanent : game.getBattlefield().getAllActivePermanents(source.getControllerId())) { @@ -130,7 +130,7 @@ class CrownOfEmpiresControlEffect extends ContinuousEffectImpl<CrownOfEmpiresCon @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); UUID controllerId = (UUID) game.getState().getValue(source.getSourceId().toString()); if (permanent != null && controllerId != null) { return permanent.changeControllerId(controllerId, game); diff --git a/Mage.Sets/src/mage/sets/magic2012/GoblinBangchuckers.java b/Mage.Sets/src/mage/sets/magic2012/GoblinBangchuckers.java index 7bf7cecd0c..fe5fbf3ee3 100644 --- a/Mage.Sets/src/mage/sets/magic2012/GoblinBangchuckers.java +++ b/Mage.Sets/src/mage/sets/magic2012/GoblinBangchuckers.java @@ -91,12 +91,12 @@ class GoblinBangchuckersEffect extends OneShotEffect<GoblinBangchuckersEffect> { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { if (controller.flipCoin(game)) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(2, source.getSourceId(), game, true, false); return true; } - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.damage(2, source.getSourceId(), game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/magic2012/JaceMemoryAdept.java b/Mage.Sets/src/mage/sets/magic2012/JaceMemoryAdept.java index 3c40d6dda0..4e33129c4f 100644 --- a/Mage.Sets/src/mage/sets/magic2012/JaceMemoryAdept.java +++ b/Mage.Sets/src/mage/sets/magic2012/JaceMemoryAdept.java @@ -99,7 +99,7 @@ class JaceMemoryAdeptEffect extends DrawCardTargetEffect { @Override public boolean apply(Game game, Ability source) { - for (UUID target : targetPointer.getTargets(source)) { + for (UUID target : targetPointer.getTargets(game, source)) { Player player = game.getPlayer(target); if (player != null) { player.drawCards(amount.calculate(game, source), game); diff --git a/Mage.Sets/src/mage/sets/magic2012/ScepterOfEmpires.java b/Mage.Sets/src/mage/sets/magic2012/ScepterOfEmpires.java index 2fc46c18d1..e86b58e9da 100644 --- a/Mage.Sets/src/mage/sets/magic2012/ScepterOfEmpires.java +++ b/Mage.Sets/src/mage/sets/magic2012/ScepterOfEmpires.java @@ -95,7 +95,7 @@ class ScepterOfEmpiresEffect extends OneShotEffect<ScepterOfEmpiresEffect> { int amount = throne && crown ? 3 : 1; - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.damage(amount, source.getSourceId(), game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/magic2012/Scrambleverse.java b/Mage.Sets/src/mage/sets/magic2012/Scrambleverse.java index b9211970f4..613d2a2149 100644 --- a/Mage.Sets/src/mage/sets/magic2012/Scrambleverse.java +++ b/Mage.Sets/src/mage/sets/magic2012/Scrambleverse.java @@ -125,7 +125,7 @@ class ScrambleverseControlEffect extends ContinuousEffectImpl<ScrambleverseContr @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null && controllerId != null) { return permanent.changeControllerId(controllerId, game); } diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/Cryptoplasm.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/Cryptoplasm.java index 6d315c7a69..1fc018b9fe 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/Cryptoplasm.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/Cryptoplasm.java @@ -91,7 +91,7 @@ class CryptoplasmTransformEffect extends ContinuousEffectImpl<CryptoplasmTransfo @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); Permanent permanent = game.getPermanent(source.getSourceId()); if (card == null || permanent == null) diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/KnowledgePool.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/KnowledgePool.java index c2dfcfa17a..e93e19c759 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/KnowledgePool.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/KnowledgePool.java @@ -153,7 +153,7 @@ class KnowledgePoolEffect2 extends OneShotEffect<KnowledgePoolEffect2> { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { if (spell.moveToExile(source.getSourceId(), "Knowledge Pool Exile", id, game)) { Player player = game.getPlayer(spell.getControllerId()); diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/Mirrorworks.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/Mirrorworks.java index cdb1fa1456..385cc66fd8 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/Mirrorworks.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/Mirrorworks.java @@ -132,7 +132,7 @@ class MirrorworksEffect extends OneShotEffect<MirrorworksEffect> { if (player.chooseUse(outcome, "Pay " + cost.getText() + " and " + staticText, game)) { cost.clearPaid(); if (cost.pay(source, game, source.getId(), source.getControllerId(), false)) { - UUID targetId = targetPointer.getFirst(source); + UUID targetId = targetPointer.getFirst(game, source); if (targetId != null) { MageObject target = game.getLastKnownInformation(targetId, Constants.Zone.BATTLEFIELD); if (target != null && target instanceof Permanent) { diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java index 47106d14fb..9fc4523c4f 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/MorbidPlunder.java @@ -85,7 +85,7 @@ class MorbidPlunderEffect extends OneShotEffect<MorbidPlunderEffect> { @Override public boolean apply(Game game, Ability source) { boolean result = false; - for (UUID target : targetPointer.getTargets(source)) { + for (UUID target : targetPointer.getTargets(game, source)) { Card card = game.getCard(target); if (card != null) { result |= card.moveToZone(Zone.HAND, source.getId(), game, true); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java b/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java index c356d65cf7..ab8834bc00 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/AuriokSurvivors.java @@ -96,7 +96,7 @@ class AuriokSurvivorsEffect extends OneShotEffect<AuriokSurvivorsEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent p = game.getPermanent(targetPointer.getFirst(source)); + Permanent p = game.getPermanent(targetPointer.getFirst(game, source)); Permanent sourcePermanent = game.getPermanent(source.getSourceId()); Player player = game.getPlayer(source.getControllerId()); if (p != null && player != null && sourcePermanent != null) { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/BeastWithin.java b/Mage.Sets/src/mage/sets/newphyrexia/BeastWithin.java index 8913131ffe..fbe8b29120 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/BeastWithin.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/BeastWithin.java @@ -87,7 +87,7 @@ class BeastWithinEffect extends OneShotEffect<BeastWithinEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(source), Constants.Zone.BATTLEFIELD); + Permanent permanent = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(game, source), Constants.Zone.BATTLEFIELD); if (permanent != null) { BeastToken token = new BeastToken(); token.putOntoBattlefield(1, game, source.getId(), permanent.getControllerId()); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/CorruptedResolve.java b/Mage.Sets/src/mage/sets/newphyrexia/CorruptedResolve.java index c417250f88..d05fcf53c7 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/CorruptedResolve.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/CorruptedResolve.java @@ -80,11 +80,11 @@ class CorruptedResolveEffect extends OneShotEffect<CorruptedResolveEffect> { @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { Player player = game.getPlayer(spell.getControllerId()); if (player != null && player.getCounters().containsKey(CounterType.POISON)) - return game.getStack().counter(targetPointer.getFirst(source), source.getSourceId(), game); + return game.getStack().counter(targetPointer.getFirst(game, source), source.getSourceId(), game); } return false; } diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ExclusionRitual.java b/Mage.Sets/src/mage/sets/newphyrexia/ExclusionRitual.java index 41f65e00d5..496ed4a985 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ExclusionRitual.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ExclusionRitual.java @@ -92,7 +92,7 @@ class ExclusionRitualImprintEffect extends OneShotEffect<ExclusionRitualImprintE @Override public boolean apply(Game game, Ability source) { Permanent sourcePermanent = game.getPermanent(source.getSourceId()); - Permanent targetPermanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent targetPermanent = game.getPermanent(targetPointer.getFirst(game, source)); if (sourcePermanent != null && targetPermanent != null) { targetPermanent.moveToExile(getId(), "Exclusion Ritual (Imprint)", source.getSourceId(), game); sourcePermanent.imprint(targetPermanent.getId(), game); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/GitaxianProbe.java b/Mage.Sets/src/mage/sets/newphyrexia/GitaxianProbe.java index ba24db0f80..8e7c715491 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/GitaxianProbe.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/GitaxianProbe.java @@ -80,7 +80,7 @@ class GitaxianProbeEffect extends OneShotEffect<GitaxianProbeEffect> { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null && controller != null) { controller.lookAtCards("Gitaxian Probe", player.getHand(), game); } diff --git a/Mage.Sets/src/mage/sets/newphyrexia/InvaderParasite.java b/Mage.Sets/src/mage/sets/newphyrexia/InvaderParasite.java index 42ba4b6b90..ec1b7b3a9a 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/InvaderParasite.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/InvaderParasite.java @@ -91,7 +91,7 @@ class InvaderParasiteImprintEffect extends OneShotEffect<InvaderParasiteImprintE @Override public boolean apply(Game game, Ability source) { Permanent sourcePermanent = game.getPermanent(source.getSourceId()); - Permanent targetPermanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent targetPermanent = game.getPermanent(targetPointer.getFirst(game, source)); if (sourcePermanent != null && targetPermanent != null) { targetPermanent.moveToExile(getId(), "Invader Parasite (Imprint)", source.getSourceId(), game); sourcePermanent.imprint(targetPermanent.getId(), game); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/IsolationCell.java b/Mage.Sets/src/mage/sets/newphyrexia/IsolationCell.java index 23116bead0..a9cc54fa41 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/IsolationCell.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/IsolationCell.java @@ -119,7 +119,7 @@ class IsolationCellEffect extends OneShotEffect<IsolationCellEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { GenericManaCost cost = new GenericManaCost(2); if (!cost.pay(source, game, player.getId(), player.getId(), false)) { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/MortisDogs.java b/Mage.Sets/src/mage/sets/newphyrexia/MortisDogs.java index 73c1415cff..4194e3a231 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/MortisDogs.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/MortisDogs.java @@ -89,7 +89,7 @@ class MortisDogsEffect extends OneShotEffect<MortisDogsEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); Permanent sourcePermanent = game.getPermanent(source.getSourceId()); if (player != null && sourcePermanent != null) { player.loseLife(sourcePermanent.getPower().getValue(), game); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/OmenMachine.java b/Mage.Sets/src/mage/sets/newphyrexia/OmenMachine.java index feaf03277e..ed29d8dfd6 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/OmenMachine.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/OmenMachine.java @@ -152,7 +152,7 @@ class OmenMachineEffect2 extends OneShotEffect<OmenMachineEffect2> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { Card card = player.getLibrary().removeFromTop(game); if (card != null) { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java b/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java index 65682b4829..5dc97bbbf6 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java @@ -136,7 +136,7 @@ class VorinclexEffect extends ManaEffect<VorinclexEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent land = game.getPermanent(this.targetPointer.getFirst(source)); + Permanent land = game.getPermanent(this.targetPointer.getFirst(game, source)); Abilities<ManaAbility> mana = land.getAbilities().getManaAbilities(Zone.BATTLEFIELD); Mana types = new Mana(); for (ManaAbility ability: mana) { diff --git a/Mage.Sets/src/mage/sets/newphyrexia/WhisperingSpecter.java b/Mage.Sets/src/mage/sets/newphyrexia/WhisperingSpecter.java index 8fac78c0a4..667935f4c2 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/WhisperingSpecter.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/WhisperingSpecter.java @@ -88,7 +88,7 @@ class WhisperingSpecterEffect extends OneShotEffect<WhisperingSpecterEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { int value = player.getCounters().getCount(CounterType.POISON); if (value > 0) { diff --git a/Mage.Sets/src/mage/sets/ravnika/ClutchOfTheUndercity.java b/Mage.Sets/src/mage/sets/ravnika/ClutchOfTheUndercity.java index ae4fac050a..2ba9661f0f 100644 --- a/Mage.Sets/src/mage/sets/ravnika/ClutchOfTheUndercity.java +++ b/Mage.Sets/src/mage/sets/ravnika/ClutchOfTheUndercity.java @@ -84,7 +84,7 @@ class ClutchOfTheUndercityEffect extends OneShotEffect<ClutchOfTheUndercityEffec @Override public boolean apply(Game game, Ability source) { - Permanent p = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(source), Constants.Zone.BATTLEFIELD); + Permanent p = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(game, source), Constants.Zone.BATTLEFIELD); if (p != null) { Player player = game.getPlayer(p.getControllerId()); if (player != null) { diff --git a/Mage.Sets/src/mage/sets/ravnika/LeaveNoTrace.java b/Mage.Sets/src/mage/sets/ravnika/LeaveNoTrace.java index 34562d002a..cf805e2f86 100644 --- a/Mage.Sets/src/mage/sets/ravnika/LeaveNoTrace.java +++ b/Mage.Sets/src/mage/sets/ravnika/LeaveNoTrace.java @@ -93,7 +93,7 @@ class LeaveNoTraceEffect extends OneShotEffect<LeaveNoTraceEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent target = game.getPermanent(targetPointer.getFirst(source)); + Permanent target = game.getPermanent(targetPointer.getFirst(game, source)); if (target != null) { ObjectColor color = target.getColor(); target.destroy(source.getSourceId(), game, false); diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/GravityWell.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/GravityWell.java index 10b5c67e78..2151511203 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/GravityWell.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/GravityWell.java @@ -122,7 +122,7 @@ class GravityWellEffect extends ContinuousEffectImpl<GravityWellEffect> { @Override public boolean apply(Constants.Layer layer, Constants.SubLayer sublayer, Ability source, Game game) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { switch (layer) { case AbilityAddingRemovingEffects_6: diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/ArcTrail.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/ArcTrail.java index f73208cddb..1eeb216ed5 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/ArcTrail.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/ArcTrail.java @@ -95,7 +95,7 @@ class ArcTrailEffect extends OneShotEffect { boolean twoDamageDone = false; int damage = 2; - for ( UUID target : targetPointer.getTargets(source) ) { + for ( UUID target : targetPointer.getTargets(game, source) ) { Permanent permanent = game.getPermanent(target); if ( twoDamageDone ) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/EngulfingSlagwurm.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/EngulfingSlagwurm.java index e264c2ed1a..2ecaa50324 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/EngulfingSlagwurm.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/EngulfingSlagwurm.java @@ -87,7 +87,7 @@ class EngulfingSlagwurmEffect extends OneShotEffect<EngulfingSlagwurmEffect> { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - MageObject c = game.getLastKnownInformation(targetPointer.getFirst(source), Constants.Zone.BATTLEFIELD); + MageObject c = game.getLastKnownInformation(targetPointer.getFirst(game, source), Constants.Zone.BATTLEFIELD); if (c != null && controller != null) { controller.gainLife(c.getPower().getValue(), game); } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/FulgentDistraction.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/FulgentDistraction.java index d686dfe87c..838d912870 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/FulgentDistraction.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/FulgentDistraction.java @@ -83,7 +83,7 @@ class FulgentDistractionEffect extends OneShotEffect<FulgentDistractionEffect> { @Override public boolean apply(Game game, Ability source) { - for ( UUID target : targetPointer.getTargets(source) ) { + for ( UUID target : targetPointer.getTargets(game, source) ) { Permanent creature = game.getPermanent(target); List<UUID> copiedAttachments = new ArrayList<UUID>(creature.getAttachments()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemArtisan.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemArtisan.java index 5896c15277..6d226f0ec8 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemArtisan.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/GolemArtisan.java @@ -113,7 +113,7 @@ class GolemArtisanEffect extends OneShotEffect<GolemArtisanEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); Player playerControls = game.getPlayer(source.getControllerId()); if (permanent != null && playerControls != null) { Choice abilityChoice = new ChoiceImpl(); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/LiegeOfTheTangle.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/LiegeOfTheTangle.java index 26c17ac924..ab1f00fcbe 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/LiegeOfTheTangle.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/LiegeOfTheTangle.java @@ -174,7 +174,7 @@ class LiegeOfTheTangleEffect extends ContinuousEffectImpl<LiegeOfTheTangleEffect public void init(Ability source, Game game) { super.init(source, game); if (this.affectedObjectsSet) { - for (UUID permId: targetPointer.getTargets(source)) { + for (UUID permId: targetPointer.getTargets(game, source)) { objects.add(permId); } } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Memoricide.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Memoricide.java index b37849c2cd..5b444c07d4 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Memoricide.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Memoricide.java @@ -85,7 +85,7 @@ class MemoricideEffect extends OneShotEffect<MemoricideEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); Player controller = game.getPlayer(source.getControllerId()); if (player != null && controller != null) { Choice cardChoice = new ChoiceImpl(); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MimicVat.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MimicVat.java index 1268364864..cd76757e7a 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MimicVat.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MimicVat.java @@ -155,7 +155,7 @@ class MimicVatEffect extends OneShotEffect<MimicVatEffect> { permanent.clearImprinted(game); // Imprint a new one - UUID target = targetPointer.getFirst(source); + UUID target = targetPointer.getFirst(game, source); if (target != null) { Card card = game.getCard(target); card.moveToExile(getId(), "Mimic Vat (Imprint)", source.getSourceId(), game); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/NimDeathmantle.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/NimDeathmantle.java index 50e759cd81..ee5524fd53 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/NimDeathmantle.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/NimDeathmantle.java @@ -160,7 +160,7 @@ class NimDeathmantleEffect extends OneShotEffect<NimDeathmantleEffect> { if (player.chooseUse(Constants.Outcome.Benefit, equipment.getName() + " - Pay " + cost.getText() + "?", game)) { cost.clearPaid(); if (cost.pay(source, game, source.getId(), source.getControllerId(), false)) { - UUID target = targetPointer.getFirst(source); + UUID target = targetPointer.getFirst(game, source); if (target != null && equipment != null) { Card card = game.getCard(target); // check if it's still in graveyard diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/PainfulQuandary.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/PainfulQuandary.java index b1d25720dc..1f753a44d6 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/PainfulQuandary.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/PainfulQuandary.java @@ -117,7 +117,7 @@ class PainfulQuandryEffect extends OneShotEffect<PainfulQuandryEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { Cost cost = new DiscardTargetCost(new TargetCardInHand()); if (cost.canPay(player.getId(), player.getId(), game)) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/PrecursorGolem.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/PrecursorGolem.java index 1eb3f740e1..469762b834 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/PrecursorGolem.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/PrecursorGolem.java @@ -121,7 +121,7 @@ class PrecursorGolemCopyTriggeredAbility extends TriggeredAbilityImpl<PrecursorG UUID targetGolem = null; SpellAbility sa = spell.getSpellAbility(); for (Effect effect : sa.getEffects()) { - for (UUID target : effect.getTargetPointer().getTargets(sa)) { + for (UUID target : effect.getTargetPointer().getTargets(game, sa)) { Permanent permanent = game.getPermanent(target); if (permanent != null) { if (!permanent.hasSubtype("Golem")) { @@ -170,7 +170,7 @@ class PrecursorGolemCopySpellEffect extends OneShotEffect<PrecursorGolemCopySpel @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { SpellAbility sa = spell.getSpellAbility(); UUID targetedGolem = (UUID) getValue("targetedGolem"); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/PsychicMiasma.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/PsychicMiasma.java index 64d3a5926c..d4bd01d6e1 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/PsychicMiasma.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/PsychicMiasma.java @@ -82,7 +82,7 @@ class PsychicMiasmaEffect1 extends OneShotEffect<PsychicMiasmaEffect1> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { TargetDiscard target = new TargetDiscard(player.getId()); player.choose(Outcome.Discard, target, source.getSourceId(), game); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/RustTick.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/RustTick.java index 9671f20710..bd8f8a8bf1 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/RustTick.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/RustTick.java @@ -97,7 +97,7 @@ class RustTickTapTargetEffect extends TapTargetEffect { public boolean apply(Game game, Ability source) { Permanent rustTick = game.getPermanent(source.getSourceId()); if (rustTick != null) rustTick.clearConnectedCards("HisokasGuard"); - for (UUID target : targetPointer.getTargets(source)) { + for (UUID target : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(target); if (permanent != null) { rustTick.addConnectedCard("HisokasGuard", permanent.getId()); diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/ShapeAnew.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/ShapeAnew.java index cf349c923a..be7912aa95 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/ShapeAnew.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/ShapeAnew.java @@ -89,7 +89,7 @@ public class ShapeAnew extends CardImpl<ShapeAnew> { @Override public boolean apply(Game game, Ability source) { - Permanent sourcePermanent = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(source), Constants.Zone.BATTLEFIELD); + Permanent sourcePermanent = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(game, source), Constants.Zone.BATTLEFIELD); if (sourcePermanent == null) { return false; } diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/VenserTheSojourner.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/VenserTheSojourner.java index 8b24844a1c..36360f6e16 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/VenserTheSojourner.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/VenserTheSojourner.java @@ -110,8 +110,8 @@ class VenserTheSojournerEffect extends OneShotEffect<VenserTheSojournerEffect> { @Override public boolean apply(Game game, Ability source) { - if (getTargetPointer().getFirst(source) != null) { - Permanent permanent = game.getPermanent(getTargetPointer().getFirst(source)); + if (getTargetPointer().getFirst(game, source) != null) { + Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); if (permanent != null) { if (permanent.moveToExile(source.getSourceId(), "Venser, the Sojourner", source.getSourceId(), game)) { //create delayed triggered ability diff --git a/Mage.Sets/src/mage/sets/shardsofalara/CradleOfVitality.java b/Mage.Sets/src/mage/sets/shardsofalara/CradleOfVitality.java index 9113dd1cea..4b02222741 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/CradleOfVitality.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/CradleOfVitality.java @@ -124,7 +124,7 @@ class CradleOfVitalityEffect extends OneShotEffect<CradleOfVitalityEffect> { public boolean apply(Game game, Ability source) { int affectedTargets = 0; Integer amount = (Integer) getValue("amount"); - for (UUID uuid : targetPointer.getTargets(source)) { + for (UUID uuid : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(uuid); permanent.addCounters(CounterType.P1P1.createInstance(amount), game); affectedTargets ++; diff --git a/Mage.Sets/src/mage/sets/tenth/Peek.java b/Mage.Sets/src/mage/sets/tenth/Peek.java index 62fce094a1..d9462de28e 100644 --- a/Mage.Sets/src/mage/sets/tenth/Peek.java +++ b/Mage.Sets/src/mage/sets/tenth/Peek.java @@ -81,7 +81,7 @@ class PeekEffect extends OneShotEffect<PeekEffect> { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null && controller != null) { controller.lookAtCards("Peek", player.getHand(), game); } diff --git a/Mage.Sets/src/mage/sets/worldwake/ArchonOfRedemption.java b/Mage.Sets/src/mage/sets/worldwake/ArchonOfRedemption.java index 93ed10c876..59c6de2c1b 100644 --- a/Mage.Sets/src/mage/sets/worldwake/ArchonOfRedemption.java +++ b/Mage.Sets/src/mage/sets/worldwake/ArchonOfRedemption.java @@ -126,10 +126,10 @@ class ArchonOfRedemptionEffect extends OneShotEffect<ArchonOfRedemptionEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent p = game.getPermanent(targetPointer.getFirst(source)); + Permanent p = game.getPermanent(targetPointer.getFirst(game, source)); Player player = game.getPlayer(source.getControllerId()); if (p == null) { - p = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(source), Constants.Zone.BATTLEFIELD); + p = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(game, source), Constants.Zone.BATTLEFIELD); } if (p != null && player != null) { player.gainLife(p.getPower().getValue(), game); diff --git a/Mage.Sets/src/mage/sets/worldwake/NaturesClaim.java b/Mage.Sets/src/mage/sets/worldwake/NaturesClaim.java index 40b64160dc..ba0f00faf6 100644 --- a/Mage.Sets/src/mage/sets/worldwake/NaturesClaim.java +++ b/Mage.Sets/src/mage/sets/worldwake/NaturesClaim.java @@ -87,7 +87,7 @@ class NaturesClaimEffect extends OneShotEffect<NaturesClaimEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent target = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(source), Constants.Zone.BATTLEFIELD); + Permanent target = (Permanent) game.getLastKnownInformation(targetPointer.getFirst(game, source), Constants.Zone.BATTLEFIELD); if (target != null) { Player player = game.getPlayer(target.getControllerId()); if (player != null) { diff --git a/Mage.Sets/src/mage/sets/worldwake/StrengthOfTheTajuru.java b/Mage.Sets/src/mage/sets/worldwake/StrengthOfTheTajuru.java index bc5f023420..cf8369b0d5 100644 --- a/Mage.Sets/src/mage/sets/worldwake/StrengthOfTheTajuru.java +++ b/Mage.Sets/src/mage/sets/worldwake/StrengthOfTheTajuru.java @@ -100,7 +100,7 @@ class StrengthOfTheTajuruAddCountersTargetEffect extends OneShotEffect<StrengthO int affectedTargets = 0; int amount = source.getManaCostsToPay().getX() + 1; Counter counter = CounterType.P1P1.createInstance(amount); - for (UUID uuid : targetPointer.getTargets(source)) { + for (UUID uuid : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(uuid); if (permanent != null) { permanent.addCounters(counter.copy(), game); diff --git a/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java b/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java index 3c3600290c..2549c08008 100644 --- a/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java +++ b/Mage.Sets/src/mage/sets/worldwake/WalkingAtlas.java @@ -84,7 +84,7 @@ class WalkingAtlasEffect extends OneShotEffect<WalkingAtlasEffect> { @Override public boolean apply(Game game, Ability source) { - Card c = game.getCard(targetPointer.getFirst(source)); + Card c = game.getCard(targetPointer.getFirst(game, source)); if (c != null) { c.moveToZone(Constants.Zone.BATTLEFIELD, source.getSourceId(), game, false); return true; diff --git a/Mage.Sets/src/mage/sets/zendikar/BlazingTorch.java b/Mage.Sets/src/mage/sets/zendikar/BlazingTorch.java index 00ac49c931..ac42f2aff3 100644 --- a/Mage.Sets/src/mage/sets/zendikar/BlazingTorch.java +++ b/Mage.Sets/src/mage/sets/zendikar/BlazingTorch.java @@ -182,12 +182,12 @@ class BlazingTorchDamageEffect extends OneShotEffect<BlazingTorchDamageEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null && sourceId != null) { permanent.damage(2, sourceId, game, true, false); return true; } - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null && sourceId != null) { player.damage(2, sourceId, game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/zendikar/ChandraAblaze.java b/Mage.Sets/src/mage/sets/zendikar/ChandraAblaze.java index 0a7cd493ed..9d102e4a5a 100644 --- a/Mage.Sets/src/mage/sets/zendikar/ChandraAblaze.java +++ b/Mage.Sets/src/mage/sets/zendikar/ChandraAblaze.java @@ -142,13 +142,13 @@ class ChandraAblazeEffect2 extends OneShotEffect<ChandraAblazeEffect2> { public boolean apply(Game game, Ability source) { Card card = (Card) this.getValue("discardedCard"); if (card != null && card.getColor().isRed()) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(4, source.getSourceId(), game, true, false); return true; } - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.damage(4, source.getSourceId(), game, false, true); return true; diff --git a/Mage.Sets/src/mage/sets/zendikar/KhalniGem.java b/Mage.Sets/src/mage/sets/zendikar/KhalniGem.java index 4feacf5156..b6419b7252 100644 --- a/Mage.Sets/src/mage/sets/zendikar/KhalniGem.java +++ b/Mage.Sets/src/mage/sets/zendikar/KhalniGem.java @@ -101,7 +101,7 @@ class KhalniGemReturnToHandTargetEffect extends OneShotEffect<KhalniGemReturnToH @Override public boolean apply(Game game, Ability source) { - for ( UUID target : targetPointer.getTargets(source) ) { + for ( UUID target : targetPointer.getTargets(game, source) ) { Permanent permanent = game.getPermanent(target); if ( permanent != null ) { permanent.moveToZone(Zone.HAND, source.getId(), game, true); diff --git a/Mage.Sets/src/mage/sets/zendikar/MindbreakTrap.java b/Mage.Sets/src/mage/sets/zendikar/MindbreakTrap.java index eea5cf6bb7..e3fc0ed647 100644 --- a/Mage.Sets/src/mage/sets/zendikar/MindbreakTrap.java +++ b/Mage.Sets/src/mage/sets/zendikar/MindbreakTrap.java @@ -172,8 +172,8 @@ class MindbreakEffect extends OneShotEffect<MindbreakEffect>{ @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - if (targetPointer.getTargets(source).size() > 0) { - for (UUID spellId : targetPointer.getTargets(source)) { + if (targetPointer.getTargets(game, source).size() > 0) { + for (UUID spellId : targetPointer.getTargets(game, source)) { Spell spell = game.getStack().getSpell(spellId); if (spell != null) { spell.moveToExile(null, null, source.getId(), game); diff --git a/Mage.Sets/src/mage/sets/zendikar/SorinMarkov.java b/Mage.Sets/src/mage/sets/zendikar/SorinMarkov.java index e512453a3d..5e1392e12d 100644 --- a/Mage.Sets/src/mage/sets/zendikar/SorinMarkov.java +++ b/Mage.Sets/src/mage/sets/zendikar/SorinMarkov.java @@ -103,7 +103,7 @@ class SorinMarkovEffect extends OneShotEffect<SorinMarkovEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.setLife(10, game); return true; diff --git a/Mage/src/mage/abilities/common/EntersBattlefieldAbility.java b/Mage/src/mage/abilities/common/EntersBattlefieldAbility.java index ea1becb40d..7e998c72c8 100644 --- a/Mage/src/mage/abilities/common/EntersBattlefieldAbility.java +++ b/Mage/src/mage/abilities/common/EntersBattlefieldAbility.java @@ -40,7 +40,7 @@ import mage.abilities.effects.EntersBattlefieldEffect; public class EntersBattlefieldAbility extends StaticAbility<EntersBattlefieldAbility> { public EntersBattlefieldAbility(Effect effect) { - super(Zone.BATTLEFIELD, new EntersBattlefieldEffect(effect, "")); + super(Zone.BATTLEFIELD, new EntersBattlefieldEffect(effect, null)); } public EntersBattlefieldAbility(Effect effect, String rule) { diff --git a/Mage/src/mage/abilities/effects/AuraReplacementEffect.java b/Mage/src/mage/abilities/effects/AuraReplacementEffect.java index e138d7c199..8853345d7d 100644 --- a/Mage/src/mage/abilities/effects/AuraReplacementEffect.java +++ b/Mage/src/mage/abilities/effects/AuraReplacementEffect.java @@ -87,7 +87,7 @@ public class AuraReplacementEffect extends ReplacementEffectImpl<AuraReplacement if (sourceObject instanceof StackAbility) { StackAbility stackAbility = (StackAbility) sourceObject; if (!stackAbility.getEffects().isEmpty()) { - targetId = stackAbility.getEffects().get(0).getTargetPointer().getFirst(stackAbility); + targetId = stackAbility.getEffects().get(0).getTargetPointer().getFirst(game, stackAbility); } } if (targetId == null) { diff --git a/Mage/src/mage/abilities/effects/EntersBattlefieldEffect.java b/Mage/src/mage/abilities/effects/EntersBattlefieldEffect.java index 4e5d07daa2..1bd70399a9 100644 --- a/Mage/src/mage/abilities/effects/EntersBattlefieldEffect.java +++ b/Mage/src/mage/abilities/effects/EntersBattlefieldEffect.java @@ -107,7 +107,7 @@ public class EntersBattlefieldEffect extends ReplacementEffectImpl<EntersBattlef @Override public String getText(Mode mode) { - if (text.length() == 0) + if (text == null || text.length() == 0) return "{this} enters the battlefield " + baseEffects.getText(mode); else return "{this} enters the battlefield " + text; diff --git a/Mage/src/mage/abilities/effects/common/CopyTargetSpellEffect.java b/Mage/src/mage/abilities/effects/common/CopyTargetSpellEffect.java index d8e0876bbd..531a1f6f62 100644 --- a/Mage/src/mage/abilities/effects/common/CopyTargetSpellEffect.java +++ b/Mage/src/mage/abilities/effects/common/CopyTargetSpellEffect.java @@ -52,7 +52,7 @@ public class CopyTargetSpellEffect extends OneShotEffect<CopyTargetSpellEffect> @Override public boolean apply(Game game, Ability source) { - Spell spell = game.getStack().getSpell(targetPointer.getFirst(source)); + Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source)); if (spell != null) { Spell copy = spell.copySpell(); copy.setControllerId(source.getControllerId()); diff --git a/Mage/src/mage/abilities/effects/common/CounterUnlessPaysEffect.java b/Mage/src/mage/abilities/effects/common/CounterUnlessPaysEffect.java index c2e6423790..1de6858b0f 100644 --- a/Mage/src/mage/abilities/effects/common/CounterUnlessPaysEffect.java +++ b/Mage/src/mage/abilities/effects/common/CounterUnlessPaysEffect.java @@ -62,7 +62,7 @@ public class CounterUnlessPaysEffect extends OneShotEffect<CounterUnlessPaysEffe @Override public boolean apply(Game game, Ability source) { - StackObject spell = game.getStack().getStackObject(targetPointer.getFirst(source)); + StackObject spell = game.getStack().getStackObject(targetPointer.getFirst(game, source)); if (spell != null) { Player player = game.getPlayer(spell.getControllerId()); if (player != null) { diff --git a/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java b/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java index 555de8a884..eee0d7fed7 100644 --- a/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/CreateTokenTargetEffect.java @@ -44,7 +44,7 @@ public class CreateTokenTargetEffect extends OneShotEffect<CreateTokenTargetEffe @Override public boolean apply(Game game, Ability source) { int value = amount.calculate(game, source); - token.putOntoBattlefield(value, game, source.getSourceId(), targetPointer.getFirst(source)); + token.putOntoBattlefield(value, game, source.getSourceId(), targetPointer.getFirst(game, source)); return true; } diff --git a/Mage/src/mage/abilities/effects/common/DamageTargetEffect.java b/Mage/src/mage/abilities/effects/common/DamageTargetEffect.java index 57fef8e679..fa268a700f 100644 --- a/Mage/src/mage/abilities/effects/common/DamageTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DamageTargetEffect.java @@ -102,12 +102,12 @@ public class DamageTargetEffect extends OneShotEffect<DamageTargetEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.damage(amount.calculate(game, source), source.getSourceId(), game, preventable, false); return true; } - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.damage(amount.calculate(game, source), source.getSourceId(), game, false, preventable); return true; diff --git a/Mage/src/mage/abilities/effects/common/DestroyTargetEffect.java b/Mage/src/mage/abilities/effects/common/DestroyTargetEffect.java index 63d69154a1..98ca28b0c2 100644 --- a/Mage/src/mage/abilities/effects/common/DestroyTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DestroyTargetEffect.java @@ -84,8 +84,8 @@ public class DestroyTargetEffect extends OneShotEffect<DestroyTargetEffect> { } } } - else if (targetPointer.getTargets(source).size() > 0) { - for (UUID permanentId : targetPointer.getTargets(source)) { + else if (targetPointer.getTargets(game, source).size() > 0) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { permanent.destroy(source.getId(), game, noRegen); diff --git a/Mage/src/mage/abilities/effects/common/DiscardTargetEffect.java b/Mage/src/mage/abilities/effects/common/DiscardTargetEffect.java index 73c11c16bc..0449445fbd 100644 --- a/Mage/src/mage/abilities/effects/common/DiscardTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DiscardTargetEffect.java @@ -77,7 +77,7 @@ public class DiscardTargetEffect extends OneShotEffect<DiscardTargetEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { if (randomDiscard) { int maxAmount = Math.min(amount.calculate(game, source), player.getHand().size()); diff --git a/Mage/src/mage/abilities/effects/common/DrawCardTargetEffect.java b/Mage/src/mage/abilities/effects/common/DrawCardTargetEffect.java index e6bf33b282..f43de6d379 100644 --- a/Mage/src/mage/abilities/effects/common/DrawCardTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DrawCardTargetEffect.java @@ -66,7 +66,7 @@ public class DrawCardTargetEffect extends OneShotEffect<DrawCardTargetEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.drawCards(amount.calculate(game, source), game); return true; diff --git a/Mage/src/mage/abilities/effects/common/ExileFromZoneTargetEffect.java b/Mage/src/mage/abilities/effects/common/ExileFromZoneTargetEffect.java index 60282a0d72..6eba2499a4 100644 --- a/Mage/src/mage/abilities/effects/common/ExileFromZoneTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/ExileFromZoneTargetEffect.java @@ -77,7 +77,7 @@ public class ExileFromZoneTargetEffect extends OneShotEffect<ExileFromZoneTarget @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { Target target = null; switch (zone) { diff --git a/Mage/src/mage/abilities/effects/common/ExileTargetEffect.java b/Mage/src/mage/abilities/effects/common/ExileTargetEffect.java index b827b5c9b4..719ce0ff14 100644 --- a/Mage/src/mage/abilities/effects/common/ExileTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/ExileTargetEffect.java @@ -75,7 +75,7 @@ public class ExileTargetEffect extends OneShotEffect<ExileTargetEffect> { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (exileId == null) { exileId = getId(); @@ -84,7 +84,7 @@ public class ExileTargetEffect extends OneShotEffect<ExileTargetEffect> { if (permanent != null) { return permanent.moveToExile(exileId, exileZone, source.getSourceId(), game); } else { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); if (card != null) { return card.moveToExile(exileId, exileZone, source.getSourceId(), game); } diff --git a/Mage/src/mage/abilities/effects/common/ExileTargetForSourceEffect.java b/Mage/src/mage/abilities/effects/common/ExileTargetForSourceEffect.java index d352a7c45d..5ebdb8ec61 100644 --- a/Mage/src/mage/abilities/effects/common/ExileTargetForSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/ExileTargetForSourceEffect.java @@ -66,12 +66,12 @@ public class ExileTargetForSourceEffect extends OneShotEffect<ExileTargetForSour @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); UUID exileId = source.getSourceId(); if (permanent != null) { return permanent.moveToExile(exileId, exileZone, source.getId(), game); } else { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); if (card != null) { return card.moveToExile(exileId, exileZone, source.getId(), game); } diff --git a/Mage/src/mage/abilities/effects/common/GainLifeTargetEffect.java b/Mage/src/mage/abilities/effects/common/GainLifeTargetEffect.java index 9fd754b13a..ff5e29c6b8 100644 --- a/Mage/src/mage/abilities/effects/common/GainLifeTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/GainLifeTargetEffect.java @@ -61,7 +61,7 @@ public class GainLifeTargetEffect extends OneShotEffect<GainLifeTargetEffect> { @Override public boolean apply(Game game, Ability source) { - for (UUID playerId: targetPointer.getTargets(source)) { + for (UUID playerId: targetPointer.getTargets(game, source)) { Player player = game.getPlayer(playerId); if (player != null) { player.gainLife(life, game); diff --git a/Mage/src/mage/abilities/effects/common/ImprintTargetEffect.java b/Mage/src/mage/abilities/effects/common/ImprintTargetEffect.java index 7dad292f47..1b63b3c892 100644 --- a/Mage/src/mage/abilities/effects/common/ImprintTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/ImprintTargetEffect.java @@ -59,11 +59,11 @@ public class ImprintTargetEffect extends OneShotEffect<ImprintTargetEffect> { public boolean apply(Game game, Ability source) { Permanent sourcePermanent = game.getPermanent(source.getSourceId()); if (sourcePermanent != null) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { sourcePermanent.imprint(permanent.getId(), game); } else { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); if (card != null) { sourcePermanent.imprint(card.getId(), game); } diff --git a/Mage/src/mage/abilities/effects/common/LoseLifeControllerEffect.java b/Mage/src/mage/abilities/effects/common/LoseLifeControllerEffect.java index 40319f1511..fc1b9d69ca 100644 --- a/Mage/src/mage/abilities/effects/common/LoseLifeControllerEffect.java +++ b/Mage/src/mage/abilities/effects/common/LoseLifeControllerEffect.java @@ -64,10 +64,10 @@ public class LoseLifeControllerEffect extends OneShotEffect<LoseLifeControllerEf @Override public boolean apply(Game game, Ability source) { - MageObject targetCard = game.getLastKnownInformation(targetPointer.getFirst(source), Zone.BATTLEFIELD); + MageObject targetCard = game.getLastKnownInformation(targetPointer.getFirst(game, source), Zone.BATTLEFIELD); if ( targetCard == null ) { - MageObject obj = game.getObject(targetPointer.getFirst(source)); + MageObject obj = game.getObject(targetPointer.getFirst(game, source)); if ( obj instanceof Card ) { targetCard = (Card)obj; } diff --git a/Mage/src/mage/abilities/effects/common/LoseLifeTargetEffect.java b/Mage/src/mage/abilities/effects/common/LoseLifeTargetEffect.java index 835c140d5a..fcf2bb0827 100644 --- a/Mage/src/mage/abilities/effects/common/LoseLifeTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/LoseLifeTargetEffect.java @@ -66,7 +66,7 @@ public class LoseLifeTargetEffect extends OneShotEffect<LoseLifeTargetEffect> { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.loseLife(amount.calculate(game, source), game); return true; diff --git a/Mage/src/mage/abilities/effects/common/MayTapOrUntapTargetEffect.java b/Mage/src/mage/abilities/effects/common/MayTapOrUntapTargetEffect.java index 3305ee9d28..99a6c777ba 100644 --- a/Mage/src/mage/abilities/effects/common/MayTapOrUntapTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/MayTapOrUntapTargetEffect.java @@ -22,7 +22,7 @@ public class MayTapOrUntapTargetEffect extends OneShotEffect<MayTapOrUntapTarget @Override public boolean apply(Game game, Ability source) { - Permanent target = game.getPermanent(targetPointer.getFirst(source)); + Permanent target = game.getPermanent(targetPointer.getFirst(game, source)); Player player = game.getPlayer(source.getControllerId()); if (target != null && player != null) { if (target.isTapped()) { diff --git a/Mage/src/mage/abilities/effects/common/PutLibraryIntoGraveTargetEffect.java b/Mage/src/mage/abilities/effects/common/PutLibraryIntoGraveTargetEffect.java index 2688d52133..8194317290 100644 --- a/Mage/src/mage/abilities/effects/common/PutLibraryIntoGraveTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/PutLibraryIntoGraveTargetEffect.java @@ -72,7 +72,7 @@ public class PutLibraryIntoGraveTargetEffect extends OneShotEffect<PutLibraryInt @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { // putting cards to grave shouldn't end the game, so getting minimun available int cardsCount = Math.min(amount.calculate(game, source), player.getLibrary().size()); diff --git a/Mage/src/mage/abilities/effects/common/PutOnLibraryTargetEffect.java b/Mage/src/mage/abilities/effects/common/PutOnLibraryTargetEffect.java index 5f74a3235b..461aa7507c 100644 --- a/Mage/src/mage/abilities/effects/common/PutOnLibraryTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/PutOnLibraryTargetEffect.java @@ -65,7 +65,7 @@ public class PutOnLibraryTargetEffect extends OneShotEffect<PutOnLibraryTargetEf @Override public boolean apply(Game game, Ability source) { boolean result = false; - for (UUID targetId : targetPointer.getTargets(source)) { + for (UUID targetId : targetPointer.getTargets(game, source)) { switch (game.getState().getZone(targetId)) { case BATTLEFIELD: Permanent permanent = game.getPermanent(targetId); diff --git a/Mage/src/mage/abilities/effects/common/PutOntoBattlefieldTargetEffect.java b/Mage/src/mage/abilities/effects/common/PutOntoBattlefieldTargetEffect.java index b2752ebe96..1118adb5c2 100644 --- a/Mage/src/mage/abilities/effects/common/PutOntoBattlefieldTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/PutOntoBattlefieldTargetEffect.java @@ -64,7 +64,7 @@ public class PutOntoBattlefieldTargetEffect extends OneShotEffect<PutOntoBattlef @Override public boolean apply(Game game, Ability source) { boolean result = false; - for (UUID targetId : targetPointer.getTargets(source)) { + for (UUID targetId : targetPointer.getTargets(game, source)) { Card card = game.getCard(targetId); if (card != null) { diff --git a/Mage/src/mage/abilities/effects/common/RegenerateTargetEffect.java b/Mage/src/mage/abilities/effects/common/RegenerateTargetEffect.java index 9aed990df5..1d344fddfb 100644 --- a/Mage/src/mage/abilities/effects/common/RegenerateTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/RegenerateTargetEffect.java @@ -55,7 +55,7 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl<RegenerateTar @Override public boolean apply(Game game, Ability source) { //20110204 - 701.11 - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null && permanent.regenerate(this.getId(), game)) { this.used = true; return true; @@ -76,7 +76,7 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl<RegenerateTar @Override public boolean applies(GameEvent event, Ability source, Game game) { //20110204 - 701.11c - event.getAmount() is used to signal if regeneration is allowed - if (event.getType() == EventType.DESTROY_PERMANENT && event.getAmount() == 0 && event.getTargetId().equals(targetPointer.getFirst(source)) && !this.used) { + if (event.getType() == EventType.DESTROY_PERMANENT && event.getAmount() == 0 && event.getTargetId().equals(targetPointer.getFirst(game, source)) && !this.used) { return true; } return false; diff --git a/Mage/src/mage/abilities/effects/common/RemoveFromCombatTargetEffect.java b/Mage/src/mage/abilities/effects/common/RemoveFromCombatTargetEffect.java index a916732f75..edb067ea31 100644 --- a/Mage/src/mage/abilities/effects/common/RemoveFromCombatTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/RemoveFromCombatTargetEffect.java @@ -51,7 +51,7 @@ public class RemoveFromCombatTargetEffect extends OneShotEffect<RemoveFromCombat @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(targetPointer.getFirst(source)); + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); if (permanent != null) { permanent.removeFromCombat(game); } diff --git a/Mage/src/mage/abilities/effects/common/ReturnToBattlefieldUnderYourControlTargetEffect.java b/Mage/src/mage/abilities/effects/common/ReturnToBattlefieldUnderYourControlTargetEffect.java index be9a21677e..4ed6a5c836 100644 --- a/Mage/src/mage/abilities/effects/common/ReturnToBattlefieldUnderYourControlTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/ReturnToBattlefieldUnderYourControlTargetEffect.java @@ -57,7 +57,7 @@ public class ReturnToBattlefieldUnderYourControlTargetEffect extends OneShotEffe @Override public boolean apply(Game game, Ability source) { - Card card = game.getCard(targetPointer.getFirst(source)); + Card card = game.getCard(targetPointer.getFirst(game, source)); if (card != null) { Zone currentZone = game.getState().getZone(card.getId()); if (card.putOntoBattlefield(game, currentZone, source.getId(), source.getControllerId())) { diff --git a/Mage/src/mage/abilities/effects/common/ReturnToHandTargetEffect.java b/Mage/src/mage/abilities/effects/common/ReturnToHandTargetEffect.java index b30a1c17af..8d65e503f6 100644 --- a/Mage/src/mage/abilities/effects/common/ReturnToHandTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/ReturnToHandTargetEffect.java @@ -60,7 +60,7 @@ public class ReturnToHandTargetEffect extends OneShotEffect<ReturnToHandTargetEf @Override public boolean apply(Game game, Ability source) { boolean result = false; - for (UUID id : targetPointer.getTargets(source)) { + for (UUID id : targetPointer.getTargets(game, source)) { switch (game.getState().getZone(id)) { case BATTLEFIELD: Permanent permanent = game.getPermanent(id); diff --git a/Mage/src/mage/abilities/effects/common/SacrificeEffect.java b/Mage/src/mage/abilities/effects/common/SacrificeEffect.java index 8bd7ac85e2..4294638925 100644 --- a/Mage/src/mage/abilities/effects/common/SacrificeEffect.java +++ b/Mage/src/mage/abilities/effects/common/SacrificeEffect.java @@ -73,7 +73,7 @@ public class SacrificeEffect extends OneShotEffect<SacrificeEffect>{ @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player == null) { return false; diff --git a/Mage/src/mage/abilities/effects/common/SacrificeEquippedEffect.java b/Mage/src/mage/abilities/effects/common/SacrificeEquippedEffect.java index aecd867fa4..fe2c8f951a 100644 --- a/Mage/src/mage/abilities/effects/common/SacrificeEquippedEffect.java +++ b/Mage/src/mage/abilities/effects/common/SacrificeEquippedEffect.java @@ -60,7 +60,7 @@ public class SacrificeEquippedEffect extends OneShotEffect<SacrificeEquippedEffe public boolean apply(Game game, Ability source) { Permanent equipment = game.getPermanent(source.getSourceId()); if (equipment != null && equipment.getAttachedTo() != null) { - UUID uuid = getTargetPointer().getFirst(source); + UUID uuid = getTargetPointer().getFirst(game, source); Permanent permanent = game.getPermanent(uuid); if (permanent == null) { permanent = game.getPermanent(equipment.getAttachedTo()); diff --git a/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java b/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java index c1e2e2b96f..6be944db91 100644 --- a/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/SacrificeTargetEffect.java @@ -63,7 +63,7 @@ public class SacrificeTargetEffect extends OneShotEffect<SacrificeTargetEffect> @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - for (UUID permanentId : targetPointer.getTargets(source)) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { permanent.sacrifice(source.getSourceId(), game); diff --git a/Mage/src/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java b/Mage/src/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java index 619c4a0131..a50c952021 100644 --- a/Mage/src/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java +++ b/Mage/src/mage/abilities/effects/common/SkipNextPlayerUntapStepEffect.java @@ -60,7 +60,7 @@ public class SkipNextPlayerUntapStepEffect extends OneShotEffect<SkipNextPlayerU @Override public boolean apply(Game game, Ability source) { if (targetPointer != null) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { game.getState().getTurnMods().add(new TurnMod(player.getId(), PhaseStep.UNTAP)); return true; diff --git a/Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java b/Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java index 0484c5d9ec..6535ab6a14 100644 --- a/Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java @@ -79,7 +79,7 @@ public class SkipNextUntapTargetEffect extends ReplacementEffectImpl<SkipNextUnt @Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { - if (targetPointer.getTargets(source).size() < 2) { + if (targetPointer.getTargets(game, source).size() < 2) { used = true; } else { count++; @@ -87,7 +87,7 @@ public class SkipNextUntapTargetEffect extends ReplacementEffectImpl<SkipNextUnt // not clear how to turn off the effect for more than one target // especially as some targets may leave the battlefield since the effect creation // so handling this in applies method is the only option for now for such cases - if (count == targetPointer.getTargets(source).size()) { + if (count == targetPointer.getTargets(game, source).size()) { // this won't work for targets disappeared before applies() return true used = true; } @@ -97,7 +97,7 @@ public class SkipNextUntapTargetEffect extends ReplacementEffectImpl<SkipNextUnt @Override public boolean applies(GameEvent event, Ability source, Game game) { if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == EventType.UNTAP) { - for (UUID target : targetPointer.getTargets(source)) { + for (UUID target : targetPointer.getTargets(game, source)) { if (event.getTargetId().equals(target)) { if (!usedFor.contains(target)) { usedFor.add(target); diff --git a/Mage/src/mage/abilities/effects/common/TapTargetEffect.java b/Mage/src/mage/abilities/effects/common/TapTargetEffect.java index 094ac46332..6bb32ca8c4 100644 --- a/Mage/src/mage/abilities/effects/common/TapTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/TapTargetEffect.java @@ -63,7 +63,7 @@ public class TapTargetEffect extends OneShotEffect<TapTargetEffect> { @Override public boolean apply(Game game, Ability source) { - for (UUID target : targetPointer.getTargets(source)) { + for (UUID target : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(target); if (permanent != null) { permanent.tap(game); diff --git a/Mage/src/mage/abilities/effects/common/UntapTargetEffect.java b/Mage/src/mage/abilities/effects/common/UntapTargetEffect.java index 9261b6f4c2..2073c9351d 100644 --- a/Mage/src/mage/abilities/effects/common/UntapTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/UntapTargetEffect.java @@ -58,7 +58,7 @@ public class UntapTargetEffect extends OneShotEffect<UntapTargetEffect> { @Override public boolean apply(Game game, Ability source) { - for (UUID target: targetPointer.getTargets(source)) { + for (UUID target: targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(target); if (permanent != null) { permanent.untap(game); diff --git a/Mage/src/mage/abilities/effects/common/continious/AddCardSubTypeTargetEffect.java b/Mage/src/mage/abilities/effects/common/continious/AddCardSubTypeTargetEffect.java index 1b1b42e457..dc1df2dbda 100644 --- a/Mage/src/mage/abilities/effects/common/continious/AddCardSubTypeTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/AddCardSubTypeTargetEffect.java @@ -53,7 +53,7 @@ public class AddCardSubTypeTargetEffect extends ContinuousEffectImpl<AddCardSubT @Override public boolean apply(Game game, Ability source) { - Permanent target = game.getPermanent(targetPointer.getFirst(source)); + Permanent target = game.getPermanent(targetPointer.getFirst(game, source)); if (target != null) { if (!target.hasSubtype(addedSubType)) { target.getSubtype().add(addedSubType); diff --git a/Mage/src/mage/abilities/effects/common/continious/AddCardTypeTargetEffect.java b/Mage/src/mage/abilities/effects/common/continious/AddCardTypeTargetEffect.java index eae140076c..2f5d11d10e 100644 --- a/Mage/src/mage/abilities/effects/common/continious/AddCardTypeTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/AddCardTypeTargetEffect.java @@ -53,7 +53,7 @@ public class AddCardTypeTargetEffect extends ContinuousEffectImpl<AddCardTypeTar @Override public boolean apply(Game game, Ability source) { - Permanent target = game.getPermanent(targetPointer.getFirst(source)); + Permanent target = game.getPermanent(targetPointer.getFirst(game, source)); if (target != null) { if (!target.getCardType().contains(addedCardType)) target.getCardType().add(addedCardType); diff --git a/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureTargetEffect.java b/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureTargetEffect.java index 7766a8e955..d8e567c9bd 100644 --- a/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/BecomesCreatureTargetEffect.java @@ -68,7 +68,7 @@ public class BecomesCreatureTargetEffect extends ContinuousEffectImpl<BecomesCre @Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { boolean result = false; - for (UUID permanentId : targetPointer.getTargets(source)) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { switch (layer) { diff --git a/Mage/src/mage/abilities/effects/common/continious/BoostTargetEffect.java b/Mage/src/mage/abilities/effects/common/continious/BoostTargetEffect.java index 340da3b6a2..82f587a7a4 100644 --- a/Mage/src/mage/abilities/effects/common/continious/BoostTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/BoostTargetEffect.java @@ -27,7 +27,6 @@ */ package mage.abilities.effects.common.continious; -import java.util.UUID; import mage.Constants.Duration; import mage.Constants.Layer; import mage.Constants.Outcome; @@ -41,6 +40,8 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.Target; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -88,12 +89,13 @@ public class BoostTargetEffect extends ContinuousEffectImpl<BoostTargetEffect> { power = new StaticValue(power.calculate(game, source)); toughness = new StaticValue(toughness.calculate(game, source)); } + targetPointer.init(game, source); } @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - for (UUID permanentId : targetPointer.getTargets(source)) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent target = (Permanent) game.getPermanent(permanentId); if (target != null) { target.addPower(power.calculate(game, source)); diff --git a/Mage/src/mage/abilities/effects/common/continious/GainAbilityTargetEffect.java b/Mage/src/mage/abilities/effects/common/continious/GainAbilityTargetEffect.java index 22401b0fab..9f9713e6b7 100644 --- a/Mage/src/mage/abilities/effects/common/continious/GainAbilityTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/GainAbilityTargetEffect.java @@ -33,13 +33,13 @@ import mage.Constants.Layer; import mage.Constants.Outcome; import mage.Constants.SubLayer; import mage.abilities.Ability; +import mage.abilities.Mode; import mage.abilities.effects.ContinuousEffectImpl; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.target.Target; import java.util.UUID; -import mage.abilities.Mode; -import mage.target.Target; /** * @@ -65,10 +65,16 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl<GainAbilityTar return new GainAbilityTargetEffect(this); } + @Override + public void init(Ability source, Game game) { + super.init(source, game); + targetPointer.init(game, source); + } + @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - for (UUID permanentId : targetPointer.getTargets(source)) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { permanent.addAbility(ability, game); diff --git a/Mage/src/mage/abilities/effects/common/continious/LoseAllAbilitiesTargetEffect.java b/Mage/src/mage/abilities/effects/common/continious/LoseAllAbilitiesTargetEffect.java index e496e5fdcb..32b02a35a7 100644 --- a/Mage/src/mage/abilities/effects/common/continious/LoseAllAbilitiesTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/LoseAllAbilitiesTargetEffect.java @@ -62,7 +62,7 @@ public class LoseAllAbilitiesTargetEffect extends ContinuousEffectImpl { @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - for (UUID permanentId : targetPointer.getTargets(source)) { + for (UUID permanentId : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { permanent.getAbilities().clear(); diff --git a/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java b/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java index 1a8d31e928..92ec607c90 100644 --- a/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java @@ -64,7 +64,7 @@ public class AddCountersTargetEffect extends OneShotEffect<AddCountersTargetEffe @Override public boolean apply(Game game, Ability source) { int affectedTargets = 0; - for (UUID uuid : targetPointer.getTargets(source)) { + for (UUID uuid : targetPointer.getTargets(game, source)) { Permanent permanent = game.getPermanent(uuid); if (permanent != null) { if (counter != null) { diff --git a/Mage/src/mage/abilities/effects/common/counter/AddPoisonCounterTargetEffect.java b/Mage/src/mage/abilities/effects/common/counter/AddPoisonCounterTargetEffect.java index e8a7a4e6dd..6c9828bd6c 100644 --- a/Mage/src/mage/abilities/effects/common/counter/AddPoisonCounterTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/counter/AddPoisonCounterTargetEffect.java @@ -64,7 +64,7 @@ public class AddPoisonCounterTargetEffect extends OneShotEffect<AddPoisonCounter @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(targetPointer.getFirst(source)); + Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.addCounters(CounterType.POISON.createInstance(amount), game); return true; diff --git a/Mage/src/mage/target/targetpointer/FirstTargetPointer.java b/Mage/src/mage/target/targetpointer/FirstTargetPointer.java index cfdd902088..04d2d24e00 100644 --- a/Mage/src/mage/target/targetpointer/FirstTargetPointer.java +++ b/Mage/src/mage/target/targetpointer/FirstTargetPointer.java @@ -1,33 +1,72 @@ package mage.target.targetpointer; import mage.abilities.Ability; +import mage.cards.Card; +import mage.game.Game; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; public class FirstTargetPointer implements TargetPointer { - private static FirstTargetPointer instance = new FirstTargetPointer(); + + private Map<UUID, Integer> zoneChangeCounter = new HashMap<UUID, Integer>(); public static FirstTargetPointer getInstance() { - return instance; + return new FirstTargetPointer(); + } + + public FirstTargetPointer() { + } + + public FirstTargetPointer(FirstTargetPointer firstTargetPointer) { + this.zoneChangeCounter = new HashMap<UUID, Integer>(); + for (Map.Entry<UUID, Integer> entry : firstTargetPointer.zoneChangeCounter.entrySet()) { + this.zoneChangeCounter.put(entry.getKey(), entry.getValue()); + } } @Override - public List<UUID> getTargets(Ability source) { + public void init(Game game, Ability source) { + if (source.getTargets().size() > 0) { + for (UUID target : source.getTargets().get(0).getTargets()) { + Card card = game.getCard(target); + if (card != null) { + this.zoneChangeCounter.put(target, card.getZoneChangeCounter()); + } + } + } + } + + @Override + public List<UUID> getTargets(Game game, Ability source) { ArrayList<UUID> target = new ArrayList<UUID>(); - if (source.getTargets().size() > 0) - target.addAll(source.getTargets().get(0).getTargets()); + if (source.getTargets().size() > 0) { + for (UUID targetId : source.getTargets().get(0).getTargets()) { + Card card = game.getCard(targetId); + if (card != null && zoneChangeCounter.containsKey(targetId) + && card.getZoneChangeCounter() != zoneChangeCounter.get(targetId)) { + continue; + } + target.add(targetId); + } + } return target; } @Override - public UUID getFirst(Ability source) { - return source.getFirstTarget(); + public UUID getFirst(Game game, Ability source) { + UUID targetId = source.getFirstTarget(); + if (zoneChangeCounter.containsKey(targetId)) { + Card card = game.getCard(targetId); + if (card != null && zoneChangeCounter.containsKey(targetId) + && card.getZoneChangeCounter() != zoneChangeCounter.get(targetId)) { + return null; + } + } + return targetId; } @Override public TargetPointer copy() { - return instance; + return new FirstTargetPointer(this); } } diff --git a/Mage/src/mage/target/targetpointer/FixedTarget.java b/Mage/src/mage/target/targetpointer/FixedTarget.java index 1f3c8266b1..d23972e75e 100644 --- a/Mage/src/mage/target/targetpointer/FixedTarget.java +++ b/Mage/src/mage/target/targetpointer/FixedTarget.java @@ -1,6 +1,8 @@ package mage.target.targetpointer; import mage.abilities.Ability; +import mage.cards.Card; +import mage.game.Game; import java.util.ArrayList; import java.util.List; @@ -8,6 +10,7 @@ import java.util.UUID; public class FixedTarget implements TargetPointer { private UUID target; + private int zoneChangeCounter; public FixedTarget(UUID target) { this.target = target; @@ -15,17 +18,42 @@ public class FixedTarget implements TargetPointer { public FixedTarget(final FixedTarget fixedTarget) { this.target = fixedTarget.target; + this.zoneChangeCounter = fixedTarget.zoneChangeCounter; } @Override - public List<UUID> getTargets(Ability source) { + public void init(Game game, Ability source) { + Card card = game.getCard(target); + if (card != null) { + this.zoneChangeCounter = card.getZoneChangeCounter(); + } + } + + @Override + public List<UUID> getTargets(Game game, Ability source) { + // check target not changed zone + if (this.zoneChangeCounter > 0) { // will be zero if not defined in init + Card card = game.getCard(target); + if (card != null && card.getZoneChangeCounter() != this.zoneChangeCounter) { + return new ArrayList<UUID>(); // return empty + } + } + ArrayList<UUID> list = new ArrayList<UUID>(1); list.add(target); return list; } @Override - public UUID getFirst(Ability source) { + public UUID getFirst(Game game, Ability source) { + // check target not changed zone + if (this.zoneChangeCounter > 0) { // will be zero if not defined in init + Card card = game.getCard(target); + if (card != null && card.getZoneChangeCounter() != this.zoneChangeCounter) { + return null; + } + } + return target; } diff --git a/Mage/src/mage/target/targetpointer/TargetPointer.java b/Mage/src/mage/target/targetpointer/TargetPointer.java index caf9ce7b9f..545b018924 100644 --- a/Mage/src/mage/target/targetpointer/TargetPointer.java +++ b/Mage/src/mage/target/targetpointer/TargetPointer.java @@ -1,13 +1,15 @@ package mage.target.targetpointer; -import java.io.Serializable; import mage.abilities.Ability; +import mage.game.Game; +import java.io.Serializable; import java.util.List; import java.util.UUID; public interface TargetPointer extends Serializable { - List<UUID> getTargets(Ability source); - UUID getFirst(Ability source); + void init(Game game, Ability source); + List<UUID> getTargets(Game game, Ability source); + UUID getFirst(Game game, Ability source); TargetPointer copy(); }