From 46b864755fbbff81bebf3130133b9e8e9d3e1379 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 21 Jan 2026 10:42:51 -0500 Subject: [PATCH] refactor cards which enter with counters to use simplified common effect --- Mage.Sets/src/mage/cards/a/AfiyaGrove.java | 7 +++--- Mage.Sets/src/mage/cards/a/Anthroplasm.java | 6 ++--- .../src/mage/cards/a/ArchfiendOfTheDross.java | 8 ++----- Mage.Sets/src/mage/cards/a/ArgentDais.java | 7 ++---- .../src/mage/cards/a/ArwenMortalQueen.java | 7 ++---- .../src/mage/cards/a/AtraxasSkitterfang.java | 10 +++----- Mage.Sets/src/mage/cards/a/AxiomEngraver.java | 8 ++----- Mage.Sets/src/mage/cards/b/BarkhideTroll.java | 8 ++----- .../mage/cards/b/BelligerentHatchling.java | 10 ++++---- .../src/mage/cards/b/BitingPalmNinja.java | 7 ++---- .../src/mage/cards/b/BladedAmbassador.java | 16 +++++-------- Mage.Sets/src/mage/cards/b/BlastZone.java | 7 ++---- Mage.Sets/src/mage/cards/b/BloatflySwarm.java | 8 ++----- Mage.Sets/src/mage/cards/b/BloodiedGhost.java | 11 ++++----- .../src/mage/cards/b/BramblebackBrute.java | 8 ++----- .../src/mage/cards/b/BristlebaneBattler.java | 8 ++----- .../src/mage/cards/b/BurdenedStoneback.java | 17 ++++++-------- .../cards/c/CaptainAmericaSuperSoldier.java | 8 ++----- Mage.Sets/src/mage/cards/c/CarnifexDemon.java | 12 ++++------ Mage.Sets/src/mage/cards/c/ChaoticGoo.java | 16 ++++++------- .../src/mage/cards/c/ClockworkAvian.java | 10 +++----- .../src/mage/cards/c/ClockworkBeast.java | 10 +++----- .../src/mage/cards/c/ClockworkBeetle.java | 12 +++++----- .../src/mage/cards/c/ClockworkCondor.java | 12 +++++----- .../src/mage/cards/c/ClockworkDragon.java | 12 +++++----- .../src/mage/cards/c/ClockworkHydra.java | 7 ++---- .../src/mage/cards/c/ClockworkSteed.java | 7 +++--- .../src/mage/cards/c/ClockworkSwarm.java | 10 +++----- .../src/mage/cards/c/ClockworkVorrac.java | 12 +++++----- .../mage/cards/c/ConductorOfCacophony.java | 8 ++----- Mage.Sets/src/mage/cards/c/CostumeCloset.java | 7 ++---- .../src/mage/cards/c/CreakwoodSafewright.java | 8 ++----- .../src/mage/cards/c/CrovaxTheCursed.java | 7 +++--- .../src/mage/cards/d/DaghatarTheAdamant.java | 6 ++--- .../src/mage/cards/d/DapperShieldmate.java | 9 ++------ Mage.Sets/src/mage/cards/d/DarkDepths.java | 5 ++-- Mage.Sets/src/mage/cards/d/DeityOfScars.java | 9 ++++---- Mage.Sets/src/mage/cards/d/DiamondCity.java | 11 +++------ .../src/mage/cards/d/DisciplinedDuelist.java | 9 ++------ .../src/mage/cards/d/DistrictMascot.java | 7 ++---- Mage.Sets/src/mage/cards/d/DjinnOfWishes.java | 5 ++-- .../src/mage/cards/d/DockworkerDrone.java | 8 ++----- .../src/mage/cards/e/EncumberedReejerey.java | 8 ++----- .../src/mage/cards/e/EtchedMonstrosity.java | 9 ++++---- .../src/mage/cards/e/EvolvedSpinoderm.java | 8 ++----- .../src/mage/cards/e/EvolvingAdaptive.java | 8 +++---- .../src/mage/cards/e/ExplorersCache.java | 7 ++---- .../src/mage/cards/f/FaithfulWatchdog.java | 8 ++----- .../mage/cards/f/FalcoSparaPactweaver.java | 9 ++------ Mage.Sets/src/mage/cards/f/Fertilid.java | 11 ++++----- Mage.Sets/src/mage/cards/f/Festercreep.java | 5 ++-- .../src/mage/cards/f/FlitterwingNuisance.java | 8 ++----- Mage.Sets/src/mage/cards/f/Floodchaser.java | 14 +++++------ .../src/mage/cards/f/FontOfProgress.java | 8 ++----- .../src/mage/cards/f/FurnaceStrider.java | 8 ++----- .../src/mage/cards/g/GatewatchBeacon.java | 7 ++---- Mage.Sets/src/mage/cards/g/GemstoneMine.java | 6 ++--- .../src/mage/cards/g/GhaveGuruOfSpores.java | 9 ++++---- .../src/mage/cards/g/GitaxianRaptor.java | 8 ++----- .../src/mage/cards/g/GlenElendraGuardian.java | 19 +++++++-------- Mage.Sets/src/mage/cards/g/GlistenerSeer.java | 8 ++----- Mage.Sets/src/mage/cards/g/GnarlbarkElm.java | 8 ++----- .../mage/cards/g/GrakmawSkyclaveRavager.java | 7 ++---- Mage.Sets/src/mage/cards/g/GriefTyrant.java | 14 +++++------ Mage.Sets/src/mage/cards/g/GrimPoppet.java | 14 +++++------ .../src/mage/cards/h/HagraConstrictor.java | 8 ++----- .../src/mage/cards/h/HeirloomAuntie.java | 8 ++----- .../src/mage/cards/h/HeliodsPunishment.java | 5 ++-- Mage.Sets/src/mage/cards/h/Homarid.java | 6 ++--- .../src/mage/cards/h/HostOfTheHereafter.java | 22 ++++++------------ Mage.Sets/src/mage/cards/h/HovelHurler.java | 8 ++----- Mage.Sets/src/mage/cards/h/HuttCrimeLord.java | 8 +++---- .../src/mage/cards/i/IcatianJavelineers.java | 11 ++++----- Mage.Sets/src/mage/cards/i/ImminentDoom.java | 8 +++---- Mage.Sets/src/mage/cards/i/IncubationSac.java | 8 ++----- .../mage/cards/i/InvigoratingHotSpring.java | 7 ++---- .../src/mage/cards/i/IronApprentice.java | 7 ++---- Mage.Sets/src/mage/cards/j/JunkGolem.java | 11 +++++---- .../src/mage/cards/k/KappaTechWrecker.java | 7 ++---- Mage.Sets/src/mage/cards/k/Karstoderm.java | 15 ++++++------ .../src/mage/cards/l/LatticeBladeMantis.java | 8 ++----- Mage.Sets/src/mage/cards/l/LeechBonder.java | 5 ++-- .../mage/cards/l/LilyBowenRagingGrandma.java | 10 +++----- Mage.Sets/src/mage/cards/l/LochMare.java | 8 ++----- Mage.Sets/src/mage/cards/m/Magmasaur.java | 11 ++++----- .../mage/cards/m/MagnanimousMagistrate.java | 8 ++----- Mage.Sets/src/mage/cards/m/MaleficScythe.java | 7 ++---- .../src/mage/cards/m/MeldwebStrider.java | 8 ++----- Mage.Sets/src/mage/cards/m/MidnightOil.java | 13 ++++------- .../src/mage/cards/m/MiglozMazeCrusher.java | 8 ++----- .../src/mage/cards/m/MindlessAutomaton.java | 14 +++++------ Mage.Sets/src/mage/cards/m/Mindwarper.java | 10 ++++---- Mage.Sets/src/mage/cards/m/Monoskelion.java | 7 ++---- .../src/mage/cards/m/MoonlitLamenter.java | 8 ++----- Mage.Sets/src/mage/cards/m/Moonshadow.java | 8 ++----- Mage.Sets/src/mage/cards/m/Morselhoarder.java | 8 +++---- Mage.Sets/src/mage/cards/m/MossbornHydra.java | 5 ++-- .../src/mage/cards/n/NecrogenCenser.java | 11 ++++----- Mage.Sets/src/mage/cards/n/Necrosquito.java | 7 ++---- Mage.Sets/src/mage/cards/n/NoosegrafMob.java | 7 +++--- .../src/mage/cards/n/NoxiousHatchling.java | 10 ++++---- .../src/mage/cards/o/OathswornKnight.java | 7 ++---- Mage.Sets/src/mage/cards/o/OrcishMine.java | 14 ++++++----- Mage.Sets/src/mage/cards/p/ParadoxZone.java | 10 +++----- .../mage/cards/p/PatrollingPeacemaker.java | 8 ++----- Mage.Sets/src/mage/cards/p/Pentavus.java | 10 ++++---- .../src/mage/cards/p/PeterParkersCamera.java | 8 ++----- .../src/mage/cards/p/PhantomCentaur.java | 7 +++--- Mage.Sets/src/mage/cards/p/PhantomFlock.java | 7 +++--- Mage.Sets/src/mage/cards/p/PhantomNomad.java | 8 +++---- Mage.Sets/src/mage/cards/p/PhantomTiger.java | 7 +++--- Mage.Sets/src/mage/cards/p/PhantomWurm.java | 8 +++---- .../src/mage/cards/p/PredationSteward.java | 8 ++----- .../mage/cards/p/PurestrainGenestealer.java | 7 ++---- .../src/mage/cards/r/RampagingMonument.java | 12 ++++------ .../src/mage/cards/r/RampantRejuvenator.java | 7 ++---- .../src/mage/cards/r/RasputinDreamweaver.java | 7 ++---- Mage.Sets/src/mage/cards/r/ReapingWillow.java | 22 ++++++++---------- .../src/mage/cards/r/ReckonerBankbuster.java | 7 ++---- .../src/mage/cards/r/ReluctantDounguard.java | 8 ++----- .../src/mage/cards/r/ResistanceBomber.java | 9 +++----- .../mage/cards/r/ReyhanLastOfTheAbzan.java | 8 +++---- Mage.Sets/src/mage/cards/r/RhoxPummeler.java | 9 ++------ .../mage/cards/r/RigoStreetwiseMentor.java | 9 ++------ .../src/mage/cards/r/RingOfThreeWishes.java | 11 ++++----- Mage.Sets/src/mage/cards/r/RocHatchling.java | 8 ++----- .../mage/cards/s/SaltRoadQuartermasters.java | 12 ++++------ .../src/mage/cards/s/SanctuaryWarden.java | 9 ++------ Mage.Sets/src/mage/cards/s/SavageFirecat.java | 8 ++----- .../mage/cards/s/ScholarOfNewHorizons.java | 8 ++----- .../src/mage/cards/s/ScroungingBandar.java | 14 +++++------ .../src/mage/cards/s/SekkiSeasonsGuide.java | 10 ++++---- .../mage/cards/s/SelflessPoliceCaptain.java | 8 ++----- .../src/mage/cards/s/ServantOfTheScale.java | 11 ++++----- Mage.Sets/src/mage/cards/s/Shinewend.java | 13 +++++------ .../src/mage/cards/s/ShrewdHatchling.java | 7 ++---- Mage.Sets/src/mage/cards/s/Shriekhorn.java | 9 ++------ .../src/mage/cards/s/SisterhoodOfKarn.java | 8 ++----- .../src/mage/cards/s/SkeletonScavengers.java | 7 +++--- .../src/mage/cards/s/SlumberingWalker.java | 8 ++----- .../src/mage/cards/s/SlurrkAllIngesting.java | 8 ++----- Mage.Sets/src/mage/cards/s/SpikeBreeder.java | 9 ++++---- Mage.Sets/src/mage/cards/s/SpikeCannibal.java | 12 +++++----- Mage.Sets/src/mage/cards/s/SpikeColony.java | 13 +++++------ Mage.Sets/src/mage/cards/s/SpikeDrone.java | 12 ++++------ Mage.Sets/src/mage/cards/s/SpikeFeeder.java | 11 ++++----- Mage.Sets/src/mage/cards/s/SpikeHatcher.java | 17 +++++++------- Mage.Sets/src/mage/cards/s/SpikeRogue.java | 4 ++-- Mage.Sets/src/mage/cards/s/SpikeSoldier.java | 15 ++++++------ Mage.Sets/src/mage/cards/s/SpikeTiller.java | 13 +++++------ Mage.Sets/src/mage/cards/s/SpikeWeaver.java | 11 ++++----- Mage.Sets/src/mage/cards/s/SpikeWorker.java | 11 ++++----- Mage.Sets/src/mage/cards/s/SpitefulSquad.java | 8 ++----- Mage.Sets/src/mage/cards/s/StarPupil.java | 8 ++----- Mage.Sets/src/mage/cards/s/Stingmoggie.java | 13 +++++------ .../src/mage/cards/s/SturdyHatchling.java | 15 ++++++------ Mage.Sets/src/mage/cards/s/SunsetPyramid.java | 9 ++++---- Mage.Sets/src/mage/cards/s/SurgeNode.java | 6 ++--- Mage.Sets/src/mage/cards/s/SwarmShambler.java | 7 ++---- .../src/mage/cards/s/SwoopingProtector.java | 9 ++------ .../src/mage/cards/t/TamiyosImmobilizer.java | 12 ++++------ .../src/mage/cards/t/TendoIceBridge.java | 11 ++++----- Mage.Sets/src/mage/cards/t/Tetravus.java | 16 ++++++------- .../src/mage/cards/t/TheMonumentalFacade.java | 15 ++++-------- .../src/mage/cards/t/ThopterSquadron.java | 9 ++++---- .../mage/cards/t/ThreefoldThunderhulk.java | 7 ++---- .../src/mage/cards/t/TidalInfluence.java | 5 ++-- Mage.Sets/src/mage/cards/t/TomeOfLegends.java | 6 ++--- .../src/mage/cards/t/TransmogrifyingWand.java | 10 +++----- Mage.Sets/src/mage/cards/t/TrawlerDrake.java | 7 ++---- .../src/mage/cards/t/TrigonOfCorruption.java | 7 +++--- .../src/mage/cards/t/TrigonOfInfestation.java | 10 ++++---- .../src/mage/cards/t/TrigonOfMending.java | 10 ++++---- Mage.Sets/src/mage/cards/t/TrigonOfRage.java | 10 ++++---- .../src/mage/cards/t/TrigonOfThought.java | 10 ++++---- Mage.Sets/src/mage/cards/t/Triskelavus.java | 9 ++++---- Mage.Sets/src/mage/cards/t/Triskelion.java | 12 ++++------ Mage.Sets/src/mage/cards/t/TumbleMagnet.java | 12 ++++------ Mage.Sets/src/mage/cards/v/Vebulid.java | 12 +++++----- .../src/mage/cards/v/VoiceOfTheVermin.java | 9 ++------ .../src/mage/cards/v/VoraciousHatchling.java | 10 ++++---- .../src/mage/cards/w/WalkingArchive.java | 18 +++++++-------- .../src/mage/cards/w/WatchfulBlisterzoa.java | 8 ++----- Mage.Sets/src/mage/cards/w/WeaponRack.java | 8 ++----- .../src/mage/cards/w/WickerboughElder.java | 6 ++--- Mage.Sets/src/mage/cards/w/Wiitigo.java | 18 ++++++--------- .../src/mage/cards/w/WingshieldAgent.java | 9 ++------ .../src/mage/cards/w/WishclawTalisman.java | 8 ++----- .../src/mage/cards/w/WoollyRazorback.java | 7 ++---- Mage.Sets/src/mage/cards/w/Workhorse.java | 10 ++++---- .../mage/cards/y/YorvoLordOfGarenbrig.java | 10 +++----- Mage.Sets/src/mage/cards/z/ZackFair.java | 8 ++----- .../EntersBattlefieldWithCountersAbility.java | 23 +++++++++++++++++++ 193 files changed, 682 insertions(+), 1140 deletions(-) create mode 100644 Mage/src/main/java/mage/abilities/common/EntersBattlefieldWithCountersAbility.java diff --git a/Mage.Sets/src/mage/cards/a/AfiyaGrove.java b/Mage.Sets/src/mage/cards/a/AfiyaGrove.java index 4fcea676002..1a1ee3d8d56 100644 --- a/Mage.Sets/src/mage/cards/a/AfiyaGrove.java +++ b/Mage.Sets/src/mage/cards/a/AfiyaGrove.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/a/Anthroplasm.java b/Mage.Sets/src/mage/cards/a/Anthroplasm.java index e1472ad7fc4..ec09627fe9a 100644 --- a/Mage.Sets/src/mage/cards/a/Anthroplasm.java +++ b/Mage.Sets/src/mage/cards/a/Anthroplasm.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/a/ArchfiendOfTheDross.java b/Mage.Sets/src/mage/cards/a/ArchfiendOfTheDross.java index 4f44292aeb8..2b55948ab81 100644 --- a/Mage.Sets/src/mage/cards/a/ArchfiendOfTheDross.java +++ b/Mage.Sets/src/mage/cards/a/ArchfiendOfTheDross.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/a/ArgentDais.java b/Mage.Sets/src/mage/cards/a/ArgentDais.java index 7817be0dd03..0a3fa9315e2 100644 --- a/Mage.Sets/src/mage/cards/a/ArgentDais.java +++ b/Mage.Sets/src/mage/cards/a/ArgentDais.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/a/ArwenMortalQueen.java b/Mage.Sets/src/mage/cards/a/ArwenMortalQueen.java index 10521c5bdb8..85e4423502f 100644 --- a/Mage.Sets/src/mage/cards/a/ArwenMortalQueen.java +++ b/Mage.Sets/src/mage/cards/a/ArwenMortalQueen.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/a/AtraxasSkitterfang.java b/Mage.Sets/src/mage/cards/a/AtraxasSkitterfang.java index 1754330431a..f3d001b24d3 100644 --- a/Mage.Sets/src/mage/cards/a/AtraxasSkitterfang.java +++ b/Mage.Sets/src/mage/cards/a/AtraxasSkitterfang.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/a/AxiomEngraver.java b/Mage.Sets/src/mage/cards/a/AxiomEngraver.java index 29c048e141a..b1d9ffa2752 100644 --- a/Mage.Sets/src/mage/cards/a/AxiomEngraver.java +++ b/Mage.Sets/src/mage/cards/a/AxiomEngraver.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/b/BarkhideTroll.java b/Mage.Sets/src/mage/cards/b/BarkhideTroll.java index 8e6c30d1bc8..9aa3c3ed807 100644 --- a/Mage.Sets/src/mage/cards/b/BarkhideTroll.java +++ b/Mage.Sets/src/mage/cards/b/BarkhideTroll.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java b/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java index 8333c1defba..836871e42a3 100644 --- a/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java +++ b/Mage.Sets/src/mage/cards/b/BelligerentHatchling.java @@ -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. diff --git a/Mage.Sets/src/mage/cards/b/BitingPalmNinja.java b/Mage.Sets/src/mage/cards/b/BitingPalmNinja.java index 8197edfd741..0a1c25c6296 100644 --- a/Mage.Sets/src/mage/cards/b/BitingPalmNinja.java +++ b/Mage.Sets/src/mage/cards/b/BitingPalmNinja.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/b/BladedAmbassador.java b/Mage.Sets/src/mage/cards/b/BladedAmbassador.java index 56b441b8c43..a352e4c0136 100644 --- a/Mage.Sets/src/mage/cards/b/BladedAmbassador.java +++ b/Mage.Sets/src/mage/cards/b/BladedAmbassador.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/b/BlastZone.java b/Mage.Sets/src/mage/cards/b/BlastZone.java index 1d579a535a3..bb789ee3de8 100644 --- a/Mage.Sets/src/mage/cards/b/BlastZone.java +++ b/Mage.Sets/src/mage/cards/b/BlastZone.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/b/BloatflySwarm.java b/Mage.Sets/src/mage/cards/b/BloatflySwarm.java index 64c03583d53..d55a9ce5b48 100644 --- a/Mage.Sets/src/mage/cards/b/BloatflySwarm.java +++ b/Mage.Sets/src/mage/cards/b/BloatflySwarm.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/b/BloodiedGhost.java b/Mage.Sets/src/mage/cards/b/BloodiedGhost.java index ca31e89179c..1a4d785f912 100644 --- a/Mage.Sets/src/mage/cards/b/BloodiedGhost.java +++ b/Mage.Sets/src/mage/cards/b/BloodiedGhost.java @@ -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) { diff --git a/Mage.Sets/src/mage/cards/b/BramblebackBrute.java b/Mage.Sets/src/mage/cards/b/BramblebackBrute.java index a58b043920f..8186d4b76e8 100644 --- a/Mage.Sets/src/mage/cards/b/BramblebackBrute.java +++ b/Mage.Sets/src/mage/cards/b/BramblebackBrute.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/b/BristlebaneBattler.java b/Mage.Sets/src/mage/cards/b/BristlebaneBattler.java index eb38e813c5e..f31e52d7bd6 100644 --- a/Mage.Sets/src/mage/cards/b/BristlebaneBattler.java +++ b/Mage.Sets/src/mage/cards/b/BristlebaneBattler.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/b/BurdenedStoneback.java b/Mage.Sets/src/mage/cards/b/BurdenedStoneback.java index 2c61e33f8b9..dceea2f7e88 100644 --- a/Mage.Sets/src/mage/cards/b/BurdenedStoneback.java +++ b/Mage.Sets/src/mage/cards/b/BurdenedStoneback.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/c/CaptainAmericaSuperSoldier.java b/Mage.Sets/src/mage/cards/c/CaptainAmericaSuperSoldier.java index 5f172a134a7..c8a887024f4 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainAmericaSuperSoldier.java +++ b/Mage.Sets/src/mage/cards/c/CaptainAmericaSuperSoldier.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/CarnifexDemon.java b/Mage.Sets/src/mage/cards/c/CarnifexDemon.java index b7cac427ab9..21b9a47ef73 100644 --- a/Mage.Sets/src/mage/cards/c/CarnifexDemon.java +++ b/Mage.Sets/src/mage/cards/c/CarnifexDemon.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/ChaoticGoo.java b/Mage.Sets/src/mage/cards/c/ChaoticGoo.java index c8b8f77b51b..0b542a7dbb5 100644 --- a/Mage.Sets/src/mage/cards/c/ChaoticGoo.java +++ b/Mage.Sets/src/mage/cards/c/ChaoticGoo.java @@ -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)); } diff --git a/Mage.Sets/src/mage/cards/c/ClockworkAvian.java b/Mage.Sets/src/mage/cards/c/ClockworkAvian.java index 0baa24bc0f3..a86b19bfec1 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkAvian.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkAvian.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/ClockworkBeast.java b/Mage.Sets/src/mage/cards/c/ClockworkBeast.java index aaef5b5002b..09566de0b0a 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkBeast.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkBeast.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java b/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java index 54c08ad4fb0..e625f8526bd 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkBeetle.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/c/ClockworkCondor.java b/Mage.Sets/src/mage/cards/c/ClockworkCondor.java index dbf74f833d8..627ee306513 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkCondor.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkCondor.java @@ -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)); } diff --git a/Mage.Sets/src/mage/cards/c/ClockworkDragon.java b/Mage.Sets/src/mage/cards/c/ClockworkDragon.java index 675c0fb8796..d3145f1f7ae 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkDragon.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkDragon.java @@ -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))); } diff --git a/Mage.Sets/src/mage/cards/c/ClockworkHydra.java b/Mage.Sets/src/mage/cards/c/ClockworkHydra.java index f2d5895087c..d6daee84f3b 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkHydra.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkHydra.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/ClockworkSteed.java b/Mage.Sets/src/mage/cards/c/ClockworkSteed.java index 45aa3ebb66f..b8216e0da88 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkSteed.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkSteed.java @@ -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))); diff --git a/Mage.Sets/src/mage/cards/c/ClockworkSwarm.java b/Mage.Sets/src/mage/cards/c/ClockworkSwarm.java index 25f9e70081f..0f87645cdd5 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkSwarm.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkSwarm.java @@ -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))); diff --git a/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java b/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java index b6d4de744a2..61e2705a2bd 100644 --- a/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java +++ b/Mage.Sets/src/mage/cards/c/ClockworkVorrac.java @@ -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())); } diff --git a/Mage.Sets/src/mage/cards/c/ConductorOfCacophony.java b/Mage.Sets/src/mage/cards/c/ConductorOfCacophony.java index 7431c694616..aa89fb93ca6 100644 --- a/Mage.Sets/src/mage/cards/c/ConductorOfCacophony.java +++ b/Mage.Sets/src/mage/cards/c/ConductorOfCacophony.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/CostumeCloset.java b/Mage.Sets/src/mage/cards/c/CostumeCloset.java index 4d152009b7e..ce525efa265 100644 --- a/Mage.Sets/src/mage/cards/c/CostumeCloset.java +++ b/Mage.Sets/src/mage/cards/c/CostumeCloset.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/CreakwoodSafewright.java b/Mage.Sets/src/mage/cards/c/CreakwoodSafewright.java index 541b10075d6..ef8482c41d5 100644 --- a/Mage.Sets/src/mage/cards/c/CreakwoodSafewright.java +++ b/Mage.Sets/src/mage/cards/c/CreakwoodSafewright.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java b/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java index 37b6d157f49..dc3cf162d68 100644 --- a/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java +++ b/Mage.Sets/src/mage/cards/c/CrovaxTheCursed.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/d/DaghatarTheAdamant.java b/Mage.Sets/src/mage/cards/d/DaghatarTheAdamant.java index 826be14a536..5bc7cbbbb49 100644 --- a/Mage.Sets/src/mage/cards/d/DaghatarTheAdamant.java +++ b/Mage.Sets/src/mage/cards/d/DaghatarTheAdamant.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/d/DapperShieldmate.java b/Mage.Sets/src/mage/cards/d/DapperShieldmate.java index 399434b3768..4b7b9cbac95 100644 --- a/Mage.Sets/src/mage/cards/d/DapperShieldmate.java +++ b/Mage.Sets/src/mage/cards/d/DapperShieldmate.java @@ -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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + 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( diff --git a/Mage.Sets/src/mage/cards/d/DarkDepths.java b/Mage.Sets/src/mage/cards/d/DarkDepths.java index da109d3472e..cbff05926a8 100644 --- a/Mage.Sets/src/mage/cards/d/DarkDepths.java +++ b/Mage.Sets/src/mage/cards/d/DarkDepths.java @@ -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. diff --git a/Mage.Sets/src/mage/cards/d/DeityOfScars.java b/Mage.Sets/src/mage/cards/d/DeityOfScars.java index 00d67a36b52..d6fb9c90b0d 100644 --- a/Mage.Sets/src/mage/cards/d/DeityOfScars.java +++ b/Mage.Sets/src/mage/cards/d/DeityOfScars.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/d/DiamondCity.java b/Mage.Sets/src/mage/cards/d/DiamondCity.java index 9df99ce625c..e04dd949861 100644 --- a/Mage.Sets/src/mage/cards/d/DiamondCity.java +++ b/Mage.Sets/src/mage/cards/d/DiamondCity.java @@ -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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); // {T}: Add {C}. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/d/DisciplinedDuelist.java b/Mage.Sets/src/mage/cards/d/DisciplinedDuelist.java index 46cdc772121..49370b7e463 100644 --- a/Mage.Sets/src/mage/cards/d/DisciplinedDuelist.java +++ b/Mage.Sets/src/mage/cards/d/DisciplinedDuelist.java @@ -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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); } private DisciplinedDuelist(final DisciplinedDuelist card) { diff --git a/Mage.Sets/src/mage/cards/d/DistrictMascot.java b/Mage.Sets/src/mage/cards/d/DistrictMascot.java index 835d6abe9f4..4a23b2893d7 100644 --- a/Mage.Sets/src/mage/cards/d/DistrictMascot.java +++ b/Mage.Sets/src/mage/cards/d/DistrictMascot.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java b/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java index b43521b92f5..d7a6964629c 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java +++ b/Mage.Sets/src/mage/cards/d/DjinnOfWishes.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/d/DockworkerDrone.java b/Mage.Sets/src/mage/cards/d/DockworkerDrone.java index b6efa4f61cb..c8d818de03d 100644 --- a/Mage.Sets/src/mage/cards/d/DockworkerDrone.java +++ b/Mage.Sets/src/mage/cards/d/DockworkerDrone.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/e/EncumberedReejerey.java b/Mage.Sets/src/mage/cards/e/EncumberedReejerey.java index a2bf6857779..f207c356609 100644 --- a/Mage.Sets/src/mage/cards/e/EncumberedReejerey.java +++ b/Mage.Sets/src/mage/cards/e/EncumberedReejerey.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java b/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java index 41311ecb94f..30b1e3bc511 100644 --- a/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java +++ b/Mage.Sets/src/mage/cards/e/EtchedMonstrosity.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/e/EvolvedSpinoderm.java b/Mage.Sets/src/mage/cards/e/EvolvedSpinoderm.java index 0e4ed8efd43..8cfe37769ed 100644 --- a/Mage.Sets/src/mage/cards/e/EvolvedSpinoderm.java +++ b/Mage.Sets/src/mage/cards/e/EvolvedSpinoderm.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java b/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java index be27af78e77..60ee66eccbf 100644 --- a/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java +++ b/Mage.Sets/src/mage/cards/e/EvolvingAdaptive.java @@ -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); diff --git a/Mage.Sets/src/mage/cards/e/ExplorersCache.java b/Mage.Sets/src/mage/cards/e/ExplorersCache.java index 0e21505a8b7..a4e6f6e20db 100644 --- a/Mage.Sets/src/mage/cards/e/ExplorersCache.java +++ b/Mage.Sets/src/mage/cards/e/ExplorersCache.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/f/FaithfulWatchdog.java b/Mage.Sets/src/mage/cards/f/FaithfulWatchdog.java index 8754a5be552..2b0df8c1031 100644 --- a/Mage.Sets/src/mage/cards/f/FaithfulWatchdog.java +++ b/Mage.Sets/src/mage/cards/f/FaithfulWatchdog.java @@ -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) { diff --git a/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java b/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java index 351fd46ae23..a73bca9d2ed 100644 --- a/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java +++ b/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java @@ -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. (If it would be dealt damage " - + "or destroyed, remove a shield counter from it instead.)" - )); + 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())); diff --git a/Mage.Sets/src/mage/cards/f/Fertilid.java b/Mage.Sets/src/mage/cards/f/Fertilid.java index 52625174ec5..66f8c018cf0 100644 --- a/Mage.Sets/src/mage/cards/f/Fertilid.java +++ b/Mage.Sets/src/mage/cards/f/Fertilid.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/f/Festercreep.java b/Mage.Sets/src/mage/cards/f/Festercreep.java index 355a5375f93..b0eab799484 100644 --- a/Mage.Sets/src/mage/cards/f/Festercreep.java +++ b/Mage.Sets/src/mage/cards/f/Festercreep.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/f/FlitterwingNuisance.java b/Mage.Sets/src/mage/cards/f/FlitterwingNuisance.java index 5910d31248f..b542544759b 100644 --- a/Mage.Sets/src/mage/cards/f/FlitterwingNuisance.java +++ b/Mage.Sets/src/mage/cards/f/FlitterwingNuisance.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/f/Floodchaser.java b/Mage.Sets/src/mage/cards/f/Floodchaser.java index fab0314ba63..bfd2e9b9d51 100644 --- a/Mage.Sets/src/mage/cards/f/Floodchaser.java +++ b/Mage.Sets/src/mage/cards/f/Floodchaser.java @@ -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))); diff --git a/Mage.Sets/src/mage/cards/f/FontOfProgress.java b/Mage.Sets/src/mage/cards/f/FontOfProgress.java index a8a67dcd075..01e74d63f9a 100644 --- a/Mage.Sets/src/mage/cards/f/FontOfProgress.java +++ b/Mage.Sets/src/mage/cards/f/FontOfProgress.java @@ -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) diff --git a/Mage.Sets/src/mage/cards/f/FurnaceStrider.java b/Mage.Sets/src/mage/cards/f/FurnaceStrider.java index 74244dc05f1..7215b3bbe5d 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceStrider.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceStrider.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/g/GatewatchBeacon.java b/Mage.Sets/src/mage/cards/g/GatewatchBeacon.java index a9b7e1b14f3..25ec7da67b8 100644 --- a/Mage.Sets/src/mage/cards/g/GatewatchBeacon.java +++ b/Mage.Sets/src/mage/cards/g/GatewatchBeacon.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/g/GemstoneMine.java b/Mage.Sets/src/mage/cards/g/GemstoneMine.java index 16f1407978d..69bd83062cf 100644 --- a/Mage.Sets/src/mage/cards/g/GemstoneMine.java +++ b/Mage.Sets/src/mage/cards/g/GemstoneMine.java @@ -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(); diff --git a/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java b/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java index 7a6e8a55784..4253d27edb1 100644 --- a/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java +++ b/Mage.Sets/src/mage/cards/g/GhaveGuruOfSpores.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/g/GitaxianRaptor.java b/Mage.Sets/src/mage/cards/g/GitaxianRaptor.java index 89b9e0b08e9..db7486048d2 100644 --- a/Mage.Sets/src/mage/cards/g/GitaxianRaptor.java +++ b/Mage.Sets/src/mage/cards/g/GitaxianRaptor.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/g/GlenElendraGuardian.java b/Mage.Sets/src/mage/cards/g/GlenElendraGuardian.java index 7b2972850ef..304f0ac5aaa 100644 --- a/Mage.Sets/src/mage/cards/g/GlenElendraGuardian.java +++ b/Mage.Sets/src/mage/cards/g/GlenElendraGuardian.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/g/GlistenerSeer.java b/Mage.Sets/src/mage/cards/g/GlistenerSeer.java index 1e346ed9028..ff24181592f 100644 --- a/Mage.Sets/src/mage/cards/g/GlistenerSeer.java +++ b/Mage.Sets/src/mage/cards/g/GlistenerSeer.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/g/GnarlbarkElm.java b/Mage.Sets/src/mage/cards/g/GnarlbarkElm.java index 59dc8b77f80..c43fbf615da 100644 --- a/Mage.Sets/src/mage/cards/g/GnarlbarkElm.java +++ b/Mage.Sets/src/mage/cards/g/GnarlbarkElm.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/g/GrakmawSkyclaveRavager.java b/Mage.Sets/src/mage/cards/g/GrakmawSkyclaveRavager.java index 4604971aaaa..89ae5d47b9d 100644 --- a/Mage.Sets/src/mage/cards/g/GrakmawSkyclaveRavager.java +++ b/Mage.Sets/src/mage/cards/g/GrakmawSkyclaveRavager.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/g/GriefTyrant.java b/Mage.Sets/src/mage/cards/g/GriefTyrant.java index b0558374f4e..46ae287cf4a 100644 --- a/Mage.Sets/src/mage/cards/g/GriefTyrant.java +++ b/Mage.Sets/src/mage/cards/g/GriefTyrant.java @@ -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) { diff --git a/Mage.Sets/src/mage/cards/g/GrimPoppet.java b/Mage.Sets/src/mage/cards/g/GrimPoppet.java index dd090b52cb8..081cb6e172c 100644 --- a/Mage.Sets/src/mage/cards/g/GrimPoppet.java +++ b/Mage.Sets/src/mage/cards/g/GrimPoppet.java @@ -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) { diff --git a/Mage.Sets/src/mage/cards/h/HagraConstrictor.java b/Mage.Sets/src/mage/cards/h/HagraConstrictor.java index a75d9f0d0cc..f70cf9649a9 100644 --- a/Mage.Sets/src/mage/cards/h/HagraConstrictor.java +++ b/Mage.Sets/src/mage/cards/h/HagraConstrictor.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/h/HeirloomAuntie.java b/Mage.Sets/src/mage/cards/h/HeirloomAuntie.java index 73a58d0b2f3..20037eb7f5e 100644 --- a/Mage.Sets/src/mage/cards/h/HeirloomAuntie.java +++ b/Mage.Sets/src/mage/cards/h/HeirloomAuntie.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/h/HeliodsPunishment.java b/Mage.Sets/src/mage/cards/h/HeliodsPunishment.java index 7c28b385890..fed963648ba 100644 --- a/Mage.Sets/src/mage/cards/h/HeliodsPunishment.java +++ b/Mage.Sets/src/mage/cards/h/HeliodsPunishment.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/h/Homarid.java b/Mage.Sets/src/mage/cards/h/Homarid.java index 5e45a30c479..3523f7d7d80 100644 --- a/Mage.Sets/src/mage/cards/h/Homarid.java +++ b/Mage.Sets/src/mage/cards/h/Homarid.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/h/HostOfTheHereafter.java b/Mage.Sets/src/mage/cards/h/HostOfTheHereafter.java index d2d9ffd0d69..9561ebb1adf 100644 --- a/Mage.Sets/src/mage/cards/h/HostOfTheHereafter.java +++ b/Mage.Sets/src/mage/cards/h/HostOfTheHereafter.java @@ -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) diff --git a/Mage.Sets/src/mage/cards/h/HovelHurler.java b/Mage.Sets/src/mage/cards/h/HovelHurler.java index 316a1d3ed22..0374bfe605c 100644 --- a/Mage.Sets/src/mage/cards/h/HovelHurler.java +++ b/Mage.Sets/src/mage/cards/h/HovelHurler.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/h/HuttCrimeLord.java b/Mage.Sets/src/mage/cards/h/HuttCrimeLord.java index 18323fc74cb..28417f28ab1 100644 --- a/Mage.Sets/src/mage/cards/h/HuttCrimeLord.java +++ b/Mage.Sets/src/mage/cards/h/HuttCrimeLord.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/i/IcatianJavelineers.java b/Mage.Sets/src/mage/cards/i/IcatianJavelineers.java index 10382bf1166..8e59a7b65df 100644 --- a/Mage.Sets/src/mage/cards/i/IcatianJavelineers.java +++ b/Mage.Sets/src/mage/cards/i/IcatianJavelineers.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/i/ImminentDoom.java b/Mage.Sets/src/mage/cards/i/ImminentDoom.java index 9da01b4ab96..e7372cb1804 100644 --- a/Mage.Sets/src/mage/cards/i/ImminentDoom.java +++ b/Mage.Sets/src/mage/cards/i/ImminentDoom.java @@ -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(); diff --git a/Mage.Sets/src/mage/cards/i/IncubationSac.java b/Mage.Sets/src/mage/cards/i/IncubationSac.java index 6c52c1945be..a39c5d3f68d 100644 --- a/Mage.Sets/src/mage/cards/i/IncubationSac.java +++ b/Mage.Sets/src/mage/cards/i/IncubationSac.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/i/InvigoratingHotSpring.java b/Mage.Sets/src/mage/cards/i/InvigoratingHotSpring.java index 25d44dca879..0ba07a0c216 100644 --- a/Mage.Sets/src/mage/cards/i/InvigoratingHotSpring.java +++ b/Mage.Sets/src/mage/cards/i/InvigoratingHotSpring.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/i/IronApprentice.java b/Mage.Sets/src/mage/cards/i/IronApprentice.java index 3fc9dd21fc1..0d5e6daf50e 100644 --- a/Mage.Sets/src/mage/cards/i/IronApprentice.java +++ b/Mage.Sets/src/mage/cards/i/IronApprentice.java @@ -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()) diff --git a/Mage.Sets/src/mage/cards/j/JunkGolem.java b/Mage.Sets/src/mage/cards/j/JunkGolem.java index cc46d7a0174..1aca99b2763 100644 --- a/Mage.Sets/src/mage/cards/j/JunkGolem.java +++ b/Mage.Sets/src/mage/cards/j/JunkGolem.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/k/KappaTechWrecker.java b/Mage.Sets/src/mage/cards/k/KappaTechWrecker.java index 95451f47695..d5870fa17cc 100644 --- a/Mage.Sets/src/mage/cards/k/KappaTechWrecker.java +++ b/Mage.Sets/src/mage/cards/k/KappaTechWrecker.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/k/Karstoderm.java b/Mage.Sets/src/mage/cards/k/Karstoderm.java index b35fcedb9f8..e3f8857a7f5 100644 --- a/Mage.Sets/src/mage/cards/k/Karstoderm.java +++ b/Mage.Sets/src/mage/cards/k/Karstoderm.java @@ -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)); } diff --git a/Mage.Sets/src/mage/cards/l/LatticeBladeMantis.java b/Mage.Sets/src/mage/cards/l/LatticeBladeMantis.java index 825c2e56742..e90cae72024 100644 --- a/Mage.Sets/src/mage/cards/l/LatticeBladeMantis.java +++ b/Mage.Sets/src/mage/cards/l/LatticeBladeMantis.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/l/LeechBonder.java b/Mage.Sets/src/mage/cards/l/LeechBonder.java index 42db886683d..6e8bbcc76a3 100644 --- a/Mage.Sets/src/mage/cards/l/LeechBonder.java +++ b/Mage.Sets/src/mage/cards/l/LeechBonder.java @@ -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}")); diff --git a/Mage.Sets/src/mage/cards/l/LilyBowenRagingGrandma.java b/Mage.Sets/src/mage/cards/l/LilyBowenRagingGrandma.java index d28e8183f62..af3817a0b62 100644 --- a/Mage.Sets/src/mage/cards/l/LilyBowenRagingGrandma.java +++ b/Mage.Sets/src/mage/cards/l/LilyBowenRagingGrandma.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/l/LochMare.java b/Mage.Sets/src/mage/cards/l/LochMare.java index d57a16fbd67..b3385d5344b 100644 --- a/Mage.Sets/src/mage/cards/l/LochMare.java +++ b/Mage.Sets/src/mage/cards/l/LochMare.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/m/Magmasaur.java b/Mage.Sets/src/mage/cards/m/Magmasaur.java index 707e921d559..c85c403dd5c 100644 --- a/Mage.Sets/src/mage/cards/m/Magmasaur.java +++ b/Mage.Sets/src/mage/cards/m/Magmasaur.java @@ -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())); diff --git a/Mage.Sets/src/mage/cards/m/MagnanimousMagistrate.java b/Mage.Sets/src/mage/cards/m/MagnanimousMagistrate.java index 9726d7e7326..2ef497a4989 100644 --- a/Mage.Sets/src/mage/cards/m/MagnanimousMagistrate.java +++ b/Mage.Sets/src/mage/cards/m/MagnanimousMagistrate.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/m/MaleficScythe.java b/Mage.Sets/src/mage/cards/m/MaleficScythe.java index c0f003be57a..2fb93c32703 100644 --- a/Mage.Sets/src/mage/cards/m/MaleficScythe.java +++ b/Mage.Sets/src/mage/cards/m/MaleficScythe.java @@ -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))); diff --git a/Mage.Sets/src/mage/cards/m/MeldwebStrider.java b/Mage.Sets/src/mage/cards/m/MeldwebStrider.java index 677da1183c7..de2d7c6378f 100644 --- a/Mage.Sets/src/mage/cards/m/MeldwebStrider.java +++ b/Mage.Sets/src/mage/cards/m/MeldwebStrider.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/m/MidnightOil.java b/Mage.Sets/src/mage/cards/m/MidnightOil.java index a5a7d430cfa..3a19c978855 100644 --- a/Mage.Sets/src/mage/cards/m/MidnightOil.java +++ b/Mage.Sets/src/mage/cards/m/MidnightOil.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/m/MiglozMazeCrusher.java b/Mage.Sets/src/mage/cards/m/MiglozMazeCrusher.java index 4a3e9f702f9..781af3025c1 100644 --- a/Mage.Sets/src/mage/cards/m/MiglozMazeCrusher.java +++ b/Mage.Sets/src/mage/cards/m/MiglozMazeCrusher.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/m/MindlessAutomaton.java b/Mage.Sets/src/mage/cards/m/MindlessAutomaton.java index cd490077e37..5958b92a124 100644 --- a/Mage.Sets/src/mage/cards/m/MindlessAutomaton.java +++ b/Mage.Sets/src/mage/cards/m/MindlessAutomaton.java @@ -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)))); } diff --git a/Mage.Sets/src/mage/cards/m/Mindwarper.java b/Mage.Sets/src/mage/cards/m/Mindwarper.java index ad8ebb73b75..2bf025e026a 100644 --- a/Mage.Sets/src/mage/cards/m/Mindwarper.java +++ b/Mage.Sets/src/mage/cards/m/Mindwarper.java @@ -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())); diff --git a/Mage.Sets/src/mage/cards/m/Monoskelion.java b/Mage.Sets/src/mage/cards/m/Monoskelion.java index bcbaebec144..08009751d29 100644 --- a/Mage.Sets/src/mage/cards/m/Monoskelion.java +++ b/Mage.Sets/src/mage/cards/m/Monoskelion.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/m/MoonlitLamenter.java b/Mage.Sets/src/mage/cards/m/MoonlitLamenter.java index 039f80ab19d..c7f5be61d47 100644 --- a/Mage.Sets/src/mage/cards/m/MoonlitLamenter.java +++ b/Mage.Sets/src/mage/cards/m/MoonlitLamenter.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/m/Moonshadow.java b/Mage.Sets/src/mage/cards/m/Moonshadow.java index 0d1de8f78d8..6af60b2fb0b 100644 --- a/Mage.Sets/src/mage/cards/m/Moonshadow.java +++ b/Mage.Sets/src/mage/cards/m/Moonshadow.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/m/Morselhoarder.java b/Mage.Sets/src/mage/cards/m/Morselhoarder.java index de2ceb6aede..70e0236e47c 100644 --- a/Mage.Sets/src/mage/cards/m/Morselhoarder.java +++ b/Mage.Sets/src/mage/cards/m/Morselhoarder.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/m/MossbornHydra.java b/Mage.Sets/src/mage/cards/m/MossbornHydra.java index 297488d52cb..e7fc917a1ef 100644 --- a/Mage.Sets/src/mage/cards/m/MossbornHydra.java +++ b/Mage.Sets/src/mage/cards/m/MossbornHydra.java @@ -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))); diff --git a/Mage.Sets/src/mage/cards/n/NecrogenCenser.java b/Mage.Sets/src/mage/cards/n/NecrogenCenser.java index a72f4d41e87..f07f4fcd8c0 100644 --- a/Mage.Sets/src/mage/cards/n/NecrogenCenser.java +++ b/Mage.Sets/src/mage/cards/n/NecrogenCenser.java @@ -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()); diff --git a/Mage.Sets/src/mage/cards/n/Necrosquito.java b/Mage.Sets/src/mage/cards/n/Necrosquito.java index c37f270292e..3bc664c9c5a 100644 --- a/Mage.Sets/src/mage/cards/n/Necrosquito.java +++ b/Mage.Sets/src/mage/cards/n/Necrosquito.java @@ -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( diff --git a/Mage.Sets/src/mage/cards/n/NoosegrafMob.java b/Mage.Sets/src/mage/cards/n/NoosegrafMob.java index 2bf724ef143..e4944e7803f 100644 --- a/Mage.Sets/src/mage/cards/n/NoosegrafMob.java +++ b/Mage.Sets/src/mage/cards/n/NoosegrafMob.java @@ -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)); diff --git a/Mage.Sets/src/mage/cards/n/NoxiousHatchling.java b/Mage.Sets/src/mage/cards/n/NoxiousHatchling.java index 4d70fe11209..fe93027df80 100644 --- a/Mage.Sets/src/mage/cards/n/NoxiousHatchling.java +++ b/Mage.Sets/src/mage/cards/n/NoxiousHatchling.java @@ -1,12 +1,10 @@ package mage.cards.n; -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.WitherAbility; 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 @@ -32,7 +32,7 @@ public final class NoxiousHatchling extends CardImpl { } public NoxiousHatchling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B/G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B/G}"); this.subtype.add(SubType.ELEMENTAL); @@ -40,7 +40,7 @@ public final class NoxiousHatchling extends CardImpl { this.toughness = new MageInt(6); // Noxious 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))); // Wither (This deals damage to creatures in the form of -1/-1 counters.) this.addAbility(WitherAbility.getInstance()); // Whenever you cast a black spell, remove a -1/-1 counter from Noxious Hatchling. diff --git a/Mage.Sets/src/mage/cards/o/OathswornKnight.java b/Mage.Sets/src/mage/cards/o/OathswornKnight.java index 093fe782c6a..23015fdfa2a 100644 --- a/Mage.Sets/src/mage/cards/o/OathswornKnight.java +++ b/Mage.Sets/src/mage/cards/o/OathswornKnight.java @@ -2,10 +2,9 @@ package mage.cards.o; import mage.MageInt; import mage.abilities.common.AttacksEachCombatStaticAbility; -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.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -28,9 +27,7 @@ public final class OathswornKnight extends CardImpl { this.toughness = new MageInt(0); // Oathsworn Knight 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))); // Oathsworn Knight attacks each combat if able. this.addAbility(new AttacksEachCombatStaticAbility()); diff --git a/Mage.Sets/src/mage/cards/o/OrcishMine.java b/Mage.Sets/src/mage/cards/o/OrcishMine.java index 23bdf9ed256..ee784a4b864 100644 --- a/Mage.Sets/src/mage/cards/o/OrcishMine.java +++ b/Mage.Sets/src/mage/cards/o/OrcishMine.java @@ -3,18 +3,20 @@ package mage.cards.o; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.BecomesTappedAttachedTriggeredAbility; -import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DamageAttachedControllerEffect; import mage.abilities.effects.common.DestroyAttachedToEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.meta.OrTriggeredAbility; +import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +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.events.GameEvent; @@ -32,7 +34,7 @@ public final class OrcishMine extends CardImpl { public OrcishMine(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}{R}"); - + this.subtype.add(SubType.AURA); // Enchant land @@ -43,7 +45,7 @@ public final class OrcishMine extends CardImpl { this.addAbility(ability); // Orcish Mine enters the battlefield with three ore counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.ORE.createInstance(3)), "with three ore counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.ORE.createInstance(3))); // At the beginning of your upkeep or whenever enchanted land becomes tapped, remove an ore counter from Orcish Mine. this.addAbility(new OrTriggeredAbility(Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.ORE.createInstance()), diff --git a/Mage.Sets/src/mage/cards/p/ParadoxZone.java b/Mage.Sets/src/mage/cards/p/ParadoxZone.java index d2092b42aa6..60c377c1799 100644 --- a/Mage.Sets/src/mage/cards/p/ParadoxZone.java +++ b/Mage.Sets/src/mage/cards/p/ParadoxZone.java @@ -1,13 +1,12 @@ package mage.cards.p; import mage.abilities.Ability; -import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CountersSourceCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DoubleCountersSourceEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -27,10 +26,7 @@ public final class ParadoxZone extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}"); // Paradox Zone enters the battlefield with a growth counter on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.GROWTH.createInstance()), - "with a growth counter on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.GROWTH.createInstance())); // At the beginning of your end step, double the number of growth counters on Paradox Zone. Then create a 0/0 blue and green Fractal creature token. Put X +1/+1 counters on it, where X is the number of growth counters on Paradox Zone. Ability ability = new BeginningOfEndStepTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/p/PatrollingPeacemaker.java b/Mage.Sets/src/mage/cards/p/PatrollingPeacemaker.java index d8fc9023f07..d470b2c8657 100644 --- a/Mage.Sets/src/mage/cards/p/PatrollingPeacemaker.java +++ b/Mage.Sets/src/mage/cards/p/PatrollingPeacemaker.java @@ -3,8 +3,7 @@ package mage.cards.p; import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.CommittedCrimeTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -31,10 +30,7 @@ public final class PatrollingPeacemaker extends CardImpl { this.toughness = new MageInt(0); // This creature 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))); // Whenever an opponent commits a crime, proliferate. this.addAbility(new PatrollingPeacemakerTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/p/Pentavus.java b/Mage.Sets/src/mage/cards/p/Pentavus.java index 179ce5d1716..05b42df4e03 100644 --- a/Mage.Sets/src/mage/cards/p/Pentavus.java +++ b/Mage.Sets/src/mage/cards/p/Pentavus.java @@ -1,10 +1,9 @@ package mage.cards.p; -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.SacrificeTargetCost; @@ -15,11 +14,11 @@ 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.FilterControlledPermanent; import mage.game.permanent.token.PentaviteToken; -import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; /** * @@ -40,8 +39,7 @@ public final class Pentavus extends CardImpl { this.toughness = new MageInt(0); // Pentavus 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 Pentavus: Create a 1/1 colorless Pentavite artifact creature token with flying. Ability firstAbility = new SimpleActivatedAbility(new CreateTokenEffect(new PentaviteToken(), 1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/cards/p/PeterParkersCamera.java b/Mage.Sets/src/mage/cards/p/PeterParkersCamera.java index 1cff6f90e94..7aabe8feaba 100644 --- a/Mage.Sets/src/mage/cards/p/PeterParkersCamera.java +++ b/Mage.Sets/src/mage/cards/p/PeterParkersCamera.java @@ -1,13 +1,12 @@ package mage.cards.p; 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.costs.mana.GenericManaCost; import mage.abilities.effects.common.CopyTargetStackObjectEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -34,10 +33,7 @@ public final class PeterParkersCamera extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); // This artifact enters with three film counters on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.FILM.createInstance(3)), - "with three film counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.FILM.createInstance(3))); // {2}, {T}, Remove a film counter from this artifact: Copy target activated or triggered ability you control. You may choose new targets for the copy. Ability ability = new SimpleActivatedAbility(new CopyTargetStackObjectEffect(), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/p/PhantomCentaur.java b/Mage.Sets/src/mage/cards/p/PhantomCentaur.java index 9ed817b06d6..7779019e261 100644 --- a/Mage.Sets/src/mage/cards/p/PhantomCentaur.java +++ b/Mage.Sets/src/mage/cards/p/PhantomCentaur.java @@ -3,10 +3,9 @@ package mage.cards.p; import mage.MageInt; import mage.ObjectColor; -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.AddCountersSourceEffect; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -33,7 +32,7 @@ public final class PhantomCentaur extends CardImpl { this.addAbility(ProtectionAbility.from(ObjectColor.BLACK)); // Phantom Centaur 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))); // If damage would be dealt to Phantom Centaur, prevent that damage. Remove a +1/+1 counter from Phantom Centaur. this.addAbility(new SimpleStaticAbility( @@ -49,4 +48,4 @@ public final class PhantomCentaur extends CardImpl { public PhantomCentaur copy() { return new PhantomCentaur(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PhantomFlock.java b/Mage.Sets/src/mage/cards/p/PhantomFlock.java index d0cbf7ce647..e6d601d064f 100644 --- a/Mage.Sets/src/mage/cards/p/PhantomFlock.java +++ b/Mage.Sets/src/mage/cards/p/PhantomFlock.java @@ -2,10 +2,9 @@ package mage.cards.p; import mage.MageInt; -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.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -32,7 +31,7 @@ public final class PhantomFlock extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Phantom Flock 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))); // If damage would be dealt to Phantom Flock, prevent that damage. Remove a +1/+1 counter from Phantom Flock. this.addAbility(new SimpleStaticAbility( @@ -48,4 +47,4 @@ public final class PhantomFlock extends CardImpl { public PhantomFlock copy() { return new PhantomFlock(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PhantomNomad.java b/Mage.Sets/src/mage/cards/p/PhantomNomad.java index 0cc83aebf06..77c19976145 100644 --- a/Mage.Sets/src/mage/cards/p/PhantomNomad.java +++ b/Mage.Sets/src/mage/cards/p/PhantomNomad.java @@ -2,10 +2,9 @@ package mage.cards.p; import mage.MageInt; -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.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -28,8 +27,7 @@ public final class PhantomNomad extends CardImpl { this.toughness = new MageInt(0); // Phantom Nomad 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))); // If damage would be dealt to Phantom Nomad, prevent that damage. Remove a +1/+1 counter from Phantom Nomad. this.addAbility(new SimpleStaticAbility( @@ -47,4 +45,4 @@ public final class PhantomNomad extends CardImpl { public PhantomNomad copy() { return new PhantomNomad(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PhantomTiger.java b/Mage.Sets/src/mage/cards/p/PhantomTiger.java index 7ff64b715d2..363e311f244 100644 --- a/Mage.Sets/src/mage/cards/p/PhantomTiger.java +++ b/Mage.Sets/src/mage/cards/p/PhantomTiger.java @@ -2,10 +2,9 @@ package mage.cards.p; import mage.MageInt; -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.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -27,7 +26,7 @@ public final class PhantomTiger extends CardImpl { this.toughness = new MageInt(0); // Phantom Tiger 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))); // If damage would be dealt to Phantom Tiger, prevent that damage. Remove a +1/+1 counter from Phantom Tiger. this.addAbility(new SimpleStaticAbility( @@ -43,4 +42,4 @@ public final class PhantomTiger extends CardImpl { public PhantomTiger copy() { return new PhantomTiger(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PhantomWurm.java b/Mage.Sets/src/mage/cards/p/PhantomWurm.java index 36a849e80e4..a94284914af 100644 --- a/Mage.Sets/src/mage/cards/p/PhantomWurm.java +++ b/Mage.Sets/src/mage/cards/p/PhantomWurm.java @@ -2,10 +2,9 @@ package mage.cards.p; import mage.MageInt; -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.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -28,8 +27,7 @@ public final class PhantomWurm extends CardImpl { this.toughness = new MageInt(0); // Phantom Wurm 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))); // If damage would be dealt to Phantom Wurm, prevent that damage. Remove a +1/+1 counter from Phantom Wurm. this.addAbility(new SimpleStaticAbility( @@ -45,4 +43,4 @@ public final class PhantomWurm extends CardImpl { public PhantomWurm copy() { return new PhantomWurm(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/p/PredationSteward.java b/Mage.Sets/src/mage/cards/p/PredationSteward.java index 412275e7d9c..2189bc302ac 100644 --- a/Mage.Sets/src/mage/cards/p/PredationSteward.java +++ b/Mage.Sets/src/mage/cards/p/PredationSteward.java @@ -3,12 +3,11 @@ package mage.cards.p; 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.common.TapSourceCost; 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; @@ -33,10 +32,7 @@ public final class PredationSteward extends CardImpl { this.toughness = new MageInt(2); // Predation Steward 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))); // {2}{G}, {T}, Remove an oil counter from Predation Steward: Target creature gets +2/+2 until end of turn. Activate only as a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/p/PurestrainGenestealer.java b/Mage.Sets/src/mage/cards/p/PurestrainGenestealer.java index 627a47ad9b7..0579678948f 100644 --- a/Mage.Sets/src/mage/cards/p/PurestrainGenestealer.java +++ b/Mage.Sets/src/mage/cards/p/PurestrainGenestealer.java @@ -2,10 +2,9 @@ package mage.cards.p; 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.counter.AddCountersSourceEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -30,9 +29,7 @@ public final class PurestrainGenestealer extends CardImpl { this.toughness = new MageInt(1); // Purestrain Genestealer 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))); // Vanguard Species -- Whenever Purestrain Genestealer attacks, you may remove a +1/+1 counter from it. If you do, search your library for a basic land card, put it onto the battlefield tapped, then shuffle. this.addAbility(new AttacksTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/r/RampagingMonument.java b/Mage.Sets/src/mage/cards/r/RampagingMonument.java index d28d37d0523..1617560d6e8 100644 --- a/Mage.Sets/src/mage/cards/r/RampagingMonument.java +++ b/Mage.Sets/src/mage/cards/r/RampagingMonument.java @@ -1,18 +1,19 @@ package mage.cards.r; -import java.util.UUID; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.constants.SubType; import mage.abilities.keyword.TrampleAbility; 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 java.util.UUID; + /** * * @author TheElk801 @@ -30,10 +31,7 @@ public final class RampagingMonument extends CardImpl { this.addAbility(TrampleAbility.getInstance()); // Rampaging Monument 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 you cast a multicolored spell, put a +1/+1 counter on Rampaging Monument. this.addAbility(new SpellCastControllerTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/r/RampantRejuvenator.java b/Mage.Sets/src/mage/cards/r/RampantRejuvenator.java index 5d1aba22a98..16df605ce81 100644 --- a/Mage.Sets/src/mage/cards/r/RampantRejuvenator.java +++ b/Mage.Sets/src/mage/cards/r/RampantRejuvenator.java @@ -4,9 +4,8 @@ import mage.MageInt; import mage.MageItem; 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.cards.Cards; @@ -38,9 +37,7 @@ public final class RampantRejuvenator extends CardImpl { this.toughness = new MageInt(0); // Rampant Rejuvenator 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))); // When Rampant Rejuvenator dies, search your library for up to X basic land cards, where X is Rampant Rejuvenator's power, put them onto the battlefield, then shuffle. this.addAbility(new DiesSourceTriggeredAbility(new RampantRejuvenatorEffect())); diff --git a/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java b/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java index 34bfd6ab556..a4c1158b893 100644 --- a/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java +++ b/Mage.Sets/src/mage/cards/r/RasputinDreamweaver.java @@ -4,7 +4,7 @@ import mage.MageInt; import mage.Mana; import mage.abilities.Ability; import mage.abilities.common.CantHaveMoreThanAmountCountersSourceAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.Condition; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -42,10 +42,7 @@ public final class RasputinDreamweaver extends CardImpl { this.toughness = new MageInt(1); // Rasputin Dreamweaver enters the battlefield with seven dream counters on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.DREAM.createInstance(7)), - "with seven dream counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.DREAM.createInstance(7))); // Remove a dream counter from Rasputin: Add {C}. this.addAbility(new SimpleManaAbility( diff --git a/Mage.Sets/src/mage/cards/r/ReapingWillow.java b/Mage.Sets/src/mage/cards/r/ReapingWillow.java index 39cfd095bd7..82b4b3a6691 100644 --- a/Mage.Sets/src/mage/cards/r/ReapingWillow.java +++ b/Mage.Sets/src/mage/cards/r/ReapingWillow.java @@ -1,25 +1,24 @@ package mage.cards.r; -import java.util.UUID; import mage.MageInt; -import mage.constants.SubType; -import mage.counters.CounterType; -import mage.filter.common.FilterCreatureCard; -import mage.filter.predicate.mageobject.ManaValuePredicate; -import mage.target.common.TargetCardInYourGraveyard; -import mage.target.common.TargetCreaturePermanent; 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.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ComparisonType; +import mage.constants.SubType; +import mage.counters.CounterType; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.mageobject.ManaValuePredicate; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; /** * @@ -45,10 +44,7 @@ public final class ReapingWillow extends CardImpl { this.addAbility(LifelinkAbility.getInstance()); // 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}{W/B}, Remove two counters from this creature: Return target creature card with mana value 3 or less from your graveyard to the battlefield. Activate only as a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl<>("{1}{W/B}")); diff --git a/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java b/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java index c84fa9dc2ec..611955bd739 100644 --- a/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java +++ b/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java @@ -2,7 +2,7 @@ package mage.cards.r; 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.condition.Condition; import mage.abilities.condition.common.SourceHasCounterCondition; @@ -12,7 +12,6 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.CrewAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -40,9 +39,7 @@ public final class ReckonerBankbuster extends CardImpl { this.toughness = new MageInt(4); // Reckoner Bankbuster enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect( - CounterType.CHARGE.createInstance(3) - ), "with three charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {2}, {T}, Remove a charge counter from Reckoner Bankbuster: Draw a card. Then if there are no charge counters on Reckoner Bankbuster, create a Treasure token and a 1/1 colorless Pilot creature token with "This creature crews Vehicles as though its power were 2 greater." Ability ability = new SimpleActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/r/ReluctantDounguard.java b/Mage.Sets/src/mage/cards/r/ReluctantDounguard.java index aa9b237659e..c4f7decac75 100644 --- a/Mage.Sets/src/mage/cards/r/ReluctantDounguard.java +++ b/Mage.Sets/src/mage/cards/r/ReluctantDounguard.java @@ -1,11 +1,10 @@ package mage.cards.r; 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.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -32,10 +31,7 @@ public final class ReluctantDounguard 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 enters while this creature has a -1/-1 counter on it, remove a -1/-1 counter from this creature. this.addAbility(new EntersBattlefieldAllTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/r/ResistanceBomber.java b/Mage.Sets/src/mage/cards/r/ResistanceBomber.java index b5ca1bade46..7fba4c9992d 100644 --- a/Mage.Sets/src/mage/cards/r/ResistanceBomber.java +++ b/Mage.Sets/src/mage/cards/r/ResistanceBomber.java @@ -2,12 +2,11 @@ package mage.cards.r; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.condition.common.SourceAttackingCondition; import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.common.ActivateIfConditionActivatedAbility; import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.SpaceflightAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,9 +34,7 @@ public final class ResistanceBomber extends CardImpl { this.addAbility(SpaceflightAbility.getInstance()); // Resistance Bomber enters the battlefield with a charge counter on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), "with a charge counter on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance())); // Remove a charge counter from Resistance Bomber: Resistance Bomber deals 5 damage to target creature. Activate this ability only if Resistance Bomber is attacking. Ability ability = new ActivateIfConditionActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java b/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java index 8223b5f7c3c..6da294a3b26 100644 --- a/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java +++ b/Mage.Sets/src/mage/cards/r/ReyhanLastOfTheAbzan.java @@ -1,11 +1,9 @@ package mage.cards.r; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; 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.AddCountersTargetEffect; import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; @@ -22,6 +20,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -38,7 +38,7 @@ public final class ReyhanLastOfTheAbzan extends CardImpl { this.toughness = new MageInt(0); // Reyhan, Last of the Abzan 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 a creature you control dies or is put into the command zone, if it had one or more +1/+1 counters on it, you may put that may +1/+1 counters on target creature. Ability ability = new ReyhanLastOfTheAbzanTriggeredAbility(); diff --git a/Mage.Sets/src/mage/cards/r/RhoxPummeler.java b/Mage.Sets/src/mage/cards/r/RhoxPummeler.java index b143a41ecb0..a05165595ef 100644 --- a/Mage.Sets/src/mage/cards/r/RhoxPummeler.java +++ b/Mage.Sets/src/mage/cards/r/RhoxPummeler.java @@ -1,13 +1,12 @@ package mage.cards.r; import mage.MageInt; -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.GainAbilitySourceEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -33,11 +32,7 @@ public final class RhoxPummeler extends CardImpl { this.toughness = new MageInt(3); // Rhox Pummeler 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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); // As long as Rhox Pummeler has a shield counter on it, it has trample. this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( diff --git a/Mage.Sets/src/mage/cards/r/RigoStreetwiseMentor.java b/Mage.Sets/src/mage/cards/r/RigoStreetwiseMentor.java index 1b9d07cad8a..60abb2911ce 100644 --- a/Mage.Sets/src/mage/cards/r/RigoStreetwiseMentor.java +++ b/Mage.Sets/src/mage/cards/r/RigoStreetwiseMentor.java @@ -3,9 +3,8 @@ package mage.cards.r; import mage.MageInt; import mage.MageObject; import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; 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; @@ -35,11 +34,7 @@ public final class RigoStreetwiseMentor extends CardImpl { this.toughness = new MageInt(2); // Rigo, Streetwise Mentor 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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); // Whenever you attack a player or planeswalker with one or more creatures with power 1 or less, draw a card. this.addAbility(new RigoStreetwiseMentorTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/r/RingOfThreeWishes.java b/Mage.Sets/src/mage/cards/r/RingOfThreeWishes.java index 0619ac3869d..253d6cf07b4 100644 --- a/Mage.Sets/src/mage/cards/r/RingOfThreeWishes.java +++ b/Mage.Sets/src/mage/cards/r/RingOfThreeWishes.java @@ -1,22 +1,21 @@ package mage.cards.r; -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.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author Plopman @@ -24,10 +23,10 @@ import mage.target.common.TargetCardInLibrary; public final class RingOfThreeWishes extends CardImpl { public RingOfThreeWishes(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); // Ring of Three 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))); // {5}, {T}, Remove a wish counter from Ring of Three Wishes: Search your library for a card and put that card into your hand. Then shuffle your library. Ability ability = new SimpleActivatedAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(), false, true), new ManaCostsImpl<>("{5}")); ability.addCost(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/r/RocHatchling.java b/Mage.Sets/src/mage/cards/r/RocHatchling.java index 887e701cdb7..5a6747b8303 100644 --- a/Mage.Sets/src/mage/cards/r/RocHatchling.java +++ b/Mage.Sets/src/mage/cards/r/RocHatchling.java @@ -2,14 +2,13 @@ package mage.cards.r; 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.BoostSourceEffect; 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.FlyingAbility; import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; @@ -37,10 +36,7 @@ public final class RocHatchling extends CardImpl { this.toughness = new MageInt(1); // Roc Hatchling enters the battlefield with four shell counters on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.SHELL.createInstance(4)), - "with four shell counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHELL.createInstance(4))); // At the beginning of your upkeep, remove a shell counter from Roc Hatchling. this.addAbility(new BeginningOfUpkeepTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/SaltRoadQuartermasters.java b/Mage.Sets/src/mage/cards/s/SaltRoadQuartermasters.java index 2501e86e2be..5a4bd734196 100644 --- a/Mage.Sets/src/mage/cards/s/SaltRoadQuartermasters.java +++ b/Mage.Sets/src/mage/cards/s/SaltRoadQuartermasters.java @@ -1,23 +1,22 @@ package mage.cards.s; -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.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.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -25,15 +24,14 @@ import mage.target.common.TargetCreaturePermanent; public final class SaltRoadQuartermasters extends CardImpl { public SaltRoadQuartermasters(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.HUMAN); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(1); this.toughness = new MageInt(1); // Salt Road Quartermasters 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))); // {2}{G}, Remove a +1/+1 counter from Salt Road Quartermasters: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new ManaCostsImpl<>("{2}{G}")); diff --git a/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java b/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java index 2fd420af1a6..43273837786 100644 --- a/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java +++ b/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java @@ -1,13 +1,12 @@ package mage.cards.s; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.costs.common.RemoveCounterCost; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DoIfCostPaid; 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; @@ -48,11 +47,7 @@ public final class SanctuaryWarden extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Sanctuary Warden enters the battlefield with two shield counters on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.SHIELD.createInstance(2)), - "with two shield counters on it. (If it would be dealt damage " - + "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(2))); // Whenever Sanctuary Warden enters the battlefield or attacks, you may remove a counter from a creature or planeswalker you control. If you do, draw a card and create a 1/1 green and white Citizen creature token. this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/SavageFirecat.java b/Mage.Sets/src/mage/cards/s/SavageFirecat.java index 0fbb7701023..6fd7e3ef972 100644 --- a/Mage.Sets/src/mage/cards/s/SavageFirecat.java +++ b/Mage.Sets/src/mage/cards/s/SavageFirecat.java @@ -2,8 +2,7 @@ package mage.cards.s; import mage.MageInt; 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.TrampleAbility; import mage.cards.CardImpl; @@ -36,10 +35,7 @@ public final class SavageFirecat extends CardImpl { this.addAbility(TrampleAbility.getInstance()); // Savage Firecat enters the battlefield with seven +1/+1 counters on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.P1P1.createInstance(7)), - "with seven +1/+1 counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(7))); // Whenever you tap a land for mana, remove a +1/+1 counter from Savage Firecat. this.addAbility(new SavageFirecatTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/s/ScholarOfNewHorizons.java b/Mage.Sets/src/mage/cards/s/ScholarOfNewHorizons.java index fde56aea8bb..b67c30b9d67 100644 --- a/Mage.Sets/src/mage/cards/s/ScholarOfNewHorizons.java +++ b/Mage.Sets/src/mage/cards/s/ScholarOfNewHorizons.java @@ -2,14 +2,13 @@ package mage.cards.s; 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.condition.Condition; import mage.abilities.condition.common.OpponentControlsMoreCondition; import mage.abilities.costs.common.RemoveCounterCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,10 +42,7 @@ public final class ScholarOfNewHorizons extends CardImpl { this.toughness = new MageInt(1); // Scholar of New Horizons 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))); // {T}, Remove a counter from a permanent you control: Search your library for a Plains card and reveal it. If an opponent controls more lands than you, you may put that card onto the battlefield tapped. If you don't put the card onto the battlefield, put it into your hand. Then shuffle. Ability ability = new SimpleActivatedAbility(new ScholarOfNewHorizonsEffect(), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/s/ScroungingBandar.java b/Mage.Sets/src/mage/cards/s/ScroungingBandar.java index 108102b4edd..a145f69d3e2 100644 --- a/Mage.Sets/src/mage/cards/s/ScroungingBandar.java +++ b/Mage.Sets/src/mage/cards/s/ScroungingBandar.java @@ -1,24 +1,22 @@ package mage.cards.s; -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.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.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; -import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; import static mage.filter.StaticFilters.FILTER_ANOTHER_TARGET_CREATURE; @@ -37,7 +35,7 @@ public final class ScroungingBandar extends CardImpl { this.toughness = new MageInt(0); // Scrounging Bandar 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 you upkeep, you may move any number of +1/+1 counters from Scrounging Bandar onto another target creature. Ability ability = new BeginningOfUpkeepTriggeredAbility(new ScroungingBandarEffect(), true); diff --git a/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java b/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java index cffae4db16e..580dda420e9 100644 --- a/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java +++ b/Mage.Sets/src/mage/cards/s/SekkiSeasonsGuide.java @@ -1,16 +1,14 @@ package mage.cards.s; -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.common.SimpleStaticAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.PreventionEffectImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; @@ -22,6 +20,8 @@ import mage.game.permanent.Permanent; import mage.game.permanent.token.SpiritToken; import mage.target.common.TargetSacrifice; +import java.util.UUID; + /** * * @author LevelX2 @@ -31,7 +31,7 @@ public final class SekkiSeasonsGuide extends CardImpl { private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.SPIRIT, "Spirits"); public SekkiSeasonsGuide(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}{G}"); this.supertype.add(SuperType.LEGENDARY); this.subtype.add(SubType.SPIRIT); @@ -39,7 +39,7 @@ public final class SekkiSeasonsGuide extends CardImpl { this.toughness = new MageInt(0); // Sekki, Seasons' Guide enters the battlefield with eight +1/+1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(8)), "with eight +1/+1 counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.P1P1.createInstance(8))); // If damage would be dealt to Sekki, prevent that damage, remove that many +1/+1 counters from Sekki, and create that many 1/1 colorless Spirit creature tokens. this.addAbility(new SimpleStaticAbility(new SekkiSeasonsGuideEffect())); diff --git a/Mage.Sets/src/mage/cards/s/SelflessPoliceCaptain.java b/Mage.Sets/src/mage/cards/s/SelflessPoliceCaptain.java index 2d900ebf522..4e3f6986dd7 100644 --- a/Mage.Sets/src/mage/cards/s/SelflessPoliceCaptain.java +++ b/Mage.Sets/src/mage/cards/s/SelflessPoliceCaptain.java @@ -3,9 +3,8 @@ package mage.cards.s; 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; @@ -29,10 +28,7 @@ public final class SelflessPoliceCaptain 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 leaves the battlefield, put its +1/+1 counters on target creature you control. Ability ability = new DiesSourceTriggeredAbility(new PutSourceCountersOnTargetEffect(CounterType.P1P1)); diff --git a/Mage.Sets/src/mage/cards/s/ServantOfTheScale.java b/Mage.Sets/src/mage/cards/s/ServantOfTheScale.java index 0bb686c5766..db8a37cb6e4 100644 --- a/Mage.Sets/src/mage/cards/s/ServantOfTheScale.java +++ b/Mage.Sets/src/mage/cards/s/ServantOfTheScale.java @@ -1,20 +1,18 @@ package mage.cards.s; -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.Effect; import mage.abilities.effects.OneShotEffect; -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.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; @@ -22,6 +20,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -36,8 +36,7 @@ public final class ServantOfTheScale extends CardImpl { this.toughness = new MageInt(0); // Servant of the Scale 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 Servant of the Scale dies, put X +1/+1 counters on target creature you control, where X is the number of +1/+1 counter on Servant of the Scale. Ability ability = new DiesSourceTriggeredAbility(new ServantOfTheScaleEffect(), false); diff --git a/Mage.Sets/src/mage/cards/s/Shinewend.java b/Mage.Sets/src/mage/cards/s/Shinewend.java index cee7c93558a..f5be48ae53e 100644 --- a/Mage.Sets/src/mage/cards/s/Shinewend.java +++ b/Mage.Sets/src/mage/cards/s/Shinewend.java @@ -1,24 +1,23 @@ package mage.cards.s; -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.DestroyTargetEffect; -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.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** * * @author Loki @@ -26,7 +25,7 @@ import mage.target.common.TargetEnchantmentPermanent; public final class Shinewend extends CardImpl { public Shinewend(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(0); @@ -36,10 +35,10 @@ public final class Shinewend extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Shinewend 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}{W}, Remove a +1/+1 counter from Shinewend: Destroy target enchantment. - Ability ability = new SimpleActivatedAbility( new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{W}")); + Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{W}")); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); ability.addTarget(new TargetEnchantmentPermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/ShrewdHatchling.java b/Mage.Sets/src/mage/cards/s/ShrewdHatchling.java index efa72457f56..941f150024b 100644 --- a/Mage.Sets/src/mage/cards/s/ShrewdHatchling.java +++ b/Mage.Sets/src/mage/cards/s/ShrewdHatchling.java @@ -3,12 +3,11 @@ package mage.cards.s; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.combat.CantBeBlockedByTargetSourceEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -43,9 +42,7 @@ public final class ShrewdHatchling extends CardImpl { this.toughness = new MageInt(6); // Shrewd 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))); // {U/R}: Target creature can't block Shrewd Hatchling this turn. Ability ability = new SimpleActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/s/Shriekhorn.java b/Mage.Sets/src/mage/cards/s/Shriekhorn.java index b098369f1b4..d5f37fe311e 100644 --- a/Mage.Sets/src/mage/cards/s/Shriekhorn.java +++ b/Mage.Sets/src/mage/cards/s/Shriekhorn.java @@ -1,12 +1,11 @@ package mage.cards.s; 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.MillCardsTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -23,11 +22,7 @@ public final class Shriekhorn extends CardImpl { public Shriekhorn(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect( - CounterType.CHARGE.createInstance(3) - ), "with three charge counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); Ability ability = new SimpleActivatedAbility(new MillCardsTargetEffect(2), new TapSourceCost()); ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); diff --git a/Mage.Sets/src/mage/cards/s/SisterhoodOfKarn.java b/Mage.Sets/src/mage/cards/s/SisterhoodOfKarn.java index 3711e2f7bd8..c13d84fa505 100644 --- a/Mage.Sets/src/mage/cards/s/SisterhoodOfKarn.java +++ b/Mage.Sets/src/mage/cards/s/SisterhoodOfKarn.java @@ -1,10 +1,9 @@ package mage.cards.s; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.DoubleCountersSourceEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AbilityWord; @@ -37,10 +36,7 @@ public final class SisterhoodOfKarn extends CardImpl { this.toughness = new MageInt(0); // Sisterhood of Karn 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())); // Paradox -- Whenever you cast a spell from anywhere other than your hand, double the number of +1/+1 counters on Sisterhood of Karn. this.addAbility(new SpellCastControllerTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/SkeletonScavengers.java b/Mage.Sets/src/mage/cards/s/SkeletonScavengers.java index d4794fd8bac..b1679f4adbc 100644 --- a/Mage.Sets/src/mage/cards/s/SkeletonScavengers.java +++ b/Mage.Sets/src/mage/cards/s/SkeletonScavengers.java @@ -2,7 +2,7 @@ package mage.cards.s; 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.delayed.ReflexiveTriggeredAbility; import mage.abilities.costs.Cost; @@ -35,8 +35,7 @@ public final class SkeletonScavengers extends CardImpl { this.toughness = new MageInt(0); // Skeleton Scavengers 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())); // Pay {1} for each +1/+1 counter on Skeleton Scavengers: Regenerate Skeleton Scavengers. When it regenerates this way, put a +1/+1 counter on it. this.addAbility(new SimpleActivatedAbility( @@ -104,4 +103,4 @@ class DynamicValueGenericManaCost extends CostImpl { private void setText() { text = ("Pay {1} for each +1/+1 counter on {this}"); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SlumberingWalker.java b/Mage.Sets/src/mage/cards/s/SlumberingWalker.java index 0d8b878453e..c36d637c3ac 100644 --- a/Mage.Sets/src/mage/cards/s/SlumberingWalker.java +++ b/Mage.Sets/src/mage/cards/s/SlumberingWalker.java @@ -1,12 +1,11 @@ package mage.cards.s; import mage.MageInt; -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.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -41,10 +40,7 @@ public final class SlumberingWalker 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))); // At the beginning of your end step, you may remove a counter from this creature. When you do, return target creature card with power 2 or less from your graveyard to the battlefield. ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java b/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java index 2b1c2ba7ecb..e443da01868 100644 --- a/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java +++ b/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java @@ -2,9 +2,8 @@ package mage.cards.s; import mage.MageInt; import mage.abilities.common.DiesThisOrAnotherTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.PartnerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -38,10 +37,7 @@ public final class SlurrkAllIngesting extends CardImpl { this.toughness = new MageInt(0); // Slurrk, All-Ingesting 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 Slurrk or another creature you control dies, if it had a +1/+1 counter on it, put a +1/+1 counter on each creature you control that has a +1/+1 counter on it. this.addAbility(new DiesThisOrAnotherTriggeredAbility(new AddCountersAllEffect( diff --git a/Mage.Sets/src/mage/cards/s/SpikeBreeder.java b/Mage.Sets/src/mage/cards/s/SpikeBreeder.java index 2954e19dae4..0c64e08b624 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeBreeder.java +++ b/Mage.Sets/src/mage/cards/s/SpikeBreeder.java @@ -1,25 +1,24 @@ package mage.cards.s; -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.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.Zone; import mage.counters.CounterType; import mage.game.permanent.token.SpikeToken; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -33,7 +32,7 @@ public final class SpikeBreeder extends CardImpl { this.toughness = new MageInt(0); // Spike Breeder 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}, Remove a +1/+1 counter from Spike Breeder: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/s/SpikeCannibal.java b/Mage.Sets/src/mage/cards/s/SpikeCannibal.java index 992ac29171a..0576db253c0 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeCannibal.java +++ b/Mage.Sets/src/mage/cards/s/SpikeCannibal.java @@ -1,24 +1,24 @@ package mage.cards.s; -import java.util.Objects; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +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.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.Objects; +import java.util.UUID; + /** * * @author spjspj @@ -32,7 +32,7 @@ public final class SpikeCannibal extends CardImpl { this.toughness = new MageInt(0); // Spike Cannibal 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())); // When Spike Cannibal enters the battlefield, move all +1/+1 counters from all creatures onto it. this.addAbility(new EntersBattlefieldTriggeredAbility(new SpikeCannibalEffect())); diff --git a/Mage.Sets/src/mage/cards/s/SpikeColony.java b/Mage.Sets/src/mage/cards/s/SpikeColony.java index 01f89881bb2..f692084ad67 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeColony.java +++ b/Mage.Sets/src/mage/cards/s/SpikeColony.java @@ -1,23 +1,22 @@ package mage.cards.s; -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.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.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -25,14 +24,14 @@ import mage.target.common.TargetCreaturePermanent; public final class SpikeColony extends CardImpl { public SpikeColony(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}"); this.subtype.add(SubType.SPIKE); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Colony 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))); + // {2}, Remove a +1/+1 counter from Spike Colony: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); diff --git a/Mage.Sets/src/mage/cards/s/SpikeDrone.java b/Mage.Sets/src/mage/cards/s/SpikeDrone.java index 619fe1ce9fc..85e29398f4f 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeDrone.java +++ b/Mage.Sets/src/mage/cards/s/SpikeDrone.java @@ -1,22 +1,21 @@ package mage.cards.s; -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.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.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -24,15 +23,14 @@ import mage.target.common.TargetCreaturePermanent; public final class SpikeDrone extends CardImpl { public SpikeDrone(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}"); this.subtype.add(SubType.SPIKE); this.subtype.add(SubType.DRONE); this.power = new MageInt(0); this.toughness = new MageInt(0); - 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))); Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(1)), new GenericManaCost(2)); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); diff --git a/Mage.Sets/src/mage/cards/s/SpikeFeeder.java b/Mage.Sets/src/mage/cards/s/SpikeFeeder.java index 3be08fa3891..264c2a2f257 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeFeeder.java +++ b/Mage.Sets/src/mage/cards/s/SpikeFeeder.java @@ -1,24 +1,23 @@ package mage.cards.s; -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.GainLifeEffect; -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.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author Loki @@ -26,14 +25,14 @@ import mage.target.common.TargetCreaturePermanent; public final class SpikeFeeder extends CardImpl { public SpikeFeeder(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{G}"); this.subtype.add(SubType.SPIKE); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Feeder 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))); // {2}, Remove a +1/+1 counter from Spike Feeder: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); diff --git a/Mage.Sets/src/mage/cards/s/SpikeHatcher.java b/Mage.Sets/src/mage/cards/s/SpikeHatcher.java index 56c0085137c..1599fd95a1c 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeHatcher.java +++ b/Mage.Sets/src/mage/cards/s/SpikeHatcher.java @@ -1,24 +1,23 @@ package mage.cards.s; -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.RegenerateSourceEffect; -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.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author fireshoes @@ -26,25 +25,25 @@ import mage.target.common.TargetCreaturePermanent; public final class SpikeHatcher extends CardImpl { public SpikeHatcher(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{6}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{G}"); this.subtype.add(SubType.SPIKE); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Hatcher 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))); + // {2}, Remove a +1/+1 counter from Spike Hatcher: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); - + // {1}, Remove a +1/+1 counter from Spike Hatcher: Regenerate Spike Hatcher. Ability ability2 = new SimpleActivatedAbility(new RegenerateSourceEffect(), new GenericManaCost(1)); ability2.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); this.addAbility(ability2); - + } private SpikeHatcher(final SpikeHatcher card) { diff --git a/Mage.Sets/src/mage/cards/s/SpikeRogue.java b/Mage.Sets/src/mage/cards/s/SpikeRogue.java index 0873b0b5323..a6a4c6185ea 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeRogue.java +++ b/Mage.Sets/src/mage/cards/s/SpikeRogue.java @@ -2,7 +2,7 @@ package mage.cards.s; 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.RemoveCountersSourceCost; @@ -31,7 +31,7 @@ public final class SpikeRogue extends CardImpl { this.toughness = new MageInt(0); // Spike Rogue 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))); // {2}, Remove a +1/+1 counter from Spike Rogue: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/s/SpikeSoldier.java b/Mage.Sets/src/mage/cards/s/SpikeSoldier.java index 3784ea6d470..b32185a937a 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeSoldier.java +++ b/Mage.Sets/src/mage/cards/s/SpikeSoldier.java @@ -1,25 +1,24 @@ package mage.cards.s; -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.continuous.BoostSourceEffect; -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.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -27,14 +26,14 @@ import mage.target.common.TargetCreaturePermanent; public final class SpikeSoldier extends CardImpl { public SpikeSoldier(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.SPIKE); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Soldier 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}, Remove a +1/+1 counter from Spike Soldier: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{2}")); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); @@ -42,7 +41,7 @@ public final class SpikeSoldier extends CardImpl { this.addAbility(ability); // Remove a +1/+1 counter from Spike Soldier: Spike Soldier gets +2/+2 until end of turn. this.addAbility(new SimpleActivatedAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn), - new RemoveCountersSourceCost(CounterType.P1P1.createInstance()))); + new RemoveCountersSourceCost(CounterType.P1P1.createInstance()))); } private SpikeSoldier(final SpikeSoldier card) { diff --git a/Mage.Sets/src/mage/cards/s/SpikeTiller.java b/Mage.Sets/src/mage/cards/s/SpikeTiller.java index 2a88bc0ffcc..1eeaac82ec2 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeTiller.java +++ b/Mage.Sets/src/mage/cards/s/SpikeTiller.java @@ -1,27 +1,26 @@ package mage.cards.s; -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.BecomesCreatureTargetEffect; -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.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.counters.CounterType; import mage.game.permanent.token.custom.CreatureToken; import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** * * @author L_J @@ -29,14 +28,14 @@ import mage.target.common.TargetLandPermanent; public final class SpikeTiller extends CardImpl { public SpikeTiller(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); this.subtype.add(SubType.SPIKE); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Tiller 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}, Remove a +1/+1 counter from Spike Tiller: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/s/SpikeWeaver.java b/Mage.Sets/src/mage/cards/s/SpikeWeaver.java index 7c69fcf748d..c28c229a2cd 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeWeaver.java +++ b/Mage.Sets/src/mage/cards/s/SpikeWeaver.java @@ -1,25 +1,24 @@ package mage.cards.s; -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.PreventAllDamageByAllPermanentsEffect; -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.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -34,7 +33,7 @@ public final class SpikeWeaver extends CardImpl { this.toughness = new MageInt(0); // Spike Weaver 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}, Remove a +1/+1 counter from Spike Weaver: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/s/SpikeWorker.java b/Mage.Sets/src/mage/cards/s/SpikeWorker.java index 58be2311098..57e037f239c 100644 --- a/Mage.Sets/src/mage/cards/s/SpikeWorker.java +++ b/Mage.Sets/src/mage/cards/s/SpikeWorker.java @@ -1,23 +1,22 @@ package mage.cards.s; -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.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.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LoneFox @@ -25,13 +24,13 @@ import mage.target.common.TargetCreaturePermanent; public final class SpikeWorker extends CardImpl { public SpikeWorker(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.SPIKE); this.power = new MageInt(0); this.toughness = new MageInt(0); // Spike Worker 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))); // {2}, Remove a +1/+1 counter from Spike Worker: Put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{2}")); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance())); diff --git a/Mage.Sets/src/mage/cards/s/SpitefulSquad.java b/Mage.Sets/src/mage/cards/s/SpitefulSquad.java index bc90cfd4ca9..7430a0c1ac7 100644 --- a/Mage.Sets/src/mage/cards/s/SpitefulSquad.java +++ b/Mage.Sets/src/mage/cards/s/SpitefulSquad.java @@ -3,9 +3,8 @@ package mage.cards.s; 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.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -33,10 +32,7 @@ public final class SpitefulSquad extends CardImpl { this.addAbility(DeathtouchAbility.getInstance()); // Spiteful Squad 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))); // When Spiteful Squad dies, put its counters on target creature you control. Ability ability = new DiesSourceTriggeredAbility(new PutSourceCountersOnTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/s/StarPupil.java b/Mage.Sets/src/mage/cards/s/StarPupil.java index 8a7d3c4e856..ad229262150 100644 --- a/Mage.Sets/src/mage/cards/s/StarPupil.java +++ b/Mage.Sets/src/mage/cards/s/StarPupil.java @@ -3,9 +3,8 @@ package mage.cards.s; 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; @@ -29,10 +28,7 @@ public final class StarPupil extends CardImpl { this.toughness = new MageInt(0); // Star Pupil 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())); // When Star Pupil dies, put its counters on target creature you control. Ability ability = new DiesSourceTriggeredAbility(new PutSourceCountersOnTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/s/Stingmoggie.java b/Mage.Sets/src/mage/cards/s/Stingmoggie.java index 5346d0efae1..0b31ada3af4 100644 --- a/Mage.Sets/src/mage/cards/s/Stingmoggie.java +++ b/Mage.Sets/src/mage/cards/s/Stingmoggie.java @@ -1,25 +1,24 @@ package mage.cards.s; -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.DestroyTargetEffect; -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.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki @@ -35,15 +34,15 @@ public final class Stingmoggie extends CardImpl { } public Stingmoggie(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(0); this.toughness = new MageInt(0); // Stingmoggie 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))); + // {3}{R}, Remove a +1/+1 counter from Stingmoggie: Destroy target artifact or land. Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{3}{R}")); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); diff --git a/Mage.Sets/src/mage/cards/s/SturdyHatchling.java b/Mage.Sets/src/mage/cards/s/SturdyHatchling.java index a9934ba016c..96503f7303c 100644 --- a/Mage.Sets/src/mage/cards/s/SturdyHatchling.java +++ b/Mage.Sets/src/mage/cards/s/SturdyHatchling.java @@ -1,27 +1,26 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; 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.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.counters.CounterType; import mage.filter.FilterSpell; import mage.filter.predicate.mageobject.ColorPredicate; +import java.util.UUID; + /** * @author Loki */ @@ -36,15 +35,15 @@ public final class SturdyHatchling extends CardImpl { } public SturdyHatchling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G/U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G/U}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(6); this.toughness = new MageInt(6); - + // Sturdy 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))); // {G/U}: Sturdy Hatchling gains shroud until end of turn. this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(ShroudAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{G/U}"))); // Whenever you cast a green spell, remove a -1/-1 counter from Sturdy Hatchling. diff --git a/Mage.Sets/src/mage/cards/s/SunsetPyramid.java b/Mage.Sets/src/mage/cards/s/SunsetPyramid.java index ae696fdef07..a8ddcf95b3e 100644 --- a/Mage.Sets/src/mage/cards/s/SunsetPyramid.java +++ b/Mage.Sets/src/mage/cards/s/SunsetPyramid.java @@ -1,22 +1,21 @@ package mage.cards.s; -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.costs.mana.GenericManaCost; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author spjspj @@ -27,7 +26,7 @@ public final class SunsetPyramid extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // Sunset Pyramid enters the battlefield with three brick counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.BRICK.createInstance(3)), "with three brick counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.BRICK.createInstance(3))); // {2}, {T}, Remove a brick counter from Sunset Pyramid: Draw a card. Ability ability = new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/s/SurgeNode.java b/Mage.Sets/src/mage/cards/s/SurgeNode.java index 8ab73e841c0..09ef30b09a6 100644 --- a/Mage.Sets/src/mage/cards/s/SurgeNode.java +++ b/Mage.Sets/src/mage/cards/s/SurgeNode.java @@ -3,17 +3,15 @@ package mage.cards.s; 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.costs.mana.GenericManaCost; -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.Zone; import mage.counters.CounterType; import mage.target.common.TargetArtifactPermanent; @@ -26,7 +24,7 @@ public final class SurgeNode extends CardImpl { public SurgeNode(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(6)), "with six charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(6))); Ability ability = new SimpleActivatedAbility(new AddCountersTargetEffect(CounterType.CHARGE.createInstance()), new GenericManaCost(1)); ability.addCost(new TapSourceCost()); ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); diff --git a/Mage.Sets/src/mage/cards/s/SwarmShambler.java b/Mage.Sets/src/mage/cards/s/SwarmShambler.java index 3f998b5bf48..0e6b2f0a73d 100644 --- a/Mage.Sets/src/mage/cards/s/SwarmShambler.java +++ b/Mage.Sets/src/mage/cards/s/SwarmShambler.java @@ -3,7 +3,7 @@ package mage.cards.s; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BecomesTargetAnyTriggeredAbility; -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; @@ -40,10 +40,7 @@ public final class SwarmShambler extends CardImpl { this.toughness = new MageInt(0); // Swarm Shambler 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))); // Whenever a creature you control with a +1/+1 counter on it becomes the target of a spell an opponent controls, create a 1/1 green Insect creature token. this.addAbility(new BecomesTargetAnyTriggeredAbility(new CreateTokenEffect(new InsectToken()), diff --git a/Mage.Sets/src/mage/cards/s/SwoopingProtector.java b/Mage.Sets/src/mage/cards/s/SwoopingProtector.java index b0c2b554087..40ec08df6c3 100644 --- a/Mage.Sets/src/mage/cards/s/SwoopingProtector.java +++ b/Mage.Sets/src/mage/cards/s/SwoopingProtector.java @@ -1,8 +1,7 @@ package mage.cards.s; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAbility; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -33,11 +32,7 @@ public final class SwoopingProtector extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Swooping Protector 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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); } private SwoopingProtector(final SwoopingProtector card) { diff --git a/Mage.Sets/src/mage/cards/t/TamiyosImmobilizer.java b/Mage.Sets/src/mage/cards/t/TamiyosImmobilizer.java index f327fe712a4..90d4cad773a 100644 --- a/Mage.Sets/src/mage/cards/t/TamiyosImmobilizer.java +++ b/Mage.Sets/src/mage/cards/t/TamiyosImmobilizer.java @@ -1,14 +1,11 @@ package mage.cards.t; -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.TapTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -16,6 +13,8 @@ import mage.counters.CounterType; import mage.filter.StaticFilters; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author TheElk801 */ @@ -25,10 +24,7 @@ public final class TamiyosImmobilizer extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}{U}"); // Tamiyo's Immobilizer enters the battlefield with four oil counters. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.OIL.createInstance(4)), - "with four oil counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.OIL.createInstance(4))); // {T}, Remove an oil counter from Tamiyo's Immobilizer: Tap target artifact or creature. Ability ability = new SimpleActivatedAbility(new TapTargetEffect(), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/t/TendoIceBridge.java b/Mage.Sets/src/mage/cards/t/TendoIceBridge.java index da202c44736..46bfab00186 100644 --- a/Mage.Sets/src/mage/cards/t/TendoIceBridge.java +++ b/Mage.Sets/src/mage/cards/t/TendoIceBridge.java @@ -1,11 +1,9 @@ package mage.cards.t; -import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.mana.AnyColorManaAbility; import mage.abilities.mana.ColorlessManaAbility; import mage.cards.CardImpl; @@ -13,6 +11,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author Loki @@ -20,10 +20,9 @@ import mage.counters.CounterType; public final class TendoIceBridge extends CardImpl { public TendoIceBridge(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // Tendo Ice Bridge 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))); // {tap}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {tap}, Remove a charge counter from Tendo Ice Bridge: Add one mana of any color. diff --git a/Mage.Sets/src/mage/cards/t/Tetravus.java b/Mage.Sets/src/mage/cards/t/Tetravus.java index c7363423ee3..8bc021fb3dc 100644 --- a/Mage.Sets/src/mage/cards/t/Tetravus.java +++ b/Mage.Sets/src/mage/cards/t/Tetravus.java @@ -1,13 +1,9 @@ package mage.cards.t; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; -import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.common.ExileTargetCost; import mage.abilities.costs.common.RemoveCountersSourceCost; @@ -15,6 +11,7 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; 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; @@ -31,6 +28,10 @@ import mage.players.Player; import mage.target.common.TargetControlledPermanent; import mage.util.CardUtil; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + /** * * @author TheElk801 @@ -47,10 +48,7 @@ public final class Tetravus extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Tetravus 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, you may remove any number of +1/+1 counters from Tetravus. If you do, create that many 1/1 colorless Tetravite artifact creature tokens. They each have flying and "This creature can't be enchanted." this.addAbility(new BeginningOfUpkeepTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/TheMonumentalFacade.java b/Mage.Sets/src/mage/cards/t/TheMonumentalFacade.java index 4bb2be126b1..323d62a2270 100644 --- a/Mage.Sets/src/mage/cards/t/TheMonumentalFacade.java +++ b/Mage.Sets/src/mage/cards/t/TheMonumentalFacade.java @@ -1,26 +1,24 @@ package mage.cards.t; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; -import mage.abilities.common.EntersBattlefieldAbility; -import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.abilities.mana.ColorlessManaAbility; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.target.TargetPermanent; +import java.util.UUID; + /** * @author TheElk801 */ @@ -42,10 +40,7 @@ public final class TheMonumentalFacade extends CardImpl { this.subtype.add(SubType.SPHERE); // The Monumental Facade 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}: Add {C}. this.addAbility(new ColorlessManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/ThopterSquadron.java b/Mage.Sets/src/mage/cards/t/ThopterSquadron.java index 5aa1af6ac9c..f7640cbb26c 100644 --- a/Mage.Sets/src/mage/cards/t/ThopterSquadron.java +++ b/Mage.Sets/src/mage/cards/t/ThopterSquadron.java @@ -1,11 +1,10 @@ package mage.cards.t; -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.common.SacrificeTargetCost; import mage.abilities.costs.mana.GenericManaCost; @@ -23,6 +22,8 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.AnotherPredicate; import mage.game.permanent.token.ThopterColorlessToken; +import java.util.UUID; + /** * * @author LevelX2 @@ -37,7 +38,7 @@ public final class ThopterSquadron extends CardImpl { } public ThopterSquadron(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.THOPTER); this.power = new MageInt(0); this.toughness = new MageInt(0); @@ -45,7 +46,7 @@ public final class ThopterSquadron extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // Thopter Squadron 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))); // {1}, Remove a +1/+1 counter from Thopter Squadron: Create a 1/1 colorless Thopter artifact creature token with flying. Activate this secondAbility only any time you could cast a sorcery. Ability firstAbility = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ThopterColorlessToken(), 1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/cards/t/ThreefoldThunderhulk.java b/Mage.Sets/src/mage/cards/t/ThreefoldThunderhulk.java index d6a42828746..2f3b834a8f5 100644 --- a/Mage.Sets/src/mage/cards/t/ThreefoldThunderhulk.java +++ b/Mage.Sets/src/mage/cards/t/ThreefoldThunderhulk.java @@ -2,8 +2,8 @@ package mage.cards.t; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.GenericManaCost; @@ -33,10 +33,7 @@ public final class ThreefoldThunderhulk extends CardImpl { this.toughness = new MageInt(0); // Threefold Thunderhulk 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 Threefold Thunderhulk enters the battlefield or attacks, create a number of 1/1 colorless Gnome artifact creature tokens equal to its power. this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/TidalInfluence.java b/Mage.Sets/src/mage/cards/t/TidalInfluence.java index 6debbfd6c5f..c20516fdbcd 100644 --- a/Mage.Sets/src/mage/cards/t/TidalInfluence.java +++ b/Mage.Sets/src/mage/cards/t/TidalInfluence.java @@ -3,7 +3,7 @@ package mage.cards.t; import mage.ObjectColor; import mage.abilities.StateTriggeredAbility; import mage.abilities.common.CastOnlyIfConditionIsTrueAbility; -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.PermanentsOnTheBattlefieldCondition; @@ -55,8 +55,7 @@ public final class TidalInfluence extends CardImpl { this.addAbility(new CastOnlyIfConditionIsTrueAbility(conditionCast)); // Tidal Influence 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 Tidal Influence. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.TIDE.createInstance()) diff --git a/Mage.Sets/src/mage/cards/t/TomeOfLegends.java b/Mage.Sets/src/mage/cards/t/TomeOfLegends.java index 35e6bf1f55b..0f102fa2475 100644 --- a/Mage.Sets/src/mage/cards/t/TomeOfLegends.java +++ b/Mage.Sets/src/mage/cards/t/TomeOfLegends.java @@ -1,8 +1,8 @@ package mage.cards.t; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldOrAttacksAllTriggeredAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -35,9 +35,7 @@ public final class TomeOfLegends extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // Tome of Legends enters the battlefield with a page counter on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect( - CounterType.PAGE.createInstance() - ), "with a page counter on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.PAGE.createInstance())); // Whenever your commander enters the battlefield or attacks, put a page counter on Tome of Legends. this.addAbility(new EntersBattlefieldOrAttacksAllTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/TransmogrifyingWand.java b/Mage.Sets/src/mage/cards/t/TransmogrifyingWand.java index a8765f90ee9..a8a1433440b 100644 --- a/Mage.Sets/src/mage/cards/t/TransmogrifyingWand.java +++ b/Mage.Sets/src/mage/cards/t/TransmogrifyingWand.java @@ -2,13 +2,12 @@ package mage.cards.t; 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.CreateTokenControllerTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect; -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 TransmogrifyingWand extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // Transmogrifying Wand enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), - "with three charge counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {1}, {T}, Remove a charge counter from Transmogrifying Wand: Destroy target creature. Its controller creates a 2/4 white Ox creature token. Activate this ability only any time you could cast a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility( @@ -54,4 +50,4 @@ public final class TransmogrifyingWand extends CardImpl { public TransmogrifyingWand copy() { return new TransmogrifyingWand(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/TrawlerDrake.java b/Mage.Sets/src/mage/cards/t/TrawlerDrake.java index c343e7f7774..48e81cd5a83 100644 --- a/Mage.Sets/src/mage/cards/t/TrawlerDrake.java +++ b/Mage.Sets/src/mage/cards/t/TrawlerDrake.java @@ -1,7 +1,7 @@ package mage.cards.t; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; @@ -38,10 +38,7 @@ public final class TrawlerDrake extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Trawler Drake 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())); // Trawler Drake gets +1/+1 for each oil counter on it. this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(xValue, xValue, Duration.WhileOnBattlefield) diff --git a/Mage.Sets/src/mage/cards/t/TrigonOfCorruption.java b/Mage.Sets/src/mage/cards/t/TrigonOfCorruption.java index 89b4c0c5e9d..0b59f0a4b1a 100644 --- a/Mage.Sets/src/mage/cards/t/TrigonOfCorruption.java +++ b/Mage.Sets/src/mage/cards/t/TrigonOfCorruption.java @@ -1,7 +1,7 @@ package mage.cards.t; 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; @@ -12,7 +12,6 @@ import mage.abilities.effects.common.counter.AddCountersTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; @@ -25,10 +24,10 @@ import java.util.UUID; public final class TrigonOfCorruption extends CardImpl { public TrigonOfCorruption (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); // Trigon of Corruption enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), "with three charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {B}{B}, {T}: Put a charge counter on Trigon of Corruption. Ability ability2 = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/t/TrigonOfInfestation.java b/Mage.Sets/src/mage/cards/t/TrigonOfInfestation.java index 36df7dac2c4..b0a06c97613 100644 --- a/Mage.Sets/src/mage/cards/t/TrigonOfInfestation.java +++ b/Mage.Sets/src/mage/cards/t/TrigonOfInfestation.java @@ -1,8 +1,7 @@ package mage.cards.t; -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; @@ -13,20 +12,21 @@ 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.game.permanent.token.InsectInfectToken; +import java.util.UUID; + /** * @author nantuko */ public final class TrigonOfInfestation extends CardImpl { public TrigonOfInfestation(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); // Trigon of Infestation enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), "with three charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {G}{G}, {T}: Put a charge counter on Trigon of Infestation. Ability ability2 = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/t/TrigonOfMending.java b/Mage.Sets/src/mage/cards/t/TrigonOfMending.java index bbaca3b279a..fbdaa231383 100644 --- a/Mage.Sets/src/mage/cards/t/TrigonOfMending.java +++ b/Mage.Sets/src/mage/cards/t/TrigonOfMending.java @@ -1,8 +1,7 @@ package mage.cards.t; -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; @@ -13,20 +12,21 @@ 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 nantuko */ public final class TrigonOfMending extends CardImpl { public TrigonOfMending(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // Trigon of Mending enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), "with three charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {W}{W}, {T}: Put a charge counter on Trigon of Mending. Ability ability2 = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/t/TrigonOfRage.java b/Mage.Sets/src/mage/cards/t/TrigonOfRage.java index 2aabcd6c28e..ad48df54fb9 100644 --- a/Mage.Sets/src/mage/cards/t/TrigonOfRage.java +++ b/Mage.Sets/src/mage/cards/t/TrigonOfRage.java @@ -1,8 +1,7 @@ package mage.cards.t; -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; @@ -15,20 +14,21 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Zone; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author Loki */ public final class TrigonOfRage extends CardImpl { public TrigonOfRage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // Trigon of Rage enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), "with three charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {R}{R}, {T}: Put a charge counter on Trigon of Rage. Ability ability2 = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/t/TrigonOfThought.java b/Mage.Sets/src/mage/cards/t/TrigonOfThought.java index baad3600844..9bb746e739f 100644 --- a/Mage.Sets/src/mage/cards/t/TrigonOfThought.java +++ b/Mage.Sets/src/mage/cards/t/TrigonOfThought.java @@ -1,8 +1,7 @@ package mage.cards.t; -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; @@ -13,19 +12,20 @@ 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 java.util.UUID; + /** * @author nantuko */ public final class TrigonOfThought extends CardImpl { public TrigonOfThought(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}"); // Trigon of Thought enters the battlefield with three charge counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), "with three charge counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); // {U}{U}, {T}: Put a charge counter on Trigon of Thought. Ability ability2 = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/cards/t/Triskelavus.java b/Mage.Sets/src/mage/cards/t/Triskelavus.java index 0ea2027facf..12c93f6eca7 100644 --- a/Mage.Sets/src/mage/cards/t/Triskelavus.java +++ b/Mage.Sets/src/mage/cards/t/Triskelavus.java @@ -1,24 +1,23 @@ package mage.cards.t; -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.CreateTokenEffect; -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.game.permanent.token.TriskelaviteToken; +import java.util.UUID; + /** * * @author fireshoes @@ -35,7 +34,7 @@ public final class Triskelavus extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Triskelavus 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))); // {1}, Remove a +1/+1 counter from Triskelavus: Create a 1/1 colorless Triskelavite artifact creature token with flying. It has "Sacrifice this creature: This creature deals 1 damage to any target." Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new TriskelaviteToken()), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/cards/t/Triskelion.java b/Mage.Sets/src/mage/cards/t/Triskelion.java index 1ab500d52f4..e0be11af0cd 100644 --- a/Mage.Sets/src/mage/cards/t/Triskelion.java +++ b/Mage.Sets/src/mage/cards/t/Triskelion.java @@ -1,21 +1,20 @@ package mage.cards.t; -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.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 BetaSteward_at_googlemail.com @@ -23,14 +22,13 @@ import mage.target.common.TargetAnyTarget; public final class Triskelion extends CardImpl { public Triskelion(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{6}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{6}"); this.subtype.add(SubType.CONSTRUCT); this.power = new MageInt(1); this.toughness = new MageInt(1); // Triskelion 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))); // Remove a +1/+1 counter from Triskelion: Triskelion deals 1 damage to any target. Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1, "it"), diff --git a/Mage.Sets/src/mage/cards/t/TumbleMagnet.java b/Mage.Sets/src/mage/cards/t/TumbleMagnet.java index d0960ac1c9c..30e2df563ba 100644 --- a/Mage.Sets/src/mage/cards/t/TumbleMagnet.java +++ b/Mage.Sets/src/mage/cards/t/TumbleMagnet.java @@ -1,21 +1,20 @@ package mage.cards.t; -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.TapTargetEffect; -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.filter.StaticFilters; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author Loki @@ -25,10 +24,7 @@ public final class TumbleMagnet extends CardImpl { public TumbleMagnet(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.addAbility(new EntersBattlefieldAbility( - new AddCountersSourceEffect(CounterType.CHARGE.createInstance(3)), - "with three charge counters on it" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.CHARGE.createInstance(3))); Ability ability = new SimpleActivatedAbility( new TapTargetEffect(), diff --git a/Mage.Sets/src/mage/cards/v/Vebulid.java b/Mage.Sets/src/mage/cards/v/Vebulid.java index 27d0e5c5934..ae02eb36308 100644 --- a/Mage.Sets/src/mage/cards/v/Vebulid.java +++ b/Mage.Sets/src/mage/cards/v/Vebulid.java @@ -1,21 +1,22 @@ package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.AttacksOrBlocksTriggeredAbility; -import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; import mage.abilities.effects.common.DestroySourceEffect; 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 @@ -31,8 +32,7 @@ public final class Vebulid extends CardImpl { this.toughness = new MageInt(0); // Vebulid 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))); // At the beginning of your upkeep, you may put a +1/+1 counter on Vebulid. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true)); diff --git a/Mage.Sets/src/mage/cards/v/VoiceOfTheVermin.java b/Mage.Sets/src/mage/cards/v/VoiceOfTheVermin.java index 71bfe5e4135..b6b59bdcb3f 100644 --- a/Mage.Sets/src/mage/cards/v/VoiceOfTheVermin.java +++ b/Mage.Sets/src/mage/cards/v/VoiceOfTheVermin.java @@ -3,9 +3,8 @@ package mage.cards.v; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.effects.common.continuous.SetBasePowerToughnessTargetEffect; -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 VoiceOfTheVermin extends CardImpl { this.toughness = new MageInt(2); // Voice of the Vermin 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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); // Whenever Voice of the Vermin attacks, target creature you control has base power and toughness 4/4 until end of turn. Ability ability = new AttacksTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/v/VoraciousHatchling.java b/Mage.Sets/src/mage/cards/v/VoraciousHatchling.java index f08a9302d0a..e1b26e238ba 100644 --- a/Mage.Sets/src/mage/cards/v/VoraciousHatchling.java +++ b/Mage.Sets/src/mage/cards/v/VoraciousHatchling.java @@ -1,12 +1,10 @@ package mage.cards.v; -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.LifelinkAbility; 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 VoraciousHatchling extends CardImpl { } public VoraciousHatchling(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W/B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W/B}"); this.subtype.add(SubType.ELEMENTAL); @@ -41,7 +41,7 @@ public final class VoraciousHatchling extends CardImpl { // Lifelink this.addAbility(LifelinkAbility.getInstance()); // Voracious 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 white spell, remove a -1/-1 counter from Voracious Hatchling. this.addAbility(new SpellCastControllerTriggeredAbility(new RemoveCounterSourceEffect(CounterType.M1M1.createInstance(1)), filterWhiteSpell, false)); // Whenever you cast a black spell, remove a -1/-1 counter from Voracious Hatchling. diff --git a/Mage.Sets/src/mage/cards/w/WalkingArchive.java b/Mage.Sets/src/mage/cards/w/WalkingArchive.java index 32975f0e4b1..5816c27c7b1 100644 --- a/Mage.Sets/src/mage/cards/w/WalkingArchive.java +++ b/Mage.Sets/src/mage/cards/w/WalkingArchive.java @@ -1,24 +1,24 @@ package mage.cards.w; -import java.util.UUID; import mage.MageInt; -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.dynamicvalue.common.CountersSourceCount; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.DefenderAbility; +import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; -import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -26,7 +26,7 @@ import mage.counters.CounterType; public final class WalkingArchive extends CardImpl { public WalkingArchive(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); this.subtype.add(SubType.GOLEM); this.power = new MageInt(1); @@ -34,13 +34,13 @@ public final class WalkingArchive extends CardImpl { // Defender this.addAbility(DefenderAbility.getInstance()); - + // Walking Archive 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())); + // At the beginning of each player's upkeep, that player draws a card for each +1/+1 counter on Walking Archive. this.addAbility(new BeginningOfUpkeepTriggeredAbility(TargetController.EACH_PLAYER, new DrawCardTargetEffect(new CountersSourceCount(CounterType.P1P1)), false)); - + // {2}{W}{U}: Put a +1/+1 counter on Walking Archive. this.addAbility(new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{2}{W}{U}"))); } diff --git a/Mage.Sets/src/mage/cards/w/WatchfulBlisterzoa.java b/Mage.Sets/src/mage/cards/w/WatchfulBlisterzoa.java index 8e1a044177f..1bc35e6e015 100644 --- a/Mage.Sets/src/mage/cards/w/WatchfulBlisterzoa.java +++ b/Mage.Sets/src/mage/cards/w/WatchfulBlisterzoa.java @@ -2,11 +2,10 @@ package mage.cards.w; import mage.MageInt; import mage.abilities.common.DiesSourceTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CountersSourceCount; 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; @@ -35,10 +34,7 @@ public final class WatchfulBlisterzoa extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Watchful Blisterzoa 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())); // When Watchful Blisterzoa dies, draw cards equal to the number of oil counters on it. this.addAbility(new DiesSourceTriggeredAbility(new DrawCardSourceControllerEffect(xValue) diff --git a/Mage.Sets/src/mage/cards/w/WeaponRack.java b/Mage.Sets/src/mage/cards/w/WeaponRack.java index 8fad641d87a..9922120ba7e 100644 --- a/Mage.Sets/src/mage/cards/w/WeaponRack.java +++ b/Mage.Sets/src/mage/cards/w/WeaponRack.java @@ -2,9 +2,8 @@ package mage.cards.w; import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; -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; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -24,10 +23,7 @@ public final class WeaponRack extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); // Weapon Rack 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))); // {T}: Move a +1/+1 counter from Weapon Rack onto target creature. Activate this ability only any time you could cast a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/w/WickerboughElder.java b/Mage.Sets/src/mage/cards/w/WickerboughElder.java index 82d34aefab7..09f29a53754 100644 --- a/Mage.Sets/src/mage/cards/w/WickerboughElder.java +++ b/Mage.Sets/src/mage/cards/w/WickerboughElder.java @@ -2,18 +2,16 @@ package mage.cards.w; 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.ColoredManaCost; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ColoredManaSymbol; import mage.constants.SubType; -import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.StaticFilters; import mage.target.TargetPermanent; @@ -34,7 +32,7 @@ public final class WickerboughElder extends CardImpl { this.toughness = new MageInt(4); // Wickerbough Elder enters the battlefield 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))); // {G}, Remove a -1/-1 counter from Wickerbough Elder: Destroy target artifact or enchantment. Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ColoredManaCost(ColoredManaSymbol.G)); diff --git a/Mage.Sets/src/mage/cards/w/Wiitigo.java b/Mage.Sets/src/mage/cards/w/Wiitigo.java index 2406908a08e..4b47001e56e 100644 --- a/Mage.Sets/src/mage/cards/w/Wiitigo.java +++ b/Mage.Sets/src/mage/cards/w/Wiitigo.java @@ -1,23 +1,18 @@ package mage.cards.w; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; -import mage.abilities.triggers.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.condition.Condition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.counter.RemoveCounterSourceEffect; -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.constants.WatcherScope; import mage.counters.CounterType; import mage.game.Game; @@ -25,6 +20,8 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.watchers.Watcher; +import java.util.*; + /** * * @author jeffwadsworth @@ -39,8 +36,7 @@ public final class Wiitigo extends CardImpl { this.toughness = new MageInt(0); // Wiitigo 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))); // At the beginning of your upkeep, put a +1/+1 counter on Wiitigo if it has blocked or been blocked since your last upkeep. Otherwise, remove a +1/+1 counter from it. Ability triggeredAbility = new BeginningOfUpkeepTriggeredAbility( @@ -49,7 +45,7 @@ public final class Wiitigo extends CardImpl { new RemoveCounterSourceEffect(CounterType.P1P1.createInstance(1)), new BlockedOrBeenBlockedSinceYourLastUpkeepCondition(), "put a +1/+1 counter on {this} if it has blocked or been blocked since your last " - + "upkeep. Otherwise, remove a +1/+1 counter from it") + + "upkeep. Otherwise, remove a +1/+1 counter from it") ); triggeredAbility.addWatcher(new BlockedOrBeenBlockedSinceYourLastUpkeepWatcher()); this.addAbility(triggeredAbility); diff --git a/Mage.Sets/src/mage/cards/w/WingshieldAgent.java b/Mage.Sets/src/mage/cards/w/WingshieldAgent.java index 8753e573121..e4ea5c0194f 100644 --- a/Mage.Sets/src/mage/cards/w/WingshieldAgent.java +++ b/Mage.Sets/src/mage/cards/w/WingshieldAgent.java @@ -3,9 +3,8 @@ package mage.cards.w; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; 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; @@ -39,11 +38,7 @@ public final class WingshieldAgent extends CardImpl { this.toughness = new MageInt(3); // Wingshield Agent 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. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" - )); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.SHIELD.createInstance(1))); // Whenever Wingshield Agent attacks, up to one other target creature gains flying until end of turn. Ability ability = new AttacksTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance())); diff --git a/Mage.Sets/src/mage/cards/w/WishclawTalisman.java b/Mage.Sets/src/mage/cards/w/WishclawTalisman.java index 67496fc1887..1ab5adc43f2 100644 --- a/Mage.Sets/src/mage/cards/w/WishclawTalisman.java +++ b/Mage.Sets/src/mage/cards/w/WishclawTalisman.java @@ -2,7 +2,7 @@ package mage.cards.w; import mage.abilities.Ability; import mage.abilities.common.ActivateIfConditionActivatedAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.costs.common.TapSourceCost; @@ -10,7 +10,6 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -36,10 +35,7 @@ public final class WishclawTalisman extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{B}"); // Wishclaw Talisman 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))); // {1}, {T}, Remove a wish counter from Wishclaw Talisman: Search your library for a card, put it into your hand, then shuffle your library. An opponent gains control of Wishclaw Talisman. Activate this ability only during your turn. Ability ability = new ActivateIfConditionActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/w/WoollyRazorback.java b/Mage.Sets/src/mage/cards/w/WoollyRazorback.java index 3230c86089d..5f7a034d1be 100644 --- a/Mage.Sets/src/mage/cards/w/WoollyRazorback.java +++ b/Mage.Sets/src/mage/cards/w/WoollyRazorback.java @@ -4,14 +4,13 @@ package mage.cards.w; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BlocksSourceTriggeredAbility; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.SourceHasCounterCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.decorator.ConditionalReplacementEffect; import mage.abilities.effects.common.PreventCombatDamageBySourceEffect; 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.DefenderAbility; import mage.cards.CardImpl; @@ -19,7 +18,6 @@ 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 java.util.UUID; @@ -37,8 +35,7 @@ public final class WoollyRazorback extends CardImpl { this.toughness = new MageInt(7); // Woolly Razorback enters the battlefield with three ice counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.ICE.createInstance(3)), - "with three ice counters on it")); + this.addAbility(new EntersBattlefieldWithCountersAbility(CounterType.ICE.createInstance(3))); // As long as Woolly Razorback has an ice counter on it, prevent all combat damage it would deal and it has defender. ConditionalReplacementEffect effect = new ConditionalReplacementEffect(new PreventCombatDamageBySourceEffect(Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.ICE)); diff --git a/Mage.Sets/src/mage/cards/w/Workhorse.java b/Mage.Sets/src/mage/cards/w/Workhorse.java index 4eae1a6d081..5664becbf7c 100644 --- a/Mage.Sets/src/mage/cards/w/Workhorse.java +++ b/Mage.Sets/src/mage/cards/w/Workhorse.java @@ -1,13 +1,11 @@ package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.Mana; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldWithCountersAbility; import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.dynamicvalue.common.CountersSourceCount; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.mana.SimpleManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -16,6 +14,8 @@ import mage.constants.SubType; import mage.constants.Zone; import mage.counters.CounterType; +import java.util.UUID; + /** * * @author fireshoes @@ -23,13 +23,13 @@ import mage.counters.CounterType; public final class Workhorse extends CardImpl { public Workhorse(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{6}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{6}"); this.subtype.add(SubType.HORSE); this.power = new MageInt(0); this.toughness = new MageInt(0); // Workhorse 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))); // Remove a +1/+1 counter from Workhorse: Add {C}. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), diff --git a/Mage.Sets/src/mage/cards/y/YorvoLordOfGarenbrig.java b/Mage.Sets/src/mage/cards/y/YorvoLordOfGarenbrig.java index a719b36d2a5..2b30022d146 100644 --- a/Mage.Sets/src/mage/cards/y/YorvoLordOfGarenbrig.java +++ b/Mage.Sets/src/mage/cards/y/YorvoLordOfGarenbrig.java @@ -3,18 +3,17 @@ package mage.cards.y; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +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.*; import mage.counters.CounterType; import mage.filter.FilterPermanent; import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.predicate.mageobject.ColorPredicate; import mage.game.Game; import mage.game.permanent.Permanent; @@ -42,10 +41,7 @@ public final class YorvoLordOfGarenbrig extends CardImpl { this.toughness = new MageInt(0); // Yorvo, Lord of Garenbrig 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 another green creature you control enters, put a +1/+1 counter on Yorvo. Then if that creature's power is greater than Yorvo's power, put another +1/+1 counter on Yorvo. this.addAbility(new EntersBattlefieldControlledTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/z/ZackFair.java b/Mage.Sets/src/mage/cards/z/ZackFair.java index af99fd6f41c..21baade34c7 100644 --- a/Mage.Sets/src/mage/cards/z/ZackFair.java +++ b/Mage.Sets/src/mage/cards/z/ZackFair.java @@ -3,14 +3,13 @@ package mage.cards.z; import mage.MageInt; import mage.MageItem; 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.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.PutSourceCountersOnTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -49,10 +48,7 @@ public final class ZackFair extends CardImpl { this.toughness = new MageInt(1); // Zack Fair 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())); // {1}, Sacrifice Zack Fair: Target creature you control gains indestructible until end of turn. Put Zack Fair's counters on that creature and attach an Equipment that was attached to Zack Fair to that creature. Ability ability = new SimpleActivatedAbility( diff --git a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldWithCountersAbility.java b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldWithCountersAbility.java new file mode 100644 index 00000000000..3e9a49e473d --- /dev/null +++ b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldWithCountersAbility.java @@ -0,0 +1,23 @@ +package mage.abilities.common; + +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.counters.Counter; + +/** + * @author TheElk801 + */ +public class EntersBattlefieldWithCountersAbility extends EntersBattlefieldAbility { + + public EntersBattlefieldWithCountersAbility(Counter counter) { + super(new AddCountersSourceEffect(counter), "with " + counter.getDescription() + " on it"); + } + + private EntersBattlefieldWithCountersAbility(final EntersBattlefieldWithCountersAbility ability) { + super(ability); + } + + @Override + public EntersBattlefieldWithCountersAbility copy() { + return new EntersBattlefieldWithCountersAbility(this); + } +}