From 0b10a3a121db16c731c22a5b66905654c78472c3 Mon Sep 17 00:00:00 2001 From: Loki Date: Tue, 7 Jun 2011 22:13:42 +0300 Subject: [PATCH] add targets pointer --- .../mage/abilities/effects/EffectImpl.java | 8 +++++ .../common/AddPoisonCounterTargetEffect.java | 2 +- .../targetpointer/FirstTargetPointer.java | 32 +++++++++++++++++++ .../target/targetpointer/TargetPointer.java | 12 +++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 Mage/src/mage/target/targetpointer/FirstTargetPointer.java create mode 100644 Mage/src/mage/target/targetpointer/TargetPointer.java 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(); +}