mirror of
https://github.com/correl/mage.git
synced 2025-04-05 17:00:10 -09:00
* Fixed some bugs of "Don't untap during controller's next untap" effects, that also prevented untap in untap steps of other players (e.g. by Ivorytusk Fortess).
This commit is contained in:
parent
b3f1cc002e
commit
d0b304856b
98 changed files with 289 additions and 261 deletions
Mage.Sets/src/mage/sets
alarareborn
avacynrestored
betrayersofkamigawa
bornofthegods
championsofkamigawa
CloudcrestLake.javaKashiTribeReaver.javaKashiTribeWarriors.javaLanternLitGraveyard.javaMatsuTribeDecoy.javaMysticRestraints.javaOrochiRanger.javaPinecrestRidge.javaTranquilGarden.javaWaterveilCavern.java
commander
commander2014
conflux
darkascension
dragonsmaze
eventide
fifthdawn
fifthedition
fourthedition
gatecrash
iceage
innistrad
invasion
khansoftarkir
limitedalpha
lorwyn
magic2010
magic2011
magic2012
magic2013
magic2015
mirage
newphyrexia
odyssey
onslaught
portalthreekingdoms
riseoftheeldrazi
saviorsofkamigawa
scarsofmirrodin
shadowmoor
shardsofalara
stronghold
tempest
Choke.javaCinderMarsh.javaMoggHollows.javaRootwaterDepths.javaThalakosLowlands.javaVecTownships.java
tenth
thedark
theros
timespiral
unlimitededition
urzaslegacy
urzassaga
worldwake
zendikar
Mage/src/mage
abilities
common
effects/common
DontUntapInControllersNextUntapStepSourceEffect.javaDontUntapInControllersNextUntapStepTargetEffect.javaDontUntapInControllersUntapStepAllEffect.javaDontUntapInControllersUntapStepEnchantedEffect.javaDontUntapInControllersUntapStepSourceEffect.javaDontUntapInControllersUntapStepTargetEffect.javaSkipUntapOptionalSourceEffect.java
continious
game/permanent
Utils/release
|
@ -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()));
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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}")));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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))));
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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}")));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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.")));
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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.)
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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}"));
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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()));
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
*/
|
||||
package mage.abilities.common;
|
||||
|
||||
import mage.constants.Zone;
|
||||
import mage.abilities.effects.common.SkipUntapOptionalSourceEffect;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
* Implements:
|
||||
|
|
|
@ -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;
|
|
@ -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;
|
|
@ -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();
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue