From 25f47bde637482ef56d06358032854c17c85b7a4 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 2 Feb 2022 21:35:20 -0500 Subject: [PATCH] refacted SourceTappedCondition to use a single enum --- Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java | 2 +- Mage.Sets/src/mage/cards/b/BottomlessVault.java | 2 +- Mage.Sets/src/mage/cards/c/CallousOppressor.java | 2 +- Mage.Sets/src/mage/cards/c/CastleRaptors.java | 2 +- Mage.Sets/src/mage/cards/d/DragonlordOjutai.java | 2 +- Mage.Sets/src/mage/cards/d/DwarvenHold.java | 2 +- Mage.Sets/src/mage/cards/e/Endoskeleton.java | 2 +- Mage.Sets/src/mage/cards/e/EvergloveCourier.java | 4 ++-- Mage.Sets/src/mage/cards/f/FlamestickCourier.java | 4 ++-- Mage.Sets/src/mage/cards/f/FlowstoneArmor.java | 2 +- .../src/mage/cards/f/FrightshroudCourier.java | 4 ++-- Mage.Sets/src/mage/cards/f/FuturistOperative.java | 2 +- Mage.Sets/src/mage/cards/g/GhosthelmCourier.java | 4 ++-- Mage.Sets/src/mage/cards/g/GiantTortoise.java | 2 +- Mage.Sets/src/mage/cards/g/GiantsAmulet.java | 2 +- Mage.Sets/src/mage/cards/g/GuardianBeast.java | 2 +- Mage.Sets/src/mage/cards/h/HelmOfPossession.java | 2 +- Mage.Sets/src/mage/cards/h/HivisOfTheScale.java | 2 +- Mage.Sets/src/mage/cards/h/HollowTrees.java | 2 +- Mage.Sets/src/mage/cards/i/IcatianStore.java | 2 +- Mage.Sets/src/mage/cards/i/IymrithDesertDoom.java | 2 +- Mage.Sets/src/mage/cards/j/Johan.java | 2 +- .../src/mage/cards/j/JuniperOrderAdvocate.java | 2 +- Mage.Sets/src/mage/cards/m/ManaVault.java | 2 +- Mage.Sets/src/mage/cards/m/MartyrsOfKorlis.java | 2 +- .../mage/cards/m/MirriWeatherlightDuelist.java | 2 +- Mage.Sets/src/mage/cards/o/OldManOfTheSea.java | 2 +- Mage.Sets/src/mage/cards/p/ParadiseDruid.java | 2 +- Mage.Sets/src/mage/cards/p/PearlspearCourier.java | 4 ++-- Mage.Sets/src/mage/cards/p/Preacher.java | 2 +- Mage.Sets/src/mage/cards/p/PristineAngel.java | 2 +- Mage.Sets/src/mage/cards/r/ReveilleSquad.java | 10 ++++------ Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java | 2 +- Mage.Sets/src/mage/cards/s/SandSilos.java | 2 +- Mage.Sets/src/mage/cards/s/Seasinger.java | 2 +- Mage.Sets/src/mage/cards/s/SpectralGuardian.java | 2 +- Mage.Sets/src/mage/cards/s/SpiritShield.java | 2 +- Mage.Sets/src/mage/cards/t/TawnossWeaponry.java | 2 +- Mage.Sets/src/mage/cards/u/UWing.java | 2 +- Mage.Sets/src/mage/cards/v/VedalkenShackles.java | 2 +- Mage.Sets/src/mage/cards/v/VeteranBodyguard.java | 2 +- Mage.Sets/src/mage/cards/v/VoodooDoll.java | 2 +- Mage.Sets/src/mage/cards/w/Watchdog.java | 2 +- Mage.Sets/src/mage/cards/w/WillowSatyr.java | 2 +- Mage.Sets/src/mage/cards/z/ZelyonSword.java | 2 +- .../condition/common/SourceTappedCondition.java | 15 +++++++-------- .../DontUntapAsLongAsSourceTappedEffect.java | 2 +- 47 files changed, 61 insertions(+), 64 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java b/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java index 00edd56f7be..e7a7b4314ab 100644 --- a/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java +++ b/Mage.Sets/src/mage/cards/a/AshnodsBattleGear.java @@ -29,7 +29,7 @@ public final class AshnodsBattleGear extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}, {tap}: Target creature you control gets +2/-2 for as long as Ashnod's Battle Gear remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, -2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, -2, Duration.Custom), SourceTappedCondition.TAPPED, "target creature you control gets +2/-2 for as long as {this} remains tapped"), new ManaCostsImpl("{2}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetControlledCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/b/BottomlessVault.java b/Mage.Sets/src/mage/cards/b/BottomlessVault.java index b6ec32d0f2a..ac3f4735a15 100644 --- a/Mage.Sets/src/mage/cards/b/BottomlessVault.java +++ b/Mage.Sets/src/mage/cards/b/BottomlessVault.java @@ -39,7 +39,7 @@ public final class BottomlessVault extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // At the beginning of your upkeep, if Bottomless Vault is tapped, put a storage counter on it. OneShotEffect addStorageCounter = new AddCountersSourceEffect(CounterType.STORAGE.createInstance()); - Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.instance, "if {this} is tapped, put a storage counter on it"); + Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.TAPPED, "if {this} is tapped, put a storage counter on it"); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false)); // {tap}, Remove any number of storage counters from Bottomless Vault: Add {B} for each storage counter removed this way. Ability ability = new DynamicManaAbility( diff --git a/Mage.Sets/src/mage/cards/c/CallousOppressor.java b/Mage.Sets/src/mage/cards/c/CallousOppressor.java index cce47a757b6..35cdfca8e54 100644 --- a/Mage.Sets/src/mage/cards/c/CallousOppressor.java +++ b/Mage.Sets/src/mage/cards/c/CallousOppressor.java @@ -51,7 +51,7 @@ public final class CallousOppressor extends CardImpl { // {T}: Gain control of target creature that isn't of the chosen type for as long as Callous Oppressor remains tapped. ConditionalContinuousEffect effect = new ConditionalContinuousEffect( new GainControlTargetEffect(Duration.OneUse), - SourceTappedCondition.instance, + SourceTappedCondition.TAPPED, "Gain control of target creature for as long as {this} remains tapped"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(new CallousOppressorFilter())); diff --git a/Mage.Sets/src/mage/cards/c/CastleRaptors.java b/Mage.Sets/src/mage/cards/c/CastleRaptors.java index b9e2ed10f61..2a80246e423 100644 --- a/Mage.Sets/src/mage/cards/c/CastleRaptors.java +++ b/Mage.Sets/src/mage/cards/c/CastleRaptors.java @@ -33,7 +33,7 @@ public final class CastleRaptors extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // As long as Castle Raptors is untapped, it gets +0/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostSourceEffect(0, 2, Duration.WhileOnBattlefield), new InvertCondition(SourceTappedCondition.instance), + new BoostSourceEffect(0, 2, Duration.WhileOnBattlefield), SourceTappedCondition.UNTAPPED, "As long as {this} is untapped, it gets +0/+2."))); } diff --git a/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java b/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java index a69a829911b..8d9c750fe63 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordOjutai.java @@ -42,7 +42,7 @@ public final class DragonlordOjutai extends CardImpl { // Dragonlord Ojutai has hexproof as long as it's untapped. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "{this} has hexproof as long as it's untapped"))); // Whenever Dragonlord Ojutai deals combat damage to a player, look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. diff --git a/Mage.Sets/src/mage/cards/d/DwarvenHold.java b/Mage.Sets/src/mage/cards/d/DwarvenHold.java index b3544f5b91b..822e82d82eb 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenHold.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenHold.java @@ -39,7 +39,7 @@ public final class DwarvenHold extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // At the beginning of your upkeep, if Dwarven Hold is tapped, put a storage counter on it. OneShotEffect addStorageCounter = new AddCountersSourceEffect(CounterType.STORAGE.createInstance()); - Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.instance, "if {this} is tapped, put a storage counter on it"); + Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.TAPPED, "if {this} is tapped, put a storage counter on it"); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false)); // {tap}, Remove any number of storage counters from Dwarven Hold: Add {R} for each storage counter removed this way. Ability ability = new DynamicManaAbility( diff --git a/Mage.Sets/src/mage/cards/e/Endoskeleton.java b/Mage.Sets/src/mage/cards/e/Endoskeleton.java index 1ec7c386f62..8651036f3ff 100644 --- a/Mage.Sets/src/mage/cards/e/Endoskeleton.java +++ b/Mage.Sets/src/mage/cards/e/Endoskeleton.java @@ -30,7 +30,7 @@ public final class Endoskeleton extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}, {tap}: Target creature gets +0/+3 for as long as Endoskeleton remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(0, 3, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(0, 3, Duration.Custom), SourceTappedCondition.TAPPED, "target creature gets +0/+3 for as long as {this} remains tapped"), new ManaCostsImpl("{2}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/e/EvergloveCourier.java b/Mage.Sets/src/mage/cards/e/EvergloveCourier.java index f78fcc5c79c..2e2138b2fa3 100644 --- a/Mage.Sets/src/mage/cards/e/EvergloveCourier.java +++ b/Mage.Sets/src/mage/cards/e/EvergloveCourier.java @@ -44,10 +44,10 @@ public final class EvergloveCourier extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}{G}, {tap}: Target Elf creature gets +2/+2 and has trample for as long as Everglove Courier remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.TAPPED, "target Elf creature gets +2/+2"), new ManaCostsImpl("{2}{G}")); ability.addEffect(new ConditionalContinuousEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), - Duration.Custom), SourceTappedCondition.instance,"and has trample for as long as {this} remains tapped")); + Duration.Custom), SourceTappedCondition.TAPPED,"and has trample for as long as {this} remains tapped")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/f/FlamestickCourier.java b/Mage.Sets/src/mage/cards/f/FlamestickCourier.java index 60a288e7145..3e0876f3f25 100644 --- a/Mage.Sets/src/mage/cards/f/FlamestickCourier.java +++ b/Mage.Sets/src/mage/cards/f/FlamestickCourier.java @@ -44,10 +44,10 @@ public final class FlamestickCourier extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}{R}, {tap}: Target Goblin creature gets +2/+2 and has haste for as long as Flamestick Courier remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.TAPPED, "target Goblin creature gets +2/+2"), new ManaCostsImpl("{2}{R}")); ability.addEffect(new ConditionalContinuousEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), - Duration.Custom), SourceTappedCondition.instance,"and has haste for as long as {this} remains tapped")); + Duration.Custom), SourceTappedCondition.TAPPED,"and has haste for as long as {this} remains tapped")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java b/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java index b8bb885a2f5..ab06e308a4b 100644 --- a/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java +++ b/Mage.Sets/src/mage/cards/f/FlowstoneArmor.java @@ -30,7 +30,7 @@ public final class FlowstoneArmor extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {3}, {tap}: Target creature gets +1/-1 for as long as Flowstone Armor remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(1, -1, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(1, -1, Duration.Custom), SourceTappedCondition.TAPPED, "target creature gets +1/-1 for as long as {this} remains tapped"), new ManaCostsImpl("{3}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java b/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java index 3deee8e6559..ad7f2697762 100644 --- a/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java +++ b/Mage.Sets/src/mage/cards/f/FrightshroudCourier.java @@ -44,10 +44,10 @@ public final class FrightshroudCourier extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}{B}, {tap}: Target Zombie creature gets +2/+2 and has fear for as long as Frightshroud Courier remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.TAPPED, "target Zombie creature gets +2/+2"), new ManaCostsImpl("{2}{B}")); ability.addEffect(new ConditionalContinuousEffect(new GainAbilityTargetEffect(FearAbility.getInstance(), - Duration.Custom), SourceTappedCondition.instance,"and has fear for as long as {this} remains tapped")); + Duration.Custom), SourceTappedCondition.TAPPED,"and has fear for as long as {this} remains tapped")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/f/FuturistOperative.java b/Mage.Sets/src/mage/cards/f/FuturistOperative.java index 1bffde419da..b8c26f9a162 100644 --- a/Mage.Sets/src/mage/cards/f/FuturistOperative.java +++ b/Mage.Sets/src/mage/cards/f/FuturistOperative.java @@ -34,7 +34,7 @@ public final class FuturistOperative extends CardImpl { // As long as Futurist Operative is tapped, it's a Human Citizen with base power and toughness 1/1 and can't be blocked. Ability ability = new SimpleStaticAbility(new FuturistOperativeEffect()); ability.addEffect(new ConditionalRestrictionEffect( - new CantBeBlockedSourceEffect(), SourceTappedCondition.instance, "and can't be blocked" + new CantBeBlockedSourceEffect(), SourceTappedCondition.TAPPED, "and can't be blocked" )); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java b/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java index 3766b67cbbb..21afeb69b5b 100644 --- a/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java +++ b/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java @@ -45,10 +45,10 @@ public final class GhosthelmCourier extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}{U}, {tap}: Target Wizard creature gets +2/+2 and has shroud for as long as Ghosthelm Courier remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.TAPPED, "target Wizard creature gets +2/+2"), new ManaCostsImpl("{2}{U}")); ability.addEffect(new ConditionalContinuousEffect(new GainAbilityTargetEffect(ShroudAbility.getInstance(), - Duration.Custom), SourceTappedCondition.instance,"and has shroud for as long as {this} remains tapped")); + Duration.Custom), SourceTappedCondition.TAPPED,"and has shroud for as long as {this} remains tapped")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GiantTortoise.java b/Mage.Sets/src/mage/cards/g/GiantTortoise.java index 2b5fd197afa..4fc00c04bd2 100644 --- a/Mage.Sets/src/mage/cards/g/GiantTortoise.java +++ b/Mage.Sets/src/mage/cards/g/GiantTortoise.java @@ -31,7 +31,7 @@ public final class GiantTortoise extends CardImpl { // Giant Tortoise gets +0/+3 as long as it's untapped. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(0,3, Duration.WhileOnBattlefield), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "{this} gets +0/+3 as long as it's untapped"))); } diff --git a/Mage.Sets/src/mage/cards/g/GiantsAmulet.java b/Mage.Sets/src/mage/cards/g/GiantsAmulet.java index 88ce7c51bfe..a8d37a61b55 100644 --- a/Mage.Sets/src/mage/cards/g/GiantsAmulet.java +++ b/Mage.Sets/src/mage/cards/g/GiantsAmulet.java @@ -44,7 +44,7 @@ public final class GiantsAmulet extends CardImpl { new GainAbilitySourceEffect( HexproofAbility.getInstance(), Duration.WhileOnBattlefield - ), new InvertCondition(SourceTappedCondition.instance), + ), SourceTappedCondition.UNTAPPED, "{this} has hexproof as long as it's untapped" )), AttachmentType.EQUIPMENT ).setText("and has \"This creature has hexproof as long as it's untapped.\"")); diff --git a/Mage.Sets/src/mage/cards/g/GuardianBeast.java b/Mage.Sets/src/mage/cards/g/GuardianBeast.java index 8bc09b6a625..8b6a57b819d 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianBeast.java +++ b/Mage.Sets/src/mage/cards/g/GuardianBeast.java @@ -49,7 +49,7 @@ public final class GuardianBeast extends CardImpl { // As long as Guardian Beast is untapped, noncreature artifacts you control can't be enchanted, they're indestructible, and other players can't gain control of them. // This effect doesn't remove Auras already attached to those artifacts. Effect effect = new ConditionalContinuousEffect(new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, filter), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "As long as Guardian Beast is untapped, noncreature artifacts you control can't be enchanted, they're indestructible"); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); ability.addEffect(new GuardianBeastConditionalEffect(this.getId())); diff --git a/Mage.Sets/src/mage/cards/h/HelmOfPossession.java b/Mage.Sets/src/mage/cards/h/HelmOfPossession.java index 89a2c68763d..5161c317965 100644 --- a/Mage.Sets/src/mage/cards/h/HelmOfPossession.java +++ b/Mage.Sets/src/mage/cards/h/HelmOfPossession.java @@ -34,7 +34,7 @@ public final class HelmOfPossession extends CardImpl { // {2}, {tap}, Sacrifice a creature: Gain control of target creature for as long as you control Helm of Possession and Helm of Possession remains tapped. Ability ability = new SimpleActivatedAbility(new ConditionalContinuousEffect( - new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.instance, + new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.TAPPED, "gain control of target creature for as long as you control {this} and {this} remains tapped" ), new GenericManaCost(2)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/h/HivisOfTheScale.java b/Mage.Sets/src/mage/cards/h/HivisOfTheScale.java index 28e288221c0..928c1a9b2b3 100644 --- a/Mage.Sets/src/mage/cards/h/HivisOfTheScale.java +++ b/Mage.Sets/src/mage/cards/h/HivisOfTheScale.java @@ -45,7 +45,7 @@ public final class HivisOfTheScale extends CardImpl { // {tap}: Gain control of target Dragon for as long as you control Hivis and Hivis remains tapped. Ability ability = new SimpleActivatedAbility(new ConditionalContinuousEffect( - new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.instance, + new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.TAPPED, "gain control of target Dragon for as long as you control {this} and {this} remains tapped" ), new TapSourceCost()); ability.addTarget(new TargetPermanent(filterDragon)); diff --git a/Mage.Sets/src/mage/cards/h/HollowTrees.java b/Mage.Sets/src/mage/cards/h/HollowTrees.java index c814eb29b6e..317908a85fc 100644 --- a/Mage.Sets/src/mage/cards/h/HollowTrees.java +++ b/Mage.Sets/src/mage/cards/h/HollowTrees.java @@ -39,7 +39,7 @@ public final class HollowTrees extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // At the beginning of your upkeep, if Hollow Trees is tapped, put a storage counter on it. OneShotEffect addStorageCounter = new AddCountersSourceEffect(CounterType.STORAGE.createInstance()); - Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.instance, "if {this} is tapped, put a storage counter on it"); + Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.TAPPED, "if {this} is tapped, put a storage counter on it"); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false)); // {tap}, Remove any number of storage counters from Hollow Trees: Add {G} for each storage counter removed this way. Ability ability = new DynamicManaAbility( diff --git a/Mage.Sets/src/mage/cards/i/IcatianStore.java b/Mage.Sets/src/mage/cards/i/IcatianStore.java index 0343f85dff6..2c162d5f97d 100644 --- a/Mage.Sets/src/mage/cards/i/IcatianStore.java +++ b/Mage.Sets/src/mage/cards/i/IcatianStore.java @@ -39,7 +39,7 @@ public final class IcatianStore extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // At the beginning of your upkeep, if Icatian Store is tapped, put a storage counter on it. OneShotEffect addStorageCounter = new AddCountersSourceEffect(CounterType.STORAGE.createInstance()); - Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.instance, "if {this} is tapped, put a storage counter on it"); + Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.TAPPED, "if {this} is tapped, put a storage counter on it"); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false)); // {tap}, Remove any number of storage counters from Icatian Store: Add {W} for each storage counter removed this way. Ability ability = new DynamicManaAbility( diff --git a/Mage.Sets/src/mage/cards/i/IymrithDesertDoom.java b/Mage.Sets/src/mage/cards/i/IymrithDesertDoom.java index 082c0b1a198..bcdaa792757 100644 --- a/Mage.Sets/src/mage/cards/i/IymrithDesertDoom.java +++ b/Mage.Sets/src/mage/cards/i/IymrithDesertDoom.java @@ -40,7 +40,7 @@ public final class IymrithDesertDoom extends CardImpl { // Iymrith, Desert Doom has ward {4} as long as it's untapped. this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new WardAbility(new GenericManaCost(4)), Duration.WhileOnBattlefield), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "{this} has ward {4} as long as it's untapped" ))); diff --git a/Mage.Sets/src/mage/cards/j/Johan.java b/Mage.Sets/src/mage/cards/j/Johan.java index 2cb8a88d337..b79c0955e32 100644 --- a/Mage.Sets/src/mage/cards/j/Johan.java +++ b/Mage.Sets/src/mage/cards/j/Johan.java @@ -39,7 +39,7 @@ public final class Johan extends CardImpl { // At the beginning of combat on your turn, you may have Johan gain "Johan can't attack" until end of combat. If you do, attacking doesn't cause creatures you control to tap this combat if Johan is untapped. Condition condition = new CompoundCondition("if {this} is untapped", - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, SourceOnBattlefieldCondition.instance); Ability ability = new BeginningOfCombatTriggeredAbility(new CantAttackSourceEffect(Duration.EndOfCombat).setText("you may have {this} gain \"{this} can't attack\" until end of combat"), TargetController.YOU, true); ability.addEffect(new ConditionalContinuousEffect( diff --git a/Mage.Sets/src/mage/cards/j/JuniperOrderAdvocate.java b/Mage.Sets/src/mage/cards/j/JuniperOrderAdvocate.java index 7f5691eabca..a11ea7f36bd 100644 --- a/Mage.Sets/src/mage/cards/j/JuniperOrderAdvocate.java +++ b/Mage.Sets/src/mage/cards/j/JuniperOrderAdvocate.java @@ -42,7 +42,7 @@ public final class JuniperOrderAdvocate extends CardImpl { // As long as Juniper Order Advocate is untapped, green creatures you control get +1/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "As long as {this} is untapped, green creatures you control get +1/+1."))); } diff --git a/Mage.Sets/src/mage/cards/m/ManaVault.java b/Mage.Sets/src/mage/cards/m/ManaVault.java index f08a986cbbe..517822b3f9e 100644 --- a/Mage.Sets/src/mage/cards/m/ManaVault.java +++ b/Mage.Sets/src/mage/cards/m/ManaVault.java @@ -41,7 +41,7 @@ public final class ManaVault extends CardImpl { // At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you. this.addAbility(new ConditionalInterveningIfTriggeredAbility( new BeginningOfDrawTriggeredAbility(Zone.BATTLEFIELD, new DamageControllerEffect(1), TargetController.YOU, false), - SourceTappedCondition.instance, + SourceTappedCondition.TAPPED, "At the beginning of your draw step, if {this} is tapped, it deals 1 damage to you.")); // {tap}: Add {C}{C}{C}. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); diff --git a/Mage.Sets/src/mage/cards/m/MartyrsOfKorlis.java b/Mage.Sets/src/mage/cards/m/MartyrsOfKorlis.java index e6078c65204..430753d8fc0 100644 --- a/Mage.Sets/src/mage/cards/m/MartyrsOfKorlis.java +++ b/Mage.Sets/src/mage/cards/m/MartyrsOfKorlis.java @@ -35,7 +35,7 @@ public final class MartyrsOfKorlis extends CardImpl { // As long as Martyrs of Korlis is untapped, all damage that would be dealt to you by artifacts is dealt to Martyrs of Korlis instead. Effect effect = new ConditionalReplacementEffect( new RedirectArtifactDamageFromPlayerToSourceEffect(Duration.WhileOnBattlefield), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, null); effect.setText("{this} redirects artifact damage from controller as long as it's untapped"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); diff --git a/Mage.Sets/src/mage/cards/m/MirriWeatherlightDuelist.java b/Mage.Sets/src/mage/cards/m/MirriWeatherlightDuelist.java index 7dc615f4747..6ce7d38f3e2 100644 --- a/Mage.Sets/src/mage/cards/m/MirriWeatherlightDuelist.java +++ b/Mage.Sets/src/mage/cards/m/MirriWeatherlightDuelist.java @@ -41,7 +41,7 @@ public final class MirriWeatherlightDuelist extends CardImpl { // As long as Mirri, Weatherlight Duelist is tapped, no more than one creature can attack you each combat. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new MirriWeatherlightDuelistAttackRestrictionEffect(1), SourceTappedCondition.instance, + new MirriWeatherlightDuelistAttackRestrictionEffect(1), SourceTappedCondition.TAPPED, "As long as {this} is tapped, no more than one creature can attack you each combat.")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/o/OldManOfTheSea.java b/Mage.Sets/src/mage/cards/o/OldManOfTheSea.java index 4e376e46b3d..ca370189566 100644 --- a/Mage.Sets/src/mage/cards/o/OldManOfTheSea.java +++ b/Mage.Sets/src/mage/cards/o/OldManOfTheSea.java @@ -48,7 +48,7 @@ public final class OldManOfTheSea extends CardImpl { FilterCreaturePermanent controllableCreatures = new FilterCreaturePermanent("creature with power less than or equal to Old Man of the Sea's power"); controllableCreatures.add(new PowerLowerEqualSourcePredicate(this.getId())); ConditionalContinuousEffect effect = new ConditionalContinuousEffect( - new OldManOfTheSeaGainControlTargetEffect(Duration.Custom, true), new CompoundCondition(SourceTappedCondition.instance, new SourcePowerGreaterEqualTargetCondition()), + new OldManOfTheSeaGainControlTargetEffect(Duration.Custom, true), new CompoundCondition(SourceTappedCondition.TAPPED, new SourcePowerGreaterEqualTargetCondition()), "Gain control of target creature with power less than or equal to {this}'s power for as long as {this} remains tapped and that creature's power remains less than or equal to {this}'s power"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(controllableCreatures)); diff --git a/Mage.Sets/src/mage/cards/p/ParadiseDruid.java b/Mage.Sets/src/mage/cards/p/ParadiseDruid.java index 38b296e04df..13f1531bd90 100644 --- a/Mage.Sets/src/mage/cards/p/ParadiseDruid.java +++ b/Mage.Sets/src/mage/cards/p/ParadiseDruid.java @@ -34,7 +34,7 @@ public final class ParadiseDruid extends CardImpl { new GainAbilitySourceEffect( HexproofAbility.getInstance(), Duration.WhileOnBattlefield - ), new InvertCondition(SourceTappedCondition.instance), + ), SourceTappedCondition.UNTAPPED, "{this} has hexproof as long as it's untapped" ))); diff --git a/Mage.Sets/src/mage/cards/p/PearlspearCourier.java b/Mage.Sets/src/mage/cards/p/PearlspearCourier.java index ceb4a006f0f..5c341c1067b 100644 --- a/Mage.Sets/src/mage/cards/p/PearlspearCourier.java +++ b/Mage.Sets/src/mage/cards/p/PearlspearCourier.java @@ -45,10 +45,10 @@ public final class PearlspearCourier extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}{W}, {tap}: Target Soldier creature gets +2/+2 and has vigilance for as long as Pearlspear Courier remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.TAPPED, "target Soldier creature gets +2/+2"), new ManaCostsImpl("{2}{W}")); ability.addEffect(new ConditionalContinuousEffect(new GainAbilityTargetEffect(VigilanceAbility.getInstance(), - Duration.Custom), SourceTappedCondition.instance,"and has vigilance for as long as {this} remains tapped")); + Duration.Custom), SourceTappedCondition.TAPPED,"and has vigilance for as long as {this} remains tapped")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/p/Preacher.java b/Mage.Sets/src/mage/cards/p/Preacher.java index 7da377b76d4..9a17d4ccf09 100644 --- a/Mage.Sets/src/mage/cards/p/Preacher.java +++ b/Mage.Sets/src/mage/cards/p/Preacher.java @@ -75,7 +75,7 @@ class PreacherEffect extends OneShotEffect { Permanent targetPermanent = game.getPermanent(source.getFirstTarget()); Player controller = game.getPlayer(source.getControllerId()); if (controller != null && sourcePermanent != null && targetPermanent != null) { - SourceTappedCondition sourceTappedCondition = SourceTappedCondition.instance; + SourceTappedCondition sourceTappedCondition = SourceTappedCondition.TAPPED; ConditionalContinuousEffect effect = new ConditionalContinuousEffect( new GainControlTargetEffect(Duration.Custom), sourceTappedCondition, diff --git a/Mage.Sets/src/mage/cards/p/PristineAngel.java b/Mage.Sets/src/mage/cards/p/PristineAngel.java index b67c696a836..46bb964dc3a 100644 --- a/Mage.Sets/src/mage/cards/p/PristineAngel.java +++ b/Mage.Sets/src/mage/cards/p/PristineAngel.java @@ -55,7 +55,7 @@ public final class PristineAngel extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(new ProtectionAbility(filter), Duration.WhileOnBattlefield), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "As long as {this} is untapped, it has protection from artifacts and from all colors"))); // Whenever you cast a spell, you may untap Pristine Angel. this.addAbility(new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), true)); diff --git a/Mage.Sets/src/mage/cards/r/ReveilleSquad.java b/Mage.Sets/src/mage/cards/r/ReveilleSquad.java index 273a094771a..792b3a394ae 100644 --- a/Mage.Sets/src/mage/cards/r/ReveilleSquad.java +++ b/Mage.Sets/src/mage/cards/r/ReveilleSquad.java @@ -1,23 +1,21 @@ - package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.SourceTappedCondition; import mage.abilities.effects.common.UntapAllControllerEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.constants.Zone; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class ReveilleSquad extends CardImpl { @@ -76,7 +74,7 @@ class ReveilleSquadTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkInterveningIfClause(Game game) { - return new InvertCondition(SourceTappedCondition.instance).apply(game, this); + return SourceTappedCondition.UNTAPPED.apply(game, this); } @Override diff --git a/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java b/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java index c89f66f6130..066bbe44a1d 100644 --- a/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java +++ b/Mage.Sets/src/mage/cards/r/RubiniaSoulsinger.java @@ -36,7 +36,7 @@ public final class RubiniaSoulsinger extends CardImpl { // {tap}: Gain control of target creature for as long as you control Rubinia and Rubinia remains tapped. Ability ability = new SimpleActivatedAbility(new ConditionalContinuousEffect( - new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.instance, + new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.TAPPED, "gain control of target creature for as long as you control {this} and {this} remains tapped" ), new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/s/SandSilos.java b/Mage.Sets/src/mage/cards/s/SandSilos.java index 0a3476c43c3..49090e97bbd 100644 --- a/Mage.Sets/src/mage/cards/s/SandSilos.java +++ b/Mage.Sets/src/mage/cards/s/SandSilos.java @@ -39,7 +39,7 @@ public final class SandSilos extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // At the beginning of your upkeep, if Sand Silos is tapped, put a storage counter on it. OneShotEffect addStorageCounter = new AddCountersSourceEffect(CounterType.STORAGE.createInstance()); - Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.instance, "if {this} is tapped, put a storage counter on it"); + Effect effect = new ConditionalOneShotEffect(addStorageCounter, SourceTappedCondition.TAPPED, "if {this} is tapped, put a storage counter on it"); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false)); // {tap}, Remove any number of storage counters from Sand Silos: Add {U} for each storage counter removed this way. Ability ability = new DynamicManaAbility( diff --git a/Mage.Sets/src/mage/cards/s/Seasinger.java b/Mage.Sets/src/mage/cards/s/Seasinger.java index eb1062b2413..8c934c32b80 100644 --- a/Mage.Sets/src/mage/cards/s/Seasinger.java +++ b/Mage.Sets/src/mage/cards/s/Seasinger.java @@ -57,7 +57,7 @@ public final class Seasinger extends CardImpl { // {tap}: Gain control of target creature whose controller controls an Island for as long as you control Seasinger and Seasinger remains tapped. Ability ability = new SimpleActivatedAbility(new ConditionalContinuousEffect( - new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.instance, + new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.TAPPED, "gain control of target creature whose controller controls " + "an Island for as long as you control {this} and {this} remains tapped" ), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/s/SpectralGuardian.java b/Mage.Sets/src/mage/cards/s/SpectralGuardian.java index 2c6ec2cfa37..4a93bd39fb8 100644 --- a/Mage.Sets/src/mage/cards/s/SpectralGuardian.java +++ b/Mage.Sets/src/mage/cards/s/SpectralGuardian.java @@ -40,7 +40,7 @@ public final class SpectralGuardian extends CardImpl { // As long as Spectral Guardian is untapped, noncreature artifacts have shroud. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilityAllEffect(ShroudAbility.getInstance(), Duration.WhileOnBattlefield, filter, false), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "as long as {this} is untapped, noncreature artifacts have shroud."))); } diff --git a/Mage.Sets/src/mage/cards/s/SpiritShield.java b/Mage.Sets/src/mage/cards/s/SpiritShield.java index bb71b953aeb..922fcd4ff29 100644 --- a/Mage.Sets/src/mage/cards/s/SpiritShield.java +++ b/Mage.Sets/src/mage/cards/s/SpiritShield.java @@ -30,7 +30,7 @@ public final class SpiritShield extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}, {tap}: Target creature gets +0/+2 for as long as Spirit Shield remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(0, 2, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(0, 2, Duration.Custom), SourceTappedCondition.TAPPED, "target creature gets +0/+2 for as long as {this} remains tapped"), new ManaCostsImpl("{2}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/t/TawnossWeaponry.java b/Mage.Sets/src/mage/cards/t/TawnossWeaponry.java index b8cfaa12433..bf91e993053 100644 --- a/Mage.Sets/src/mage/cards/t/TawnossWeaponry.java +++ b/Mage.Sets/src/mage/cards/t/TawnossWeaponry.java @@ -30,7 +30,7 @@ public final class TawnossWeaponry extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {2}, {tap}: Target creature gets +1/+1 for as long as Tawnos's Weaponry remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(1, 1, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(1, 1, Duration.Custom), SourceTappedCondition.TAPPED, "target creature gets +1/+1 for as long as {this} remains tapped"), new ManaCostsImpl("{2}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/u/UWing.java b/Mage.Sets/src/mage/cards/u/UWing.java index a783f9ac5c1..ceb7c92a7ca 100644 --- a/Mage.Sets/src/mage/cards/u/UWing.java +++ b/Mage.Sets/src/mage/cards/u/UWing.java @@ -38,7 +38,7 @@ public final class UWing extends CardImpl { // As long as U-Wing is tapped, it gets +1/+0. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(1, 0, Duration.WhileOnBattlefield), - SourceTappedCondition.instance, + SourceTappedCondition.TAPPED, "As long as {this} is tapped, it gets +1/+0"))); // As long as U-Wing is untapped, it gets +0/+1. diff --git a/Mage.Sets/src/mage/cards/v/VedalkenShackles.java b/Mage.Sets/src/mage/cards/v/VedalkenShackles.java index 2c6adc7e209..8e895739159 100644 --- a/Mage.Sets/src/mage/cards/v/VedalkenShackles.java +++ b/Mage.Sets/src/mage/cards/v/VedalkenShackles.java @@ -44,7 +44,7 @@ public final class VedalkenShackles extends CardImpl { // {2}, {tap}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped. ConditionalContinuousEffect effect = new ConditionalContinuousEffect( - new GainControlTargetEffect(Duration.Custom), SourceTappedCondition.instance, + new GainControlTargetEffect(Duration.Custom), SourceTappedCondition.TAPPED, "Gain control of target creature with power less than or equal to the number of Islands you control for as long as {this} remains tapped"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/v/VeteranBodyguard.java b/Mage.Sets/src/mage/cards/v/VeteranBodyguard.java index 8ff8e5eda16..c121568e1bd 100644 --- a/Mage.Sets/src/mage/cards/v/VeteranBodyguard.java +++ b/Mage.Sets/src/mage/cards/v/VeteranBodyguard.java @@ -38,7 +38,7 @@ public final class VeteranBodyguard extends CardImpl { // As long as Veteran Bodyguard is untapped, all damage that would be dealt to you by unblocked creatures is dealt to Veteran Bodyguard instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalPreventionEffect( new VeteranBodyguardEffect(), - new InvertCondition(SourceTappedCondition.instance), + SourceTappedCondition.UNTAPPED, "As long as {this} is untapped, all damage that would be dealt to you by unblocked creatures is dealt to {this} instead." ))); } diff --git a/Mage.Sets/src/mage/cards/v/VoodooDoll.java b/Mage.Sets/src/mage/cards/v/VoodooDoll.java index 5cbc1565b80..50b63d6c081 100644 --- a/Mage.Sets/src/mage/cards/v/VoodooDoll.java +++ b/Mage.Sets/src/mage/cards/v/VoodooDoll.java @@ -44,7 +44,7 @@ public final class VoodooDoll extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility( new BeginningOfEndStepTriggeredAbility( new DestroySourceEffect(), TargetController.YOU, false - ), new InvertCondition(SourceTappedCondition.instance), "At the beginning of your end step, " + + ), SourceTappedCondition.UNTAPPED, "At the beginning of your end step, " + "if {this} is untapped, destroy {this} and it deals damage to you equal to the number of pin counters on it." ); ability.addEffect(new DamageControllerEffect(new CountersSourceCount(CounterType.PIN))); diff --git a/Mage.Sets/src/mage/cards/w/Watchdog.java b/Mage.Sets/src/mage/cards/w/Watchdog.java index 155ae8d897d..f32ef7b8d4a 100644 --- a/Mage.Sets/src/mage/cards/w/Watchdog.java +++ b/Mage.Sets/src/mage/cards/w/Watchdog.java @@ -36,7 +36,7 @@ public final class Watchdog extends CardImpl { addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlocksIfAbleSourceEffect(Duration.WhileOnBattlefield))); // As long as Watchdog is untapped, all creatures attacking you get -1/-0. addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostAllEffect(-1, 0, Duration.WhileOnBattlefield, new WatchdogFilter(), false), new InvertCondition(SourceTappedCondition.instance), "As long as {this} is untapped, all creatures attacking you get -1/-0"))); + new BoostAllEffect(-1, 0, Duration.WhileOnBattlefield, new WatchdogFilter(), false), SourceTappedCondition.UNTAPPED, "As long as {this} is untapped, all creatures attacking you get -1/-0"))); } private Watchdog(final Watchdog card) { diff --git a/Mage.Sets/src/mage/cards/w/WillowSatyr.java b/Mage.Sets/src/mage/cards/w/WillowSatyr.java index a1621045aa7..21cfb6aff04 100644 --- a/Mage.Sets/src/mage/cards/w/WillowSatyr.java +++ b/Mage.Sets/src/mage/cards/w/WillowSatyr.java @@ -41,7 +41,7 @@ public final class WillowSatyr extends CardImpl { // {tap}: Gain control of target legendary creature for as long as you control Willow Satyr and Willow Satyr remains tapped. Ability ability = new SimpleActivatedAbility(new ConditionalContinuousEffect( - new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.instance, + new GainControlTargetEffect(Duration.WhileControlled), SourceTappedCondition.TAPPED, "Gain control of target legendary creature for as long as you control {this} and {this} remains tapped" ), new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent(filter)); diff --git a/Mage.Sets/src/mage/cards/z/ZelyonSword.java b/Mage.Sets/src/mage/cards/z/ZelyonSword.java index cd0d2976ca5..a384b649601 100644 --- a/Mage.Sets/src/mage/cards/z/ZelyonSword.java +++ b/Mage.Sets/src/mage/cards/z/ZelyonSword.java @@ -30,7 +30,7 @@ public final class ZelyonSword extends CardImpl { this.addAbility(new SkipUntapOptionalAbility()); // {3}, {tap}: Target creature gets +2/+0 for as long as Zelyon Sword remains tapped. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BoostTargetEffect(2, 0, Duration.Custom), SourceTappedCondition.instance, + new BoostTargetEffect(2, 0, Duration.Custom), SourceTappedCondition.TAPPED, "target creature gets +2/+0 for as long as {this} remains tapped"), new ManaCostsImpl("{3}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage/src/main/java/mage/abilities/condition/common/SourceTappedCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SourceTappedCondition.java index f6b64cbff71..6f63e20f2b8 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/SourceTappedCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/SourceTappedCondition.java @@ -1,5 +1,3 @@ - - package mage.abilities.condition.common; import mage.abilities.Ability; @@ -8,21 +6,22 @@ import mage.game.Game; import mage.game.permanent.Permanent; /** - * * @author LevelX2 */ public enum SourceTappedCondition implements Condition { + TAPPED(true), + UNTAPPED(false); + private final boolean tapped; - instance; + SourceTappedCondition(boolean tapped) { + this.tapped = tapped; + } @Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getBattlefield().getPermanent(source.getSourceId()); - if (permanent != null) { - return permanent.isTapped(); - } - return false; + return permanent != null && permanent.isTapped() == tapped; } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/DontUntapAsLongAsSourceTappedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DontUntapAsLongAsSourceTappedEffect.java index 1bee2394880..4fdc5473843 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DontUntapAsLongAsSourceTappedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DontUntapAsLongAsSourceTappedEffect.java @@ -17,7 +17,7 @@ import mage.game.events.GameEvent; public class DontUntapAsLongAsSourceTappedEffect extends ConditionalContinuousRuleModifyingEffect { public DontUntapAsLongAsSourceTappedEffect() { - super(new DontUntapInControllersUntapStepTargetEffect(Duration.Custom), SourceTappedCondition.instance); + super(new DontUntapInControllersUntapStepTargetEffect(Duration.Custom), SourceTappedCondition.TAPPED); staticText = "It doesn't untap during its controller's untap step for as long as {this} remains tapped."; }