From 595a1d6f14fbb78ce20d12a5162cb97fb95afbf6 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sat, 4 Nov 2023 16:59:22 -0400 Subject: [PATCH] add UNTAPPED option to AttachedToTappedCondition --- Mage.Sets/src/mage/cards/s/SpectralCloak.java | 16 +++++----------- Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java | 15 +++++---------- .../common/AttachedToTappedCondition.java | 12 ++++++++---- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/Mage.Sets/src/mage/cards/s/SpectralCloak.java b/Mage.Sets/src/mage/cards/s/SpectralCloak.java index 5c014bd5209..9df30e22ae2 100644 --- a/Mage.Sets/src/mage/cards/s/SpectralCloak.java +++ b/Mage.Sets/src/mage/cards/s/SpectralCloak.java @@ -1,4 +1,3 @@ - package mage.cards.s; import java.util.UUID; @@ -6,7 +5,6 @@ import mage.constants.SubType; import mage.target.common.TargetCreaturePermanent; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.AttachedToTappedCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.effects.common.AttachEffect; @@ -19,7 +17,6 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; -import mage.constants.Zone; /** * @@ -40,14 +37,11 @@ public final class SpectralCloak extends CardImpl { this.addAbility(ability); // Enchanted creature has shroud as long as it's untapped. - this.addAbility(new SimpleStaticAbility( - Zone.BATTLEFIELD, - new ConditionalContinuousEffect( - new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA), - new InvertCondition(AttachedToTappedCondition.instance), - "Enchanted creature has shroud as long as it's untapped." - ) - )); + this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( + new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA), + AttachedToTappedCondition.UNTAPPED, + "Enchanted creature has shroud as long as it's untapped." + ))); } private SpectralCloak(final SpectralCloak card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java b/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java index 07988f8b352..770b8793ee6 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java @@ -1,12 +1,9 @@ - package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.CompoundCondition; -import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.AttachedToTappedCondition; import mage.abilities.condition.common.EquipmentAttachedCondition; import mage.abilities.costs.mana.GenericManaCost; @@ -16,17 +13,15 @@ import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -47,14 +42,14 @@ public final class SwordOfTheParuns extends CardImpl { // As long as equipped creature is tapped, tapped creatures you control get +2/+0. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostControlledEffect(2,0, Duration.WhileOnBattlefield, filterTapped), - new CompoundCondition(EquipmentAttachedCondition.instance, AttachedToTappedCondition.instance), + new CompoundCondition(EquipmentAttachedCondition.instance, AttachedToTappedCondition.TAPPED), "As long as equipped creature is tapped, tapped creatures you control get +2/+0" ))); // As long as equipped creature is untapped, untapped creatures you control get +0/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostControlledEffect(0,2, Duration.WhileOnBattlefield, filterUntapped), - new CompoundCondition(EquipmentAttachedCondition.instance, new InvertCondition(AttachedToTappedCondition.instance)), + new CompoundCondition(EquipmentAttachedCondition.instance, AttachedToTappedCondition.UNTAPPED), "As long as equipped creature is untapped, untapped creatures you control get +0/+2" ))); diff --git a/Mage/src/main/java/mage/abilities/condition/common/AttachedToTappedCondition.java b/Mage/src/main/java/mage/abilities/condition/common/AttachedToTappedCondition.java index a10269b844c..d7edee149c2 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/AttachedToTappedCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/AttachedToTappedCondition.java @@ -1,5 +1,3 @@ - - package mage.abilities.condition.common; import mage.abilities.Ability; @@ -11,7 +9,13 @@ import mage.game.permanent.Permanent; * @author LevelX2 */ public enum AttachedToTappedCondition implements Condition { - instance; + TAPPED(true), + UNTAPPED(false); + private final boolean tapped; + + AttachedToTappedCondition(boolean tapped) { + this.tapped = tapped; + } @Override public boolean apply(Game game, Ability source) { @@ -23,6 +27,6 @@ public enum AttachedToTappedCondition implements Condition { if (attachedTo == null) { return false; } - return attachedTo.isTapped(); + return attachedTo.isTapped() == this.tapped; } }