diff --git a/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java b/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java index 9a00b6a3d65..8f29a4fa9e1 100644 --- a/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java +++ b/Mage.Sets/src/mage/sets/magic2011/MerfolkSpy.java @@ -28,7 +28,6 @@ package mage.sets.magic2011; -import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Outcome; import mage.Constants.Rarity; @@ -43,6 +42,8 @@ import mage.cards.CardsImpl; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -59,7 +60,7 @@ public class MerfolkSpy extends CardImpl { this.toughness = new MageInt(1); this.addAbility(new IslandwalkAbility()); - this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new MerfolkSpyEffect(), false)); + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new MerfolkSpyEffect(), false, true)); } public MerfolkSpy(final MerfolkSpy card) { @@ -86,7 +87,7 @@ class MerfolkSpyEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getFirstTarget()); + Player player = game.getPlayer(targetPointer.getFirst(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/scarsofmirrodin/ScreechingSilcaw.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/ScreechingSilcaw.java index 3a2e2cad351..06995a7ad94 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/ScreechingSilcaw.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/ScreechingSilcaw.java @@ -27,7 +27,6 @@ */ package mage.sets.scarsofmirrodin; -import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Rarity; import mage.MageInt; @@ -39,6 +38,8 @@ import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; +import java.util.UUID; + /** * * @author ayratn @@ -59,7 +60,7 @@ public class ScreechingSilcaw extends CardImpl { this.addAbility(FlyingAbility.getInstance()); TriggeredAbility conditional = new ConditionalTriggeredAbility( - new DealsCombatDamageToAPlayerTriggeredAbility(new PutLibraryIntoGraveTargetEffect(4), false), + new DealsCombatDamageToAPlayerTriggeredAbility(new PutLibraryIntoGraveTargetEffect(4), false, true), Metalcraft.getInstance(), text); this.addAbility(conditional); } diff --git a/Mage/src/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java b/Mage/src/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java index 3a920c01f4e..1b1c5808522 100644 --- a/Mage/src/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java +++ b/Mage/src/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java @@ -35,19 +35,27 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.target.TargetPlayer; +import mage.target.targetpointer.FixedTarget; /** * * @author BetaSteward_at_googlemail.com */ public class DealsCombatDamageToAPlayerTriggeredAbility extends TriggeredAbilityImpl { + private boolean setTargetPointer; public DealsCombatDamageToAPlayerTriggeredAbility(Effect effect, boolean optional) { - super(Zone.BATTLEFIELD, effect, optional); + this(effect, optional, false); } + public DealsCombatDamageToAPlayerTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) { + super(Zone.BATTLEFIELD, effect, optional); + this.setTargetPointer = setTargetPointer; + } + public DealsCombatDamageToAPlayerTriggeredAbility(final DealsCombatDamageToAPlayerTriggeredAbility ability) { super(ability); + this.setTargetPointer = ability.setTargetPointer; } @Override @@ -58,9 +66,11 @@ public class DealsCombatDamageToAPlayerTriggeredAbility extends TriggeredAbility @Override public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == EventType.DAMAGED_PLAYER && event.getSourceId().equals(this.sourceId)) { - getTargets().clear(); - this.addTarget(new TargetPlayer()); - getTargets().get(0).add(event.getPlayerId(), game); + if (setTargetPointer) { + for (Effect effect : this.getEffects()) { + effect.setTargetPointer(new FixedTarget(event.getPlayerId())); + } + } return true; } return false;