From a99ef071c86840a3b2a5ee3349fd269e7938723d Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Thu, 25 Nov 2010 04:42:30 +0000 Subject: [PATCH] fixed EntersBattlefieldTappedAbility - singleton was a bad idea --- .../sets/magic2011/ReassemblingSkeleton.java | 2 +- .../src/mage/sets/magic2011/RottingLegion.java | 2 +- .../shardsofalara/CrumblingNecropolis.java | 2 +- .../mage/sets/shardsofalara/SavageLands.java | 2 +- .../sets/worldwake/CelestialColonnade.java | 2 +- .../src/mage/sets/worldwake/KhalniGarden.java | 2 +- .../mage/sets/worldwake/LavaclawReaches.java | 2 +- .../src/mage/sets/worldwake/RagingRavine.java | 2 +- .../src/mage/sets/worldwake/SejiriSteppe.java | 2 +- .../mage/sets/worldwake/StirringWildwood.java | 2 +- .../mage/sets/zendikar/KabiraCrossroads.java | 2 +- .../sets/zendikar/OranRiefTheVastwood.java | 2 +- .../src/mage/sets/zendikar/TeeteringPeaks.java | 2 +- .../common/EntersBattlefieldTappedAbility.java | 18 ++++++------------ Mage/src/mage/game/stack/Spell.java | 7 +++++-- 15 files changed, 24 insertions(+), 27 deletions(-) diff --git a/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java b/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java index 57e7b771a85..6c3b832387a 100644 --- a/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java +++ b/Mage.Sets/src/mage/sets/magic2011/ReassemblingSkeleton.java @@ -53,7 +53,7 @@ public class ReassemblingSkeleton extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{1}{B}"))); + this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{1}{B}"))); } public ReassemblingSkeleton(final ReassemblingSkeleton card) { diff --git a/Mage.Sets/src/mage/sets/magic2011/RottingLegion.java b/Mage.Sets/src/mage/sets/magic2011/RottingLegion.java index f9494ebb549..9e301f7acaa 100644 --- a/Mage.Sets/src/mage/sets/magic2011/RottingLegion.java +++ b/Mage.Sets/src/mage/sets/magic2011/RottingLegion.java @@ -49,7 +49,7 @@ public class RottingLegion extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(5); - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); } public RottingLegion(final RottingLegion card) { diff --git a/Mage.Sets/src/mage/sets/shardsofalara/CrumblingNecropolis.java b/Mage.Sets/src/mage/sets/shardsofalara/CrumblingNecropolis.java index 4ce47d9b933..94dd20eb0da 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/CrumblingNecropolis.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/CrumblingNecropolis.java @@ -46,7 +46,7 @@ public class CrumblingNecropolis extends CardImpl { public CrumblingNecropolis(UUID ownerId) { super(ownerId, 222, "Crumbling Necropolis", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ALA"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new RedManaAbility()); this.addAbility(new BlueManaAbility()); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/sets/shardsofalara/SavageLands.java b/Mage.Sets/src/mage/sets/shardsofalara/SavageLands.java index 85b9ad7dd10..205dea21ab1 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/SavageLands.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/SavageLands.java @@ -46,7 +46,7 @@ public class SavageLands extends CardImpl { public SavageLands(UUID ownerId) { super(ownerId, 228, "Savage Lands", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ALA"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new RedManaAbility()); this.addAbility(new GreenManaAbility()); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java b/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java index 04e6be18e99..756d3dfd099 100644 --- a/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java +++ b/Mage.Sets/src/mage/sets/worldwake/CelestialColonnade.java @@ -53,7 +53,7 @@ public class CelestialColonnade extends CardImpl { public CelestialColonnade(UUID ownerId) { super(ownerId, 133, "Celestial Colonnade", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "WWK"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new BlueManaAbility()); this.addAbility(new WhiteManaAbility()); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new CelestialColonnadeToken(), "land"), new ManaCostsImpl("{3}{W}{U}"))); diff --git a/Mage.Sets/src/mage/sets/worldwake/KhalniGarden.java b/Mage.Sets/src/mage/sets/worldwake/KhalniGarden.java index d33296fd60e..75507f9f414 100644 --- a/Mage.Sets/src/mage/sets/worldwake/KhalniGarden.java +++ b/Mage.Sets/src/mage/sets/worldwake/KhalniGarden.java @@ -48,7 +48,7 @@ public class KhalniGarden extends CardImpl { public KhalniGarden(UUID ownerId) { super(ownerId, 138, "Khalni Garden", Rarity.COMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "WWK"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PlantToken()), false)); this.addAbility(new GreenManaAbility()); } diff --git a/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java b/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java index 73c01e9c0ff..32f30757f0d 100644 --- a/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java +++ b/Mage.Sets/src/mage/sets/worldwake/LavaclawReaches.java @@ -53,7 +53,7 @@ public class LavaclawReaches extends CardImpl { public LavaclawReaches(UUID ownerId) { super(ownerId, 139, "Lavaclaw Reaches", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "WWK"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new BlackManaAbility()); this.addAbility(new RedManaAbility()); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new LavaclawReachesToken(), "land"), new ManaCostsImpl("{1}{B}{R}"))); diff --git a/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java b/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java index 476152aa301..061e8e1e9b2 100644 --- a/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java +++ b/Mage.Sets/src/mage/sets/worldwake/RagingRavine.java @@ -53,7 +53,7 @@ public class RagingRavine extends CardImpl { public RagingRavine(UUID ownerId) { super(ownerId, 141, "Raging Ravine", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "WWK"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new GreenManaAbility()); this.addAbility(new RedManaAbility()); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new RagingRavineToken(), "land"), new ManaCostsImpl("{2}{R}{G}"))); diff --git a/Mage.Sets/src/mage/sets/worldwake/SejiriSteppe.java b/Mage.Sets/src/mage/sets/worldwake/SejiriSteppe.java index e5d785fcdea..79b6466341d 100644 --- a/Mage.Sets/src/mage/sets/worldwake/SejiriSteppe.java +++ b/Mage.Sets/src/mage/sets/worldwake/SejiriSteppe.java @@ -49,7 +49,7 @@ public class SejiriSteppe extends CardImpl { public SejiriSteppe(UUID ownerId) { super(ownerId, 142, "Sejiri Steppe", Rarity.COMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "WWK"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn), false); ability.addTarget(new TargetControlledCreaturePermanent()); ability.addChoice(new ChoiceColor()); diff --git a/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java b/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java index ee5b458555e..d37141d88d3 100644 --- a/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java +++ b/Mage.Sets/src/mage/sets/worldwake/StirringWildwood.java @@ -52,7 +52,7 @@ public class StirringWildwood extends CardImpl { public StirringWildwood(UUID ownerId) { super(ownerId, 144, "Stirring Wildwood", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "WWK"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new GreenManaAbility()); this.addAbility(new WhiteManaAbility()); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEOTEffect(new StirringWildwoodToken(), "land"), new ManaCostsImpl("{1}{G}{W}"))); diff --git a/Mage.Sets/src/mage/sets/zendikar/KabiraCrossroads.java b/Mage.Sets/src/mage/sets/zendikar/KabiraCrossroads.java index fb1c707e094..78b6cf54de5 100644 --- a/Mage.Sets/src/mage/sets/zendikar/KabiraCrossroads.java +++ b/Mage.Sets/src/mage/sets/zendikar/KabiraCrossroads.java @@ -46,7 +46,7 @@ public class KabiraCrossroads extends CardImpl { public KabiraCrossroads(UUID ownerId) { super(ownerId, 216, "Kabira Crossroads", Rarity.COMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ZEN"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(2), false)); this.addAbility(new WhiteManaAbility()); } diff --git a/Mage.Sets/src/mage/sets/zendikar/OranRiefTheVastwood.java b/Mage.Sets/src/mage/sets/zendikar/OranRiefTheVastwood.java index 3f769d9682d..640a2a21b9c 100644 --- a/Mage.Sets/src/mage/sets/zendikar/OranRiefTheVastwood.java +++ b/Mage.Sets/src/mage/sets/zendikar/OranRiefTheVastwood.java @@ -54,7 +54,7 @@ public class OranRiefTheVastwood extends CardImpl { public OranRiefTheVastwood(UUID ownerId) { super(ownerId, 221, "Oran-Rief, the Vastwood", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ZEN"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new GreenManaAbility()); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new OranRiefTheVastwoodEffect(), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/zendikar/TeeteringPeaks.java b/Mage.Sets/src/mage/sets/zendikar/TeeteringPeaks.java index c4e4492ba58..f36fc1f069a 100644 --- a/Mage.Sets/src/mage/sets/zendikar/TeeteringPeaks.java +++ b/Mage.Sets/src/mage/sets/zendikar/TeeteringPeaks.java @@ -49,7 +49,7 @@ public class TeeteringPeaks extends CardImpl { public TeeteringPeaks(UUID ownerId) { super(ownerId, 226, "Teetering Peaks", Rarity.COMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "ZEN"; - this.addAbility(EntersBattlefieldTappedAbility.getInstance()); + this.addAbility(new EntersBattlefieldTappedAbility()); Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(2, 0, Duration.EndOfTurn), false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); diff --git a/Mage/src/mage/abilities/common/EntersBattlefieldTappedAbility.java b/Mage/src/mage/abilities/common/EntersBattlefieldTappedAbility.java index 8233859c1a0..1463decb72d 100644 --- a/Mage/src/mage/abilities/common/EntersBattlefieldTappedAbility.java +++ b/Mage/src/mage/abilities/common/EntersBattlefieldTappedAbility.java @@ -40,20 +40,14 @@ import mage.abilities.effects.common.TapSourceEffect; */ public class EntersBattlefieldTappedAbility extends StaticAbility { - private static final EntersBattlefieldTappedAbility fINSTANCE = new EntersBattlefieldTappedAbility(); - - private Object readResolve() throws ObjectStreamException { - return fINSTANCE; - } - - public static EntersBattlefieldTappedAbility getInstance() { - return fINSTANCE; - } - - private EntersBattlefieldTappedAbility() { + public EntersBattlefieldTappedAbility() { super(Zone.BATTLEFIELD, new EntersBattlefieldEffect(new TapSourceEffect())); } + public EntersBattlefieldTappedAbility(final EntersBattlefieldTappedAbility ability) { + super(ability); + } + @Override public String getRule() { return "{this} enters the battlefield tapped"; @@ -61,7 +55,7 @@ public class EntersBattlefieldTappedAbility extends StaticAbility> implements StackObject, Card { if (!player.chooseTarget(ability.getEffects().get(0).getOutcome(), newTarget, ability, game)) newTarget.addTarget(targetId, ability, game); } + else { + newTarget.addTarget(targetId, ability, game); + } } - target.getTargets().clear(); + target.clearChosen(); for (UUID newTargetId: newTarget.getTargets()) { - target.getTargets().add(newTargetId); + target.addTarget(newTargetId, ability, game); } } return true;