From 20f30e340e880e3cf00f2760e406a645f8bbef47 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Mon, 21 Sep 2020 17:11:51 -0400 Subject: [PATCH] [ZNR] fixed text generation issues with kicker abilities (#7044) --- Mage.Sets/src/mage/cards/b/BloodBeckoning.java | 3 +-- Mage.Sets/src/mage/cards/b/BloodchiefsThirst.java | 8 +++----- Mage.Sets/src/mage/cards/b/BubbleSnare.java | 3 +-- Mage.Sets/src/mage/cards/c/Cinderclasm.java | 3 +-- Mage.Sets/src/mage/cards/c/CragplateBaloth.java | 15 +++++++-------- Mage.Sets/src/mage/cards/c/CunningGeysermage.java | 3 +-- Mage.Sets/src/mage/cards/d/DauntlessUnity.java | 3 +-- Mage.Sets/src/mage/cards/f/FieldResearch.java | 3 +-- .../src/mage/cards/g/GhastlyGloomhunter.java | 3 +-- Mage.Sets/src/mage/cards/g/GnarlidColony.java | 3 +-- Mage.Sets/src/mage/cards/j/JaceMirrorMage.java | 15 +++++++-------- Mage.Sets/src/mage/cards/k/KitesailCleric.java | 11 +++++------ .../src/mage/cards/m/MaddeningCacophony.java | 3 +-- Mage.Sets/src/mage/cards/m/MightOfMurasa.java | 7 +++---- Mage.Sets/src/mage/cards/m/MossPitSkeleton.java | 3 +-- Mage.Sets/src/mage/cards/m/MurasaSproutling.java | 3 +-- Mage.Sets/src/mage/cards/m/MyriadConstruct.java | 3 +-- .../src/mage/cards/n/NullpriestOfOblivion.java | 3 +-- Mage.Sets/src/mage/cards/r/ReclaimTheWastes.java | 3 +-- Mage.Sets/src/mage/cards/r/RoilEruption.java | 3 +-- Mage.Sets/src/mage/cards/r/RoostOfDrakes.java | 3 +-- Mage.Sets/src/mage/cards/s/ScorchRider.java | 3 +-- .../src/mage/cards/s/ScourgeOfTheSkyclaves.java | 3 +-- .../src/mage/cards/s/SeaGateStormcaller.java | 3 +-- .../src/mage/cards/s/ShatterskullCharger.java | 3 +-- Mage.Sets/src/mage/cards/s/ShellShield.java | 7 +++---- Mage.Sets/src/mage/cards/s/SkyclaveRelic.java | 5 ++--- Mage.Sets/src/mage/cards/s/SkyclaveSentinel.java | 3 +-- Mage.Sets/src/mage/cards/s/SkyclaveShade.java | 3 +-- Mage.Sets/src/mage/cards/t/TajuruParagon.java | 3 +-- Mage.Sets/src/mage/cards/t/TauntingArbormage.java | 11 +++++------ Mage.Sets/src/mage/cards/v/VastwoodSurge.java | 4 +--- Utils/keywords.txt | 2 +- 33 files changed, 60 insertions(+), 94 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BloodBeckoning.java b/Mage.Sets/src/mage/cards/b/BloodBeckoning.java index 6cb5dddf5ea..5ea52245ed4 100644 --- a/Mage.Sets/src/mage/cards/b/BloodBeckoning.java +++ b/Mage.Sets/src/mage/cards/b/BloodBeckoning.java @@ -2,7 +2,6 @@ package mage.cards.b; import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; @@ -24,7 +23,7 @@ public final class BloodBeckoning extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}"); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // Return target creature card from your graveyard to your hand. If this spell was kicked, instead return two target creature cards from your graveyard to your hand. this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect() diff --git a/Mage.Sets/src/mage/cards/b/BloodchiefsThirst.java b/Mage.Sets/src/mage/cards/b/BloodchiefsThirst.java index b1d3533c265..a432b935ab8 100644 --- a/Mage.Sets/src/mage/cards/b/BloodchiefsThirst.java +++ b/Mage.Sets/src/mage/cards/b/BloodchiefsThirst.java @@ -1,10 +1,7 @@ package mage.cards.b; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; @@ -16,10 +13,11 @@ import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.game.Game; import mage.target.TargetPermanent; -import mage.target.TargetPlayer; import mage.target.common.TargetCreatureOrPlaneswalker; import mage.target.targetadjustment.TargetAdjuster; +import java.util.UUID; + /** * @author TheElk801 */ @@ -29,7 +27,7 @@ public final class BloodchiefsThirst extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}"); // Kicker {2}{B} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{B}"))); + this.addAbility(new KickerAbility("{2}{B}")); // Destroy target creature or planeswalker with converted mana cost 2 or less. If this spell was kicked, instead destroy target creature or planeswalker. this.getSpellAbility().addEffect(new DestroyTargetEffect( diff --git a/Mage.Sets/src/mage/cards/b/BubbleSnare.java b/Mage.Sets/src/mage/cards/b/BubbleSnare.java index 64ce87db67b..f10159b3c55 100644 --- a/Mage.Sets/src/mage/cards/b/BubbleSnare.java +++ b/Mage.Sets/src/mage/cards/b/BubbleSnare.java @@ -4,7 +4,6 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DontUntapInControllersUntapStepEnchantedEffect; @@ -32,7 +31,7 @@ public final class BubbleSnare extends CardImpl { this.subtype.add(SubType.AURA); // Kicker {2}{U} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{U}"))); + this.addAbility(new KickerAbility("{2}{U}")); // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); diff --git a/Mage.Sets/src/mage/cards/c/Cinderclasm.java b/Mage.Sets/src/mage/cards/c/Cinderclasm.java index 24abdacc47e..62780956082 100644 --- a/Mage.Sets/src/mage/cards/c/Cinderclasm.java +++ b/Mage.Sets/src/mage/cards/c/Cinderclasm.java @@ -1,7 +1,6 @@ package mage.cards.c; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.KickerAbility; @@ -21,7 +20,7 @@ public final class Cinderclasm extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}"); // Kicker {R} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{R}"))); + this.addAbility(new KickerAbility("{R}")); // Cinderclasm deals 1 damage to each creature. If it was kicked, it deals 2 damage to each creature instead. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( diff --git a/Mage.Sets/src/mage/cards/c/CragplateBaloth.java b/Mage.Sets/src/mage/cards/c/CragplateBaloth.java index d53431ed7bd..c4bdcb2f50f 100644 --- a/Mage.Sets/src/mage/cards/c/CragplateBaloth.java +++ b/Mage.Sets/src/mage/cards/c/CragplateBaloth.java @@ -1,36 +1,35 @@ package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.CantBeCounteredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.constants.SubType; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.keyword.KickerAbility; -import mage.abilities.keyword.HexproofAbility; import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.HexproofAbility; +import mage.abilities.keyword.KickerAbility; 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 */ public final class CragplateBaloth extends CardImpl { public CragplateBaloth(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}"); - + this.subtype.add(SubType.BEAST); this.power = new MageInt(6); this.toughness = new MageInt(6); // Kicker {2}{G} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{G}"))); + this.addAbility(new KickerAbility("{2}{G}")); // This spell can't be countered. this.addAbility(new CantBeCounteredAbility()); diff --git a/Mage.Sets/src/mage/cards/c/CunningGeysermage.java b/Mage.Sets/src/mage/cards/c/CunningGeysermage.java index 206e0b5f150..523d21e587e 100644 --- a/Mage.Sets/src/mage/cards/c/CunningGeysermage.java +++ b/Mage.Sets/src/mage/cards/c/CunningGeysermage.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.KickerAbility; @@ -39,7 +38,7 @@ public final class CunningGeysermage extends CardImpl { this.toughness = new MageInt(2); // Kicker {2}{U} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{U}"))); + this.addAbility(new KickerAbility("{2}{U}")); // When Cunning Geysermage enters the battlefield, if it was kicked, return up to one other target creature to its owner's hand. Ability ability = new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/d/DauntlessUnity.java b/Mage.Sets/src/mage/cards/d/DauntlessUnity.java index 3f06e20e5d1..d05104e8513 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessUnity.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessUnity.java @@ -2,7 +2,6 @@ package mage.cards.d; import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.keyword.KickerAbility; @@ -24,7 +23,7 @@ public final class DauntlessUnity extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}"); // Kicker {1}{W} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{1}{W}"))); + this.addAbility(new KickerAbility("{1}{W}")); // Creatures you control get +1/+1 until end of turn. If this spell was kicked, those creatures get +2/+1 until end of turn instead. this.getSpellAbility().addEffect(new DauntlessUnityEffect()); diff --git a/Mage.Sets/src/mage/cards/f/FieldResearch.java b/Mage.Sets/src/mage/cards/f/FieldResearch.java index a1a14685f7d..c315f0d0141 100644 --- a/Mage.Sets/src/mage/cards/f/FieldResearch.java +++ b/Mage.Sets/src/mage/cards/f/FieldResearch.java @@ -1,7 +1,6 @@ package mage.cards.f; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.keyword.KickerAbility; @@ -20,7 +19,7 @@ public final class FieldResearch extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}"); // Kicker {2}{U} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{U}"))); + this.addAbility(new KickerAbility("{2}{U}")); // Draw two cards. If this spell was kicked, draw three cards instead. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( diff --git a/Mage.Sets/src/mage/cards/g/GhastlyGloomhunter.java b/Mage.Sets/src/mage/cards/g/GhastlyGloomhunter.java index d06c8031c5b..68c408d2b5a 100644 --- a/Mage.Sets/src/mage/cards/g/GhastlyGloomhunter.java +++ b/Mage.Sets/src/mage/cards/g/GhastlyGloomhunter.java @@ -3,7 +3,6 @@ package mage.cards.g; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.KickerAbility; @@ -30,7 +29,7 @@ public final class GhastlyGloomhunter extends CardImpl { this.toughness = new MageInt(1); // Kicker {3}{B} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}{B}"))); + this.addAbility(new KickerAbility("{3}{B}")); // Flying this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/g/GnarlidColony.java b/Mage.Sets/src/mage/cards/g/GnarlidColony.java index 4924668e580..8a3b7bdb59e 100644 --- a/Mage.Sets/src/mage/cards/g/GnarlidColony.java +++ b/Mage.Sets/src/mage/cards/g/GnarlidColony.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.GainAbilityAllEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.KickerAbility; @@ -39,7 +38,7 @@ public final class GnarlidColony extends CardImpl { this.toughness = new MageInt(2); // Kicker {2}{G} - this.addAbility(new KickerAbility(new ManaCostsImpl("{2}{G}"))); + this.addAbility(new KickerAbility("{2}{G}")); // If Gnarlid Colony was kicked, it enters the battlefield with two +1/+1 counters on it. this.addAbility(new EntersBattlefieldAbility( diff --git a/Mage.Sets/src/mage/cards/j/JaceMirrorMage.java b/Mage.Sets/src/mage/cards/j/JaceMirrorMage.java index 39f3ce3ea50..8d11c270de4 100644 --- a/Mage.Sets/src/mage/cards/j/JaceMirrorMage.java +++ b/Mage.Sets/src/mage/cards/j/JaceMirrorMage.java @@ -1,7 +1,5 @@ package mage.cards.j; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -11,22 +9,23 @@ import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenCopyTargetEffect; import mage.abilities.effects.keyword.ScryEffect; +import mage.abilities.keyword.KickerAbility; import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; import mage.cards.CardsImpl; +import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SubType; import mage.constants.SuperType; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.keyword.KickerAbility; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** * @author TheElk801 */ @@ -40,7 +39,7 @@ public final class JaceMirrorMage extends CardImpl { this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(4)); // Kicker {2} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}"))); + this.addAbility(new KickerAbility("{2}")); // When Jace, Mirror Mage enters the battlefield, if Jace was kicked, create a token that's a copy of Jace, Mirror Mage except it's not legendary and its starting loyalty is 1. this.addAbility(new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/k/KitesailCleric.java b/Mage.Sets/src/mage/cards/k/KitesailCleric.java index 23a630b1d11..832c777cc49 100644 --- a/Mage.Sets/src/mage/cards/k/KitesailCleric.java +++ b/Mage.Sets/src/mage/cards/k/KitesailCleric.java @@ -1,22 +1,21 @@ package mage.cards.k; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.TapTargetEffect; -import mage.constants.SubType; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.keyword.KickerAbility; import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author TheElk801 */ @@ -31,7 +30,7 @@ public final class KitesailCleric extends CardImpl { this.toughness = new MageInt(1); // Kicker {2}{W} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{W}"))); + this.addAbility(new KickerAbility("{2}{W}")); // Flying this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/m/MaddeningCacophony.java b/Mage.Sets/src/mage/cards/m/MaddeningCacophony.java index 16962747a1a..2f7bb448949 100644 --- a/Mage.Sets/src/mage/cards/m/MaddeningCacophony.java +++ b/Mage.Sets/src/mage/cards/m/MaddeningCacophony.java @@ -2,7 +2,6 @@ package mage.cards.m; import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; @@ -23,7 +22,7 @@ public final class MaddeningCacophony extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}"); // Kicker {3}{U} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}{U}"))); + this.addAbility(new KickerAbility("{3}{U}")); // Each opponent mills eight cards. If this spell was kicked, instead each opponent mills half their library, rounded up. this.getSpellAbility().addEffect(new MaddeningCacophonyEffect()); diff --git a/Mage.Sets/src/mage/cards/m/MightOfMurasa.java b/Mage.Sets/src/mage/cards/m/MightOfMurasa.java index 0aac48e4e0e..8c1ac0609df 100644 --- a/Mage.Sets/src/mage/cards/m/MightOfMurasa.java +++ b/Mage.Sets/src/mage/cards/m/MightOfMurasa.java @@ -1,10 +1,7 @@ package mage.cards.m; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.keyword.KickerAbility; @@ -16,6 +13,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author TheElk801 */ @@ -25,7 +24,7 @@ public final class MightOfMurasa extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); // Kicker {2}{G} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{G}"))); + this.addAbility(new KickerAbility("{2}{G}")); // Target creature gets +3/+3 until end of turn. If this spell was kicked, that creature gets +5/+5 until end of turn instead. this.getSpellAbility().addEffect(new MightOfMurasaEffect()); diff --git a/Mage.Sets/src/mage/cards/m/MossPitSkeleton.java b/Mage.Sets/src/mage/cards/m/MossPitSkeleton.java index efd935d9405..3ee734b4d6d 100644 --- a/Mage.Sets/src/mage/cards/m/MossPitSkeleton.java +++ b/Mage.Sets/src/mage/cards/m/MossPitSkeleton.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.PutOnLibrarySourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.KickerAbility; @@ -34,7 +33,7 @@ public final class MossPitSkeleton extends CardImpl { this.toughness = new MageInt(2); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // If Moss-Pit Skeleton was kicked, it enters the battlefield with three +1/+1 counters on it. this.addAbility(new EntersBattlefieldAbility( diff --git a/Mage.Sets/src/mage/cards/m/MurasaSproutling.java b/Mage.Sets/src/mage/cards/m/MurasaSproutling.java index 2c8b7eb25ea..31e28fb308c 100644 --- a/Mage.Sets/src/mage/cards/m/MurasaSproutling.java +++ b/Mage.Sets/src/mage/cards/m/MurasaSproutling.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.keyword.KickerAbility; @@ -38,7 +37,7 @@ public final class MurasaSproutling extends CardImpl { this.toughness = new MageInt(3); // Kicker {1}{G} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{1}{G}"))); + this.addAbility(new KickerAbility("{1}{G}")); // When Murasa Sproutling enters the battlefield, if it was kicked, return target card with a kicker ability from your graveyard to your hand. Ability ability = new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/m/MyriadConstruct.java b/Mage.Sets/src/mage/cards/m/MyriadConstruct.java index 97e47881d82..5dd9fab405e 100644 --- a/Mage.Sets/src/mage/cards/m/MyriadConstruct.java +++ b/Mage.Sets/src/mage/cards/m/MyriadConstruct.java @@ -5,7 +5,6 @@ import mage.abilities.Ability; import mage.abilities.common.BecomesTargetTriggeredAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.SourcePermanentPowerCount; @@ -51,7 +50,7 @@ public final class MyriadConstruct extends CardImpl { this.toughness = new MageInt(4); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // If Myriad Construct was kicked, it enters the battlefield with a +1/+1 counter on it for each nonbasic land your opponents control. this.addAbility(new EntersBattlefieldAbility( diff --git a/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java b/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java index 5379581e6f0..d6e357ac779 100644 --- a/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java +++ b/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.KickerAbility; @@ -33,7 +32,7 @@ public final class NullpriestOfOblivion extends CardImpl { this.toughness = new MageInt(1); // Kicker {3}{B} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}{B}"))); + this.addAbility(new KickerAbility("{3}{B}")); // Menace this.addAbility(new MenaceAbility()); diff --git a/Mage.Sets/src/mage/cards/r/ReclaimTheWastes.java b/Mage.Sets/src/mage/cards/r/ReclaimTheWastes.java index e0073886773..bc6b5694e6b 100644 --- a/Mage.Sets/src/mage/cards/r/ReclaimTheWastes.java +++ b/Mage.Sets/src/mage/cards/r/ReclaimTheWastes.java @@ -1,7 +1,6 @@ package mage.cards.r; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.keyword.KickerAbility; @@ -22,7 +21,7 @@ public final class ReclaimTheWastes extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}"); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library. If this spell was kicked, search your library for two basic land cards instead of one. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( diff --git a/Mage.Sets/src/mage/cards/r/RoilEruption.java b/Mage.Sets/src/mage/cards/r/RoilEruption.java index a33b6f78874..7a9ec60193b 100644 --- a/Mage.Sets/src/mage/cards/r/RoilEruption.java +++ b/Mage.Sets/src/mage/cards/r/RoilEruption.java @@ -1,7 +1,6 @@ package mage.cards.r; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.keyword.KickerAbility; @@ -21,7 +20,7 @@ public final class RoilEruption extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}"); // Kicker {5} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{5}"))); + this.addAbility(new KickerAbility("{5}")); // Roil Eruption deals 3 damage to any target. If this spell was kicked, it deals 5 damage instead. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( diff --git a/Mage.Sets/src/mage/cards/r/RoostOfDrakes.java b/Mage.Sets/src/mage/cards/r/RoostOfDrakes.java index f283fe66df5..77a5ade0c57 100644 --- a/Mage.Sets/src/mage/cards/r/RoostOfDrakes.java +++ b/Mage.Sets/src/mage/cards/r/RoostOfDrakes.java @@ -3,7 +3,6 @@ package mage.cards.r; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.keyword.KickerAbility; @@ -24,7 +23,7 @@ public final class RoostOfDrakes extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}"); // Kicker {2}{U} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{U}"))); + this.addAbility(new KickerAbility("{2}{U}")); // When Roost of Drakes enters the battlefield, if it was kicked, create a 2/2 blue Drake creature token with flying. this.addAbility(new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/ScorchRider.java b/Mage.Sets/src/mage/cards/s/ScorchRider.java index 9b57edaad57..c97a3be111e 100644 --- a/Mage.Sets/src/mage/cards/s/ScorchRider.java +++ b/Mage.Sets/src/mage/cards/s/ScorchRider.java @@ -3,7 +3,6 @@ package mage.cards.s; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.keyword.HasteAbility; @@ -30,7 +29,7 @@ public final class ScorchRider extends CardImpl { this.toughness = new MageInt(3); // Kicker {1}{R} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{1}{R}"))); + this.addAbility(new KickerAbility("{1}{R}")); // When Scorch Rider enters the battlefield, if it was kicked, it gains haste until end of turn. this.addAbility(new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/ScourgeOfTheSkyclaves.java b/Mage.Sets/src/mage/cards/s/ScourgeOfTheSkyclaves.java index 06ba9531c3c..05ddbfaed53 100644 --- a/Mage.Sets/src/mage/cards/s/ScourgeOfTheSkyclaves.java +++ b/Mage.Sets/src/mage/cards/s/ScourgeOfTheSkyclaves.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; @@ -35,7 +34,7 @@ public final class ScourgeOfTheSkyclaves extends CardImpl { this.toughness = new MageInt(0); // Kicker {4}{B} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{4}{B}"))); + this.addAbility(new KickerAbility("{4}{B}")); // When you cast this spell, if it was kicked, each player loses half their life, rounded up. this.addAbility(new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/SeaGateStormcaller.java b/Mage.Sets/src/mage/cards/s/SeaGateStormcaller.java index aa6537cdb32..ef77ecf74be 100644 --- a/Mage.Sets/src/mage/cards/s/SeaGateStormcaller.java +++ b/Mage.Sets/src/mage/cards/s/SeaGateStormcaller.java @@ -4,7 +4,6 @@ import mage.MageInt; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CopyTargetSpellEffect; @@ -36,7 +35,7 @@ public final class SeaGateStormcaller extends CardImpl { this.toughness = new MageInt(1); // Kicker {4}{U} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{4}{U}"))); + this.addAbility(new KickerAbility("{4}{U}")); // When Sea Gate Stormcaller enters the battlefield, copy the next instant or sorcery spell with converted mana cost 2 or less you cast this turn when you cast it. If Sea Gate Stormcaller was kicked, copy that spell twice instead. You may choose new targets for the copies. this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalOneShotEffect( diff --git a/Mage.Sets/src/mage/cards/s/ShatterskullCharger.java b/Mage.Sets/src/mage/cards/s/ShatterskullCharger.java index 66240bb79c8..1fa3d252b73 100644 --- a/Mage.Sets/src/mage/cards/s/ShatterskullCharger.java +++ b/Mage.Sets/src/mage/cards/s/ShatterskullCharger.java @@ -7,7 +7,6 @@ import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.SourceHasCounterCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -40,7 +39,7 @@ public final class ShatterskullCharger extends CardImpl { this.toughness = new MageInt(3); // Kicker {2} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}"))); + this.addAbility(new KickerAbility("{2}")); // Trample this.addAbility(TrampleAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/s/ShellShield.java b/Mage.Sets/src/mage/cards/s/ShellShield.java index 2c83fcd9d9d..cec0df31d42 100644 --- a/Mage.Sets/src/mage/cards/s/ShellShield.java +++ b/Mage.Sets/src/mage/cards/s/ShellShield.java @@ -1,10 +1,7 @@ package mage.cards.s; -import java.util.UUID; - import mage.abilities.Ability; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -18,6 +15,8 @@ import mage.constants.Outcome; import mage.game.Game; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * @author TheElk801 */ @@ -27,7 +26,7 @@ public final class ShellShield extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); // Kicker {1} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{1}"))); + this.addAbility(new KickerAbility("{1}")); // Target creature you control gets +0/+3 until end of turn. If this spell was kicked, that creature also gains hexproof until end of turn. this.getSpellAbility().addEffect(new ShellShieldEffect()); diff --git a/Mage.Sets/src/mage/cards/s/SkyclaveRelic.java b/Mage.Sets/src/mage/cards/s/SkyclaveRelic.java index c87946ad2bd..e33fd684b7c 100644 --- a/Mage.Sets/src/mage/cards/s/SkyclaveRelic.java +++ b/Mage.Sets/src/mage/cards/s/SkyclaveRelic.java @@ -2,7 +2,6 @@ package mage.cards.s; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.CreateTokenCopySourceEffect; import mage.abilities.keyword.IndestructibleAbility; @@ -23,14 +22,14 @@ public final class SkyclaveRelic extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // Indestructible this.addAbility(IndestructibleAbility.getInstance()); // When Skyclave Relic enters the battlefield, if it was kicked, create two tapped tokens that are copies of Skyclave Relic. this.addAbility(new ConditionalInterveningIfTriggeredAbility( - new EntersBattlefieldTriggeredAbility(new CreateTokenCopySourceEffect(2,true)), + new EntersBattlefieldTriggeredAbility(new CreateTokenCopySourceEffect(2, true)), KickedCondition.instance, "When {this} enters the battlefield, if it was kicked, " + "create two tapped tokens that are copies of {this}." )); diff --git a/Mage.Sets/src/mage/cards/s/SkyclaveSentinel.java b/Mage.Sets/src/mage/cards/s/SkyclaveSentinel.java index 034876091cf..6b62e50f319 100644 --- a/Mage.Sets/src/mage/cards/s/SkyclaveSentinel.java +++ b/Mage.Sets/src/mage/cards/s/SkyclaveSentinel.java @@ -6,7 +6,6 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.KickedCondition; import mage.abilities.condition.common.SourceHasCounterCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalAsThoughEffect; import mage.abilities.effects.common.combat.CanAttackAsThoughItDidntHaveDefenderSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -37,7 +36,7 @@ public final class SkyclaveSentinel extends CardImpl { this.toughness = new MageInt(3); // Kicker {4} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{4}"))); + this.addAbility(new KickerAbility("{4}")); // Flying this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/s/SkyclaveShade.java b/Mage.Sets/src/mage/cards/s/SkyclaveShade.java index 0bb2cd7c3de..5bdf1613d04 100644 --- a/Mage.Sets/src/mage/cards/s/SkyclaveShade.java +++ b/Mage.Sets/src/mage/cards/s/SkyclaveShade.java @@ -7,7 +7,6 @@ import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.LandfallAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -34,7 +33,7 @@ public final class SkyclaveShade extends CardImpl { this.toughness = new MageInt(1); // Kicker {2}{B} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{2}{B}"))); + this.addAbility(new KickerAbility("{2}{B}")); // Skyclave Shade can't block. this.addAbility(new CantBlockAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TajuruParagon.java b/Mage.Sets/src/mage/cards/t/TajuruParagon.java index 82809993fbc..331debf6c12 100644 --- a/Mage.Sets/src/mage/cards/t/TajuruParagon.java +++ b/Mage.Sets/src/mage/cards/t/TajuruParagon.java @@ -5,7 +5,6 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.InfoEffect; @@ -45,7 +44,7 @@ public final class TajuruParagon extends CardImpl { )); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // When Tajuru Paragon enters the battlefield, if it was kicked, reveal the top six cards of your library. You may put a card that shares a creature type with it from among them into your hand. Put the rest on the bottom of your library in a random order. this.addAbility(new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/TauntingArbormage.java b/Mage.Sets/src/mage/cards/t/TauntingArbormage.java index ae42b1559be..8028f456e92 100644 --- a/Mage.Sets/src/mage/cards/t/TauntingArbormage.java +++ b/Mage.Sets/src/mage/cards/t/TauntingArbormage.java @@ -1,22 +1,21 @@ package mage.cards.t; -import java.util.UUID; - import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.condition.common.KickedCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.combat.MustBeBlockedByAllTargetEffect; -import mage.constants.Duration; -import mage.constants.SubType; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.keyword.KickerAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author TheElk801 */ @@ -31,7 +30,7 @@ public final class TauntingArbormage extends CardImpl { this.toughness = new MageInt(3); // Kicker {3} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{3}"))); + this.addAbility(new KickerAbility("{3}")); // When Taunting Arbormage enters the battlefield, if it was kicked, all creatures able to block target creature this turn do so. Ability ability = new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/v/VastwoodSurge.java b/Mage.Sets/src/mage/cards/v/VastwoodSurge.java index 040fd17a9c2..5ce867cf34e 100644 --- a/Mage.Sets/src/mage/cards/v/VastwoodSurge.java +++ b/Mage.Sets/src/mage/cards/v/VastwoodSurge.java @@ -1,7 +1,6 @@ package mage.cards.v; import mage.abilities.condition.common.KickedCondition; -import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; @@ -27,9 +26,8 @@ public final class VastwoodSurge extends CardImpl { public VastwoodSurge(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}"); - // Kicker {4} - this.addAbility(new KickerAbility(new ManaCostsImpl<>("{4}"))); + this.addAbility(new KickerAbility("{4}")); // Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library. If this spell was kicked, put two +1/+1 counters on each creature you control. this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect( diff --git a/Utils/keywords.txt b/Utils/keywords.txt index 4fc1cd06b8c..998e38e67a5 100644 --- a/Utils/keywords.txt +++ b/Utils/keywords.txt @@ -53,7 +53,7 @@ Ingest|new| Islandcycling|cost| Islandwalk|new| Jump-start|card| -Kicker|cost| +Kicker|manaString| Level up|cost| Lifelink|instance| Living weapon|new|