diff --git a/Mage.Sets/src/mage/cards/a/Abduction.java b/Mage.Sets/src/mage/cards/a/Abduction.java index 82e2e643d10..2b4bc880bbf 100644 --- a/Mage.Sets/src/mage/cards/a/Abduction.java +++ b/Mage.Sets/src/mage/cards/a/Abduction.java @@ -7,7 +7,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlAttachedEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.ControlEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; @@ -37,7 +37,7 @@ public final class Abduction extends CardImpl { this.addAbility(new EnchantAbility(auraTarget)); // When Abduction enters the battlefield, untap enchanted creature. - this.addAbility(new EntersBattlefieldTriggeredAbility(new UntapEnchantedEffect())); + this.addAbility(new EntersBattlefieldTriggeredAbility(new UntapAttachedEffect())); // You control enchanted creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect())); diff --git a/Mage.Sets/src/mage/cards/a/AuraOfDominion.java b/Mage.Sets/src/mage/cards/a/AuraOfDominion.java index a8a164ba156..8ce2069ff37 100644 --- a/Mage.Sets/src/mage/cards/a/AuraOfDominion.java +++ b/Mage.Sets/src/mage/cards/a/AuraOfDominion.java @@ -8,7 +8,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -42,7 +42,7 @@ public final class AuraOfDominion extends CardImpl { this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Untap)); this.addAbility(new EnchantAbility(auraTarget)); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new GenericManaCost(1)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new GenericManaCost(1)); ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, false))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/CrabUmbra.java b/Mage.Sets/src/mage/cards/c/CrabUmbra.java index 4e4e725c36c..72577bf05e9 100644 --- a/Mage.Sets/src/mage/cards/c/CrabUmbra.java +++ b/Mage.Sets/src/mage/cards/c/CrabUmbra.java @@ -7,7 +7,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TotemArmorAbility; import mage.cards.CardImpl; @@ -37,7 +37,7 @@ public final class CrabUmbra extends CardImpl { this.addAbility(ability); // {2}{U}: Untap enchanted creature. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new ManaCostsImpl<>("{2}{U}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new ManaCostsImpl<>("{2}{U}"))); // Totem armor this.addAbility(new TotemArmorAbility()); diff --git a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java index 9b3a793826f..fdd02464167 100644 --- a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java @@ -11,7 +11,7 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; @@ -74,7 +74,7 @@ public final class DanceOfTheDead extends CardImpl { class DanceOfTheDeadDoIfCostPaidEffect extends DoIfCostPaid { public DanceOfTheDeadDoIfCostPaidEffect() { - super(new UntapEnchantedEffect(), new ManaCostsImpl<>("{1}{B}")); + super(new UntapAttachedEffect(), new ManaCostsImpl<>("{1}{B}")); } public DanceOfTheDeadDoIfCostPaidEffect(final DanceOfTheDeadDoIfCostPaidEffect effect) { diff --git a/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java b/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java index 8246945c464..4ce9ce503ec 100644 --- a/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java +++ b/Mage.Sets/src/mage/cards/f/FreedFromTheReal.java @@ -6,7 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.TapEnchantedEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,7 +35,7 @@ public final class FreedFromTheReal extends CardImpl { // {U}: Tap enchanted creature. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapEnchantedEffect(), new ManaCostsImpl<>("{U}"))); // {U}: Untap enchanted creature. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new ManaCostsImpl<>("{U}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new ManaCostsImpl<>("{U}"))); } diff --git a/Mage.Sets/src/mage/cards/h/HowlOfTheHunt.java b/Mage.Sets/src/mage/cards/h/HowlOfTheHunt.java index 0031d0efe98..dbc777f7109 100644 --- a/Mage.Sets/src/mage/cards/h/HowlOfTheHunt.java +++ b/Mage.Sets/src/mage/cards/h/HowlOfTheHunt.java @@ -6,7 +6,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -44,7 +44,7 @@ public final class HowlOfTheHunt extends CardImpl { // When Howl of the Hunt enters the battlefield, if enchanted creature is a Wolf or Werewolf, untap that creature. this.addAbility(new ConditionalInterveningIfTriggeredAbility( - new EntersBattlefieldTriggeredAbility(new UntapEnchantedEffect()), + new EntersBattlefieldTriggeredAbility(new UntapAttachedEffect()), HowlOfTheHuntCondition.instance, "When {this} enters the battlefield, " + "if enchanted creature is a Wolf or Werewolf, untap that creature." )); diff --git a/Mage.Sets/src/mage/cards/i/InstillEnergy.java b/Mage.Sets/src/mage/cards/i/InstillEnergy.java index 64f3903fb45..53834df3854 100644 --- a/Mage.Sets/src/mage/cards/i/InstillEnergy.java +++ b/Mage.Sets/src/mage/cards/i/InstillEnergy.java @@ -7,7 +7,7 @@ import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.hint.common.MyTurnHint; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; @@ -41,7 +41,7 @@ public final class InstillEnergy extends CardImpl { // {0}: Untap enchanted creature. Activate this ability only during your turn and only once each turn. this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, - new UntapEnchantedEffect(), + new UntapAttachedEffect(), new GenericManaCost(0), 1, MyTurnCondition.instance) .addHint(MyTurnHint.instance)); } diff --git a/Mage.Sets/src/mage/cards/n/NaturesChosen.java b/Mage.Sets/src/mage/cards/n/NaturesChosen.java index cb627e9d369..052cb634ac5 100644 --- a/Mage.Sets/src/mage/cards/n/NaturesChosen.java +++ b/Mage.Sets/src/mage/cards/n/NaturesChosen.java @@ -9,7 +9,7 @@ import mage.abilities.costs.common.TapAttachedCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.hint.common.MyTurnHint; import mage.abilities.keyword.EnchantAbility; @@ -62,7 +62,7 @@ public final class NaturesChosen extends CardImpl { this.addAbility(ability); // {0}: Untap enchanted creature. Activate this ability only during your turn and only once each turn. - this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new GenericManaCost(0), 1, MyTurnCondition.instance) + this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new GenericManaCost(0), 1, MyTurnCondition.instance) .addHint(MyTurnHint.instance)); // Tap enchanted creature: Untap target artifact, creature, or land. Activate this ability only if enchanted creature is white and is untapped and only once each turn. diff --git a/Mage.Sets/src/mage/cards/p/Paralyze.java b/Mage.Sets/src/mage/cards/p/Paralyze.java index 31d80281f5b..2fdde95633e 100644 --- a/Mage.Sets/src/mage/cards/p/Paralyze.java +++ b/Mage.Sets/src/mage/cards/p/Paralyze.java @@ -56,7 +56,7 @@ public final class Paralyze extends CardImpl { class ParalyzeEffect extends DoIfCostPaid { public ParalyzeEffect() { - super(new UntapEnchantedEffect(), new GenericManaCost(4)); + super(new UntapAttachedEffect(), new GenericManaCost(4)); } public ParalyzeEffect(final ParalyzeEffect effect) { diff --git a/Mage.Sets/src/mage/cards/p/PemminsAura.java b/Mage.Sets/src/mage/cards/p/PemminsAura.java index f88be2eb0f5..f0cacbe2683 100644 --- a/Mage.Sets/src/mage/cards/p/PemminsAura.java +++ b/Mage.Sets/src/mage/cards/p/PemminsAura.java @@ -6,7 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -42,7 +42,7 @@ public final class PemminsAura extends CardImpl { this.addAbility(ability); // {U}: Untap enchanted creature. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new ManaCostsImpl<>("{U}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new ManaCostsImpl<>("{U}"))); // {U}: Enchanted creature gains flying until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), diff --git a/Mage.Sets/src/mage/cards/s/SecondWind.java b/Mage.Sets/src/mage/cards/s/SecondWind.java index dfbcd802e10..b84b803d843 100644 --- a/Mage.Sets/src/mage/cards/s/SecondWind.java +++ b/Mage.Sets/src/mage/cards/s/SecondWind.java @@ -6,7 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.TapEnchantedEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -37,7 +37,7 @@ public final class SecondWind extends CardImpl { this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapEnchantedEffect(), new TapSourceCost())); // {tap}: Untap enchanted creature. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapEnchantedEffect(), new TapSourceCost())); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapAttachedEffect(), new TapSourceCost())); } private SecondWind(final SecondWind card) { diff --git a/Mage.Sets/src/mage/cards/s/StingTheGlintingDagger.java b/Mage.Sets/src/mage/cards/s/StingTheGlintingDagger.java index ca032994c73..b627536103e 100644 --- a/Mage.Sets/src/mage/cards/s/StingTheGlintingDagger.java +++ b/Mage.Sets/src/mage/cards/s/StingTheGlintingDagger.java @@ -6,7 +6,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.decorator.ConditionalContinuousEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; @@ -45,7 +45,7 @@ public final class StingTheGlintingDagger extends CardImpl { // At the beginning of each combat, untap equipped creature. this.addAbility(new BeginningOfCombatTriggeredAbility( - new UntapEnchantedEffect().setText("untap equipped creature"), //TODO: rename the effect and add AttachmentType to it? + new UntapAttachedEffect(AttachmentType.EQUIPMENT, "creature"), TargetController.ANY, false)); // Equipped creature has first strike as long as it's blocking or blocked by a Goblin or Orc. @@ -85,16 +85,16 @@ enum StingTheGlintingDaggerCondition implements Condition { @Override public boolean apply(Game game, Ability source) { Permanent sting = game.getPermanent(source.getSourceId()); - if(sting == null){ + if (sting == null) { return false; } Permanent equippedCreature = game.getPermanent(sting.getAttachedTo()); - if(equippedCreature == null){ + if (equippedCreature == null) { return false; } - if(equippedCreature.isAttacking() && equippedCreature.isBlocked(game)){ + if (equippedCreature.isAttacking() && equippedCreature.isBlocked(game)) { // equipped creature is currently blocked, time to look for blocking goblin or orc. UUID controllerId = equippedCreature.getControllerId(); @@ -103,7 +103,7 @@ enum StingTheGlintingDaggerCondition implements Condition { .stream() .anyMatch(p -> BlockingOrBlockedWatcher.check(equippedCreature, p, game)); - } else if(equippedCreature.getBlocking() > 0) { + } else if (equippedCreature.getBlocking() > 0) { // equipped creature is currently blocking, time to look for blocked goblin or orc. UUID controllerId = equippedCreature.getControllerId(); @@ -115,4 +115,4 @@ enum StingTheGlintingDaggerCondition implements Condition { // creature is neither blocking nor blocked, no first strike from Sting. return false; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/TriclopeanSight.java b/Mage.Sets/src/mage/cards/t/TriclopeanSight.java index 7b375b11bf1..3ee6c0fc97f 100644 --- a/Mage.Sets/src/mage/cards/t/TriclopeanSight.java +++ b/Mage.Sets/src/mage/cards/t/TriclopeanSight.java @@ -4,7 +4,7 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -37,7 +37,7 @@ public final class TriclopeanSight extends CardImpl { this.addAbility(new EnchantAbility(auraTarget)); // When Triclopean Sight enters the battlefield, untap enchanted creature. - this.addAbility(new EntersBattlefieldTriggeredAbility(new UntapEnchantedEffect())); + this.addAbility(new EntersBattlefieldTriggeredAbility(new UntapAttachedEffect())); // Enchanted creature gets +1/+1 and has vigilance. Ability ability = new SimpleStaticAbility(new BoostEnchantedEffect( diff --git a/Mage.Sets/src/mage/cards/w/Wellspring.java b/Mage.Sets/src/mage/cards/w/Wellspring.java index 4609b9debca..f739f859f03 100644 --- a/Mage.Sets/src/mage/cards/w/Wellspring.java +++ b/Mage.Sets/src/mage/cards/w/Wellspring.java @@ -6,7 +6,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.UntapEnchantedEffect; +import mage.abilities.effects.common.UntapAttachedEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; @@ -44,7 +44,7 @@ public final class Wellspring extends CardImpl { // At the beginning of your upkeep, untap enchanted land. You gain control of that land until end of turn. ability = new BeginningOfUpkeepTriggeredAbility( - new UntapEnchantedEffect().setText("untap enchanted land"), TargetController.YOU, false + new UntapAttachedEffect(AttachmentType.AURA, "land"), TargetController.YOU, false ); ability.addEffect(new WellspringEffect("You gain control of that land until end of turn")); this.addAbility(ability); diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapEnchantedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapAttachedEffect.java similarity index 57% rename from Mage/src/main/java/mage/abilities/effects/common/UntapEnchantedEffect.java rename to Mage/src/main/java/mage/abilities/effects/common/UntapAttachedEffect.java index ca6f69d2a16..5e0ea9c0b6a 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapEnchantedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapAttachedEffect.java @@ -1,25 +1,29 @@ - - package mage.abilities.effects.common; +import mage.constants.AttachmentType; import mage.constants.Outcome; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.util.CardUtil; /** * * @author LevelX */ -public class UntapEnchantedEffect extends OneShotEffect { +public class UntapAttachedEffect extends OneShotEffect { - public UntapEnchantedEffect() { - super(Outcome.Untap); - staticText = "untap enchanted creature"; + public UntapAttachedEffect() { + this(AttachmentType.AURA, "creature"); } - public UntapEnchantedEffect(final UntapEnchantedEffect effect) { + public UntapAttachedEffect(AttachmentType attachmentType, String name) { + super(Outcome.Untap); + staticText = "untap " + CardUtil.getTextWithFirstCharLowerCase(attachmentType.verb()) + ' ' + name; + } + + public UntapAttachedEffect(final UntapAttachedEffect effect) { super(effect); } @@ -37,8 +41,8 @@ public class UntapEnchantedEffect extends OneShotEffect { } @Override - public UntapEnchantedEffect copy() { - return new UntapEnchantedEffect(this); + public UntapAttachedEffect copy() { + return new UntapAttachedEffect(this); } }