diff --git a/Mage/src/mage/abilities/effects/EffectImpl.java b/Mage/src/mage/abilities/effects/EffectImpl.java index 33e4c5232f2..eb6206dc501 100644 --- a/Mage/src/mage/abilities/effects/EffectImpl.java +++ b/Mage/src/mage/abilities/effects/EffectImpl.java @@ -32,6 +32,8 @@ import java.util.UUID; import mage.Constants.EffectType; import mage.Constants.Outcome; import mage.abilities.Ability; +import mage.target.targetpointer.FirstTargetPointer; +import mage.target.targetpointer.TargetPointer; /** * @@ -42,6 +44,7 @@ public abstract class EffectImpl> implements Effect { protected UUID id; protected final Outcome outcome; protected EffectType effectType; + protected TargetPointer targetPointer = FirstTargetPointer.getInstance(); protected String staticText = ""; public EffectImpl(Outcome outcome) { @@ -54,6 +57,7 @@ public abstract class EffectImpl> implements Effect { this.outcome = effect.outcome; this.effectType = effect.effectType; this.staticText = effect.staticText; + this.targetPointer = effect.targetPointer.copy(); } @Override @@ -87,4 +91,8 @@ public abstract class EffectImpl> implements Effect { public EffectType getEffectType() { return effectType; } + + public void setTargetPointer(TargetPointer targetPointer) { + this.targetPointer = targetPointer; + } } diff --git a/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java b/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java index 60d97ae0947..25de35c4b08 100644 --- a/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/AddPoisonCounterTargetEffect.java @@ -63,7 +63,7 @@ public class AddPoisonCounterTargetEffect extends OneShotEffect getTargets(Ability source) { + ArrayList target = new ArrayList(); + target.add(source.getFirstTarget()); + return target; + } + + @Override + public UUID getFirst(Ability source) { + return source.getFirstTarget(); + } + + @Override + public TargetPointer copy() { + return instance; + } +} diff --git a/Mage/src/mage/target/targetpointer/TargetPointer.java b/Mage/src/mage/target/targetpointer/TargetPointer.java new file mode 100644 index 00000000000..8d92ee41dec --- /dev/null +++ b/Mage/src/mage/target/targetpointer/TargetPointer.java @@ -0,0 +1,12 @@ +package mage.target.targetpointer; + +import mage.abilities.Ability; + +import java.util.List; +import java.util.UUID; + +public interface TargetPointer { + List getTargets(Ability source); + UUID getFirst(Ability source); + TargetPointer copy(); +}