refactored mill effect names

This commit is contained in:
Evan Kranzler 2020-09-10 11:53:11 -04:00
parent fe1281decb
commit 7008392a49
109 changed files with 237 additions and 237 deletions

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -28,7 +28,7 @@ public final class AltarOfTheBrood extends CardImpl {
// Whenever another permanent enters the battlefield under your control, each opponent mills a card.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD,
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(1, TargetController.OPPONENT), filter, false, null, true));
new MillCardsEachPlayerEffect(1, TargetController.OPPONENT), filter, false, null, true));
}
public AltarOfTheBrood(final AltarOfTheBrood card) {

View file

@ -4,7 +4,7 @@ package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -25,7 +25,7 @@ public final class ArmoredSkaab extends CardImpl {
this.toughness = new MageInt(4);
// When Armored Skaab enters the battlefield, put the top four cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(4)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(4)));
}
public ArmoredSkaab(final ArmoredSkaab card) {

View file

@ -5,7 +5,7 @@ import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.GainControlAllEffect;
import mage.cards.CardImpl;
@ -40,7 +40,7 @@ public final class AshiokSculptorOfFears extends CardImpl {
Ability ability = new LoyaltyAbility(
new DrawCardSourceControllerEffect(1).setText("draw a card"), 2
);
ability.addEffect(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(2, TargetController.ANY));
ability.addEffect(new MillCardsEachPlayerEffect(2, TargetController.ANY));
this.addAbility(ability);
// 5: Put target creature card from a graveyard onto the battlefield under your control.

View file

@ -7,7 +7,7 @@ import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.condition.common.DeliriumCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.TransformSourceEffect;
import mage.abilities.hint.common.DeliriumHint;
import mage.abilities.keyword.TransformAbility;
@ -29,7 +29,7 @@ public final class AutumnalGloom extends CardImpl {
this.secondSideCardClazz = AncientOfTheEquinox.class;
// {B}: Put the top card of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveControllerEffect(1), new ManaCostsImpl("{B}")));
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsControllerEffect(1), new ManaCostsImpl("{B}")));
// <i>Delirium</i> &mdash; At the beginning of your end step, if there are four or more card types among cards in your graveyard, transform Autumnal Gloom.
this.addAbility(new TransformAbility());

View file

@ -12,7 +12,7 @@ import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.common.ExileCardFromOwnGraveyardControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.FlyingAbility;
@ -37,7 +37,7 @@ public final class Bloodcurdler extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// At the beginning of your upkeep, put the top card of your library into your graveyard.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveControllerEffect(1), TargetController.YOU, false));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new MillCardsControllerEffect(1), TargetController.YOU, false));
Condition thresholdCondition = new CardsInControllerGraveyardCondition(7);
// Threshold - As long as seven or more cards are in your graveyard, Bloodcurdler gets +1/+1 and has "At the beginning of your end step, exile two cards from your graveyard."

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.cards.Card;
@ -30,7 +30,7 @@ public final class BreakingEntering extends SplitCard {
// Breaking
// Target player puts the top eight cards of their library into their graveyard.
getLeftHalfCard().getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveTargetEffect(8));
getLeftHalfCard().getSpellAbility().addEffect(new MillCardsTargetEffect(8));
getLeftHalfCard().getSpellAbility().addTarget(new TargetPlayer());
// Entering

View file

@ -8,7 +8,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -39,7 +39,7 @@ public final class CarrionGrub extends CardImpl {
)));
// When Carrion Grub enters the battlefield, mill four cards.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(4)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(4)));
}
private CarrionGrub(final CarrionGrub card) {

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.common.BecomesTargetTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -22,7 +22,7 @@ public final class CephalidAristocrat extends CardImpl {
this.toughness = new MageInt(3);
// Whenever Cephalid Aristocrat becomes the target of a spell or ability, put the top two cards of your library into your graveyard.
this.addAbility(new BecomesTargetTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2)));
this.addAbility(new BecomesTargetTriggeredAbility(new MillCardsControllerEffect(2)));
}
public CephalidAristocrat(final CephalidAristocrat card) {

View file

@ -11,7 +11,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PreventDamageByTargetEffect;
import mage.abilities.effects.common.PreventDamageToTargetEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -35,7 +35,7 @@ public final class CephalidIllusionist extends CardImpl {
this.toughness = new MageInt(1);
// Whenever Cephalid Illusionist becomes the target of a spell or ability, put the top three cards of your library into your graveyard.
this.addAbility(new BecomesTargetTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(3)));
this.addAbility(new BecomesTargetTriggeredAbility(new MillCardsControllerEffect(3)));
// {2}{U}, {tap}: Prevent all combat damage that would be dealt to
Effect effect = new PreventDamageToTargetEffect(Duration.EndOfTurn, true);

View file

@ -6,7 +6,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.ReplacementEffectImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@ -66,7 +66,7 @@ class ChainsOfMephistophelesReplacementEffect extends ReplacementEffectImpl {
if (player != null) {
if (player.getHand().isEmpty()) {
// they put the top card of their library into their graveyard
Effect effect = new PutTopCardOfLibraryIntoGraveTargetEffect(1);
Effect effect = new MillCardsTargetEffect(1);
effect.setTargetPointer(new FixedTarget(event.getPlayerId()));
effect.apply(game, source);
return true;

View file

@ -6,7 +6,7 @@ import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.ChancellorAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PlayTargetWithoutPayingManaEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -68,7 +68,7 @@ public final class ChancellorOfTheSpires extends CardImpl {
class ChancellorOfTheSpiresDelayedTriggeredAbility extends DelayedTriggeredAbility {
ChancellorOfTheSpiresDelayedTriggeredAbility() {
super(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(7, TargetController.OPPONENT));
super(new MillCardsEachPlayerEffect(7, TargetController.OPPONENT));
}
private ChancellorOfTheSpiresDelayedTriggeredAbility(ChancellorOfTheSpiresDelayedTriggeredAbility ability) {

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost;
import mage.abilities.costs.common.MillCardsCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.*;
import mage.abilities.effects.mana.ManaEffect;
@ -51,7 +51,7 @@ class CharmedPendantAbility extends ActivatedManaAbilityImpl {
public CharmedPendantAbility() {
super(Zone.BATTLEFIELD, new CharmedPendantManaEffect(), new TapSourceCost());
this.addCost(new PutTopCardOfYourLibraryToGraveyardCost());
this.addCost(new MillCardsCost());
this.setUndoPossible(false); // Otherwise you could return the card from graveyard
}
@ -131,8 +131,8 @@ class CharmedPendantManaEffect extends ManaEffect {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
for (Cost cost : source.getCosts()) {
if (cost instanceof PutTopCardOfYourLibraryToGraveyardCost) {
Set<Card> cards = ((PutTopCardOfYourLibraryToGraveyardCost) cost).getCardsMovedToGraveyard();
if (cost instanceof MillCardsCost) {
Set<Card> cards = ((MillCardsCost) cost).getCardsMovedToGraveyard();
if (!cards.isEmpty()) {
Card card = cards.iterator().next();
if (card != null && card.getManaCost() != null) {

View file

@ -1,7 +1,7 @@
package mage.cards.c;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlashbackAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -20,7 +20,7 @@ public final class ChillOfForeboding extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}");
// Each player puts the top five cards of their library into their graveyard.
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(5, TargetController.ANY));
this.getSpellAbility().addEffect(new MillCardsEachPlayerEffect(5, TargetController.ANY));
// Flashback {7}{U}
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{7}{U}"), TimingRule.SORCERY));

View file

@ -4,7 +4,7 @@ package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -26,7 +26,7 @@ public final class CorpseChurn extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}");
// Put the top three cards of your library into your graveyard, then you may return a creature card from your graveyard to your hand.
getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(3));
getSpellAbility().addEffect(new MillCardsControllerEffect(3));
getSpellAbility().addEffect(new CorpseChurnEffect());
}

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.OnEventTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -25,7 +25,7 @@ public final class CrawlingSensation extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
// At the beginning of your upkeep, you may put the top two cards of your library into your graveyard.
this.addAbility(new OnEventTriggeredAbility(GameEvent.EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new PutTopCardOfLibraryIntoGraveControllerEffect(2), true));
this.addAbility(new OnEventTriggeredAbility(GameEvent.EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new MillCardsControllerEffect(2), true));
// Whenever one or more land cards are put into your graveyard from anywhere for the first time each turn, create a 1/1 green Insect creature token.
this.addAbility(new CrawlingSensationTriggeredAbility());

View file

@ -8,7 +8,7 @@ import mage.abilities.condition.common.DeliriumCondition;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalActivatedAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.hint.common.DeliriumHint;
import mage.cards.CardImpl;
@ -36,7 +36,7 @@ public final class CropSigil extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{G}");
// At the beginning of your upkeep, you may put the top card of your library into your graveyard.
this.addAbility(new OnEventTriggeredAbility(GameEvent.EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new PutTopCardOfLibraryIntoGraveControllerEffect(1), true));
this.addAbility(new OnEventTriggeredAbility(GameEvent.EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new MillCardsControllerEffect(1), true));
// <i>Delirium</i> &mdash; {2}{G}, Sacrifice Crop Sigil: Return up to one target creature card and up to one target land card from your graveyard to your hand.
// Activate this ability only if there are four or more card types among cards in your graveyard.

View file

@ -4,7 +4,7 @@ package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldOrDiesSourceTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,7 +28,7 @@ public final class CrowOfDarkTidings extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// When Crow of Dark Tidings enters the battlefield or dies, put the top two cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldOrDiesSourceTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2), false));
this.addAbility(new EntersBattlefieldOrDiesSourceTriggeredAbility(new MillCardsControllerEffect(2), false));
}
public CrowOfDarkTidings(final CrowOfDarkTidings card) {

View file

@ -5,7 +5,7 @@ import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -26,7 +26,7 @@ public final class DeadbridgeChant extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{B}{G}");
// When Deadbridge Chant enters the battlefield, put the top ten cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(10)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(10)));
// At the beginning of your upkeep, choose a card at random in your graveyard. If it's a creature card, put it onto the battlefield. Otherwise, put it into your hand.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DeadbridgeChantEffect(), TargetController.YOU, false));

View file

@ -9,7 +9,7 @@ import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -95,7 +95,7 @@ class DeathsOasisTriggeredAbility extends DiesCreatureTriggeredAbility {
return false;
}
this.getEffects().clear();
this.addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2));
this.addEffect(new MillCardsControllerEffect(2));
this.addEffect(new DeathsOasisEffect(zEvent.getTarget().getConvertedManaCost()));
return true;
}

View file

@ -6,7 +6,7 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost;
import mage.abilities.costs.common.MillCardsCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect;
@ -38,7 +38,7 @@ public final class DeepSpawn extends CardImpl {
// Trample
this.addAbility(TrampleAbility.getInstance());
// At the beginning of your upkeep, sacrifice Deep Spawn unless you put the top two cards of your library into your graveyard.
Effect effect = new SacrificeSourceUnlessPaysEffect(new PutTopCardOfYourLibraryToGraveyardCost(2));
Effect effect = new SacrificeSourceUnlessPaysEffect(new MillCardsCost(2));
effect.setText("sacrifice {this} unless you mill two cards");
this.addAbility(new BeginningOfUpkeepTriggeredAbility(effect, TargetController.YOU, false));
// {U}: Deep Spawn gains shroud until end of turn and doesn't untap during your next untap step. Tap Deep Spawn.

View file

@ -2,7 +2,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost;
import mage.abilities.costs.common.MillCardsCost;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -25,7 +25,7 @@ public final class DerangedAssistant extends CardImpl {
// {T}, Mill a card: Add {C}.
ColorlessManaAbility ability = new ColorlessManaAbility();
ability.addCost(new PutTopCardOfYourLibraryToGraveyardCost());
ability.addCost(new MillCardsCost());
ability.setUndoPossible(false);
this.addAbility(ability);
}

View file

@ -4,7 +4,7 @@ import mage.MageInt;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.cards.Card;
@ -37,7 +37,7 @@ public final class DevourerOfMemory extends CardImpl {
// {1}{U}{B}: Put the top card of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(1), new ManaCostsImpl("{1}{U}{B}")
new MillCardsControllerEffect(1), new ManaCostsImpl("{1}{U}{B}")
));
}

View file

@ -6,7 +6,7 @@ import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
import mage.abilities.dynamicvalue.common.SignInversionDynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -27,7 +27,7 @@ public final class DrownInFilth extends CardImpl {
// Choose target creature. Put the top four cards of your library into your graveyard, then that creature gets -1/-1 until end of turn for each land card in your graveyard.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
Effect effect = new PutTopCardOfLibraryIntoGraveControllerEffect(4);
Effect effect = new MillCardsControllerEffect(4);
effect.setText("Choose target creature. Mill four cards");
this.getSpellAbility().addEffect(effect);
DynamicValue landCards = new SignInversionDynamicValue(new CardsInControllerGraveyardCount(new FilterLandCard()));

View file

@ -8,7 +8,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.dynamicvalue.common.ArtifactYouControlCount;
import mage.abilities.effects.AsThoughEffectImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.cost.SpellCostReductionForEachSourceEffect;
import mage.abilities.hint.common.ArtifactYouControlHint;
import mage.cards.CardImpl;
@ -41,7 +41,7 @@ public final class EmryLurkerOfTheLoch extends CardImpl {
// When Emry, Lurker of the Loch enters the battlefield, put the top four cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(4)
new MillCardsControllerEffect(4)
));
// {T}: Choose target artifact card in your graveyard. You may cast that card this turn.

View file

@ -7,7 +7,7 @@ import mage.abilities.common.CanBeYourCommanderAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.UntapAllControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -145,7 +145,7 @@ class EstridTheMaskedGraveyardEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
new PutTopCardOfLibraryIntoGraveControllerEffect(7).apply(game, source);
new MillCardsControllerEffect(7).apply(game, source);
Player controller = game.getPlayer(source.getControllerId());
if (controller == null) {
return false;

View file

@ -8,7 +8,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
@ -36,7 +36,7 @@ public final class EvanescentIntellect extends CardImpl {
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
// Enchanted creature has "{1}{U}, {T}: Target player puts the top three cards of their library into their graveyard."
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(3), new ManaCostsImpl("{1}{U}"));
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsTargetEffect(3), new ManaCostsImpl("{1}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.AURA, Duration.WhileOnBattlefield)));

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,7 +28,7 @@ public final class ExcavationMole extends CardImpl {
// When Excavation Mole enters the battlefield, put the top three cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(3)
new MillCardsControllerEffect(3)
));
}

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -26,7 +26,7 @@ public final class ExtractFromDarkness extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}{B}");
// Each player puts the top two cards of their library into their graveyard.
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(2, TargetController.ANY));
this.getSpellAbility().addEffect(new MillCardsEachPlayerEffect(2, TargetController.ANY));
// Then put a creature card from a graveyard onto the battlefield under your control.
this.getSpellAbility().addEffect(new ExtractFromDarknessEffect());

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,7 +28,7 @@ public final class EyeCollector extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Whenever Eye Collector deals combat damage to a player, each player puts the top card of their library into their graveyard.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(1, TargetController.ANY), false));
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new MillCardsEachPlayerEffect(1, TargetController.ANY), false));
}
private EyeCollector(final EyeCollector card) {

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.ExileCardFromOwnGraveyardControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -20,7 +20,7 @@ public final class FalseMemories extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
// Put the top seven cards of your library into your graveyard.
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(7));
this.getSpellAbility().addEffect(new MillCardsControllerEffect(7));
// At the beginning of the next end step, exile seven cards from your graveyard.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new ExileCardFromOwnGraveyardControllerEffect(7))));
}

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.abilities.Mode;
import mage.abilities.dynamicvalue.common.ManacostVariableValue;
import mage.abilities.effects.common.DrawCardAllEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -26,7 +26,7 @@ public final class Fascination extends CardImpl {
// * Each player puts the top X cards of their library into their graveyard.
Mode mode = new Mode();
mode.addEffect(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(ManacostVariableValue.instance, TargetController.ANY));
mode.addEffect(new MillCardsEachPlayerEffect(ManacostVariableValue.instance, TargetController.ANY));
this.getSpellAbility().addMode(mode);
}

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.keyword.InvestigateEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -55,7 +55,7 @@ public final class FleetingMemories extends CardImpl {
class FleetingMemoriesTriggeredAbility extends TriggeredAbilityImpl {
public FleetingMemoriesTriggeredAbility() {
super(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(3));
super(Zone.BATTLEFIELD, new MillCardsTargetEffect(3));
setLeavesTheBattlefieldTrigger(true);
}

View file

@ -4,7 +4,7 @@ package mage.cards.f;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -24,7 +24,7 @@ public final class ForsakenDrifters extends CardImpl {
this.toughness = new MageInt(2);
// When Forsaken Drifters dies, put the top four cards of your library into your graveyard.
this.addAbility(new DiesSourceTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(4)));
this.addAbility(new DiesSourceTriggeredAbility(new MillCardsControllerEffect(4)));
}
public ForsakenDrifters(final ForsakenDrifters card) {

View file

@ -2,7 +2,7 @@ package mage.cards.f;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -22,7 +22,7 @@ public final class FuneralRites extends CardImpl {
.setText("You draw two cards"));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2)
.setText(", lose 2 life"));
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2)
this.getSpellAbility().addEffect(new MillCardsControllerEffect(2)
.concatBy(", and"));
}

View file

@ -2,7 +2,7 @@ package mage.cards.g;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -19,7 +19,7 @@ public final class GhoulcallersBell extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// {T}: Each player puts the top card of their library into their graveyard.
this.addAbility(new SimpleActivatedAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(1, TargetController.ANY), new TapSourceCost()));
this.addAbility(new SimpleActivatedAbility(new MillCardsEachPlayerEffect(1, TargetController.ANY), new TapSourceCost()));
}
private GhoulcallersBell(final GhoulcallersBell card) {

View file

@ -7,7 +7,7 @@ import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.AsThoughEffectImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -36,7 +36,7 @@ public final class GisaAndGeralf extends CardImpl {
this.toughness = new MageInt(4);
// When Gisa and Geralf enters the battlefield, put the top four cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(4)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(4)));
// During each of your turns, you may cast a Zombie creature card from your graveyard.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GisaAndGeralfCastFromGraveyardEffect())

View file

@ -4,7 +4,7 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -35,7 +35,7 @@ public final class GlowsporeShaman extends CardImpl {
// When Glowspore Shaman enters the battlefield, put the top three cards of your library into your graveyard. You may put a land card from your graveyard on top of your library.
Ability ability = new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(3), false
new MillCardsControllerEffect(3), false
);
ability.addEffect(new GlowsporeShamanEffect());
this.addAbility(ability);

View file

@ -4,7 +4,7 @@ package mage.cards.g;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -27,7 +27,7 @@ public final class GrappleWithThePast extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{G}");
// Put the top three cards of your library into your graveyard, then you may return a creature or land card from your graveyard to your hand.
getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(3));
getSpellAbility().addEffect(new MillCardsControllerEffect(3));
getSpellAbility().addEffect(new GrappleWithThePastEffect());
}

View file

@ -3,7 +3,7 @@ package mage.cards.g;
import java.util.UUID;
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -23,7 +23,7 @@ public final class GraveStrength extends CardImpl {
// Choose target creature. Put the top three cards of your library into your graveyard, then put a +1/+1 counter on that creature for each creature card in your graveyard.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
Effect effect = new PutTopCardOfLibraryIntoGraveControllerEffect(3);
Effect effect = new MillCardsControllerEffect(3);
effect.setText("Choose target creature. Mill three cards");
this.getSpellAbility().addEffect(effect);
effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE));

View file

@ -7,7 +7,7 @@ import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.UntapSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -33,7 +33,7 @@ public final class GrindingStation extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
// {T}, Sacrifice an artifact: Target player puts the top three cards of their library into their graveyard.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(3), new TapSourceCost());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsTargetEffect(3), new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);

View file

@ -4,7 +4,7 @@ package mage.cards.i;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.abilityword.KinshipAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -27,7 +27,7 @@ public final class InkDissolver extends CardImpl {
// Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Ink Dissolver, you may reveal it.
// If you do, each opponent puts the top three cards of their library into their graveyard.
this.addAbility(new KinshipAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.OPPONENT)));
this.addAbility(new KinshipAbility(new MillCardsEachPlayerEffect(3, TargetController.OPPONENT)));
}
public InkDissolver(final InkDissolver card) {

View file

@ -4,7 +4,7 @@ package mage.cards.l;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -24,7 +24,7 @@ public final class LaboratoryBrute extends CardImpl {
this.toughness = new MageInt(3);
// When Laboratory Brute enters the battlefield, put the top four cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(4)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(4)));
}
public LaboratoryBrute(final LaboratoryBrute card) {

View file

@ -6,7 +6,7 @@ import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DestroyAllEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.BecomesBlackZombieAdditionEffect;
import mage.cards.CardImpl;
@ -42,7 +42,7 @@ public final class LilianaDeathsMajesty extends CardImpl {
// +1: Create a 2/2 black Zombie creature token. Put the top two cards of your library into your graveyard.
LoyaltyAbility ability = new LoyaltyAbility(new CreateTokenEffect(new ZombieToken()), 1);
ability.addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2));
ability.addEffect(new MillCardsControllerEffect(2));
this.addAbility(ability);
// -3: Return target creature card from your graveyard to the battlefield. That creature is a black Zombie in addition to its other colors and types.

View file

@ -8,7 +8,7 @@ import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.GetEmblemEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
@ -47,7 +47,7 @@ public final class LilianaTheLastHope extends CardImpl {
this.addAbility(ability);
// -2: Put the top two cards of your library into your graveyard, then you may return a creature card from your graveyard to your hand.
ability = new LoyaltyAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2), -2);
ability = new LoyaltyAbility(new MillCardsControllerEffect(2), -2);
ability.addEffect(new LilianaTheLastHopeEffect());
this.addAbility(ability);

View file

@ -5,8 +5,8 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.DeliriumCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.hint.common.DeliriumHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,14 +31,14 @@ public final class ManicScribe extends CardImpl {
// When Manic Scribe enters the battlefield, each opponent puts the top three cards of their library into their graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.OPPONENT), false
new MillCardsEachPlayerEffect(3, TargetController.OPPONENT), false
));
// <i>Delirium</i> &mdash; At the beginning of each opponent's upkeep, if there are four or more card types among cards in your graveyard,
// that player puts the top three cards of their library into their graveyard.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfUpkeepTriggeredAbility(
Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(3),
Zone.BATTLEFIELD, new MillCardsTargetEffect(3),
TargetController.OPPONENT, false, true
), DeliriumCondition.instance, "<i>Delirium</i> &mdash; At the beginning of each opponent's upkeep, " +
"if there are four or more card types among cards in your graveyard, that player mills three cards."

View file

@ -3,7 +3,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -19,7 +19,7 @@ public final class MentalNote extends CardImpl {
// Put the top two cards of your library into your graveyard.
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2));
this.getSpellAbility().addEffect(new MillCardsControllerEffect(2));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
}

View file

@ -2,7 +2,7 @@
package mage.cards.m;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -40,7 +40,7 @@ public final class MesmericOrb extends CardImpl {
class MesmericOrbTriggeredAbility extends TriggeredAbilityImpl {
MesmericOrbTriggeredAbility() {
super(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(1), false);
super(Zone.BATTLEFIELD, new MillCardsTargetEffect(1), false);
}
private MesmericOrbTriggeredAbility(final MesmericOrbTriggeredAbility ability) {

View file

@ -3,7 +3,7 @@ package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost;
import mage.abilities.costs.common.MillCardsCost;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -24,7 +24,7 @@ public final class Millikin extends CardImpl {
// {tap}, Put the top card of your library into your graveyard: Add {C}.
ColorlessManaAbility ability = new ColorlessManaAbility();
ability.addCost(new PutTopCardOfYourLibraryToGraveyardCost());
ability.addCost(new MillCardsCost());
ability.setUndoPossible(false);
this.addAbility(ability);
}

View file

@ -2,7 +2,7 @@ package mage.cards.m;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -21,7 +21,7 @@ public final class MindDrain extends CardImpl {
// Target opponent discards two cards, mills a card, and loses 1 life. You gain 1 life.
this.getSpellAbility().addEffect(new DiscardTargetEffect(2));
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveTargetEffect(1).setText(", mills a card"));
this.getSpellAbility().addEffect(new MillCardsTargetEffect(1).setText(", mills a card"));
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1).setText(", and loses 1 life."));
this.getSpellAbility().addEffect(new GainLifeEffect(1));
this.getSpellAbility().addTarget(new TargetOpponent());

View file

@ -10,7 +10,7 @@ import mage.abilities.condition.InvertCondition;
import mage.abilities.condition.common.DeliriumCondition;
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.hint.common.DeliriumHint;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.TrampleAbility;
@ -38,7 +38,7 @@ public final class MindwrackDemon extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// When Mindbreaker Demon enters the battlefield, put the top four cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(4)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(4)));
// At the beginning of your upkeep, if you don't have 4 or more card types in your graveyard, you lose 4 life.
Ability ability = new ConditionalInterveningIfTriggeredAbility(

View file

@ -2,7 +2,7 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,7 +29,7 @@ public final class MindwrackHarpy extends CardImpl {
// At the beginning of combat on your turn, each player puts the top three cards of their library into their graveyard.
this.addAbility(new BeginningOfCombatTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.ANY),
new MillCardsEachPlayerEffect(3, TargetController.ANY),
TargetController.YOU, false
));
}

View file

@ -4,7 +4,7 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,7 +31,7 @@ public final class MireTriton extends CardImpl {
// When Mire Triton enters the battlefield, put the top two cards of your library into your graveyard and you gain 2 life.
Ability ability = new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(2)
new MillCardsControllerEffect(2)
);
ability.addEffect(new GainLifeEffect(2).concatBy("and"));
this.addAbility(ability);

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -25,7 +25,7 @@ public final class MorgueThrull extends CardImpl {
this.toughness = new MageInt(2);
// Sacrifice Morgue Thrull: Put the top three cards of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveControllerEffect(3), new SacrificeSourceCost()));
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsControllerEffect(3), new SacrificeSourceCost()));
}
public MorgueThrull(final MorgueThrull card) {

View file

@ -4,7 +4,7 @@ package mage.cards.n;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -23,7 +23,7 @@ public final class NecromancersAssistant extends CardImpl {
this.toughness = new MageInt(1);
// When Necromancer's Assistant enters the battlefield, put the top three cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(3)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(3)));
}
public NecromancersAssistant(final NecromancersAssistant card) {

View file

@ -8,7 +8,7 @@ import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -35,7 +35,7 @@ public final class NecromasterDragon extends CardImpl {
// Whenever Necromaster Dragon deals combat damage to a player, you may pay {2}. If you do, create a 2/2 black Zombie creature token and each opponent puts the top two cards of their library into their graveyard
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(
new DoIfCostPaid(new CreateTokenEffect(new ZombieToken(), 1), new ManaCostsImpl("{2}")), false);
ability.addEffect(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(2, TargetController.OPPONENT));
ability.addEffect(new MillCardsEachPlayerEffect(2, TargetController.OPPONENT));
this.addAbility(ability);
}

View file

@ -8,7 +8,7 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.ExileSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.keyword.ReachAbility;
import mage.cards.CardImpl;
@ -35,7 +35,7 @@ public final class NyxWeaver extends CardImpl {
// Reach
this.addAbility(ReachAbility.getInstance());
// At the beginning of your upkeep, put the top two cards of your library into your graveyard.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2), TargetController.YOU, false));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new MillCardsControllerEffect(2), TargetController.YOU, false));
// {1}{B}{G}, Exile Nyx Weaver: Return target card from your graveyard to your hand.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{1}{B}{G}"));
ability.addCost(new ExileSourceCost());

View file

@ -3,7 +3,7 @@ package mage.cards.o;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.keyword.ScryEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,7 +28,7 @@ public final class OverwhelmedApprentice extends CardImpl {
// When Overwhelmed Apprentice enters the battlefield, each opponent puts the top two cards of their library into their graveyard. Then you scry 2.
Ability ability = new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(2, TargetController.OPPONENT)
new MillCardsEachPlayerEffect(2, TargetController.OPPONENT)
);
ability.addEffect(new ScryEffect(2, false).setText("Then you scry 2."));
this.addAbility(ability);

View file

@ -8,7 +8,7 @@ import mage.abilities.costs.common.ExileSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.CardsImpl;
@ -30,7 +30,7 @@ public final class PerpetualTimepiece extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
// {T}: Put the top two cards of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveControllerEffect(2), new TapSourceCost()));
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsControllerEffect(2), new TapSourceCost()));
// {2}, Exile Perpetual Timepiece: Shuffle any number of target cards from your graveyard into your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PerpetualTimepieceShuffleEffect(), new GenericManaCost(2));

View file

@ -7,7 +7,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.dynamicvalue.common.SourcePermanentToughnessValue;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.LoseCreatureTypeSourceEffect;
import mage.abilities.keyword.IndestructibleAbility;
@ -44,7 +44,7 @@ public final class PhenaxGodOfDeception extends CardImpl {
// Creatures you control have "{T}: Target player puts the top X cards of their library into their graveyard, where X is this creature's toughness."
Ability ability = new SimpleActivatedAbility(
new PutTopCardOfLibraryIntoGraveTargetEffect(SourcePermanentToughnessValue.getInstance())
new MillCardsTargetEffect(SourcePermanentToughnessValue.getInstance())
.setText("Target player mills X cards, where X is this creature's toughness"), new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(new SimpleStaticAbility(

View file

@ -2,7 +2,7 @@ package mage.cards.p;
import java.util.UUID;
import mage.abilities.common.DrawCardControllerTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -19,7 +19,7 @@ public final class PsychicCorrosion extends CardImpl {
// Whenever you draw a card, each opponent puts the top two cards of their library into their graveyard.
this.addAbility(new DrawCardControllerTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(
new MillCardsEachPlayerEffect(
2, TargetController.OPPONENT
), false
));

View file

@ -1,6 +1,6 @@
package mage.cards.r;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -20,7 +20,7 @@ public final class RakshasasSecret extends CardImpl {
// Target opponent discards two cards. Put the top two cards of your library into your graveyard.
this.getSpellAbility().addEffect(new DiscardTargetEffect(2));
this.getSpellAbility().addTarget(new TargetOpponent());
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(2).setText("Mill two cards."));
this.getSpellAbility().addEffect(new MillCardsControllerEffect(2).setText("Mill two cards."));
}
private RakshasasSecret(final RakshasasSecret card) {

View file

@ -4,7 +4,7 @@ package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -26,7 +26,7 @@ public final class ReturnedReveler extends CardImpl {
this.toughness = new MageInt(3);
// When Returned Reveler dies, each player puts the top three cards of their library into their graveyard.
this.addAbility(new DiesSourceTriggeredAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.ANY)));
this.addAbility(new DiesSourceTriggeredAbility(new MillCardsEachPlayerEffect(3, TargetController.ANY)));
}
public ReturnedReveler(final ReturnedReveler card) {

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.AttacksAllTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -27,7 +27,7 @@ public final class Riddlekeeper extends CardImpl {
this.toughness = new MageInt(4);
// Whenever a creature attacks you or a planeswalker you control, that creature's controller puts the top two cards of their library into their graveyard.
Effect effect = new PutTopCardOfLibraryIntoGraveTargetEffect(2);
Effect effect = new MillCardsTargetEffect(2);
effect.setText("that creature's controller mills two cards");
this.addAbility(new AttacksAllTriggeredAbility(effect, false, StaticFilters.FILTER_PERMANENT_CREATURE, SetTargetPointer.PLAYER, true, true));
}

View file

@ -6,7 +6,7 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.CantBlockAbility;
import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost;
import mage.abilities.costs.common.MillCardsCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
import mage.cards.CardImpl;
@ -36,7 +36,7 @@ public final class RotFarmSkeleton extends CardImpl {
// 2{B}{G}, Put the top four cards of your library into your graveyard: Return Rot Farm Skeleton from your graveyard to the battlefield. Activate this ability only any time you could cast a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl("{2}{B}{G}"));
ability.addCost(new PutTopCardOfYourLibraryToGraveyardCost(4));
ability.addCost(new MillCardsCost(4));
this.addAbility(ability);
}

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.LandfallAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -24,7 +24,7 @@ public final class RuinCrab extends CardImpl {
this.toughness = new MageInt(3);
// Landfall - Whenever a land enters the battlefield under your control, each opponent mills 3 cards.
this.addAbility(new LandfallAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.OPPONENT), false));
this.addAbility(new LandfallAbility(new MillCardsEachPlayerEffect(3, TargetController.OPPONENT), false));
}
private RuinCrab(final RuinCrab card) {

View file

@ -4,7 +4,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -24,7 +24,7 @@ public final class ScreechingSkaab extends CardImpl {
this.toughness = new MageInt(1);
// When Screeching Skaab enters the battlefield, put the top two cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(2)));
}
public ScreechingSkaab(final ScreechingSkaab card) {

View file

@ -8,7 +8,7 @@ import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
@ -34,7 +34,7 @@ public final class SequesteredStash extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {4},{T}, Sacrifice Sequestered Stash: Put the top five cards of your library into your graveyard. Then you may put an artifact card from your graveyard on top of your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveControllerEffect(5), new GenericManaCost(4));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsControllerEffect(5), new GenericManaCost(4));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new SequesteredStashEffect());

View file

@ -10,7 +10,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.ChoosePlayerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -90,7 +90,7 @@ class CardsInTargetOpponentsGraveyardCount implements DynamicValue {
class SewerNemesisTriggeredAbility extends TriggeredAbilityImpl {
public SewerNemesisTriggeredAbility() {
super(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(1), false);
super(Zone.BATTLEFIELD, new MillCardsTargetEffect(1), false);
}
public SewerNemesisTriggeredAbility(final SewerNemesisTriggeredAbility ability) {

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.abilities.common.AttacksAttachedTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.keyword.EquipAbility;
import mage.cards.CardImpl;
@ -29,7 +29,7 @@ public final class ShardOfBrokenGlass extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 0)));
// Whenever equipped creature attacks, you may put the top two cards of your library into your graveyard.
this.addAbility(new AttacksAttachedTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2), true));
this.addAbility(new AttacksAttachedTriggeredAbility(new MillCardsControllerEffect(2), true));
// Equip {1}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1)));

View file

@ -3,7 +3,7 @@ package mage.cards.s;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -72,7 +72,7 @@ class SharedTraumaEffect extends OneShotEffect {
if (xSum > 0) {
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
Effect effect = new PutTopCardOfLibraryIntoGraveTargetEffect(xSum);
Effect effect = new MillCardsTargetEffect(xSum);
effect.setTargetPointer(new FixedTarget(playerId));
effect.apply(game, source);
}

View file

@ -4,7 +4,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -24,7 +24,7 @@ public final class SibsigHost extends CardImpl {
this.toughness = new MageInt(6);
// When Sibsig Host enters the battlefield, each player puts the top three cards of their library into their graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.ANY)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsEachPlayerEffect(3, TargetController.ANY)));
}
public SibsigHost(final SibsigHost card) {

View file

@ -5,7 +5,7 @@ import mage.MageInt;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -34,7 +34,7 @@ public final class SidisiBroodTyrant extends CardImpl {
this.toughness = new MageInt(3);
// Whenever Sidisi, Brood Tyrant enters the battlefield or attacks, put the top three cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(3)));
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new MillCardsControllerEffect(3)));
// Whenever one or more creature cards are put into your graveyard from your library, create a 2/2 black Zombie creature token.
this.addAbility(new SidisiBroodTyrantTriggeredAbility());

View file

@ -6,7 +6,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.PayLifeCost;
import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost;
import mage.abilities.costs.common.MillCardsCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DestroyTargetEffect;
@ -28,7 +28,7 @@ public final class SinisterConcoction extends CardImpl {
// {B}, Pay 1 life, Put the top card of your library into your graveyard, Discard a card, Sacrifice Sinister Concoction: Destroy target creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{B}"));
ability.addCost(new PayLifeCost(1));
ability.addCost(new PutTopCardOfYourLibraryToGraveyardCost());
ability.addCost(new MillCardsCost());
ability.addCost(new DiscardCardCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.discard.DiscardEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.InspiredAbility;
@ -33,7 +33,7 @@ public final class SirenOfTheSilentSong extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// <i>Inspired</i> &mdash; Whenever Siren of the Silent Song becomes untapped, each opponent discards a card, then puts the top card of their library into their graveyard.
Ability ability = new InspiredAbility(new DiscardEachPlayerEffect(TargetController.OPPONENT));
Effect effect = new PutTopCardOfLibraryIntoGraveEachPlayerEffect(1, TargetController.OPPONENT);
Effect effect = new MillCardsEachPlayerEffect(1, TargetController.OPPONENT);
effect.setText(", then mills a card");
ability.addEffect(effect);
this.addAbility(ability);

View file

@ -5,7 +5,7 @@ import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -35,7 +35,7 @@ public final class SkolaGrovedancer extends CardImpl {
// {2}{G}: Put the top card of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(1), new ManaCostsImpl("{2}{G}")
new MillCardsControllerEffect(1), new ManaCostsImpl("{2}{G}")
));
}

View file

@ -3,7 +3,7 @@ package mage.cards.s;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.mana.BlackManaAbility;
import mage.abilities.mana.GreenManaAbility;
import mage.cards.CardImpl;
@ -32,7 +32,7 @@ public final class SkullProphet extends CardImpl {
// {T}: Put the top two cards of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(2), new TapSourceCost()
new MillCardsControllerEffect(2), new TapSourceCost()
));
}

View file

@ -5,7 +5,7 @@ import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.CardsInOpponentGraveyardCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.keyword.FlashAbility;
import mage.abilities.keyword.FlyingAbility;
@ -49,7 +49,7 @@ public final class SoaringThoughtThief extends CardImpl {
// Whenever one or more Rogues you control attack, each opponent mills two cards.
this.addAbility(new AttacksWithCreaturesTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(2, TargetController.OPPONENT), 1, filter
new MillCardsEachPlayerEffect(2, TargetController.OPPONENT), 1, filter
));
}

View file

@ -2,7 +2,7 @@ package mage.cards.s;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,7 +29,7 @@ public final class SphinxMindbreaker extends CardImpl {
// When Sphinx Mindbreaker enters the battlefield, each opponent puts the top ten cards of their library into their graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(10, TargetController.OPPONENT)
new MillCardsEachPlayerEffect(10, TargetController.OPPONENT)
));
}

View file

@ -6,7 +6,7 @@ import mage.MageInt;
import mage.abilities.common.OnEventTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
@ -36,7 +36,7 @@ public final class Splinterfright extends CardImpl {
CardsInControllerGraveyardCount count = new CardsInControllerGraveyardCount(new FilterCreatureCard("creature cards"));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(count, Duration.EndOfGame)));
// At the beginning of your upkeep, put the top two cards of your library into your graveyard.
this.addAbility(new OnEventTriggeredAbility(EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new PutTopCardOfLibraryIntoGraveControllerEffect(2), false));
this.addAbility(new OnEventTriggeredAbility(EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new MillCardsControllerEffect(2), false));
}
public Splinterfright(final Splinterfright card) {

View file

@ -3,7 +3,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldOrDiesSourceTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -24,7 +24,7 @@ public final class StitchersSupplier extends CardImpl {
// When Stitcher's Supplier enters the battlefield or dies, put the top three cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldOrDiesSourceTriggeredAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(3), false)
new MillCardsControllerEffect(3), false)
);
}

View file

@ -4,7 +4,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -30,7 +30,7 @@ public final class SuddenReclamation extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{G}");
// Put the top four cards of your library into your graveyard, then return a creature card and a land card from your graveyard to your hand.
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveControllerEffect(4));
this.getSpellAbility().addEffect(new MillCardsControllerEffect(4));
this.getSpellAbility().addEffect(new SuddenReclamationEffect());
}

View file

@ -4,7 +4,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -24,7 +24,7 @@ public final class SultaiSkullkeeper extends CardImpl {
this.toughness = new MageInt(1);
// When Sultai Skullkeeper enters the battlefield, put the top two cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(2)));
}
public SultaiSkullkeeper(final SultaiSkullkeeper card) {

View file

@ -1,6 +1,6 @@
package mage.cards.s;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.keyword.EscapeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -18,7 +18,7 @@ public final class SweetOblivion extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}");
// Target player puts the top four cards of their library into their graveyard.
this.getSpellAbility().addEffect(new PutTopCardOfLibraryIntoGraveTargetEffect(4));
this.getSpellAbility().addEffect(new MillCardsTargetEffect(4));
this.getSpellAbility().addTarget(new TargetPlayer());
// Escape{3}{U}, Exile four other cards from your graveyard.

View file

@ -5,7 +5,7 @@ import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DamagePlayersEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -34,7 +34,7 @@ public final class SyrKonradTheGrim extends CardImpl {
this.addAbility(new SyrKonradTheGrimTriggeredAbility());
// {1}{B}: Each player puts the top card of their library into their graveyard.
this.addAbility(new SimpleActivatedAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(
this.addAbility(new SimpleActivatedAbility(new MillCardsEachPlayerEffect(
1, TargetController.ANY
), new ManaCostsImpl("{1}{B}")));
}

View file

@ -5,7 +5,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.keyword.DelveAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
@ -38,7 +38,7 @@ public final class TasigurTheGoldenFang extends CardImpl {
this.addAbility(new DelveAbility());
// {2}{G/U}{G/U}: Put the top two cards of your library into your graveyard, then return a nonland card of an opponent's choice from your graveyard to your hand.
Ability ability = new SimpleActivatedAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2), new ManaCostsImpl("{2}{G/U}{G/U}"));
Ability ability = new SimpleActivatedAbility(new MillCardsControllerEffect(2), new ManaCostsImpl("{2}{G/U}{G/U}"));
ability.addEffect(new TasigurTheGoldenFangEffect());
this.addAbility(ability);
}

View file

@ -9,7 +9,7 @@ import mage.abilities.costs.common.RemoveCounterCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.ReplacementEffectImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.choices.Choice;
@ -56,7 +56,7 @@ public final class TayamLuminousEnigma extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new TayamLuminousEnigmaReplacementEffect()));
// {3}, Remove three counters from among creatures you control: Put the top three cards of your library into your graveyard, then return a permanent card with converted mana cost 3 or less from your graveyard to the battlefield.
PutTopCardOfLibraryIntoGraveControllerEffect millEffect = new PutTopCardOfLibraryIntoGraveControllerEffect(3);
MillCardsControllerEffect millEffect = new MillCardsControllerEffect(3);
millEffect.concatBy(".");
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, millEffect, new GenericManaCost(3));
ability.addCost(new TayamLuminousEnigmaCost());

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.abilityword.ConstellationAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -26,7 +26,7 @@ public final class ThassasDevourer extends CardImpl {
this.toughness = new MageInt(6);
// Constellation Whenever Thassa's Devourer or another enchantment enters the battlefield under your control, target player puts the top two cards of their library into their graveyard.
Ability ability = new ConstellationAbility(new PutTopCardOfLibraryIntoGraveTargetEffect(2), false);
Ability ability = new ConstellationAbility(new MillCardsTargetEffect(2), false);
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}

View file

@ -3,7 +3,7 @@ package mage.cards.t;
import mage.abilities.Ability;
import mage.abilities.common.SagaAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.cards.*;
import mage.constants.*;
@ -44,7 +44,7 @@ public final class TheBindingOfTheTitans extends CardImpl {
// I Each player puts the top three cards of their library into their graveyard.
sagaAbility.addChapterEffect(
this, SagaChapter.CHAPTER_I, new PutTopCardOfLibraryIntoGraveEachPlayerEffect(
this, SagaChapter.CHAPTER_I, new MillCardsEachPlayerEffect(
3, TargetController.ANY
)
);

View file

@ -5,7 +5,7 @@ import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SagaAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.constants.SubType;
import mage.cards.CardImpl;
@ -74,7 +74,7 @@ class TheMendingOfDominariaFirstEffect extends OneShotEffect {
if (controller == null) {
return false;
}
new PutTopCardOfLibraryIntoGraveControllerEffect(2).apply(game, source);
new MillCardsControllerEffect(2).apply(game, source);
TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD);
target.setNotTarget(true);
if (target.canChoose(source.getSourceId(), source.getControllerId(), game)

View file

@ -6,7 +6,7 @@ import mage.abilities.common.EntersBattlefieldThisOrAnotherTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.CardsInOpponentGraveyardCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.DeathtouchAbility;
@ -41,7 +41,7 @@ public final class ThievesGuildEnforcer extends CardImpl {
// Whenever Thieves' Guild Enforcer or another Rogue enters the battlefield under your control, each opponent mills two cards.
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(
new MillCardsEachPlayerEffect(
2, TargetController.OPPONENT
), filter, false, true
));

View file

@ -4,7 +4,7 @@ package mage.cards.t;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.OnEventTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -26,7 +26,7 @@ public final class TolarianSerpent extends CardImpl {
// At the beginning of your upkeep, put the top seven cards of your library into your graveyard.
this.addAbility(new OnEventTriggeredAbility(EventType.UPKEEP_STEP_PRE,
"beginning of your upkeep",
new PutTopCardOfLibraryIntoGraveControllerEffect(7), false));
new MillCardsControllerEffect(7), false));
}
public TolarianSerpent(final TolarianSerpent card) {

View file

@ -2,7 +2,7 @@ package mage.cards.t;
import mage.MageInt;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -70,7 +70,7 @@ class ToweringWaveMysticTriggeredAbility extends TriggeredAbilityImpl {
return false;
}
this.getEffects().clear();
this.addEffect(new PutTopCardOfLibraryIntoGraveTargetEffect(event.getAmount()));
this.addEffect(new MillCardsTargetEffect(event.getAmount()));
return true;
}

View file

@ -5,7 +5,7 @@ import mage.abilities.common.SagaAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@ -58,7 +58,7 @@ public final class TymaretCallsTheDead extends CardImpl {
class TymaretCallsTheDeadFirstEffect extends OneShotEffect {
private static final Effect millEffect = new PutTopCardOfLibraryIntoGraveControllerEffect(3);
private static final Effect millEffect = new MillCardsControllerEffect(3);
private static final Effect tokenEffect = new CreateTokenEffect(new ZombieToken());
private static final FilterCard filter = new FilterCard("creature or enchantment card from your graveyard");

View file

@ -6,7 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.RestrictionEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -43,7 +43,7 @@ public final class VantressGargoyle extends CardImpl {
// {T}: Each player puts the top card of their library into their graveyard.
this.addAbility(new SimpleActivatedAbility(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(1, TargetController.ANY), new TapSourceCost()
new MillCardsEachPlayerEffect(1, TargetController.ANY), new TapSourceCost()
));
}

View file

@ -2,7 +2,7 @@ package mage.cards.v;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,7 +28,7 @@ public final class VenomousHierophant extends CardImpl {
this.addAbility(DeathtouchAbility.getInstance());
// When Venomous Hierophant enters the battlefield, put the top three cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(3)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(3)));
}
private VenomousHierophant(final VenomousHierophant card) {

View file

@ -7,7 +7,7 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -24,7 +24,7 @@ public final class VesselOfParamnesia extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
// {U}, Sacrifice Vessel of Paramnesia: Target player puts the top three cards of their library into their graveyard. Draw a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutTopCardOfLibraryIntoGraveTargetEffect(3), new ManaCostsImpl("{U}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MillCardsTargetEffect(3), new ManaCostsImpl("{U}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPlayer());
ability.addEffect(new DrawCardSourceControllerEffect(1));

View file

@ -4,7 +4,7 @@ import java.util.UUID;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.DamagePlayersEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.abilities.effects.common.discard.DiscardEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,7 +29,7 @@ public final class ViciousRumors extends CardImpl {
TargetController.OPPONENT
));
this.getSpellAbility().addEffect(
new PutTopCardOfLibraryIntoGraveEachPlayerEffect(
new MillCardsEachPlayerEffect(
1, TargetController.OPPONENT
).setText(", then mills a card")
);

View file

@ -4,7 +4,7 @@ package mage.cards.w;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -23,7 +23,7 @@ public final class WailingGhoul extends CardImpl {
this.toughness = new MageInt(3);
// When Wailing Ghoul enters the battlefield, put the top two cards of your library into your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(2)));
}
public WailingGhoul(final WailingGhoul card) {

View file

@ -7,7 +7,7 @@ import mage.abilities.costs.common.ExileSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -30,7 +30,7 @@ public final class WandOfVertebrae extends CardImpl {
// {T}: Put the top card of your library into your graveyard.
this.addAbility(new SimpleActivatedAbility(
new PutTopCardOfLibraryIntoGraveControllerEffect(1),
new MillCardsControllerEffect(1),
new TapSourceCost()
));

View file

@ -2,7 +2,7 @@ package mage.cards.w;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect;
import mage.abilities.effects.common.MillCardsEachPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -19,7 +19,7 @@ public final class Whetstone extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
//{3}: Each player puts the top two cards of their library into their graveyard.
this.addAbility(new SimpleActivatedAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(
this.addAbility(new SimpleActivatedAbility(new MillCardsEachPlayerEffect(
2, TargetController.ANY
), new GenericManaCost(3)));
}

Some files were not shown because too many files have changed in this diff Show more