diff --git a/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java b/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java index 2cff90deea..8003d3433b 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java +++ b/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.abilities.common.BlocksCreatureAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.continious.BoostEquippedEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; @@ -63,7 +63,7 @@ public class ShieldOfTheRighteous extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT))); // Whenever equipped creature blocks a creature, that creature doesn't untap during its controller's next untap step. - this.addAbility(new BlocksCreatureAttachedTriggeredAbility(new SkipNextUntapTargetEffect("that creature"), "equipped", false, false, true)); + this.addAbility(new BlocksCreatureAttachedTriggeredAbility(new DontUntapInControllersNextUntapStepTargetEffect("that creature"), "equipped", false, false, true)); // Equip {2} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), new TargetControlledCreaturePermanent())); diff --git a/Mage.Sets/src/mage/sets/avacynrestored/CripplingChill.java b/Mage.Sets/src/mage/sets/avacynrestored/CripplingChill.java index 5345ff00c6..6d9bf044ea 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/CripplingChill.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/CripplingChill.java @@ -30,7 +30,7 @@ package mage.sets.avacynrestored; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.target.common.TargetCreaturePermanent; @@ -52,7 +52,7 @@ public class CripplingChill extends CardImpl { // Tap target creature. It doesn't untap during its controller's next untap step. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new TapTargetEffect()); - this.getSpellAbility().addEffect(new SkipNextUntapTargetEffect()); + this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); } diff --git a/Mage.Sets/src/mage/sets/avacynrestored/SpectralPrison.java b/Mage.Sets/src/mage/sets/avacynrestored/SpectralPrison.java index 9e85cf66ea..09ff8600fa 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/SpectralPrison.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/SpectralPrison.java @@ -34,7 +34,7 @@ import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DestroySourceEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.constants.Outcome; @@ -66,11 +66,10 @@ public class SpectralPrison extends CardImpl { TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); - + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); + // Enchanted creature doesn't untap during its controller's untap step. - Ability ability = new EnchantAbility(auraTarget.getTargetName()); - this.addAbility(ability); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); // When enchanted creature becomes the target of a spell, sacrifice Spectral Prison. this.addAbility(new SpectralPrisonAbility()); diff --git a/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java b/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java index 29bffafa06..7cffc5dd8f 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/TamiyoTheMoonSage.java @@ -38,7 +38,7 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continious.MaximumHandSizeControllerEffect; import mage.abilities.effects.common.continious.MaximumHandSizeControllerEffect.HandSizeModification; @@ -77,7 +77,7 @@ public class TamiyoTheMoonSage extends CardImpl { // +1: Tap target permanent. It doesn't untap during its controller's next untap step. LoyaltyAbility ability = new LoyaltyAbility(new TapTargetEffect(), 1); - ability.addEffect(new SkipNextUntapTargetEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); Target target = new TargetPermanent(); ability.addTarget(target); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/HokoriDustDrinker.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/HokoriDustDrinker.java index c7672f49c7..3b9bb36581 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/HokoriDustDrinker.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/HokoriDustDrinker.java @@ -38,7 +38,7 @@ import mage.abilities.Ability; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.constants.Duration; import mage.constants.TargetController; @@ -65,7 +65,7 @@ public class HokoriDustDrinker extends CardImpl { this.toughness = new MageInt(1); // Lands don't untap during their controllers' untap steps. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, new FilterLandPermanent("Lands")))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, new FilterLandPermanent("Lands")))); // At the beginning of each player's upkeep, that player untaps a land he or she controls. this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new HokoriDustDrinkerUntapEffect(), TargetController.ANY, false)); diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/MatsuTribeSniper.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/MatsuTribeSniper.java index b4fce07ec4..01bd9693f3 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/MatsuTribeSniper.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/MatsuTribeSniper.java @@ -34,7 +34,7 @@ import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -75,7 +75,7 @@ public class MatsuTribeSniper extends CardImpl { // Whenever Matsu-Tribe Sniper deals damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), false, false, true); - ability.addEffect(new SkipNextUntapTargetEffect("and it")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/NekoTe.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/NekoTe.java index 2ea41876bb..84392e423b 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/NekoTe.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/NekoTe.java @@ -36,7 +36,7 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.decorator.ConditionalContinuousRuleModifyingEffect; import mage.abilities.effects.ContinuousRuleModifiyingEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; -import mage.abilities.effects.common.SkipUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; @@ -57,12 +57,13 @@ public class NekoTe extends CardImpl { this.subtype.add("Equipment"); // Whenever equipped creature deals damage to a creature, tap that creature. That creature doesn't untap during its controller's untap step for as long as Neko-Te remains on the battlefield. - ContinuousRuleModifiyingEffect skipUntapEffect = new SkipUntapTargetEffect(Duration.WhileOnBattlefield); + ContinuousRuleModifiyingEffect skipUntapEffect = new DontUntapInControllersUntapStepTargetEffect(Duration.WhileOnBattlefield); skipUntapEffect.setText("That creature doesn't untap during its controller's untap step for as long as {this} remains on the battlefield"); ConditionalContinuousRuleModifyingEffect effect = new ConditionalContinuousRuleModifyingEffect(skipUntapEffect, new SourceOnBattelfieldCondition()); Ability ability = new DealsDamageToACreatureAttachedTriggeredAbility(new TapTargetEffect("that creature"), false, "equipped creature", false, true); ability.addEffect(effect); this.addAbility(ability); + // Whenever equipped creature deals damage to a player, that player loses 1 life. this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseLifeTargetEffect(1), "equipped creature", false, true, false)); diff --git a/Mage.Sets/src/mage/sets/bornofthegods/SuddenStorm.java b/Mage.Sets/src/mage/sets/bornofthegods/SuddenStorm.java index 3c43d333ed..fcd542a177 100644 --- a/Mage.Sets/src/mage/sets/bornofthegods/SuddenStorm.java +++ b/Mage.Sets/src/mage/sets/bornofthegods/SuddenStorm.java @@ -29,7 +29,7 @@ package mage.sets.bornofthegods; import java.util.UUID; import mage.abilities.effects.keyword.ScryEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -51,7 +51,7 @@ public class SuddenStorm extends CardImpl { // Tap up to two target creatures. Those creatures don't untap during their controllers' next untap steps. Scry 1. this.getSpellAbility().addEffect(new TapTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); - this.getSpellAbility().addEffect(new SkipNextUntapTargetEffect()); + this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); this.getSpellAbility().addEffect(new ScryEffect(1)); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java b/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java index aa26608dda..451fe33a81 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java @@ -32,7 +32,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.WhiteManaAbility; @@ -51,10 +51,10 @@ public class CloudcrestLake extends CardImpl { // {T}: Add {W} or {U} to your mana pool. Cloudcrest Lake doesn't untap during your next untap step. this.addAbility(new ColorlessManaAbility()); Ability whiteManaAbility = new WhiteManaAbility(); - whiteManaAbility.addEffect(new SkipNextUntapSourceEffect()); + whiteManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(whiteManaAbility); Ability blueManaAbility = new BlueManaAbility(); - blueManaAbility.addEffect(new SkipNextUntapSourceEffect()); + blueManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(blueManaAbility); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeReaver.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeReaver.java index 9f8c95bb73..dbe804bdb6 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeReaver.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeReaver.java @@ -37,7 +37,7 @@ import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.RegenerateSourceEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; @@ -60,7 +60,7 @@ public class KashiTribeReaver extends CardImpl { // Whenever Kashi-Tribe Reaver deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. Ability ability; ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true); - ability.addEffect(new SkipNextUntapTargetEffect("and it")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability); // {1}{G}: Regenerate Kashi-Tribe Reaver. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}"))); diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeWarriors.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeWarriors.java index d442217db1..60f28d9020 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeWarriors.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KashiTribeWarriors.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; @@ -57,7 +57,7 @@ public class KashiTribeWarriors extends CardImpl { // Whenever Kashi-Tribe Reaver deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. Ability ability; ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true); - ability.addEffect(new SkipNextUntapTargetEffect("and it")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/LanternLitGraveyard.java b/Mage.Sets/src/mage/sets/championsofkamigawa/LanternLitGraveyard.java index cb451d16a6..d7d712d9b9 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/LanternLitGraveyard.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/LanternLitGraveyard.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.RedManaAbility; @@ -48,10 +48,10 @@ public class LanternLitGraveyard extends CardImpl { this.expansionSetCode = "CHK"; this.addAbility(new ColorlessManaAbility()); Ability blackManaAbility = new BlackManaAbility(); - blackManaAbility.addEffect(new SkipNextUntapSourceEffect()); + blackManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(blackManaAbility); Ability redManaAbility = new RedManaAbility(); - redManaAbility.addEffect(new SkipNextUntapSourceEffect()); + redManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(redManaAbility); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java b/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java index f042b1aea7..05a83d6169 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java @@ -37,7 +37,7 @@ import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.target.common.TargetCreaturePermanent; @@ -65,7 +65,7 @@ public class MatsuTribeDecoy extends CardImpl { // Whenever Kashi-Tribe Reaver deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. Ability ability2; ability2 = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true); - ability2.addEffect(new SkipNextUntapTargetEffect("and it")); + ability2.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability2); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/MysticRestraints.java b/Mage.Sets/src/mage/sets/championsofkamigawa/MysticRestraints.java index f980c0e43e..8c2892b21f 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/MysticRestraints.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/MysticRestraints.java @@ -37,7 +37,7 @@ import mage.constants.Zone; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; @@ -66,7 +66,7 @@ public class MysticRestraints extends CardImpl { // When Mystic Restraints enters the battlefield, tap enchanted creature. this.addAbility(new EntersBattlefieldTriggeredAbility(new TapEnchantedEffect())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public MysticRestraints(final MysticRestraints card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/OrochiRanger.java b/Mage.Sets/src/mage/sets/championsofkamigawa/OrochiRanger.java index fd78d4193a..cd22de5804 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/OrochiRanger.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/OrochiRanger.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; @@ -57,7 +57,7 @@ public class OrochiRanger extends CardImpl { // Whenever Orochi Ranger deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. Ability ability; ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true); - ability.addEffect(new SkipNextUntapTargetEffect("and it")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/PinecrestRidge.java b/Mage.Sets/src/mage/sets/championsofkamigawa/PinecrestRidge.java index a5ad13b602..ac76456325 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/PinecrestRidge.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/PinecrestRidge.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.RedManaAbility; @@ -48,10 +48,10 @@ public class PinecrestRidge extends CardImpl { this.expansionSetCode = "CHK"; this.addAbility(new ColorlessManaAbility()); Ability redManaAbility = new RedManaAbility(); - redManaAbility.addEffect(new SkipNextUntapSourceEffect()); + redManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(redManaAbility); Ability greenManaAbility = new GreenManaAbility(); - greenManaAbility.addEffect(new SkipNextUntapSourceEffect()); + greenManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(greenManaAbility); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/TranquilGarden.java b/Mage.Sets/src/mage/sets/championsofkamigawa/TranquilGarden.java index c263b77be6..49ce7e1b2d 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/TranquilGarden.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/TranquilGarden.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.WhiteManaAbility; @@ -48,10 +48,10 @@ public class TranquilGarden extends CardImpl { this.expansionSetCode = "CHK"; this.addAbility(new ColorlessManaAbility()); Ability greenManaAbility = new GreenManaAbility(); - greenManaAbility.addEffect(new SkipNextUntapSourceEffect()); + greenManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(greenManaAbility); Ability whiteManaAbility = new WhiteManaAbility(); - whiteManaAbility.addEffect(new SkipNextUntapSourceEffect()); + whiteManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(whiteManaAbility); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/WaterveilCavern.java b/Mage.Sets/src/mage/sets/championsofkamigawa/WaterveilCavern.java index b3bd21c4e6..2e1b8803c7 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/WaterveilCavern.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/WaterveilCavern.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.ColorlessManaAbility; @@ -46,12 +46,16 @@ public class WaterveilCavern extends CardImpl { public WaterveilCavern(UUID ownerId) { super(ownerId, 286, "Waterveil Cavern", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "CHK"; + + // Tap: Add 1 to your mana pool. this.addAbility(new ColorlessManaAbility()); + + // Tap: Add Blue or Black to your mana pool. Waterveil Cavern doesn't untap during your next untap step. Ability blueManaAbility = new BlueManaAbility(); - blueManaAbility.addEffect(new SkipNextUntapSourceEffect()); + blueManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(blueManaAbility); Ability blackManaAbility = new BlackManaAbility(); - blackManaAbility.addEffect(new SkipNextUntapSourceEffect()); + blackManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(blackManaAbility); } diff --git a/Mage.Sets/src/mage/sets/commander/PollenLullaby.java b/Mage.Sets/src/mage/sets/commander/PollenLullaby.java index 63b19fe66e..84aedbb445 100644 --- a/Mage.Sets/src/mage/sets/commander/PollenLullaby.java +++ b/Mage.Sets/src/mage/sets/commander/PollenLullaby.java @@ -33,7 +33,7 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DoIfClashWonEffect; import mage.abilities.effects.common.PreventAllDamageByAllEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -89,7 +89,7 @@ class PollenLullabyEffect extends OneShotEffect { if (player != null) { for (Permanent creature: game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), player.getId(), game)) { creature.tap(game); - ContinuousEffect effect = new SkipNextUntapTargetEffect("This creature"); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect("This creature"); effect.setTargetPointer(new FixedTarget(creature.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/commander2014/BreachingLeviathan.java b/Mage.Sets/src/mage/sets/commander2014/BreachingLeviathan.java index 7953503c79..50a3ef6c83 100644 --- a/Mage.Sets/src/mage/sets/commander2014/BreachingLeviathan.java +++ b/Mage.Sets/src/mage/sets/commander2014/BreachingLeviathan.java @@ -36,7 +36,7 @@ import mage.abilities.condition.common.CastFromHandCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Outcome; @@ -108,7 +108,7 @@ class BreachingLeviathanEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { for (Permanent creature: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { creature.tap(game); - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(creature.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/conflux/ControlledInstincts.java b/Mage.Sets/src/mage/sets/conflux/ControlledInstincts.java index 1c48a2fddc..dd5c5b29de 100644 --- a/Mage.Sets/src/mage/sets/conflux/ControlledInstincts.java +++ b/Mage.Sets/src/mage/sets/conflux/ControlledInstincts.java @@ -35,7 +35,7 @@ import mage.constants.Zone; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; @@ -71,7 +71,7 @@ public class ControlledInstincts extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public ControlledInstincts(final ControlledInstincts card) { diff --git a/Mage.Sets/src/mage/sets/darkascension/ClingingMists.java b/Mage.Sets/src/mage/sets/darkascension/ClingingMists.java index 6ecdedbf5c..a55b7c5498 100644 --- a/Mage.Sets/src/mage/sets/darkascension/ClingingMists.java +++ b/Mage.Sets/src/mage/sets/darkascension/ClingingMists.java @@ -46,7 +46,7 @@ import mage.game.permanent.Permanent; import java.util.UUID; import mage.abilities.effects.ContinuousEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.target.targetpointer.FixedTarget; /** @@ -97,7 +97,7 @@ class ClingingMistsEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { for (Permanent creature: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { creature.tap(game); - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(creature.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/RunnersBane.java b/Mage.Sets/src/mage/sets/dragonsmaze/RunnersBane.java index c175c911b5..717273891b 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/RunnersBane.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/RunnersBane.java @@ -37,7 +37,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.constants.Outcome; @@ -76,8 +76,8 @@ public class RunnersBane extends CardImpl { // When Runner's Bane enters the battlefield, tap enchanted creature. this.addAbility(new EntersBattlefieldTriggeredAbility(new RunnersBaneEffect())); - // Enchanted creature doesn't untap during the untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + // Enchanted creature doesn't untap during its controller's the untap step. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public RunnersBane(final RunnersBane card) { diff --git a/Mage.Sets/src/mage/sets/eventide/AltarGolem.java b/Mage.Sets/src/mage/sets/eventide/AltarGolem.java index bc59bc5b75..890fe0d3ef 100644 --- a/Mage.Sets/src/mage/sets/eventide/AltarGolem.java +++ b/Mage.Sets/src/mage/sets/eventide/AltarGolem.java @@ -34,7 +34,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapTargetCost; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.continious.SetPowerToughnessSourceEffect; import mage.abilities.keyword.TrampleAbility; @@ -78,7 +78,7 @@ public class AltarGolem extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(amount, Duration.WhileOnBattlefield))); // Altar Golem doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Tap five untapped creatures you control: Untap Altar Golem. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new TapTargetCost(new TargetControlledCreaturePermanent(5, 5, filter, true)))); diff --git a/Mage.Sets/src/mage/sets/eventide/NettleSentinel.java b/Mage.Sets/src/mage/sets/eventide/NettleSentinel.java index 0637ca8b4d..9461d0a1a4 100644 --- a/Mage.Sets/src/mage/sets/eventide/NettleSentinel.java +++ b/Mage.Sets/src/mage/sets/eventide/NettleSentinel.java @@ -35,7 +35,7 @@ import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.filter.FilterSpell; @@ -64,7 +64,7 @@ public class NettleSentinel extends CardImpl { this.toughness = new MageInt(2); // Nettle Sentinel doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever you cast a green spell, you may untap Nettle Sentinel. this.addAbility(new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), filter, true)); } diff --git a/Mage.Sets/src/mage/sets/fifthdawn/BatteredGolem.java b/Mage.Sets/src/mage/sets/fifthdawn/BatteredGolem.java index 4e84999c29..c149c6c743 100644 --- a/Mage.Sets/src/mage/sets/fifthdawn/BatteredGolem.java +++ b/Mage.Sets/src/mage/sets/fifthdawn/BatteredGolem.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -54,7 +54,7 @@ public class BatteredGolem extends CardImpl { this.toughness = new MageInt(2); // Battered Golem doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever an artifact enters the battlefield, you may untap Battered Golem. this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new FilterArtifactPermanent("an artifact"), true)); } diff --git a/Mage.Sets/src/mage/sets/fifthedition/ColossusOfSardia.java b/Mage.Sets/src/mage/sets/fifthedition/ColossusOfSardia.java index 4d14ac15fa..cbc27da915 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/ColossusOfSardia.java +++ b/Mage.Sets/src/mage/sets/fifthedition/ColossusOfSardia.java @@ -37,7 +37,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.IsStepCondition; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalActivatedAbility; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; @@ -61,7 +61,7 @@ public class ColossusOfSardia extends CardImpl { this.addAbility(TrampleAbility.getInstance()); // Colossus of Sardia doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // {9}: Untap Colossus of Sardia. Activate this ability only during your upkeep. this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/sets/fourthedition/BrassMan.java b/Mage.Sets/src/mage/sets/fourthedition/BrassMan.java index 3de44f307f..18a372a3e9 100644 --- a/Mage.Sets/src/mage/sets/fourthedition/BrassMan.java +++ b/Mage.Sets/src/mage/sets/fourthedition/BrassMan.java @@ -33,7 +33,7 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -56,7 +56,7 @@ public class BrassMan extends CardImpl { this.toughness = new MageInt(3); // Brass Man doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // At the beginning of your upkeep, you may pay {1}. If you do, untap Brass Man. this.addAbility(new BeginningOfUpkeepTriggeredAbility( Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/sets/gatecrash/HandsOfBinding.java b/Mage.Sets/src/mage/sets/gatecrash/HandsOfBinding.java index 26e68556e1..cafca493c0 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/HandsOfBinding.java +++ b/Mage.Sets/src/mage/sets/gatecrash/HandsOfBinding.java @@ -32,7 +32,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.effects.common.CipherEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.constants.TargetController; @@ -59,7 +59,7 @@ public class HandsOfBinding extends CardImpl { //Tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. this.getSpellAbility().addEffect(new TapTargetEffect()); - this.getSpellAbility().addEffect(new SkipNextUntapTargetEffect()); + this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); //Cipher this.getSpellAbility().addEffect(new CipherEffect()); diff --git a/Mage.Sets/src/mage/sets/iceage/DanceOfTheDead.java b/Mage.Sets/src/mage/sets/iceage/DanceOfTheDead.java index 01728a32fc..3440373b04 100644 --- a/Mage.Sets/src/mage/sets/iceage/DanceOfTheDead.java +++ b/Mage.Sets/src/mage/sets/iceage/DanceOfTheDead.java @@ -41,7 +41,7 @@ import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapEnchantedEffect; import mage.abilities.effects.common.continious.BoostEnchantedEffect; import mage.abilities.effects.common.continious.SourceEffect; @@ -96,7 +96,7 @@ public class DanceOfTheDead extends CardImpl { // Enchanted creature gets +1/+1 and doesn't untap during its controller's untap step. ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)); - Effect effect = new SkipUntapSourceEffect(); + Effect effect = new DontUntapInControllersUntapStepSourceEffect(); effect.setText("and doesn't untap during its controller's untap step"); ability.addEffect(effect); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/iceage/WrathOfMaritLage.java b/Mage.Sets/src/mage/sets/iceage/WrathOfMaritLage.java index 0a954c26bd..549e7e7f7f 100644 --- a/Mage.Sets/src/mage/sets/iceage/WrathOfMaritLage.java +++ b/Mage.Sets/src/mage/sets/iceage/WrathOfMaritLage.java @@ -34,7 +34,7 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -69,7 +69,7 @@ public class WrathOfMaritLage extends CardImpl { // When Wrath of Marit Lage enters the battlefield, tap all red creatures. this.addAbility(new EntersBattlefieldTriggeredAbility(new TapAllEffect())); // Red creatures don't untap during their controllers' untap steps. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); } public WrathOfMaritLage(final WrathOfMaritLage card) { diff --git a/Mage.Sets/src/mage/sets/innistrad/Claustrophobia.java b/Mage.Sets/src/mage/sets/innistrad/Claustrophobia.java index 0d13b60f59..9c0e9411ef 100644 --- a/Mage.Sets/src/mage/sets/innistrad/Claustrophobia.java +++ b/Mage.Sets/src/mage/sets/innistrad/Claustrophobia.java @@ -36,7 +36,7 @@ import mage.constants.Zone; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.effects.common.TapEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; @@ -63,7 +63,7 @@ public class Claustrophobia extends CardImpl { // When Claustrophobia enters the battlefield, tap enchanted creature. this.addAbility(new EntersBattlefieldTriggeredAbility(new TapEnchantedEffect())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public Claustrophobia(final Claustrophobia card) { diff --git a/Mage.Sets/src/mage/sets/innistrad/GalvanicJuggernaut.java b/Mage.Sets/src/mage/sets/innistrad/GalvanicJuggernaut.java index a26420374a..23ff53f29d 100644 --- a/Mage.Sets/src/mage/sets/innistrad/GalvanicJuggernaut.java +++ b/Mage.Sets/src/mage/sets/innistrad/GalvanicJuggernaut.java @@ -35,7 +35,7 @@ import mage.MageInt; import mage.abilities.common.AttacksEachTurnStaticAbility; import mage.abilities.common.DiesCreatureTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; @@ -56,7 +56,7 @@ public class GalvanicJuggernaut extends CardImpl { // Galvanic Juggernaut attacks each turn if able. this.addAbility(new AttacksEachTurnStaticAbility()); // Galvanic Juggernaut doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever another creature dies, untap Galvanic Juggernaut. this.addAbility(new DiesCreatureTriggeredAbility(new UntapSourceEffect(), false, true)); } diff --git a/Mage.Sets/src/mage/sets/innistrad/GrimgrinCorpseBorn.java b/Mage.Sets/src/mage/sets/innistrad/GrimgrinCorpseBorn.java index 5587291331..8a7ae888e2 100644 --- a/Mage.Sets/src/mage/sets/innistrad/GrimgrinCorpseBorn.java +++ b/Mage.Sets/src/mage/sets/innistrad/GrimgrinCorpseBorn.java @@ -29,13 +29,13 @@ package mage.sets.innistrad; import java.util.UUID; import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; @@ -76,10 +76,13 @@ public class GrimgrinCorpseBorn extends CardImpl { this.toughness = new MageInt(5); // Grimgrin, Corpse-Born enters the battlefield tapped and doesn't untap during your untap step. - this.addAbility(new EntersBattlefieldTappedAbility()); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + Ability ability = new EntersBattlefieldTappedAbility( + "{this} enters the battlefield tapped and doesn't untap during your untap step."); + ability.addEffect(new DontUntapInControllersUntapStepSourceEffect()); + this.addAbility(ability); + // Sacrifice another creature: Untap Grimgrin and put a +1/+1 counter on it. - SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, false))); ability.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance())); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/invasion/Shackles.java b/Mage.Sets/src/mage/sets/invasion/Shackles.java index fe77aa29dd..87c8cb0a78 100644 --- a/Mage.Sets/src/mage/sets/invasion/Shackles.java +++ b/Mage.Sets/src/mage/sets/invasion/Shackles.java @@ -37,7 +37,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.constants.Outcome; @@ -63,11 +63,10 @@ public class Shackles extends CardImpl { TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted creature doesn't untap during its controller's untap step. - Ability ability = new EnchantAbility(auraTarget.getTargetName()); - this.addAbility(ability); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); // {W}: Return Shackles to its owner's hand. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{W}"))); diff --git a/Mage.Sets/src/mage/sets/invasion/Tangle.java b/Mage.Sets/src/mage/sets/invasion/Tangle.java index 8ed0ee5d76..ef00ba867d 100644 --- a/Mage.Sets/src/mage/sets/invasion/Tangle.java +++ b/Mage.Sets/src/mage/sets/invasion/Tangle.java @@ -32,7 +32,7 @@ import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PreventAllDamageByAllEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -101,7 +101,7 @@ class TangleEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { for (Permanent permanent :game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(permanent.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/IcyBlast.java b/Mage.Sets/src/mage/sets/khansoftarkir/IcyBlast.java index 79cc02d6a5..b01771041d 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/IcyBlast.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/IcyBlast.java @@ -32,7 +32,7 @@ import mage.abilities.Ability; import mage.abilities.SpellAbility; import mage.abilities.condition.common.FerociousCondition; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -83,7 +83,7 @@ public class IcyBlast extends CardImpl { } } -class IcyBlastSkipNextUntapTargetEffect extends SkipNextUntapTargetEffect { +class IcyBlastSkipNextUntapTargetEffect extends DontUntapInControllersNextUntapStepTargetEffect { public IcyBlastSkipNextUntapTargetEffect() { super(); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/QuietContemplation.java b/Mage.Sets/src/mage/sets/khansoftarkir/QuietContemplation.java index ac0a7f78c1..1b33a1e0d2 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/QuietContemplation.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/QuietContemplation.java @@ -33,7 +33,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -68,7 +68,7 @@ public class QuietContemplation extends CardImpl { // Whenever you cast a noncreature spell, you may pay {1}. If you do, tap target creature an opponent controls and it doesn't untap during its controller's next untap step. DoIfCostPaid doIfCostPaid = new DoIfCostPaid(new TapTargetEffect(), new GenericManaCost(1),"Tap creature?"); - Effect effect = new SkipNextUntapTargetEffect(); + Effect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setText("and it doesn't untap during its controller's next untap step"); doIfCostPaid.addEffect(effect); Ability ability = new SpellCastControllerTriggeredAbility(doIfCostPaid, filterNonCreature, false); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/SingingBellStrike.java b/Mage.Sets/src/mage/sets/khansoftarkir/SingingBellStrike.java index a93cadee1b..6da34f0def 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/SingingBellStrike.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/SingingBellStrike.java @@ -35,7 +35,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.effects.common.TapEnchantedEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; @@ -73,7 +73,7 @@ public class SingingBellStrike extends CardImpl { // When Singing Bell Strike enters the battlefield, tap enchanted creature. this.addAbility(new EntersBattlefieldTriggeredAbility(new TapEnchantedEffect())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); // Enchanted creature has "{6}: Untap this creature." Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new GenericManaCost(6)); Effect effect = new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield); diff --git a/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java b/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java index bb0da6f38d..9a2b6da385 100644 --- a/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java +++ b/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java @@ -33,7 +33,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; @@ -52,7 +52,7 @@ public class BasaltMonolith extends CardImpl { this.expansionSetCode = "LEA"; // Basalt Monolith doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // {tap}: Add {3} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,3,0),new TapSourceCost())); // {3}: Untap Basalt Monolith. diff --git a/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java b/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java index 8c95b427cd..512bddea36 100644 --- a/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java +++ b/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java @@ -38,7 +38,7 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.DamageControllerEffect; import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; @@ -58,7 +58,7 @@ public class ManaVault extends CardImpl { this.expansionSetCode = "LEA"; // Mana Vault doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault. this.addAbility(new BeginningOfUpkeepTriggeredAbility( Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java b/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java index b8ca8ccc30..34ff911f17 100644 --- a/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java +++ b/Mage.Sets/src/mage/sets/limitedalpha/Meekstone.java @@ -29,7 +29,7 @@ package mage.sets.limitedalpha; import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -57,7 +57,7 @@ public class Meekstone extends CardImpl { this.expansionSetCode = "LEA"; // Creatures with power 3 or greater don't untap during their controllers' untap steps. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); } public Meekstone(final Meekstone card) { diff --git a/Mage.Sets/src/mage/sets/limitedalpha/Paralyze.java b/Mage.Sets/src/mage/sets/limitedalpha/Paralyze.java index 28400aee7c..997f0f04a9 100644 --- a/Mage.Sets/src/mage/sets/limitedalpha/Paralyze.java +++ b/Mage.Sets/src/mage/sets/limitedalpha/Paralyze.java @@ -67,7 +67,7 @@ public class Paralyze extends CardImpl { // When Paralyze enters the battlefield, tap enchanted creature. this.addAbility(new EntersBattlefieldTriggeredAbility(new TapEnchantedEffect())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); // At the beginning of the upkeep of enchanted creature's controller, that player may pay {4}. If he or she does, untap the creature. this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ParalyzeEffect(), TargetController.CONTROLLER_ATTACHED_TO, false)); } diff --git a/Mage.Sets/src/mage/sets/lorwyn/EntanglingTrap.java b/Mage.Sets/src/mage/sets/lorwyn/EntanglingTrap.java index 4e2c6c87b7..1bd686d9d1 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/EntanglingTrap.java +++ b/Mage.Sets/src/mage/sets/lorwyn/EntanglingTrap.java @@ -30,7 +30,7 @@ package mage.sets.lorwyn; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -99,7 +99,7 @@ class EntanglingClashTriggeredAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { if (EventType.CLASHED.equals(event.getType()) && event.getPlayerId().equals(getControllerId())) { if (event.getFlag()) { // clash won - addEffect(new SkipNextUntapTargetEffect("that creature")); + addEffect(new DontUntapInControllersNextUntapStepTargetEffect("that creature")); } return true; } diff --git a/Mage.Sets/src/mage/sets/lorwyn/GlimmerdustNap.java b/Mage.Sets/src/mage/sets/lorwyn/GlimmerdustNap.java index d9965480cf..5fc4aaa02c 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/GlimmerdustNap.java +++ b/Mage.Sets/src/mage/sets/lorwyn/GlimmerdustNap.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; @@ -67,7 +67,7 @@ public class GlimmerdustNap extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public GlimmerdustNap(final GlimmerdustNap card) { diff --git a/Mage.Sets/src/mage/sets/magic2010/EntanglingVines.java b/Mage.Sets/src/mage/sets/magic2010/EntanglingVines.java index c1062f9dcd..763088190a 100644 --- a/Mage.Sets/src/mage/sets/magic2010/EntanglingVines.java +++ b/Mage.Sets/src/mage/sets/magic2010/EntanglingVines.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; @@ -66,8 +66,9 @@ public class EntanglingVines extends CardImpl { this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); this.addAbility(new EnchantAbility(auraTarget.getTargetName())); + // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public EntanglingVines(final EntanglingVines card) { diff --git a/Mage.Sets/src/mage/sets/magic2010/Sleep.java b/Mage.Sets/src/mage/sets/magic2010/Sleep.java index 793cb1cbb1..5866580a73 100644 --- a/Mage.Sets/src/mage/sets/magic2010/Sleep.java +++ b/Mage.Sets/src/mage/sets/magic2010/Sleep.java @@ -35,7 +35,7 @@ import mage.constants.Rarity; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -85,7 +85,7 @@ class SleepEffect extends OneShotEffect { if (player != null) { for (Permanent creature: game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), player.getId(), game)) { creature.tap(game); - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(creature.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/magic2010/WallOfFrost.java b/Mage.Sets/src/mage/sets/magic2010/WallOfFrost.java index d87fc64d2d..fb85edfe72 100644 --- a/Mage.Sets/src/mage/sets/magic2010/WallOfFrost.java +++ b/Mage.Sets/src/mage/sets/magic2010/WallOfFrost.java @@ -32,7 +32,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.BlocksCreatureTriggeredAbility; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; @@ -51,7 +51,7 @@ public class WallOfFrost extends CardImpl { this.addAbility(DefenderAbility.getInstance()); // Whenever Wall of Frost blocks a creature, that creature doesn't untap during its controller's next untap step. - this.addAbility(new BlocksCreatureTriggeredAbility(new SkipNextUntapTargetEffect("that creature"), false, true)); + this.addAbility(new BlocksCreatureTriggeredAbility(new DontUntapInControllersNextUntapStepTargetEffect("that creature"), false, true)); } public WallOfFrost(final WallOfFrost card) { diff --git a/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java b/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java index f926aae189..6ee6f2e944 100644 --- a/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java +++ b/Mage.Sets/src/mage/sets/magic2011/FrostTitan.java @@ -36,7 +36,7 @@ import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.CounterUnlessPaysEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.game.Game; @@ -115,7 +115,7 @@ class FrostTitanAbility2 extends TriggeredAbilityImpl { public FrostTitanAbility2() { super(Zone.BATTLEFIELD, new TapTargetEffect(), false); - this.addEffect(new SkipNextUntapTargetEffect()); + this.addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); this.addTarget(new TargetPermanent()); } diff --git a/Mage.Sets/src/mage/sets/magic2012/ArbalestElite.java b/Mage.Sets/src/mage/sets/magic2012/ArbalestElite.java index 9e4a9c667f..854b720537 100644 --- a/Mage.Sets/src/mage/sets/magic2012/ArbalestElite.java +++ b/Mage.Sets/src/mage/sets/magic2012/ArbalestElite.java @@ -37,7 +37,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.cards.CardImpl; import mage.constants.Zone; import mage.target.common.TargetAttackingOrBlockingCreature; @@ -62,7 +62,7 @@ public class ArbalestElite extends CardImpl { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new ManaCostsImpl("{2}{W}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetAttackingOrBlockingCreature()); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/magic2012/FrostBreath.java b/Mage.Sets/src/mage/sets/magic2012/FrostBreath.java index 75c843f7d4..37178309ee 100644 --- a/Mage.Sets/src/mage/sets/magic2012/FrostBreath.java +++ b/Mage.Sets/src/mage/sets/magic2012/FrostBreath.java @@ -30,7 +30,7 @@ package mage.sets.magic2012; import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.target.common.TargetCreaturePermanent; @@ -50,7 +50,7 @@ public class FrostBreath extends CardImpl { // Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. this.getSpellAbility().addEffect(new TapTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); - this.getSpellAbility().addEffect(new SkipNextUntapTargetEffect()); + this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); } public FrostBreath(final FrostBreath card) { diff --git a/Mage.Sets/src/mage/sets/magic2013/Encrust.java b/Mage.Sets/src/mage/sets/magic2013/Encrust.java index 1f62f6f91a..e552be7bd3 100644 --- a/Mage.Sets/src/mage/sets/magic2013/Encrust.java +++ b/Mage.Sets/src/mage/sets/magic2013/Encrust.java @@ -33,7 +33,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.CantActivateAbilitiesAttachedEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.constants.CardType; @@ -74,7 +74,7 @@ public class Encrust extends CardImpl { this.addAbility(ability); // Enchanted permanent doesn't untap during its controller's untap step and its activated abilities can't be activated. - ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect()); + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect()); Effect effect = new CantActivateAbilitiesAttachedEffect(); effect.setText("and its activated abilities can't be activated"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/sets/magic2015/FrostLynx.java b/Mage.Sets/src/mage/sets/magic2015/FrostLynx.java index c73c8a4f68..4a81dc9fb7 100644 --- a/Mage.Sets/src/mage/sets/magic2015/FrostLynx.java +++ b/Mage.Sets/src/mage/sets/magic2015/FrostLynx.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -65,7 +65,7 @@ public class FrostLynx extends CardImpl { // When Frost Lynx enters the battlefield, tap target creature an opponent controls. It doesn't untap during its controller's next untap step. Ability ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), false); - ability.addEffect(new SkipNextUntapTargetEffect("It")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("It")); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/mirage/LeadGolem.java b/Mage.Sets/src/mage/sets/mirage/LeadGolem.java index a653c1c6d3..9a3795527c 100644 --- a/Mage.Sets/src/mage/sets/mirage/LeadGolem.java +++ b/Mage.Sets/src/mage/sets/mirage/LeadGolem.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; @@ -51,7 +51,7 @@ public class LeadGolem extends CardImpl { this.toughness = new MageInt(5); // Whenever Lead Golem attacks, it doesn't untap during its controller's next untap step. - Ability ability = new AttacksTriggeredAbility(new SkipNextUntapSourceEffect(), false); + Ability ability = new AttacksTriggeredAbility(new DontUntapInControllersNextUntapStepSourceEffect(), false); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/newphyrexia/NumbingDose.java b/Mage.Sets/src/mage/sets/newphyrexia/NumbingDose.java index 99fd3c8d18..7348f6e24a 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/NumbingDose.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/NumbingDose.java @@ -33,12 +33,14 @@ import mage.constants.Outcome; import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.filter.FilterPermanent; +import mage.filter.common.FilterArtifactOrEnchantmentPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.game.Game; @@ -68,12 +70,15 @@ public class NumbingDose extends CardImpl { this.color.setBlue(true); + // Enchant artifact or creature TargetPermanent auraTarget = new TargetPermanent(filter); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); - EnchantAbility ability = new EnchantAbility(auraTarget.getTargetName()); - ability.addEffect(new SkipEnchantedUntapEffect()); - this.addAbility(ability); + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); + + // Enchanted permanent doesn't untap during its controller's untap step. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); + // At the beginning of the upkeep of enchanted permanent's controller, that player loses 1 life. this.addAbility(new NumbingDoseTriggeredAbility()); } diff --git a/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java b/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java index ee0e7bf585..35d9f5ff18 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/VorinclexVoiceOfHunger.java @@ -32,7 +32,7 @@ import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.TapForManaAllTriggeredManaAbility; import mage.abilities.effects.common.AddManaOfAnyColorTargetCanProduceEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.constants.CardType; @@ -87,7 +87,7 @@ class VorinclexTriggeredAbility2 extends TriggeredAbilityImpl { private static final String staticText = "Whenever an opponent taps a land for mana, that land doesn't untap during its controller's next untap step."; public VorinclexTriggeredAbility2() { - super(Zone.BATTLEFIELD, new SkipNextUntapTargetEffect()); + super(Zone.BATTLEFIELD, new DontUntapInControllersNextUntapStepTargetEffect()); } public VorinclexTriggeredAbility2(VorinclexTriggeredAbility2 ability) { diff --git a/Mage.Sets/src/mage/sets/odyssey/ImmobilizingInk.java b/Mage.Sets/src/mage/sets/odyssey/ImmobilizingInk.java index c3365bca86..cf2d1b8c4c 100644 --- a/Mage.Sets/src/mage/sets/odyssey/ImmobilizingInk.java +++ b/Mage.Sets/src/mage/sets/odyssey/ImmobilizingInk.java @@ -34,7 +34,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -72,7 +72,7 @@ public class ImmobilizingInk extends CardImpl { // Enchanted creature doesn't untap during its controller's untap step. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new GainAbilityAttachedEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect()), + new GainAbilityAttachedEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()), AttachmentType.AURA, Duration.WhileOnBattlefield,"Enchanted creature doesn't untap during its controller's untap step."))); diff --git a/Mage.Sets/src/mage/sets/onslaught/GoblinSharpshooter.java b/Mage.Sets/src/mage/sets/onslaught/GoblinSharpshooter.java index fdf7f68116..f2b1bae75a 100644 --- a/Mage.Sets/src/mage/sets/onslaught/GoblinSharpshooter.java +++ b/Mage.Sets/src/mage/sets/onslaught/GoblinSharpshooter.java @@ -38,7 +38,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.target.common.TargetCreatureOrPlayer; @@ -59,7 +59,7 @@ public class GoblinSharpshooter extends CardImpl { this.toughness = new MageInt(1); // Goblin Sharpshooter doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever a creature dies, untap Goblin Sharpshooter. this.addAbility(new DiesCreatureTriggeredAbility(new UntapSourceEffect(), false)); // {tap}: Goblin Sharpshooter deals 1 damage to target creature or player. diff --git a/Mage.Sets/src/mage/sets/portalthreekingdoms/Exhaustion.java b/Mage.Sets/src/mage/sets/portalthreekingdoms/Exhaustion.java index 883faeeeec..6ff058e0d1 100644 --- a/Mage.Sets/src/mage/sets/portalthreekingdoms/Exhaustion.java +++ b/Mage.Sets/src/mage/sets/portalthreekingdoms/Exhaustion.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Outcome; @@ -99,7 +99,7 @@ class ExhaustionEffect extends OneShotEffect { Player player = game.getPlayer(source.getFirstTarget()); if (player != null) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, player.getId(), game)) { - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(permanent.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/DormantGomazoa.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/DormantGomazoa.java index e19f6e8970..810ddce3f4 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/DormantGomazoa.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/DormantGomazoa.java @@ -36,7 +36,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.common.BecomesTargetControllerSpellTriggeredAbility; @@ -61,7 +61,7 @@ public class DormantGomazoa extends CardImpl { this.addAbility(new EntersBattlefieldTappedAbility()); // Dormant Gomazoa doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever you become the target of a spell, you may untap Dormant Gomazoa. this.addAbility(new BecomesTargetControllerSpellTriggeredAbility(new UntapSourceEffect(), true)); diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/KashiTribeElite.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/KashiTribeElite.java index 4ed4a6aeae..094cb00e87 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/KashiTribeElite.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/KashiTribeElite.java @@ -35,7 +35,7 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continious.GainAbilityControlledEffect; import mage.abilities.keyword.ShroudAbility; @@ -75,7 +75,7 @@ public class KashiTribeElite extends CardImpl { // Whenever Kashi-Tribe Elite deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. Ability ability; ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true); - ability.addEffect(new SkipNextUntapTargetEffect("and it")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/MatsuTribeBirdstalker.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/MatsuTribeBirdstalker.java index 46f70cda56..770474a7c3 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/MatsuTribeBirdstalker.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/MatsuTribeBirdstalker.java @@ -36,7 +36,7 @@ import mage.abilities.Ability; import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.ReachAbility; @@ -63,7 +63,7 @@ public class MatsuTribeBirdstalker extends CardImpl { // Whenever Kashi-Tribe Elite deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. Ability ability; ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true); - ability.addEffect(new SkipNextUntapTargetEffect("and it")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it")); this.addAbility(ability); // {G}: Matsu-Tribe Birdstalker gains reach until end of turn. (It can block creatures with flying.) diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/BondsOfQuicksilver.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/BondsOfQuicksilver.java index 61fa100d5c..981a1d6e9e 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/BondsOfQuicksilver.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/BondsOfQuicksilver.java @@ -33,12 +33,14 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.constants.Outcome; +import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -54,13 +56,19 @@ public class BondsOfQuicksilver extends CardImpl { this.subtype.add("Aura"); this.color.setBlue(true); + // Flash (You may cast this spell any time you could cast an instant.) this.addAbility(FlashAbility.getInstance()); + + // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); Ability ability = new EnchantAbility(auraTarget.getTargetName()); - ability.addEffect(new SkipEnchantedUntapEffect()); this.addAbility(ability); + + // Enchanted creature doesn't untap during its controller's untap step. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); + } public BondsOfQuicksilver (final BondsOfQuicksilver card) { diff --git a/Mage.Sets/src/mage/sets/shadowmoor/DeepSlumberTitan.java b/Mage.Sets/src/mage/sets/shadowmoor/DeepSlumberTitan.java index 9a2cf62a73..d57caa9341 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/DeepSlumberTitan.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/DeepSlumberTitan.java @@ -32,7 +32,7 @@ import mage.MageInt; import mage.abilities.common.DealtDamageToSourceTriggeredAbility; import mage.abilities.common.EntersBattlefieldTappedAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -60,7 +60,7 @@ public class DeepSlumberTitan extends CardImpl { this.addAbility(new EntersBattlefieldTappedAbility()); // Deep-Slumber Titan doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // Whenever Deep-Slumber Titan is dealt damage, untap it. this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), false)); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/SinkingFeeling.java b/Mage.Sets/src/mage/sets/shadowmoor/SinkingFeeling.java index f9885629ad..23c7bef99d 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/SinkingFeeling.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/SinkingFeeling.java @@ -34,7 +34,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.PutCountersSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -70,7 +70,7 @@ public class SinkingFeeling extends CardImpl { this.addAbility(ability); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); // Enchanted creature has "{1}, Put a -1/-1 counter on this creature: Untap this creature. Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{1}")); diff --git a/Mage.Sets/src/mage/sets/shardsofalara/AjaniVengeant.java b/Mage.Sets/src/mage/sets/shardsofalara/AjaniVengeant.java index 16ff2fbbc6..f7b24ba930 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/AjaniVengeant.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/AjaniVengeant.java @@ -37,7 +37,7 @@ import mage.abilities.effects.Effects; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DestroyAllControlledTargetEffect; import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; @@ -68,7 +68,7 @@ public class AjaniVengeant extends CardImpl { this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(3)), false)); // +1: Target permanent doesn't untap during its controller's next untap step. - LoyaltyAbility ability1 = new LoyaltyAbility(new SkipNextUntapTargetEffect(), 1); + LoyaltyAbility ability1 = new LoyaltyAbility(new DontUntapInControllersNextUntapStepTargetEffect(), 1); ability1.addTarget(new TargetPermanent()); this.addAbility(ability1); diff --git a/Mage.Sets/src/mage/sets/shardsofalara/ComaVeil.java b/Mage.Sets/src/mage/sets/shardsofalara/ComaVeil.java index f9079929fc..3e56ea8b01 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/ComaVeil.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/ComaVeil.java @@ -32,7 +32,7 @@ import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Rarity; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.filter.FilterPermanent; @@ -67,7 +67,7 @@ public class ComaVeil extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); // Enchanted permanent doesn't untap during its controller's untap step. EnchantAbility ability = new EnchantAbility(auraTarget.getTargetName()); - ability.addEffect(new SkipEnchantedUntapEffect()); + ability.addEffect(new DontUntapInControllersUntapStepEnchantedEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/stronghold/IntruderAlarm.java b/Mage.Sets/src/mage/sets/stronghold/IntruderAlarm.java index 030e94dbcc..cc2275104a 100644 --- a/Mage.Sets/src/mage/sets/stronghold/IntruderAlarm.java +++ b/Mage.Sets/src/mage/sets/stronghold/IntruderAlarm.java @@ -34,7 +34,7 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; @@ -54,7 +54,7 @@ public class IntruderAlarm extends CardImpl { this.color.setBlue(true); // Creatures don't untap during their controllers' untap steps. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, new FilterCreaturePermanent("Creatures")))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, new FilterCreaturePermanent("Creatures")))); // Whenever a creature enters the battlefield, untap all creatures. this.addAbility(new EntersBattlefieldAllTriggeredAbility(new UntapAllCreatureEffect(), new FilterCreaturePermanent())); } diff --git a/Mage.Sets/src/mage/sets/tempest/Choke.java b/Mage.Sets/src/mage/sets/tempest/Choke.java index 7fb0e95731..63b5076b0c 100644 --- a/Mage.Sets/src/mage/sets/tempest/Choke.java +++ b/Mage.Sets/src/mage/sets/tempest/Choke.java @@ -29,7 +29,7 @@ package mage.sets.tempest; import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -58,7 +58,7 @@ public class Choke extends CardImpl { this.color.setGreen(true); // Islands don't untap during their controllers' untap steps. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); } public Choke(final Choke card) { diff --git a/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java b/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java index b9426fdb03..febd5a1b22 100644 --- a/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java +++ b/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.*; import mage.cards.CardImpl; @@ -49,10 +49,10 @@ public class CinderMarsh extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step. Ability ability = new BlackManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); ability = new RedManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/tempest/MoggHollows.java b/Mage.Sets/src/mage/sets/tempest/MoggHollows.java index daa0c25d81..b97976d634 100644 --- a/Mage.Sets/src/mage/sets/tempest/MoggHollows.java +++ b/Mage.Sets/src/mage/sets/tempest/MoggHollows.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.RedManaAbility; @@ -51,10 +51,10 @@ public class MoggHollows extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step. Ability ability = new RedManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); ability = new GreenManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java b/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java index b6fc8d8501..9b4b641e51 100644 --- a/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java +++ b/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.BlackManaAbility; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.ColorlessManaAbility; @@ -51,10 +51,10 @@ public class RootwaterDepths extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step. Ability ability = new BlueManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); ability = new BlackManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java b/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java index 1808960860..b03dbbf377 100644 --- a/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java +++ b/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.BlueManaAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.WhiteManaAbility; @@ -51,10 +51,10 @@ public class ThalakosLowlands extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step. Ability ability = new WhiteManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); ability = new BlueManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/tempest/VecTownships.java b/Mage.Sets/src/mage/sets/tempest/VecTownships.java index 8bac8fc2fb..7c05cbd2a6 100644 --- a/Mage.Sets/src/mage/sets/tempest/VecTownships.java +++ b/Mage.Sets/src/mage/sets/tempest/VecTownships.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.WhiteManaAbility; @@ -51,10 +51,10 @@ public class VecTownships extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step. Ability ability = new GreenManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); ability = new WhiteManaAbility(); - ability.addEffect(new SkipNextUntapSourceEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/tenth/Dehydration.java b/Mage.Sets/src/mage/sets/tenth/Dehydration.java index 0518d4e34d..fb563868a0 100644 --- a/Mage.Sets/src/mage/sets/tenth/Dehydration.java +++ b/Mage.Sets/src/mage/sets/tenth/Dehydration.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.target.TargetPermanent; @@ -59,7 +59,7 @@ public class Dehydration extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public Dehydration(final Dehydration card) { diff --git a/Mage.Sets/src/mage/sets/thedark/BarlsCage.java b/Mage.Sets/src/mage/sets/thedark/BarlsCage.java index 520004dace..9fde19262f 100644 --- a/Mage.Sets/src/mage/sets/thedark/BarlsCage.java +++ b/Mage.Sets/src/mage/sets/thedark/BarlsCage.java @@ -33,7 +33,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; @@ -48,7 +48,7 @@ public class BarlsCage extends CardImpl { this.expansionSetCode = "DRK"; // {3}: Target creature doesn't untap during its controller's next untap step. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SkipNextUntapTargetEffect("Target creature"), new GenericManaCost(3)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DontUntapInControllersNextUntapStepTargetEffect("Target creature"), new GenericManaCost(3)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/theros/TritonTactics.java b/Mage.Sets/src/mage/sets/theros/TritonTactics.java index 01686ef7c7..7ec540333c 100644 --- a/Mage.Sets/src/mage/sets/theros/TritonTactics.java +++ b/Mage.Sets/src/mage/sets/theros/TritonTactics.java @@ -38,7 +38,7 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -190,7 +190,7 @@ class TritonTacticsEndOfCombatEffect extends OneShotEffect { if (attackerSet.contains(CardUtil.getCardZoneString(null, creature.getId(), game))) { // tap creature and add the not untap effect creature.tap(game); - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(creature.getId())); game.addEffect(effect, source); game.informPlayers(new StringBuilder("Triton Tactics: ").append(creature.getName()).append(" doesn't untap during its controller's next untap step").toString()); diff --git a/Mage.Sets/src/mage/sets/theros/WavecrashTriton.java b/Mage.Sets/src/mage/sets/theros/WavecrashTriton.java index cb05b58b63..36c9a41f97 100644 --- a/Mage.Sets/src/mage/sets/theros/WavecrashTriton.java +++ b/Mage.Sets/src/mage/sets/theros/WavecrashTriton.java @@ -30,7 +30,7 @@ package mage.sets.theros; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.keyword.HeroicAbility; import mage.cards.CardImpl; @@ -65,7 +65,7 @@ public class WavecrashTriton extends CardImpl { // Heroic - Whenever you cast a spell that targets Wavecrash Triton, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. Ability ability = new HeroicAbility(new TapTargetEffect()); ability.addTarget(new TargetCreaturePermanent(filter)); - ability.addEffect(new SkipNextUntapTargetEffect("That creature")); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("That creature")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/timespiral/EternitySnare.java b/Mage.Sets/src/mage/sets/timespiral/EternitySnare.java index 5328c4d973..d0ff3af885 100644 --- a/Mage.Sets/src/mage/sets/timespiral/EternitySnare.java +++ b/Mage.Sets/src/mage/sets/timespiral/EternitySnare.java @@ -33,7 +33,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.constants.CardType; @@ -67,7 +67,7 @@ public class EternitySnare extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false)); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public EternitySnare(final EternitySnare card) { diff --git a/Mage.Sets/src/mage/sets/unlimitededition/TimeVault.java b/Mage.Sets/src/mage/sets/unlimitededition/TimeVault.java index bb02d22f96..4c0c6768e4 100644 --- a/Mage.Sets/src/mage/sets/unlimitededition/TimeVault.java +++ b/Mage.Sets/src/mage/sets/unlimitededition/TimeVault.java @@ -34,7 +34,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.ReplacementEffectImpl; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.turn.AddExtraTurnControllerEffect; import mage.cards.CardImpl; import mage.constants.CardType; @@ -62,7 +62,7 @@ public class TimeVault extends CardImpl { this.addAbility(new EntersBattlefieldTappedAbility()); // Time Vault doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // If you would begin your turn while Time Vault is tapped, you may skip that turn instead. If you do, untap Time Vault. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TimeVaultReplacementEffect())); diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java b/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java index cf1a4e068c..ffe6df66fc 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java @@ -36,7 +36,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.SkipUntapSourceEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; import mage.abilities.effects.common.UntapSourceEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; @@ -53,7 +53,7 @@ public class GrimMonolith extends CardImpl { this.expansionSetCode = "ULG"; // Grim Monolith doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); // {tap}: Add {3} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); // {4}: Untap Grim Monolith. diff --git a/Mage.Sets/src/mage/sets/urzassaga/BackToBasics.java b/Mage.Sets/src/mage/sets/urzassaga/BackToBasics.java index 7bf71a3c1f..ef970b0d5f 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/BackToBasics.java +++ b/Mage.Sets/src/mage/sets/urzassaga/BackToBasics.java @@ -29,7 +29,7 @@ package mage.sets.urzassaga; import java.util.UUID; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.SkipUntapAllEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepAllEffect; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -59,7 +59,7 @@ public class BackToBasics extends CardImpl { this.color.setBlue(true); // Nonbasic lands don't untap during their controllers' untap steps. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepAllEffect(Duration.WhileOnBattlefield, TargetController.ANY, filter))); } public BackToBasics(final BackToBasics card) { diff --git a/Mage.Sets/src/mage/sets/worldwake/PermafrostTrap.java b/Mage.Sets/src/mage/sets/worldwake/PermafrostTrap.java index 14f43ce4b2..85225c6658 100644 --- a/Mage.Sets/src/mage/sets/worldwake/PermafrostTrap.java +++ b/Mage.Sets/src/mage/sets/worldwake/PermafrostTrap.java @@ -36,7 +36,7 @@ import mage.abilities.Ability; import mage.abilities.costs.AlternativeCostImpl; import mage.abilities.costs.mana.ColoredManaCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.*; import mage.game.Game; @@ -163,7 +163,7 @@ class PermafrostTrapEffect extends OneShotEffect { Permanent creature = game.getPermanent(targetId); if (creature != null) { creature.tap(game); - SkipNextUntapTargetEffect effect = new SkipNextUntapTargetEffect(); + DontUntapInControllersNextUntapStepTargetEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(targetId)); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/zendikar/KorHookmaster.java b/Mage.Sets/src/mage/sets/zendikar/KorHookmaster.java index 2802ff9506..e863eeda15 100644 --- a/Mage.Sets/src/mage/sets/zendikar/KorHookmaster.java +++ b/Mage.Sets/src/mage/sets/zendikar/KorHookmaster.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.TargetController; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; @@ -65,7 +65,7 @@ public class KorHookmaster extends CardImpl { // When Kor Hookmaster enters the battlefield, tap target creature an opponent controls. // That creature doesn't untap during its controller's next untap step. EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect()); - ability.addEffect(new SkipNextUntapTargetEffect()); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/zendikar/LorthosTheTidemaker.java b/Mage.Sets/src/mage/sets/zendikar/LorthosTheTidemaker.java index 904fb505f6..c0d01fccaf 100644 --- a/Mage.Sets/src/mage/sets/zendikar/LorthosTheTidemaker.java +++ b/Mage.Sets/src/mage/sets/zendikar/LorthosTheTidemaker.java @@ -38,7 +38,7 @@ import mage.abilities.costs.Cost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.SkipNextUntapTargetEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; import mage.cards.CardImpl; import mage.constants.Outcome; import mage.filter.FilterPermanent; @@ -110,7 +110,7 @@ class LorthosTheTideMakerEffect extends OneShotEffect { Permanent permanent = game.getPermanent(target); if (permanent != null) { permanent.tap(game); - ContinuousEffect effect = new SkipNextUntapTargetEffect(); + ContinuousEffect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setTargetPointer(new FixedTarget(permanent.getId())); game.addEffect(effect, source); } diff --git a/Mage.Sets/src/mage/sets/zendikar/ParalyzingGrasp.java b/Mage.Sets/src/mage/sets/zendikar/ParalyzingGrasp.java index 0e1a0c6ccc..6c488e8a7f 100644 --- a/Mage.Sets/src/mage/sets/zendikar/ParalyzingGrasp.java +++ b/Mage.Sets/src/mage/sets/zendikar/ParalyzingGrasp.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.SkipEnchantedUntapEffect; +import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.target.TargetPermanent; @@ -59,7 +59,7 @@ public class ParalyzingGrasp extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.Detriment)); this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted creature doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipEnchantedUntapEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect())); } public ParalyzingGrasp(final ParalyzingGrasp card) { diff --git a/Mage/src/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java b/Mage/src/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java index 6be01fef08..7200f576f6 100644 --- a/Mage/src/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java +++ b/Mage/src/mage/abilities/common/DealsDamageToACreatureAttachedTriggeredAbility.java @@ -45,8 +45,8 @@ import mage.target.targetpointer.FixedTarget; public class DealsDamageToACreatureAttachedTriggeredAbility extends TriggeredAbilityImpl { private boolean combatOnly; - private boolean setTargetPointer; - private String attachedDescription; + private final boolean setTargetPointer; + private final String attachedDescription; public DealsDamageToACreatureAttachedTriggeredAbility(Effect effect, boolean combatOnly, String attachedDescription, boolean optional, boolean setTargetPointer) { super(Zone.BATTLEFIELD, effect, optional); diff --git a/Mage/src/mage/abilities/common/SkipUntapOptionalAbility.java b/Mage/src/mage/abilities/common/SkipUntapOptionalAbility.java index 7cd2254438..15552d00f9 100644 --- a/Mage/src/mage/abilities/common/SkipUntapOptionalAbility.java +++ b/Mage/src/mage/abilities/common/SkipUntapOptionalAbility.java @@ -27,8 +27,8 @@ */ package mage.abilities.common; -import mage.constants.Zone; import mage.abilities.effects.common.SkipUntapOptionalSourceEffect; +import mage.constants.Zone; /** * Implements: diff --git a/Mage/src/mage/abilities/effects/common/SkipNextUntapSourceEffect.java b/Mage/src/mage/abilities/effects/common/DontUntapInControllersNextUntapStepSourceEffect.java similarity index 71% rename from Mage/src/mage/abilities/effects/common/SkipNextUntapSourceEffect.java rename to Mage/src/mage/abilities/effects/common/DontUntapInControllersNextUntapStepSourceEffect.java index 490dcbe1a2..e9158b91f2 100644 --- a/Mage/src/mage/abilities/effects/common/SkipNextUntapSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/DontUntapInControllersNextUntapStepSourceEffect.java @@ -9,23 +9,23 @@ import mage.constants.PhaseStep; import mage.game.Game; import mage.game.events.GameEvent; -public class SkipNextUntapSourceEffect extends ContinuousRuleModifiyingEffectImpl { +public class DontUntapInControllersNextUntapStepSourceEffect extends ContinuousRuleModifiyingEffectImpl { private int validForTurnNum; - public SkipNextUntapSourceEffect() { + public DontUntapInControllersNextUntapStepSourceEffect() { super(Duration.Custom, Outcome.Detriment, false, true); staticText = "{this} doesn't untap during your next untap step"; validForTurnNum = 0; } - public SkipNextUntapSourceEffect(final SkipNextUntapSourceEffect effect) { + public DontUntapInControllersNextUntapStepSourceEffect(final DontUntapInControllersNextUntapStepSourceEffect effect) { super(effect); } @Override - public SkipNextUntapSourceEffect copy() { - return new SkipNextUntapSourceEffect(this); + public DontUntapInControllersNextUntapStepSourceEffect copy() { + return new DontUntapInControllersNextUntapStepSourceEffect(this); } @Override @@ -46,10 +46,10 @@ public class SkipNextUntapSourceEffect extends ContinuousRuleModifiyingEffectImp @Override public boolean applies(GameEvent event, Ability source, Game game) { // the check for turn number is needed if multiple effects are added to prevent untap in next untap step - // if we don't check for turn number, every turn only one effect would be used instead of correctly only one time - // to skip the untap effect. + // if we don't check for turn number, every turn only one effect would be used instead of correctly consuming + // all existing skip the next untap step effects. - // Discard effect if related to previous turn + // Discard effect if related to a previous turn if (validForTurnNum > 0 && validForTurnNum < game.getTurnNum()) { discard(); return false; @@ -57,7 +57,7 @@ public class SkipNextUntapSourceEffect extends ContinuousRuleModifiyingEffectImp // remember the turn of the untap step the effect has to be applied if (GameEvent.EventType.UNTAP_STEP.equals(event.getType()) && game.getActivePlayerId().equals(source.getControllerId())) { - if (validForTurnNum == game.getTurnNum()) { // the turn has a secon untap step but the effect is already related to the first untap step + if (validForTurnNum == game.getTurnNum()) { // the turn has a second untap step but the effect is already related to the first untap step discard(); return false; } @@ -66,6 +66,7 @@ public class SkipNextUntapSourceEffect extends ContinuousRuleModifiyingEffectImp // skip untap action if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == GameEvent.EventType.UNTAP + && game.getActivePlayerId().equals(source.getControllerId()) && event.getTargetId().equals(source.getSourceId())) { discard(); return true; diff --git a/Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java b/Mage/src/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java similarity index 87% rename from Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java rename to Mage/src/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java index 736bf72ed3..1702e81da4 100644 --- a/Mage/src/mage/abilities/effects/common/SkipNextUntapTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java @@ -44,7 +44,7 @@ import mage.game.permanent.Permanent; /** * @author BetaSteward_at_googlemail.com */ -public class SkipNextUntapTargetEffect extends ContinuousRuleModifiyingEffectImpl { +public class DontUntapInControllersNextUntapStepTargetEffect extends ContinuousRuleModifiyingEffectImpl { private int validForTurnNum; @@ -53,23 +53,23 @@ public class SkipNextUntapTargetEffect extends ContinuousRuleModifiyingEffectImp * If this is needed, the validForTurnNum has to be saved per controller. * */ - public SkipNextUntapTargetEffect() { + public DontUntapInControllersNextUntapStepTargetEffect() { super(Duration.Custom, Outcome.Detriment, false, true); } - public SkipNextUntapTargetEffect(String text) { + public DontUntapInControllersNextUntapStepTargetEffect(String text) { this(); this.staticText = text; } - public SkipNextUntapTargetEffect(final SkipNextUntapTargetEffect effect) { + public DontUntapInControllersNextUntapStepTargetEffect(final DontUntapInControllersNextUntapStepTargetEffect effect) { super(effect); this.validForTurnNum = effect.validForTurnNum; } @Override - public SkipNextUntapTargetEffect copy() { - return new SkipNextUntapTargetEffect(this); + public DontUntapInControllersNextUntapStepTargetEffect copy() { + return new DontUntapInControllersNextUntapStepTargetEffect(this); } @Override @@ -93,7 +93,7 @@ public class SkipNextUntapTargetEffect extends ContinuousRuleModifiyingEffectImp // if we don't check for turn number, every untap step of a turn only one effect would be used instead of correctly only one time // to skip the untap effect. - // Discard effect if related to previous turn + // Discard effect if it's related to a previous turn if (validForTurnNum > 0 && validForTurnNum < game.getTurnNum()) { discard(); return false; @@ -124,7 +124,10 @@ public class SkipNextUntapTargetEffect extends ContinuousRuleModifiyingEffectImp if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == EventType.UNTAP) { if (targetPointer.getTargets(game, source).contains(event.getTargetId())) { - return true; + Permanent permanent = game.getPermanent(event.getTargetId()); + if (permanent != null && game.getActivePlayerId().equals(permanent.getControllerId())) { + return true; + } } } return false; diff --git a/Mage/src/mage/abilities/effects/common/SkipUntapAllEffect.java b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepAllEffect.java similarity index 81% rename from Mage/src/mage/abilities/effects/common/SkipUntapAllEffect.java rename to Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepAllEffect.java index 0b1962977f..87561e97f3 100644 --- a/Mage/src/mage/abilities/effects/common/SkipUntapAllEffect.java +++ b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepAllEffect.java @@ -41,7 +41,6 @@ import static mage.constants.TargetController.YOU; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; @@ -51,26 +50,26 @@ import mage.players.Player; * @author LevelX2 */ -public class SkipUntapAllEffect extends ContinuousRuleModifiyingEffectImpl { +public class DontUntapInControllersUntapStepAllEffect extends ContinuousRuleModifiyingEffectImpl { TargetController targetController; FilterPermanent filter; - public SkipUntapAllEffect(Duration duration, TargetController targetController, FilterPermanent filter) { + public DontUntapInControllersUntapStepAllEffect(Duration duration, TargetController targetController, FilterPermanent filter) { super(duration, Outcome.Detriment, false, false); this.targetController = targetController; this.filter = filter; } - public SkipUntapAllEffect(final SkipUntapAllEffect effect) { + public DontUntapInControllersUntapStepAllEffect(final DontUntapInControllersUntapStepAllEffect effect) { super(effect); this.targetController = effect.targetController; this.filter = effect.filter; } @Override - public SkipUntapAllEffect copy() { - return new SkipUntapAllEffect(this); + public DontUntapInControllersUntapStepAllEffect copy() { + return new DontUntapInControllersUntapStepAllEffect(this); } @Override @@ -80,7 +79,7 @@ public class SkipUntapAllEffect extends ContinuousRuleModifiyingEffectImpl { @Override public boolean applies(GameEvent event, Ability source, Game game) { - if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == EventType.UNTAP) { + if (GameEvent.EventType.UNTAP.equals(event.getType()) && PhaseStep.UNTAP.equals(game.getTurn().getStepType())) { Permanent permanent = game.getPermanent(event.getTargetId()); if (permanent != null) { switch(targetController) { @@ -100,7 +99,8 @@ public class SkipUntapAllEffect extends ContinuousRuleModifiyingEffectImpl { default: throw new RuntimeException("Type of TargetController not supported!"); } - if (filter.match(permanent, source.getSourceId(), source.getControllerId(), game)) { + if (game.getActivePlayerId().equals(permanent.getControllerId()) && // controller's untap step + filter.match(permanent, source.getSourceId(), source.getControllerId(), game)) { return true; } } @@ -115,17 +115,11 @@ public class SkipUntapAllEffect extends ContinuousRuleModifiyingEffectImpl { } StringBuilder sb = new StringBuilder(filter.getMessage()).append(" don't untap during "); switch(targetController) { - case YOU: - sb.append("your "); - break; - case OPPONENT: - sb.append("your opponents' "); - break; case ANY: - sb.append("their controllers' "); + sb.append("their controller's "); break; default: - throw new RuntimeException("Type of TargetController not supported!"); + throw new RuntimeException("Type of TargetController not supported yet!"); } sb.append("untap steps"); return sb.toString(); diff --git a/Mage/src/mage/abilities/effects/common/SkipEnchantedUntapEffect.java b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepEnchantedEffect.java similarity index 67% rename from Mage/src/mage/abilities/effects/common/SkipEnchantedUntapEffect.java rename to Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepEnchantedEffect.java index 7cadb3fd56..350f260174 100644 --- a/Mage/src/mage/abilities/effects/common/SkipEnchantedUntapEffect.java +++ b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepEnchantedEffect.java @@ -12,14 +12,14 @@ import mage.game.permanent.Permanent; /** * @author nantuko */ -public class SkipEnchantedUntapEffect extends ContinuousRuleModifiyingEffectImpl { +public class DontUntapInControllersUntapStepEnchantedEffect extends ContinuousRuleModifiyingEffectImpl { - public SkipEnchantedUntapEffect() { + public DontUntapInControllersUntapStepEnchantedEffect() { super(Duration.WhileOnBattlefield, Outcome.Detriment, false, true); staticText = "Enchanted permanent doesn't untap during its controller's untap step"; } - public SkipEnchantedUntapEffect(final SkipEnchantedUntapEffect effect) { + public DontUntapInControllersUntapStepEnchantedEffect(final DontUntapInControllersUntapStepEnchantedEffect effect) { super(effect); } @@ -29,8 +29,8 @@ public class SkipEnchantedUntapEffect extends ContinuousRuleModifiyingEffectImpl } @Override - public SkipEnchantedUntapEffect copy() { - return new SkipEnchantedUntapEffect(this); + public DontUntapInControllersUntapStepEnchantedEffect copy() { + return new DontUntapInControllersUntapStepEnchantedEffect(this); } @Override @@ -48,11 +48,11 @@ public class SkipEnchantedUntapEffect extends ContinuousRuleModifiyingEffectImpl @Override public boolean applies(GameEvent event, Ability source, Game game) { - if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == GameEvent.EventType.UNTAP) { + if (GameEvent.EventType.UNTAP.equals(event.getType()) && PhaseStep.UNTAP.equals(game.getTurn().getStepType())) { Permanent enchantment = game.getPermanent(source.getSourceId()); - if (enchantment != null && enchantment.getAttachedTo() != null) { + if (enchantment != null && enchantment.getAttachedTo() != null && event.getTargetId().equals(enchantment.getAttachedTo())) { Permanent permanent = game.getPermanent(enchantment.getAttachedTo()); - if (permanent != null && event.getTargetId().equals(permanent.getId())) { + if (permanent != null && permanent.getControllerId().equals(game.getActivePlayerId())) { return true; } } diff --git a/Mage/src/mage/abilities/effects/common/SkipUntapSourceEffect.java b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepSourceEffect.java similarity index 79% rename from Mage/src/mage/abilities/effects/common/SkipUntapSourceEffect.java rename to Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepSourceEffect.java index 90fb6b9001..f309574aa6 100644 --- a/Mage/src/mage/abilities/effects/common/SkipUntapSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepSourceEffect.java @@ -35,25 +35,26 @@ import mage.abilities.effects.ContinuousRuleModifiyingEffectImpl; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; /** * * @author North */ -public class SkipUntapSourceEffect extends ContinuousRuleModifiyingEffectImpl { +public class DontUntapInControllersUntapStepSourceEffect extends ContinuousRuleModifiyingEffectImpl { - public SkipUntapSourceEffect() { + public DontUntapInControllersUntapStepSourceEffect() { super(Duration.WhileOnBattlefield, Outcome.Detriment, false, true); staticText = "{this} doesn't untap during your untap step"; } - public SkipUntapSourceEffect(final SkipUntapSourceEffect effect) { + public DontUntapInControllersUntapStepSourceEffect(final DontUntapInControllersUntapStepSourceEffect effect) { super(effect); } @Override - public SkipUntapSourceEffect copy() { - return new SkipUntapSourceEffect(this); + public DontUntapInControllersUntapStepSourceEffect copy() { + return new DontUntapInControllersUntapStepSourceEffect(this); } @Override @@ -66,7 +67,10 @@ public class SkipUntapSourceEffect extends ContinuousRuleModifiyingEffectImpl { if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == EventType.UNTAP && event.getTargetId().equals(source.getSourceId())) { - return true; + Permanent permanent = game.getPermanent(source.getSourceId()); + if (permanent != null && permanent.getControllerId().equals(game.getActivePlayerId())) { + return true; + } } return false; } diff --git a/Mage/src/mage/abilities/effects/common/SkipUntapTargetEffect.java b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepTargetEffect.java similarity index 74% rename from Mage/src/mage/abilities/effects/common/SkipUntapTargetEffect.java rename to Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepTargetEffect.java index a96d71fb91..9bdcc13d54 100644 --- a/Mage/src/mage/abilities/effects/common/SkipUntapTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DontUntapInControllersUntapStepTargetEffect.java @@ -45,19 +45,19 @@ import mage.game.permanent.Permanent; * * @author BetaSteward_at_googlemail.com */ -public class SkipUntapTargetEffect extends ContinuousRuleModifiyingEffectImpl { +public class DontUntapInControllersUntapStepTargetEffect extends ContinuousRuleModifiyingEffectImpl { - public SkipUntapTargetEffect(Duration duration) { + public DontUntapInControllersUntapStepTargetEffect(Duration duration) { super(duration, Outcome.Detriment); } - public SkipUntapTargetEffect(final SkipUntapTargetEffect effect) { + public DontUntapInControllersUntapStepTargetEffect(final DontUntapInControllersUntapStepTargetEffect effect) { super(effect); } @Override - public SkipUntapTargetEffect copy() { - return new SkipUntapTargetEffect(this); + public DontUntapInControllersUntapStepTargetEffect copy() { + return new DontUntapInControllersUntapStepTargetEffect(this); } @Override @@ -77,10 +77,13 @@ public class SkipUntapTargetEffect extends ContinuousRuleModifiyingEffectImpl { @Override public boolean applies(GameEvent event, Ability source, Game game) { - if (game.getTurn().getStepType() == PhaseStep.UNTAP && event.getType() == EventType.UNTAP) { + if (GameEvent.EventType.UNTAP.equals(event.getType()) && PhaseStep.UNTAP.equals(game.getTurn().getStepType())) { for (UUID targetId : targetPointer.getTargets(game, source)) { if (event.getTargetId().equals(targetId)) { - return true; + Permanent permanent = game.getPermanent(targetId); + if (permanent != null && game.getActivePlayerId().equals(permanent.getControllerId())) { + return true; + } } } } @@ -92,9 +95,8 @@ public class SkipUntapTargetEffect extends ContinuousRuleModifiyingEffectImpl { if (staticText != null) { return staticText; } - return new StringBuilder("Target ").append(mode.getTargets().get(0).getTargetName()) - .append(" doesn't untap ") - .append(getDuration().toString()).toString(); + return "Target " + mode.getTargets().get(0).getTargetName() + + " doesn't untap during its controller's untap step" + (getDuration().toString().isEmpty() ? "":" " + getDuration()); } } diff --git a/Mage/src/mage/abilities/effects/common/SkipUntapOptionalSourceEffect.java b/Mage/src/mage/abilities/effects/common/SkipUntapOptionalSourceEffect.java index 26d830371d..a251a0cba7 100644 --- a/Mage/src/mage/abilities/effects/common/SkipUntapOptionalSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/SkipUntapOptionalSourceEffect.java @@ -27,9 +27,9 @@ */ package mage.abilities.effects.common; -import mage.constants.Duration; import mage.abilities.Ability; import mage.abilities.effects.RestrictionEffect; +import mage.constants.Duration; import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; @@ -54,13 +54,15 @@ public class SkipUntapOptionalSourceEffect extends RestrictionEffect { @Override public boolean applies(Permanent permanent, Ability source, Game game) { - return permanent.getId().equals(source.getSourceId()) && permanent.isTapped(); + return permanent.getId().equals(source.getSourceId()) && + permanent.getControllerId().equals(game.getActivePlayerId()) && // your untap step + permanent.isTapped(); } @Override public boolean canBeUntapped(Permanent permanent, Game game) { Player player = game.getPlayer(permanent.getControllerId()); - return player != null && player.chooseUse(Outcome.Benefit, "Untap " + permanent.getName() + "?", game); + return player != null && player.chooseUse(Outcome.Benefit, "Untap " + permanent.getLogName() + "?", game); } @Override diff --git a/Mage/src/mage/abilities/effects/common/continious/UntapAllDuringEachOtherPlayersUntapStepEffect.java b/Mage/src/mage/abilities/effects/common/continious/UntapAllDuringEachOtherPlayersUntapStepEffect.java index 65ef456e85..6c2bad462b 100644 --- a/Mage/src/mage/abilities/effects/common/continious/UntapAllDuringEachOtherPlayersUntapStepEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/UntapAllDuringEachOtherPlayersUntapStepEffect.java @@ -73,13 +73,13 @@ public class UntapAllDuringEachOtherPlayersUntapStepEffect extends ContinuousEff if (!applied && layer.equals(Layer.RulesEffects)) { if (!game.getActivePlayerId().equals(source.getControllerId()) && game.getStep().getType() == PhaseStep.UNTAP) { game.getState().setValue(source.getSourceId() + "applied", true); - for (Permanent artifact: game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(), game)) { + for (Permanent permanent: game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(), game)) { boolean untap = true; - for (RestrictionEffect effect: game.getContinuousEffects().getApplicableRestrictionEffects(artifact, game).keySet()) { - untap &= effect.canBeUntapped(artifact, game); + for (RestrictionEffect effect: game.getContinuousEffects().getApplicableRestrictionEffects(permanent, game).keySet()) { + untap &= effect.canBeUntapped(permanent, game); } if (untap) { - artifact.untap(game); + permanent.untap(game); } } } diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java index 1512e5b4d1..2a013f6662 100644 --- a/Mage/src/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/mage/game/permanent/PermanentImpl.java @@ -866,11 +866,11 @@ public abstract class PermanentImpl extends CardImpl implements Permanent { } protected void fireEvent(EventType eventType, Game game) { - game.fireEvent(GameEvent.getEvent(eventType, this.objectId, ownerId)); + game.fireEvent(GameEvent.getEvent(eventType, this.objectId, ownerId)); // controllerId seems to me more logical (LevelX2) } protected boolean replaceEvent(EventType eventType, Game game) { - return game.replaceEvent(GameEvent.getEvent(eventType, this.objectId, ownerId)); + return game.replaceEvent(GameEvent.getEvent(eventType, this.objectId, ownerId));// controllerId seems to me more logical (LevelX2) } diff --git a/Utils/release/getting_implemented_cards.txt b/Utils/release/getting_implemented_cards.txt index e72c88ba55..f765e0b74b 100644 --- a/Utils/release/getting_implemented_cards.txt +++ b/Utils/release/getting_implemented_cards.txt @@ -74,6 +74,8 @@ since 1.3.0-2014-11-29v1 git log 3446953a9d594f324a4b4e36ea13560f1fe2685b..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt since 1.3.0-2014-11-29v2 git log 68f2b65c345d4f16f33f6f23d849d48b1924bbd1..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt +since 1.3.0-2014-11-29v3 +git log 68fed320f79a43a4af21ed9238b7659df53a008e..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt 3. Copy added_cards.txt to trunk\Utils folder 4. Run script: