refactor cards which enter with counters to use simplified common effect

This commit is contained in:
theelk801 2026-01-21 10:42:51 -05:00
parent d26830b9aa
commit 46b864755f
193 changed files with 682 additions and 1140 deletions

View file

@ -2,11 +2,10 @@ package mage.cards.a;
import mage.abilities.Ability;
import mage.abilities.StateTriggeredAbility;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.MoveCountersFromSourceToTargetEffect;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -29,7 +28,7 @@ public final class AfiyaGrove extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
// Afiya Grove enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), "with three +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
// At the beginning of your upkeep, move a +1/+1 counter from Afiya Grove onto target creature.
Ability ability = new BeginningOfUpkeepTriggeredAbility(new MoveCountersFromSourceToTargetEffect());

View file

@ -3,18 +3,16 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -35,7 +33,7 @@ public final class Anthroplasm extends CardImpl {
this.toughness = new MageInt(0);
// Anthroplasm enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), "with two +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// {X}, {tap}: Remove all +1/+1 counters from Anthroplasm and put X +1/+1 counters on it.
Ability ability = new SimpleActivatedAbility(new AnthroplasmEffect(), new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());

View file

@ -3,13 +3,12 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.LoseGameSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
@ -48,10 +47,7 @@ public final class ArchfiendOfTheDross extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Archfiend of the Dross enters the battlefield with four oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(4)),
"with four oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(4)));
// At the beginning of your upkeep, remove an oil counter from Archfiend of the Dross. Then if it has no oil counters on it, you lose the game.
Ability ability = new BeginningOfUpkeepTriggeredAbility(

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
@ -38,10 +38,7 @@ public final class ArgentDais extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{W}");
// Argent Dais enters the battlefield with two oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(2)),
"with two oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(2)));
// Whenever two or more creatures attack, put an oil counter on Argent Dais.
this.addAbility(new ArgentDaisTriggeredAbility());

View file

@ -2,7 +2,7 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
@ -36,10 +36,7 @@ public final class ArwenMortalQueen extends CardImpl {
this.toughness = new MageInt(2);
// Arwen, Mortal Queen enters the battlefield with an indestructible counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.INDESTRUCTIBLE.createInstance(1)),
"with an indestructible counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.INDESTRUCTIBLE.createInstance(1)));
// {1}, Remove an indestructible counter from Arwen: Another target creature gains indestructible until end of turn. Put a +1/+1 counter and a lifelink counter on that creature and a +1/+1 counter and a lifelink counter on Arwen.
Ability ability = new SimpleActivatedAbility(

View file

@ -1,17 +1,16 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.GainsChoiceOfAbilitiesEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -35,10 +34,7 @@ public final class AtraxasSkitterfang extends CardImpl {
this.toughness = new MageInt(2);
// Atraxa's Skitterfang enters the battlefield with three oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(3)),
"with three oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(3)));
// At the beginning of combat on your turn, you may remove an oil counter from Atraxa's Skitterfang. When you do, target creature you control gains your choice of flying, vigilance, deathtouch, or lifelink until end of turn.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(new GainsChoiceOfAbilitiesEffect(

View file

@ -2,13 +2,12 @@ package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -31,10 +30,7 @@ public final class AxiomEngraver extends CardImpl {
this.toughness = new MageInt(3);
// Axiom Engraver enters the battlefield with two oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(2)),
"with two oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(2)));
// {T}, Remove an oil counter from Axiom Engraver, Discard a card: Draw a card.
Ability ability = new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1), new TapSourceCost());

View file

@ -2,12 +2,11 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,10 +30,7 @@ public final class BarkhideTroll extends CardImpl {
this.toughness = new MageInt(2);
// Barkhide Troll enters the battlefield with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
"with a +1/+1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance()));
// {1}, Remove a +1/+1 counter from Barkhide Troll: Barkhide Troll gains hexproof until end of turn.
Ability ability = new SimpleActivatedAbility(new GainAbilitySourceEffect(

View file

@ -1,12 +1,10 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.ObjectColor;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
@ -17,6 +15,8 @@ import mage.counters.CounterType;
import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.ColorPredicate;
import java.util.UUID;
/**
* @author Loki
*/
@ -31,7 +31,7 @@ public final class BelligerentHatchling extends CardImpl {
}
public BelligerentHatchling(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R/W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R/W}");
this.subtype.add(SubType.ELEMENTAL);
@ -41,7 +41,7 @@ public final class BelligerentHatchling extends CardImpl {
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// Belligerent Hatchling enters the battlefield with four -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(4)),"with four -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(4)));
// Whenever you cast a red spell, remove a -1/-1 counter from Belligerent Hatchling.
this.addAbility(new SpellCastControllerTriggeredAbility(new RemoveCounterSourceEffect(CounterType.M1M1.createInstance(1)), filterRedSpell, false));
// Whenever you cast a white spell, remove a -1/-1 counter from Belligerent Hatchling.

View file

@ -2,12 +2,11 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.ExileCardYouChooseTargetOpponentEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.NinjutsuAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -35,9 +34,7 @@ public final class BitingPalmNinja extends CardImpl {
this.addAbility(new NinjutsuAbility("{2}{B}"));
// Biting-Palm Ninja enters the battlefield with a menace counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(
CounterType.MENACE.createInstance(1)
), "with a menace counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.MENACE.createInstance(1)));
// Whenever Biting-Palm Ninja deals combat damage to a player, you may remove a menace counter from it. When you do, that player reveals their hand and you choose a nonland card from it. Exile that card.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(

View file

@ -1,23 +1,22 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.IndestructibleAbility;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.counters.CounterType;
import java.util.UUID;
/**
* @author TheElk801
*/
@ -32,10 +31,7 @@ public final class BladedAmbassador extends CardImpl {
this.toughness = new MageInt(1);
// Bladed Ambassador enters the battlefield with an oil counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance()),
"with an oil counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance()));
// {1}, Remove an oil counter from Bladed Ambassador: Bladed Ambassador gains indestructible until end of turn.
Ability ability = new SimpleActivatedAbility(new GainAbilitySourceEffect(

View file

@ -1,7 +1,7 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
@ -38,10 +38,7 @@ public final class BlastZone extends CardImpl {
// Blast Zone enters the battlefield with a charge counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)),
"with a charge counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(1)));
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());

View file

@ -2,11 +2,10 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.PreventDamageAndRemoveCountersEffect;
import mage.abilities.effects.common.counter.AddCountersPlayersEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -36,10 +35,7 @@ public final class BloatflySwarm extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Bloatfly Swarm enters the battlefield with five +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)),
"with five +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(5)));
// If damage would be dealt to Bloatfly Swarm while it has a +1/+1 counter on it, prevent that damage, remove that many +1/+1 counters from it, then give each player a rad counter for each +1/+1 counter removed this way.
this.addAbility(new SimpleStaticAbility(new BloatflySwarmPreventionEffect()), PreventDamageAndRemoveCountersEffect.createWatcher());

View file

@ -2,10 +2,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -13,6 +11,8 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author Loki
@ -20,7 +20,7 @@ import mage.counters.CounterType;
public final class BloodiedGhost extends CardImpl {
public BloodiedGhost (UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W/B}{W/B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W/B}{W/B}");
this.subtype.add(SubType.SPIRIT);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
@ -29,8 +29,7 @@ public final class BloodiedGhost extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Bloodied Ghost enters the battlefield with a -1/-1 counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance()),
"with a -1/-1 counter on it."));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance()));
}
private BloodiedGhost(final BloodiedGhost card) {

View file

@ -3,11 +3,10 @@ package mage.cards.b;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -32,10 +31,7 @@ public final class BramblebackBrute extends CardImpl {
this.toughness = new MageInt(5);
// This creature enters with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
"with two -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// {1}{R}, Remove a counter from this creature: Target creature can't block this turn. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}"));

View file

@ -1,12 +1,11 @@
package mage.cards.b;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.WardAbility;
@ -41,10 +40,7 @@ public final class BristlebaneBattler extends CardImpl {
this.addAbility(new WardAbility(new ManaCostsImpl<>("{2}")));
// This creature enters with five -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(5)),
"with five -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(5)));
// Whenever another creature you control enters while this creature has a -1/-1 counter on it, remove a -1/-1 counter from this creature.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(

View file

@ -1,24 +1,23 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.IndestructibleAbility;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.target.common.TargetCreaturePermanent;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author muz
*/
public final class BurdenedStoneback extends CardImpl {
@ -32,9 +31,7 @@ public final class BurdenedStoneback extends CardImpl {
this.toughness = new MageInt(4);
// This creature enters with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
null, "This creature enters with two -1/-1 counters on it.", "")
);
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// {1}{W}, Remove a counter from this creature: Target creature gains indestructible until end of turn. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(new GainAbilityTargetEffect(IndestructibleAbility.getInstance()), new ManaCostsImpl<>("{1}{W}"));

View file

@ -2,14 +2,13 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
@ -45,10 +44,7 @@ public final class CaptainAmericaSuperSoldier extends CardImpl {
this.addAbility(FirstStrikeAbility.getInstance());
// Captain America enters with a shield counter on him.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.SHIELD.createInstance()),
"with a shield counter on him"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance()));
// As long as Captain America has a shield counter on him, you and other Heroes you control have hexproof.
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(

View file

@ -1,24 +1,23 @@
package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersAllEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.AnotherPredicate;
import java.util.UUID;
/**
*
* @author Loki
@ -41,10 +40,7 @@ public final class CarnifexDemon extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
"with two -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
Ability ability = new SimpleActivatedAbility(
new AddCountersAllEffect(

View file

@ -1,24 +1,25 @@
package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author fireshoes
@ -26,15 +27,14 @@ import mage.players.Player;
public final class ChaoticGoo extends CardImpl {
public ChaoticGoo(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
this.subtype.add(SubType.OOZE);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Chaotic Goo enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)),
"{this} enters with three +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
// At the beginning of your upkeep, you may flip a coin. If you win the flip, put a +1/+1 counter on Chaotic Goo. If you lose the flip, remove a +1/+1 counter from Chaotic Goo.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ChaoticGooEffect(), true));
}

View file

@ -2,15 +2,14 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.EndOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.common.AttackedOrBlockedThisCombatSourceCondition;
import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
@ -42,10 +41,7 @@ public final class ClockworkAvian extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Clockwork Avian enters the battlefield with four +1/+0 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P0.createInstance(4)),
"with four +1/+0 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P0.createInstance(4)));
// At end of combat, if Clockwork Avian attacked or blocked this combat, remove a +1/+0 counter from it.
this.addAbility(new EndOfCombatTriggeredAbility(

View file

@ -3,15 +3,14 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.EndOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.common.AttackedOrBlockedThisCombatSourceCondition;
import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -39,10 +38,7 @@ public final class ClockworkBeast extends CardImpl {
this.toughness = new MageInt(4);
// Clockwork Beast enters the battlefield with seven +1/+0 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P0.createInstance(7)),
"with seven +1/+0 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P0.createInstance(7)));
// At end of combat, if Clockwork Beast attacked or blocked this combat, remove a +1/+0 counter from it.
this.addAbility(new EndOfCombatTriggeredAbility(

View file

@ -1,26 +1,26 @@
package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/**
*
* @author Loki
@ -28,13 +28,13 @@ import mage.target.targetpointer.FixedTarget;
public final class ClockworkBeetle extends CardImpl {
public ClockworkBeetle(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{1}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}");
this.subtype.add(SubType.INSECT);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Clockwork Beetle enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), "with two +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// Whenever Clockwork Beetle attacks or blocks, remove a +1/+1 counter from it at end of combat.
this.addAbility(new AttacksOrBlocksTriggeredAbility(new ClockworkBeetleEffect(), false));

View file

@ -1,25 +1,25 @@
package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import java.util.UUID;
/**
*
* @author Loki
@ -27,12 +27,12 @@ import mage.game.permanent.Permanent;
public final class ClockworkCondor extends CardImpl {
public ClockworkCondor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}");
this.subtype.add(SubType.BIRD);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), "with three +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
this.addAbility(new AttacksOrBlocksTriggeredAbility(new ClockworkCondorEffect(), false));
}

View file

@ -1,11 +1,10 @@
package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.costs.mana.GenericManaCost;
@ -16,13 +15,14 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import java.util.UUID;
/**
*
* @author Loki
@ -30,12 +30,12 @@ import mage.game.permanent.Permanent;
public final class ClockworkDragon extends CardImpl {
public ClockworkDragon(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{7}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}");
this.subtype.add(SubType.DRAGON);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(6)), "with six +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(6)));
this.addAbility(new AttacksOrBlocksTriggeredAbility(new ClockworkDragonEffect(), false));
this.addAbility(new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new GenericManaCost(3)));
}

View file

@ -3,7 +3,7 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
@ -31,10 +31,7 @@ public final class ClockworkHydra extends CardImpl {
this.toughness = new MageInt(0);
// Clockwork Hydra enters the battlefield with four +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)),
"with four +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(4)));
// Whenever Clockwork Hydra attacks or blocks, remove a +1/+1 counter from it. If you do, Clockwork Hydra deals 1 damage to any target.
Ability ability = new AttacksOrBlocksTriggeredAbility(new DoIfCostPaid(

View file

@ -2,17 +2,16 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.EndOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleEvasionAbility;
import mage.abilities.condition.common.AttackedOrBlockedThisCombatSourceCondition;
import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -48,7 +47,7 @@ public final class ClockworkSteed extends CardImpl {
this.toughness = new MageInt(3);
// Clockwork Steed enters the battlefield with four +1/+0 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P0.createInstance(4)), "with four +1/+0 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P0.createInstance(4)));
// Clockwork Steed can't be blocked by artifact creatures.
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));

View file

@ -2,17 +2,16 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.EndOfCombatTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleEvasionAbility;
import mage.abilities.condition.common.AttackedOrBlockedThisCombatSourceCondition;
import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -49,10 +48,7 @@ public final class ClockworkSwarm extends CardImpl {
this.toughness = new MageInt(3);
// Clockwork Swarm enters the battlefield with four +1/+0 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P0.createInstance(4)),
"with four +1/+0 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P0.createInstance(4)));
// Clockwork Swarm can't be blocked by Walls.
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));

View file

@ -1,11 +1,10 @@
package mage.cards.c;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.costs.common.TapSourceCost;
@ -16,13 +15,14 @@ import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import java.util.UUID;
/**
*
* @author Loki
@ -30,13 +30,13 @@ import mage.game.permanent.Permanent;
public final class ClockworkVorrac extends CardImpl {
public ClockworkVorrac(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{5}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}");
this.subtype.add(SubType.BOAR);
this.subtype.add(SubType.BEAST);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(TrampleAbility.getInstance());
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)), "with four +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(4)));
this.addAbility(new AttacksOrBlocksTriggeredAbility(new ClockworkVorracEffect(), false));
this.addAbility(new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), new TapSourceCost()));
}

View file

@ -2,13 +2,12 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DamageAllEffect;
import mage.abilities.effects.common.DamagePlayersEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -39,10 +38,7 @@ public final class ConductorOfCacophony extends CardImpl {
this.toughness = new MageInt(1);
// Conductor of Cacophony enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
"with two +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// {B}, Remove a +1/+1 counter from Conductor of Cacophony: It deals 1 damage to each other creature and each player.
Ability ability = new SimpleActivatedAbility(

View file

@ -2,7 +2,7 @@ package mage.cards.c;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.LeavesBattlefieldAllTriggeredAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@ -33,10 +33,7 @@ public final class CostumeCloset extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{W}");
// This artifact enters with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
"with two +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// {T}: Move a +1/+1 counter from this artifact onto target creature you control. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(

View file

@ -1,12 +1,11 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.hint.ConditionHint;
import mage.abilities.hint.Hint;
@ -44,10 +43,7 @@ public final class CreakwoodSafewright extends CardImpl {
this.toughness = new MageInt(5);
// This creature enters with three -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(3)),
"with three -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(3)));
// At the beginning of your end step, if there is an Elf card in your graveyard and this creature has a -1/-1 counter on it, remove a -1/-1 counter from this creature.
this.addAbility(new BeginningOfEndStepTriggeredAbility(

View file

@ -2,15 +2,14 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.SacrificeControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@ -36,7 +35,7 @@ public final class CrovaxTheCursed extends CardImpl {
this.toughness = new MageInt(0);
// Crovax the Cursed enters the battlefield with four +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)), "with four +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(4)));
// At the beginning of your upkeep, you may sacrifice a creature. If you do, put a +1/+1 counter on Crovax. If you don't, remove a +1/+1 counter from Crovax.
Ability ability = new BeginningOfUpkeepTriggeredAbility(new CrovaxTheCursedEffect());

View file

@ -3,10 +3,9 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.MoveCounterTargetsEffect;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
@ -46,8 +45,7 @@ public final class DaghatarTheAdamant extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Daghatar the Adamant enters the battlefield with four +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)),
"with four +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(4)));
// {1}{B/G}{B/G}: Move a +1/+1 counter from target creature onto a second target creature.
Ability ability = new SimpleActivatedAbility(

View file

@ -1,12 +1,11 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.MyTurnCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -30,11 +29,7 @@ public final class DapperShieldmate extends CardImpl {
this.toughness = new MageInt(2);
// Dapper Shieldmate enters the battlefield with a shield counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.SHIELD.createInstance(1)),
"with a shield counter on it. <i>(If it would be dealt damage " +
"or destroyed, remove a shield counter from it instead.)</i>"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1)));
// As long as it's your turn, Dapper Shieldmate gets +2/+0.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(

View file

@ -3,12 +3,11 @@ package mage.cards.d;
import mage.abilities.Ability;
import mage.abilities.StateTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -34,7 +33,7 @@ public final class DarkDepths extends CardImpl {
this.supertype.add(SuperType.SNOW);
// Dark Depths enters the battlefield with ten ice counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.ICE.createInstance(10)), "with ten ice counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.ICE.createInstance(10)));
// {3}: Remove an ice counter from Dark Depths.
this.addAbility(new SimpleActivatedAbility(new RemoveCounterSourceEffect(CounterType.ICE.createInstance(1)), new ManaCostsImpl<>("{3}")));
// When Dark Depths has no ice counters on it, sacrifice it. If you do, create a legendary 20/20 black Avatar creature token with flying and "This creature is indestructible" named Marit Lage.

View file

@ -1,23 +1,22 @@
package mage.cards.d;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import java.util.UUID;
/**
* @author Loki
*/
@ -35,7 +34,7 @@ public final class DeityOfScars extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// Deity of Scars enters the battlefield with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), "with two -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// {B/G}, Remove a -1/-1 counter from Deity of Scars: Regenerate Deity of Scars.
Ability ability = new SimpleActivatedAbility(new RegenerateSourceEffect(), new ManaCostsImpl<>("{B/G}"));

View file

@ -2,13 +2,12 @@ package mage.cards.d;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.Condition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.common.ActivateIfConditionActivatedAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.MoveCountersFromSourceToTargetEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueConditionHint;
@ -34,11 +33,7 @@ public final class DiamondCity extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// Diamond City enters the battlefield with a shield counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.SHIELD.createInstance(1)),
"with a shield counter on it. <i>(If it would be dealt damage " +
"or destroyed, remove a shield counter from it instead.)</i>"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1)));
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());

View file

@ -1,8 +1,7 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.keyword.DoubleStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,11 +28,7 @@ public final class DisciplinedDuelist extends CardImpl {
this.addAbility(DoubleStrikeAbility.getInstance());
// Disciplined Duelist enters the battlefield with a shield counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.SHIELD.createInstance(1)),
"with a shield counter on it. <i>(If it would be dealt damage " +
"or destroyed, remove a shield counter from it instead.)</i>"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1)));
}
private DisciplinedDuelist(final DisciplinedDuelist card) {

View file

@ -3,7 +3,7 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksWhileSaddledTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -33,10 +33,7 @@ public final class DistrictMascot extends CardImpl {
this.toughness = new MageInt(0);
// This creature enters with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)),
"with a +1/+1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(1)));
// {1}{G}, Remove two +1/+1 counters from this creature: Destroy target artifact.
Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{G}"));

View file

@ -5,12 +5,11 @@ import mage.ApprovingObject;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.*;
import mage.constants.CardType;
@ -38,7 +37,7 @@ public final class DjinnOfWishes extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Djinn of Wishes enters the battlefield with three wish counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.WISH.createInstance(3)), "with three wish counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.WISH.createInstance(3)));
// {2}{U}{U}, Remove a wish counter from Djinn of Wishes: Reveal the top card of your library. You may play that card without paying its mana cost. If you don't, exile it.
Ability ability = new SimpleActivatedAbility(new DjinnOfWishesEffect(), new ManaCostsImpl<>("{2}{U}{U}"));

View file

@ -3,9 +3,8 @@ package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.common.PutSourceCountersOnTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -28,10 +27,7 @@ public final class DockworkerDrone extends CardImpl {
this.toughness = new MageInt(1);
// This creature enters with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
"with a +1/+1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance()));
// When this creature dies, put its counters on target creature you control.
Ability ability = new DiesSourceTriggeredAbility(new PutSourceCountersOnTargetEffect());

View file

@ -2,10 +2,9 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.common.BecomesTappedSourceTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,10 +30,7 @@ public final class EncumberedReejerey extends CardImpl {
this.toughness = new MageInt(4);
// This creature enters with three -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(3)),
"with three -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(3)));
// Whenever this creature becomes tapped while it has a -1/-1 counter on it, remove a -1/-1 counter from it.
this.addAbility(new BecomesTappedSourceTriggeredAbility(

View file

@ -1,23 +1,22 @@
package mage.cards.e;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author Loki
@ -30,7 +29,7 @@ public final class EtchedMonstrosity extends CardImpl {
this.subtype.add(SubType.GOLEM);
this.power = new MageInt(10);
this.toughness = new MageInt(10);
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(5)), " with five -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(5)));
Ability ability = new SimpleActivatedAbility(new DrawCardTargetEffect(3), new ManaCostsImpl<>("{W}{U}{B}{R}{G}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.M1M1.createInstance(5)));
ability.addTarget(new TargetPlayer());

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
@ -10,7 +10,6 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.abilities.keyword.TrampleAbility;
@ -41,10 +40,7 @@ public final class EvolvedSpinoderm extends CardImpl {
this.toughness = new MageInt(5);
// Evolved Spinoderm enters the battlefield with four oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(4)),
"with four oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(4)));
// Evolved Spinoderm has trample as long as it was two or fewer oil counters on it, Otherwise, it has hexproof.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(

View file

@ -2,7 +2,8 @@ package mage.cards.e;
import mage.MageInt;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.*;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
@ -33,10 +34,7 @@ public class EvolvingAdaptive extends CardImpl {
this.toughness = new MageInt(0);
// Evolving Adaptive enters the battlefield with an oil counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance()),
"with an oil counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance()));
// Evolving Adaptive gets +1/+1 for each oil counter on it.
DynamicValue oilCounters = new CountersSourceCount(CounterType.OIL);

View file

@ -3,7 +3,7 @@ package mage.cards.e;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.MoveCountersFromSourceToTargetEffect;
@ -25,10 +25,7 @@ public final class ExplorersCache extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{G}");
// Explorer's Cache enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
"with two +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// Whenever a creature you control with a +1/+1 counter on it dies, put a +1/+1 counter on Explorer's Cache.
this.addAbility(new DiesCreatureTriggeredAbility(

View file

@ -1,8 +1,7 @@
package mage.cards.f;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,10 +27,7 @@ public final class FaithfulWatchdog extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Faithful Watchdog enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)),
"with three +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
}
private FaithfulWatchdog(final FaithfulWatchdog card) {

View file

@ -3,7 +3,7 @@ package mage.cards.f;
import mage.MageIdentifier;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.Costs;
@ -11,7 +11,6 @@ import mage.abilities.costs.CostsImpl;
import mage.abilities.costs.common.RemoveCounterCost;
import mage.abilities.effects.AsThoughEffectImpl;
import mage.abilities.effects.common.continuous.LookAtTopCardOfLibraryAnyTimeEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.Card;
@ -46,11 +45,7 @@ public final class FalcoSparaPactweaver extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// Falco Spara, Pactweaver enters the battlefield with a shield counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.SHIELD.createInstance(1)),
"with a shield counter on it. <i>(If it would be dealt damage "
+ "or destroyed, remove a shield counter from it instead.)</i>"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1)));
// You may look at the top card of your library any time.
this.addAbility(new SimpleStaticAbility(new LookAtTopCardOfLibraryAnyTimeEffect()));

View file

@ -3,17 +3,15 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInPlayTargetPlayerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.TargetPlayer;
@ -22,20 +20,19 @@ import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/**
*
* @author ilcartographer
*/
public final class Fertilid extends CardImpl {
public Fertilid(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.subtype.add(SubType.ELEMENTAL);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Fertilid enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), "with two +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// {1}{G}, Remove a +1/+1 counter from Fertilid: Target player searches their library for a basic land card and puts it onto the battlefield tapped. Then that player shuffles their library.
Ability ability = new SimpleActivatedAbility(
new SearchLibraryPutInPlayTargetPlayerEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), new ManaCostsImpl<>("{1}{G}"));

View file

@ -3,12 +3,11 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostAllEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -39,7 +38,7 @@ public final class Festercreep extends CardImpl {
this.toughness = new MageInt(0);
// Festercreep enters the battlefield with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), "with a +1/+1 counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(1)));
// {1}{B}, Remove a +1/+1 counter from Festercreep: All other creatures get -1/-1 until end of turn.
Ability ability = new SimpleActivatedAbility(new BoostAllEffect(

View file

@ -3,13 +3,12 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -41,10 +40,7 @@ public final class FlitterwingNuisance extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// This creature enters with a -1/-1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(1)),
"with a -1/-1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(1)));
// {2}{U}, Remove a counter from this creature: Whenever a creature you control deals combat damage to a player or planeswalker this turn, draw a card.
Ability ability = new SimpleActivatedAbility(

View file

@ -3,20 +3,18 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.combat.CantAttackUnlessDefenderControllsPermanent;
import mage.abilities.effects.common.continuous.BecomesBasicLandTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.common.FilterLandPermanent;
import mage.target.common.TargetLandPermanent;
@ -30,17 +28,17 @@ import java.util.UUID;
public final class Floodchaser extends CardImpl {
public Floodchaser(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}");
this.subtype.add(SubType.ELEMENTAL);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Floodchaser enters the battlefield with six +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(6)), "with six +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(6)));
// Floodchaser can't attack unless defending player controls an Island.
this.addAbility(new SimpleStaticAbility(new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND,"an Island"))));
this.addAbility(new SimpleStaticAbility(new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
// {U}, Remove a +1/+1 counter from Floodchaser: Target land becomes an Island until end of turn.
Ability ability = new SimpleActivatedAbility(new BecomesBasicLandTargetEffect(Duration.EndOfTurn, SubType.ISLAND), new ManaCostsImpl<>("{U}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));

View file

@ -1,14 +1,13 @@
package mage.cards.f;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -28,10 +27,7 @@ public final class FontOfProgress extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{U}");
// Font of Progress enters the battlefield with two oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(2)),
"with two oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(2)));
// {3}, {T}: Target player mills X cards, where X is the number of oil counters on Font of Progress.
Ability ability = new SimpleActivatedAbility(new MillCardsTargetEffect(xValue)

View file

@ -2,11 +2,10 @@ package mage.cards.f;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.HasteAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,10 +30,7 @@ public final class FurnaceStrider extends CardImpl {
this.toughness = new MageInt(5);
// Furnace Strider enters the battlefield with two oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(2)),
"with two oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(2)));
// Remove an oil counter from Furnace Strider: Target creature you control gains haste until end of turn.
Ability ability = new SimpleActivatedAbility(

View file

@ -1,11 +1,10 @@
package mage.cards.g;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.Condition;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.mana.WhiteManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,9 +28,7 @@ public final class GatewatchBeacon extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{W}");
// Gatewatch Beacon enters the battlefield with three loyalty counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(
CounterType.LOYALTY.createInstance(3)
), "with three loyalty counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.LOYALTY.createInstance(3)));
// {T}: Add {W}.
this.addAbility(new WhiteManaAbility());

View file

@ -2,13 +2,12 @@
package mage.cards.g;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.SacrificeSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.mana.AnyColorManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,8 +28,7 @@ public final class GemstoneMine extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// Gemstone Mine enters the battlefield with three mining counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.MINING.createInstance(3)),
"with three mining counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.MINING.createInstance(3)));
// {T}, Remove a mining counter from Gemstone Mine: Add one mana of any color. If there are no mining counters on Gemstone Mine, sacrifice it.
Ability ability = new AnyColorManaAbility();

View file

@ -1,29 +1,28 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCounterCost;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.game.permanent.token.SaprolingToken;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author Backfir3
@ -40,7 +39,7 @@ public final class GhaveGuruOfSpores extends CardImpl {
this.toughness = new MageInt(0);
// Ghave, Guru of Spores enters the battlefield with five +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)), "with five +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(5)));
// {1}, Remove a +1/+1 counter from a creature you control: Create a 1/1 green Saproling creature token.
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new SaprolingToken()), new GenericManaCost(1));

View file

@ -1,11 +1,10 @@
package mage.cards.g;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -33,10 +32,7 @@ public final class GitaxianRaptor extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Gitaxian Raptor enters the battlefield with three oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(3)),
"with three oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(3)));
// Remove an oil counter from Gitaxian Raptor: Gitaxian Raptor gets +1/-1 until end of turn.
this.addAbility(new SimpleActivatedAbility(

View file

@ -1,24 +1,24 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.TargetSpell;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CounterTargetEffect;
import mage.abilities.effects.common.DrawCardTargetControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlashAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.TargetSpell;
import java.util.UUID;
/**
*
@ -41,10 +41,7 @@ public final class GlenElendraGuardian extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// This creature enters with a -1/-1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(1)),
"with a -1/-1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(1)));
// {1}{U}, Remove a counter from this creature: Counter target noncreature spell. Its controller draws a card.
Ability ability = new SimpleActivatedAbility(new CounterTargetEffect(), new ManaCostsImpl<>("{1}{U}"));

View file

@ -2,11 +2,10 @@ package mage.cards.g;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.keyword.ScryEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -30,10 +29,7 @@ public final class GlistenerSeer extends CardImpl {
this.toughness = new MageInt(3);
// Glistener Seer enters the battlefield with three oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(3)),
"with three oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(3)));
// {T}, Remove an oil counter from Glistener Seer: Scry 1.
Ability ability = new SimpleActivatedAbility(new ScryEffect(1, false), new TapSourceCost());

View file

@ -3,11 +3,10 @@ package mage.cards.g;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -31,10 +30,7 @@ public final class GnarlbarkElm extends CardImpl {
this.toughness = new MageInt(4);
// This creature enters with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
"with two -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// {2}{B}, Remove two counters from this creature: Target creature gets -2/-2 until end of turn. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(

View file

@ -4,7 +4,7 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
@ -46,10 +46,7 @@ public final class GrakmawSkyclaveRavager extends CardImpl {
this.toughness = new MageInt(0);
// Grakmaw, Skyclave Ravager enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)),
"with three +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
// Whenever another creature you control dies, if it had a +1/+1 counter on it, put a +1/+1 counter on Grakmaw.
this.addAbility(new DiesCreatureTriggeredAbility(

View file

@ -1,23 +1,23 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author jeffwadsworth
@ -25,19 +25,19 @@ import mage.target.common.TargetCreaturePermanent;
public final class GriefTyrant extends CardImpl {
public GriefTyrant(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B/R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{B/R}");
this.subtype.add(SubType.HORROR);
this.power = new MageInt(8);
this.toughness = new MageInt(8);
// Grief Tyrant enters the battlefield with four -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(4)),"with four -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(4)));
// When Grief Tyrant dies, put a -1/-1 counter on target creature for each -1/-1 counter on Grief Tyrant.
Ability ability = new DiesSourceTriggeredAbility(new GriefTyrantEffect());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
private GriefTyrant(final GriefTyrant card) {

View file

@ -1,24 +1,22 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
@ -33,19 +31,19 @@ public final class GrimPoppet extends CardImpl {
}
public GrimPoppet(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{7}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{7}");
this.subtype.add(SubType.SCARECROW);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Grim Poppet enters the battlefield with three -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(3)), "with three -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(3)));
// Remove a -1/-1 counter from Grim Poppet: Put a -1/-1 counter on another target creature.
Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance()), new RemoveCountersSourceCost(CounterType.M1M1.createInstance()));
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
}
private GrimPoppet(final GrimPoppet card) {

View file

@ -1,10 +1,9 @@
package mage.cards.h;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.MenaceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -29,10 +28,7 @@ public final class HagraConstrictor extends CardImpl {
this.toughness = new MageInt(0);
// Hagra Constrictor enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
"with two +1/+1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// Each creature you control with a +1/+1 counter on it has menace.
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(

View file

@ -3,8 +3,7 @@ package mage.cards.h;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.effects.keyword.SurveilEffect;
import mage.cards.CardImpl;
@ -30,10 +29,7 @@ public final class HeirloomAuntie extends CardImpl {
this.toughness = new MageInt(4);
// This creature enters with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
"with two -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// Whenever another creature you control dies, surveil 1, then remove a -1/-1 counter from this creature.
Ability ability = new DiesCreatureTriggeredAbility(

View file

@ -1,7 +1,7 @@
package mage.cards.h;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
@ -9,7 +9,6 @@ import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.combat.CantAttackBlockAttachedEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -40,7 +39,7 @@ public final class HeliodsPunishment extends CardImpl {
this.addAbility(ability);
// Heliod's Punishment enters the battlefield with four task counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.TASK.createInstance(4)), "with four task counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.TASK.createInstance(4)));
// Enchanted creature can't attack or block. It loses all abilities and has "{T}: Remove a task counter from Heliod's Punishment. Then if it has no task counters on it, destroy Heliod's Punishment."
ability = new SimpleStaticAbility(new CantAttackBlockAttachedEffect(AttachmentType.AURA));

View file

@ -2,7 +2,7 @@ package mage.cards.h;
import mage.MageInt;
import mage.abilities.StateTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasCounterCondition;
@ -36,9 +36,7 @@ public final class Homarid extends CardImpl {
this.toughness = new MageInt(2);
// Homarid enters the battlefield with a tide counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.TIDE.createInstance()), "with a tide counter on it."
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.TIDE.createInstance()));
// At the beginning of your upkeep, put a tide counter on Homarid.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(

View file

@ -1,32 +1,26 @@
package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.condition.common.SourceHasCounterCondition;
import mage.abilities.effects.Effect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.MoveCountersFromSourceToTargetEffect;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.counters.Counters;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.CounterAnyPredicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/**
*
* @author Jmlundeen
*/
public final class HostOfTheHereafter extends CardImpl {
@ -39,16 +33,14 @@ public final class HostOfTheHereafter extends CardImpl {
public HostOfTheHereafter(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{G}");
this.subtype.add(SubType.ZOMBIE);
this.subtype.add(SubType.WARLOCK);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// This creature enters with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
null, "This creature enters with two +1/+1 counters on it.", "")
);
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// Whenever this creature or another creature you control dies, if it had counters on it, put its counters on up to one target creature you control.
Ability ability = new DiesCreatureTriggeredAbility(new HostOfTheHereafterDiesEffect(), false, filter)

View file

@ -3,12 +3,11 @@ package mage.cards.h;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -34,10 +33,7 @@ public final class HovelHurler extends CardImpl {
this.toughness = new MageInt(7);
// This creature enters with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)),
"with two -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// {R/W}{R/W}, Remove a counter from this creature: Another target creature you control gets +1/+0 and gains flying until end of turn. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(

View file

@ -1,18 +1,18 @@
package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author Styxo
@ -27,7 +27,7 @@ public final class HuttCrimeLord extends CardImpl {
this.toughness = new MageInt(5);
// Hutt Crime Lord enters the battlefield with a bounty counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.BOUNTY.createInstance()), "with a bounty counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.BOUNTY.createInstance()));
// Whenever Hutt Crime Lord attacks, it does not untap during its controller's next untap step
this.addAbility(new AttacksTriggeredAbility(new DontUntapInControllersNextUntapStepSourceEffect(), false));

View file

@ -1,23 +1,22 @@
package mage.cards.i;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author fireshoes
@ -25,14 +24,14 @@ import mage.target.common.TargetAnyTarget;
public final class IcatianJavelineers extends CardImpl {
public IcatianJavelineers(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.SOLDIER);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
// Icatian Javelineers enters the battlefield with a javelin counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.JAVELIN.createInstance()), "with a javelin counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.JAVELIN.createInstance()));
// {tap}, Remove a javelin counter from Icatian Javelineers: Icatian Javelineers deals 1 damage to any target.
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1, "it"), new TapSourceCost());

View file

@ -1,14 +1,12 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -21,6 +19,8 @@ import mage.game.permanent.Permanent;
import mage.game.stack.Spell;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author jeffwadsworth
@ -31,7 +31,7 @@ public final class ImminentDoom extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
// Imminent Doom enters the battlefield with a doom counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.DOOM.createInstance(1)), "with a doom counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.DOOM.createInstance(1)));
// Whenever you cast a spell with converted mana cost equal to the number of doom counters on Imminent Doom, Imminent Doom deals that much damage to any target. Then put a doom counter on Imminent Doom.
Ability ability = new ImminentDoomTriggeredAbility();

View file

@ -2,12 +2,11 @@ package mage.cards.i;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -25,10 +24,7 @@ public final class IncubationSac extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{G}");
// Incubation Sac enters the battlefield with three oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(3)),
"with three oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(3)));
// {4}, {T}, Remove an oil counter from Incubation Sac: Create a 3/3 colorless Phyrexian Golem artifact creature token. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(

View file

@ -1,12 +1,11 @@
package mage.cards.i;
import mage.abilities.ActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.LimitedTimesPerTurnActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.keyword.HasteAbility;
import mage.cards.CardImpl;
@ -38,9 +37,7 @@ public final class InvigoratingHotSpring extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}{G}");
// Invigorating Hot Spring enters the battlefield with four +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(
CounterType.P1P1.createInstance(4)
), "with four +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(4)));
// Modified creatures you control have haste.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(

View file

@ -3,10 +3,9 @@ package mage.cards.i;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.common.SourceHasCountersCondition;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -32,9 +31,7 @@ public final class IronApprentice extends CardImpl {
this.toughness = new MageInt(0);
// Iron Apprentice enters the battlefield with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(
CounterType.P1P1.createInstance(1)
), "with a +1/+1 counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(1)));
// When Iron Apprentice dies, if it had counters on it, put those counters on target creature you control.
Ability ability = new DiesSourceTriggeredAbility(new IronApprenticeEffect())

View file

@ -1,23 +1,24 @@
package mage.cards.j;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.constants.SubType;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author TheElk801
@ -32,7 +33,7 @@ public final class JunkGolem extends CardImpl {
this.toughness = new MageInt(0);
// Junk Golem enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), "with three +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
// At the beginning of your upkeep, sacrifice Junk Golem unless you remove a +1/+1 counter from it.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(

View file

@ -3,13 +3,12 @@ package mage.cards.k;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.NinjutsuAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -42,9 +41,7 @@ public final class KappaTechWrecker extends CardImpl {
this.addAbility(new NinjutsuAbility("{1}{G}"));
// Kappa Tech-Wrecker enters the battlefield with a deathtouch counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(
CounterType.DEATHTOUCH.createInstance(1)
), "with a deathtouch counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.DEATHTOUCH.createInstance(1)));
// Whenever Kappa Tech-Wrecker deals combat damage to a player, you may remove a deathtouch counter from it. When you do, exile target artifact or enchantment that player controls.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(

View file

@ -1,11 +1,9 @@
package mage.cards.k;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -15,6 +13,8 @@ import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author fireshoes
@ -22,17 +22,16 @@ import mage.filter.StaticFilters;
public final class Karstoderm extends CardImpl {
public Karstoderm(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
this.subtype.add(SubType.BEAST);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Karstoderm enters the battlefield with five +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)),
"with five +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(5)));
// Whenever an artifact enters the battlefield, remove a +1/+1 counter from Karstoderm.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD,
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD,
new RemoveCounterSourceEffect(CounterType.P1P1.createInstance(1)),
StaticFilters.FILTER_PERMANENT_ARTIFACT_AN, false));
}

View file

@ -2,12 +2,11 @@ package mage.cards.l;
import mage.MageInt;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.UntapSourceEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -31,10 +30,7 @@ public final class LatticeBladeMantis extends CardImpl {
this.toughness = new MageInt(3);
// Lattice-Blade Mantis enters the battlefield with two oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(2)),
"with two oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(2)));
// Whenever Lattice-Blade Mantis attacks, you may remove an oil counter from it. If you do, untap it and it gets +1/+1 until end of turn.
this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(

View file

@ -2,11 +2,10 @@ package mage.cards.l;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.UntapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.MoveCounterTargetsEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -41,7 +40,7 @@ public final class LeechBonder extends CardImpl {
this.toughness = new MageInt(3);
// Leech Bonder enters the battlefield with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), "with two -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// {U}, {untap}: Move a counter from target creature onto another target creature.
Ability ability = new SimpleActivatedAbility(new MoveCounterTargetsEffect(), new ManaCostsImpl<>("{U}"));

View file

@ -2,15 +2,14 @@ package mage.cards.l;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.condition.common.SourceMatchesFilterCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DoubleCountersSourceEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@ -46,10 +45,7 @@ public final class LilyBowenRagingGrandma extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Lily Bowen, Raging Grandma enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(
CounterType.P1P1.createInstance(2)),
"with two +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// At the beginning of your upkeep, double the number of +1/+1 counters on Lily Bowen if its power is 16 or less. Otherwise, remove all but one +1/+1 counter from it, then you gain 1 life for each +1/+1 counter removed this way.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(

View file

@ -2,13 +2,12 @@ package mage.cards.l;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -33,10 +32,7 @@ public final class LochMare extends CardImpl {
this.toughness = new MageInt(5);
// This creature enters with three -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(3)),
"with three -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(3)));
// {1}{U}, Remove a counter from this creature: Draw a card.
Ability ability = new SimpleActivatedAbility(

View file

@ -1,15 +1,13 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DamageEverythingEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -23,6 +21,8 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
@ -37,8 +37,7 @@ public final class Magmasaur extends CardImpl {
this.toughness = new MageInt(0);
// Magmasaur enters the battlefield with five +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)),
"with five +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(5)));
// At the beginning of your upkeep, you may remove a +1/+1 counter from Magmasaur. If you don't, sacrifice Magmasaur and it deals damage equal to the number of +1/+1 counters on it to each creature without flying and each player.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new MagmasaurEffect()));

View file

@ -3,9 +3,8 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
@ -44,10 +43,7 @@ public final class MagnanimousMagistrate extends CardImpl {
this.toughness = new MageInt(4);
// Magnanimous Magistrate enters the battlefield with five reprieve counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.REPRIEVE.createInstance(5)),
"with five reprieve counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.REPRIEVE.createInstance(5)));
// Whenever another nontoken creature you control dies, if its mana value was 1 or greater, you may remove that many reprieve counters from Magnanimous Magistrate. If you do, return that card to the battlefield under its owner's control.
this.addAbility(new DiesCreatureTriggeredAbility(new MagnanimousMagistrateEffect(), false, filter));

View file

@ -1,7 +1,7 @@
package mage.cards.m;
import mage.abilities.common.DiesAttachedTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
@ -30,10 +30,7 @@ public final class MaleficScythe extends CardImpl {
this.subtype.add(SubType.EQUIPMENT);
// Malefic Scythe enters the battlefield with a soul counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.SOUL.createInstance(1)),
"with a soul counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SOUL.createInstance(1)));
// Equipped creature gets +1/+1 for each soul counter on Malefic Scythe.
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(xValue, xValue, Duration.WhileOnBattlefield)));

View file

@ -1,11 +1,10 @@
package mage.cards.m;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.continuous.AddCardTypeSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.CrewAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
@ -33,10 +32,7 @@ public final class MeldwebStrider extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Meldweb Strider enters the battlefield with an oil counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance()),
"with an oil counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance()));
// Remove an oil counter from Meldweb Strider: It becomes an artifact creature until end of turn.
this.addAbility(new SimpleActivatedAbility(

View file

@ -1,8 +1,7 @@
package mage.cards.m;
import mage.abilities.Ability;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.effects.common.DiscardCardControllerTriggeredAbility;
@ -10,8 +9,8 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect;
import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect.HandSizeModification;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.triggers.BeginningOfDrawTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -30,16 +29,12 @@ public final class MidnightOil extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}{B}");
// Midnight Oil enters the battlefield with seven hour counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(
CounterType.HOUR.createInstance(7)
), "with seven hour counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.HOUR.createInstance(7)));
// At the beginning of your draw step, draw an additional card and remove two hour counters from Midnight Oil.
Ability ability = new BeginningOfDrawTriggeredAbility(
TargetController.YOU, new DrawCardSourceControllerEffect(1)
.setText("draw an additional card"),
.setText("draw an additional card"),
false
);
ability.addEffect(new RemoveCounterSourceEffect(

View file

@ -2,14 +2,13 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.MenaceAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
@ -39,10 +38,7 @@ public final class MiglozMazeCrusher extends CardImpl {
this.toughness = new MageInt(4);
// Migloz, Maze Crusher enters the battlefield with five oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(5)),
"with five oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(5)));
// {1}, Remove an oil counter from Migloz: It gains vigilance and menace until end of turn.
Ability ability = new SimpleActivatedAbility(new GainAbilitySourceEffect(

View file

@ -1,10 +1,9 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
@ -15,9 +14,10 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author emerald000
@ -25,19 +25,19 @@ import mage.counters.CounterType;
public final class MindlessAutomaton extends CardImpl {
public MindlessAutomaton(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}");
this.subtype.add(SubType.CONSTRUCT);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Mindless Automaton enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),"with two +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(2)));
// {1}, Discard a card: Put a +1/+1 counter on Mindless Automaton.
Ability ability = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new GenericManaCost(1));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
// Remove two +1/+1 counters from Mindless Automaton: Draw a card.
this.addAbility(new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1), new RemoveCountersSourceCost(CounterType.P1P1.createInstance(2))));
}

View file

@ -1,14 +1,12 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -18,6 +16,8 @@ import mage.constants.Zone;
import mage.counters.CounterType;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author LoneFox
@ -25,13 +25,13 @@ import mage.target.TargetPlayer;
public final class Mindwarper extends CardImpl {
public Mindwarper(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
this.subtype.add(SubType.SPIRIT);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Mindwarper enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)), "with three +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(3)));
// {2}{B}, Remove a +1/+1 counter from Mindwarper: Target player discards a card. Activate this ability only any time you could cast a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance()));

View file

@ -2,12 +2,11 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -30,9 +29,7 @@ public final class Monoskelion extends CardImpl {
this.toughness = new MageInt(1);
// Monoskelion enters the battlefield with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), "with a +1/+1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance()));
// {1}, Remove a +1/+1 counter from Monoskelion: Monoskelion deals 1 damage to any target.
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1, "it"), new GenericManaCost(1));

View file

@ -3,11 +3,10 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -30,10 +29,7 @@ public final class MoonlitLamenter extends CardImpl {
this.toughness = new MageInt(5);
// This creature enters with a -1/-1 counter on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(1)),
"with a -1/-1 counter on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(1)));
// {1}{W}, Remove a counter from this creature: Draw a card. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(

View file

@ -3,8 +3,7 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.BatchTriggeredAbility;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
import mage.abilities.keyword.MenaceAbility;
import mage.cards.Card;
@ -38,10 +37,7 @@ public final class Moonshadow extends CardImpl {
this.addAbility(new MenaceAbility());
// This creature enters with six -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.M1M1.createInstance(6)),
"with six -1/-1 counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(6)));
// Whenever one or more permanent cards are put into your graveyard from anywhere while this creature has a -1/-1 counter on it, remove a -1/-1 counter from this creature.
this.addAbility(new MoonshadowTriggeredAbility());

View file

@ -1,13 +1,11 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.Mana;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.effects.mana.AddManaOfAnyColorEffect;
import mage.abilities.mana.ActivatedManaAbilityImpl;
import mage.cards.CardImpl;
@ -17,6 +15,8 @@ import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import java.util.UUID;
/**
*
* @author jeffwadsworth
@ -30,7 +30,7 @@ public final class Morselhoarder extends CardImpl {
this.toughness = new MageInt(4);
// Morselhoarder enters the battlefield with two -1/-1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), "with two -1/-1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.M1M1.createInstance(2)));
// Remove a -1/-1 counter from Morselhoarder: Add one mana of any color.
this.addAbility(new MorselhoarderAbility());

View file

@ -1,10 +1,9 @@
package mage.cards.m;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.LandfallAbility;
import mage.abilities.effects.common.DoubleCountersSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -31,7 +30,7 @@ public final class MossbornHydra extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// This creature enters with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), "with a +1/+1 counter on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(1)));
// Landfall -- Whenever a land you control enters, double the number of +1/+1 counters on this creature.
this.addAbility(new LandfallAbility(new DoubleCountersSourceEffect(CounterType.P1P1)));

View file

@ -2,21 +2,20 @@
package mage.cards.n;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author Loki
@ -24,8 +23,8 @@ import mage.target.TargetPlayer;
public final class NecrogenCenser extends CardImpl {
public NecrogenCenser (UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)), "with two charge counters on it"));
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(2)));
Ability ability = new SimpleActivatedAbility(new LoseLifeTargetEffect(2), new TapSourceCost());
ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(1)));
ability.addTarget(new TargetPlayer());

View file

@ -1,7 +1,7 @@
package mage.cards.n;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
@ -38,10 +38,7 @@ public final class Necrosquito extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Necrosquito enters the battlefield with two oil counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.OIL.createInstance(2)),
"with two oil counters on it"
));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(2)));
// Necrosquito gets +1/+1 for each oil counter on it.
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(

View file

@ -3,12 +3,11 @@ package mage.cards.n;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.EntersBattlefieldWithCountersAbility;
import mage.abilities.common.SpellCastAllTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -29,13 +28,13 @@ import java.util.UUID;
public final class NoosegrafMob extends CardImpl {
public NoosegrafMob(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
this.subtype.add(SubType.ZOMBIE);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Noosegraf Mob enters the battlefield with five +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(5)), "with five +1/+1 counters on it"));
this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(5)));
// Whenever a player casts a spell, remove a +1/+1 counter from Noosegraf Mob. If you do, create a 2/2 black Zombie creature token.
this.addAbility(new SpellCastAllTriggeredAbility(new NoosegrafMobEffect(), false));

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