From b5f74beff03814440e3f978f8d67d5f77f36b64a Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 10 Feb 2014 13:01:55 +0100 Subject: [PATCH] * Satyr Firedancer - Fixed that target creature of Satyr Firedancer's triggered ability was selected wrongly at resolution instead as the ability triggered. --- .../sets/bornofthegods/SatyrFiredancer.java | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/Mage.Sets/src/mage/sets/bornofthegods/SatyrFiredancer.java b/Mage.Sets/src/mage/sets/bornofthegods/SatyrFiredancer.java index 2fc608318e1..04b705f360a 100644 --- a/Mage.Sets/src/mage/sets/bornofthegods/SatyrFiredancer.java +++ b/Mage.Sets/src/mage/sets/bornofthegods/SatyrFiredancer.java @@ -49,7 +49,6 @@ import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.stack.StackObject; import mage.players.Player; -import mage.target.Target; import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; @@ -75,7 +74,19 @@ public class SatyrFiredancer extends CardImpl { public SatyrFiredancer(final SatyrFiredancer card) { super(card); } - + + @Override + public void adjustTargets(Ability ability, Game game) { + if (ability instanceof SatyrFiredancerTriggeredAbility) { + Player opponent = game.getPlayer(ability.getEffects().get(0).getTargetPointer().getFirst(game, ability)); + if (opponent != null) { + FilterCreaturePermanent filter = new FilterCreaturePermanent(new StringBuilder("creature controlled by ").append(opponent.getName()).toString()); + filter.add(new ControllerIdPredicate(opponent.getId())); + ability.getTargets().add(new TargetCreaturePermanent(filter, true)); + } + } + } + @Override public SatyrFiredancer copy() { return new SatyrFiredancer(this); @@ -151,23 +162,14 @@ class SatyrFiredancerDamageEffect extends OneShotEffect 0) { - targetCreature.damage(damage, source.getSourceId(), game, true, false); - return true; - } - } + if (targetCreature != null && controller != null) { + int damage = (Integer) this.getValue("damage"); + if (damage > 0) { + targetCreature.damage(damage, source.getSourceId(), game, true, false); } - + return true; } return false; }