diff --git a/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java b/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java
index ed054b714b..3a6938dfd2 100644
--- a/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java
+++ b/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java
@@ -35,7 +35,7 @@ public final class GalvanicAlchemist extends CardImpl {
this.addAbility(new SoulbondAbility());
// As long as Galvanic Alchemist is paired with another creature, each of those creatures has "{2}{U}: Untap this creature."
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl<>("{2}{U}"));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityPairedEffect(ability, ruleText)));
}
diff --git a/Mage.Sets/src/mage/cards/g/GargoyleCastle.java b/Mage.Sets/src/mage/cards/g/GargoyleCastle.java
index 348ca15b04..a341b76355 100644
--- a/Mage.Sets/src/mage/cards/g/GargoyleCastle.java
+++ b/Mage.Sets/src/mage/cards/g/GargoyleCastle.java
@@ -30,7 +30,7 @@ public final class GargoyleCastle extends CardImpl {
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new CreateTokenEffect(new GargoyleToken()),
- new ManaCostsImpl("{5}"));
+ new ManaCostsImpl<>("{5}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GatesOfIstfell.java b/Mage.Sets/src/mage/cards/g/GatesOfIstfell.java
index a87e8f888b..7f69c67faa 100644
--- a/Mage.Sets/src/mage/cards/g/GatesOfIstfell.java
+++ b/Mage.Sets/src/mage/cards/g/GatesOfIstfell.java
@@ -30,7 +30,7 @@ public final class GatesOfIstfell extends CardImpl {
this.addAbility(new WhiteManaAbility());
// {2}{W}{U}{U}, {T}, Sacrifice Gates of Istfell: You gain 2 life and draw two cards.
- Ability ability = new SimpleActivatedAbility(new GainLifeEffect(2), new ManaCostsImpl("{2}{W}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(new GainLifeEffect(2), new ManaCostsImpl<>("{2}{W}{U}{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(2).concatBy("and"));
diff --git a/Mage.Sets/src/mage/cards/g/GatewayShade.java b/Mage.Sets/src/mage/cards/g/GatewayShade.java
index de34de52f0..73820cf625 100644
--- a/Mage.Sets/src/mage/cards/g/GatewayShade.java
+++ b/Mage.Sets/src/mage/cards/g/GatewayShade.java
@@ -37,7 +37,7 @@ public final class GatewayShade extends CardImpl {
this.toughness = new MageInt(1);
// {B}: Gateway Shade gets +1/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,1, Duration.EndOfTurn),new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,1, Duration.EndOfTurn),new ManaCostsImpl<>("{B}")));
// Tap an untapped Gate you control: Gateway Shade gets +2/+2 until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2,2, Duration.EndOfTurn),new TapTargetCost(new TargetControlledPermanent(1,1,filter, true))));
diff --git a/Mage.Sets/src/mage/cards/g/GauntletsOfChaos.java b/Mage.Sets/src/mage/cards/g/GauntletsOfChaos.java
index 00b4562016..4d1dd1703c 100644
--- a/Mage.Sets/src/mage/cards/g/GauntletsOfChaos.java
+++ b/Mage.Sets/src/mage/cards/g/GauntletsOfChaos.java
@@ -34,7 +34,7 @@ public final class GauntletsOfChaos extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExchangeControlTargetEffect(Duration.EndOfGame,
"exchange control of target artifact, creature, or land you control and target permanent an opponent controls that shares one of those types with it."
+ " If those permanents are exchanged this way, destroy all Auras attached to them", false, true, true),
- new ManaCostsImpl("{5}")
+ new ManaCostsImpl<>("{5}")
);
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new GauntletsOfChaosFirstTarget());
diff --git a/Mage.Sets/src/mage/cards/g/GauntletsOfLight.java b/Mage.Sets/src/mage/cards/g/GauntletsOfLight.java
index 2c0cdeb35f..6f8b6ec324 100644
--- a/Mage.Sets/src/mage/cards/g/GauntletsOfLight.java
+++ b/Mage.Sets/src/mage/cards/g/GauntletsOfLight.java
@@ -47,7 +47,7 @@ public final class GauntletsOfLight extends CardImpl {
// Enchanted creature has "{2}{W}: Untap this creature."
this.addAbility(new SimpleStaticAbility(
new GainAbilityAttachedEffect(new SimpleActivatedAbility(
- new UntapSourceEffect().setText("Untap this creature"), new ManaCostsImpl("{2}{W}")
+ new UntapSourceEffect().setText("Untap this creature"), new ManaCostsImpl<>("{2}{W}")
), AttachmentType.AURA)
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GavonyTownship.java b/Mage.Sets/src/mage/cards/g/GavonyTownship.java
index f1452ed802..953899f346 100644
--- a/Mage.Sets/src/mage/cards/g/GavonyTownship.java
+++ b/Mage.Sets/src/mage/cards/g/GavonyTownship.java
@@ -23,7 +23,7 @@ public final class GavonyTownship extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {2}{G}{W}, {T}: Put a +1/+1 counter on each creature you control.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersAllEffect(CounterType.P1P1.createInstance(), StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED), new ManaCostsImpl("{2}{G}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersAllEffect(CounterType.P1P1.createInstance(), StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED), new ManaCostsImpl<>("{2}{G}{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GazeOfJustice.java b/Mage.Sets/src/mage/cards/g/GazeOfJustice.java
index 12647541dd..eb15c2a56c 100644
--- a/Mage.Sets/src/mage/cards/g/GazeOfJustice.java
+++ b/Mage.Sets/src/mage/cards/g/GazeOfJustice.java
@@ -41,7 +41,7 @@ public final class GazeOfJustice extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Flashback {5}{W}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{5}{W}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{W}")));
}
private GazeOfJustice(final GazeOfJustice card) {
diff --git a/Mage.Sets/src/mage/cards/g/Geistflame.java b/Mage.Sets/src/mage/cards/g/Geistflame.java
index 7d8c774cd6..324206d366 100644
--- a/Mage.Sets/src/mage/cards/g/Geistflame.java
+++ b/Mage.Sets/src/mage/cards/g/Geistflame.java
@@ -25,7 +25,7 @@ public final class Geistflame extends CardImpl {
this.getSpellAbility().addTarget(new TargetAnyTarget());
// Flashback {3}{R}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{3}{R}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{3}{R}")));
}
private Geistflame(final Geistflame card) {
diff --git a/Mage.Sets/src/mage/cards/g/GelidShackles.java b/Mage.Sets/src/mage/cards/g/GelidShackles.java
index 9ff01f06a8..fabb2f48f8 100644
--- a/Mage.Sets/src/mage/cards/g/GelidShackles.java
+++ b/Mage.Sets/src/mage/cards/g/GelidShackles.java
@@ -40,7 +40,7 @@ public final class GelidShackles extends CardImpl {
// {snow}: Enchanted creature gains defender until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(DefenderAbility.getInstance(),
- AttachmentType.AURA, Duration.EndOfTurn), new ManaCostsImpl("{S}")));
+ AttachmentType.AURA, Duration.EndOfTurn), new ManaCostsImpl<>("{S}")));
}
private GelidShackles(final GelidShackles card) {
diff --git a/Mage.Sets/src/mage/cards/g/GempalmAvenger.java b/Mage.Sets/src/mage/cards/g/GempalmAvenger.java
index e204e432ae..cfc912e501 100644
--- a/Mage.Sets/src/mage/cards/g/GempalmAvenger.java
+++ b/Mage.Sets/src/mage/cards/g/GempalmAvenger.java
@@ -38,7 +38,7 @@ public final class GempalmAvenger extends CardImpl {
this.toughness = new MageInt(5);
// Cycling {2}{W}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}{W}")));
// When you cycle Gempalm Avenger, Soldier creatures get +1/+1 and gain first strike until end of turn.
Ability ability = new CycleTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java b/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java
index fd8c779563..cc03249ec5 100644
--- a/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java
+++ b/Mage.Sets/src/mage/cards/g/GempalmIncinerator.java
@@ -35,7 +35,7 @@ public final class GempalmIncinerator extends CardImpl {
this.toughness = new MageInt(1);
// Cycling {1}{R}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{1}{R}")));
// When you cycle Gempalm Incinerator, you may have it deal X damage to target creature, where X is the number of Goblins on the battlefield.
Ability ability = new CycleTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)),true);
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/g/GempalmPolluter.java b/Mage.Sets/src/mage/cards/g/GempalmPolluter.java
index 13afc6191f..5259f95b2b 100644
--- a/Mage.Sets/src/mage/cards/g/GempalmPolluter.java
+++ b/Mage.Sets/src/mage/cards/g/GempalmPolluter.java
@@ -36,7 +36,7 @@ public final class GempalmPolluter extends CardImpl {
this.toughness = new MageInt(3);
// Cycling {B}{B}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{B}{B}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{B}{B}")));
// When you cycle Gempalm Polluter, you may have target player lose life equal to the number of Zombies on the battlefield.
Effect effect = new LoseLifeTargetEffect(new PermanentsOnBattlefieldCount(filter));
diff --git a/Mage.Sets/src/mage/cards/g/GempalmSorcerer.java b/Mage.Sets/src/mage/cards/g/GempalmSorcerer.java
index d0f16ffa15..005d404f73 100644
--- a/Mage.Sets/src/mage/cards/g/GempalmSorcerer.java
+++ b/Mage.Sets/src/mage/cards/g/GempalmSorcerer.java
@@ -37,7 +37,7 @@ public final class GempalmSorcerer extends CardImpl {
this.toughness = new MageInt(2);
// Cycling {2}{U}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}{U}")));
// When you cycle Gempalm Sorcerer, Wizard creatures gain flying until end of turn.
Ability ability = new CycleTriggeredAbility(new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter));
diff --git a/Mage.Sets/src/mage/cards/g/GempalmStrider.java b/Mage.Sets/src/mage/cards/g/GempalmStrider.java
index 4672de807e..792539892c 100644
--- a/Mage.Sets/src/mage/cards/g/GempalmStrider.java
+++ b/Mage.Sets/src/mage/cards/g/GempalmStrider.java
@@ -34,7 +34,7 @@ public final class GempalmStrider extends CardImpl {
this.toughness = new MageInt(2);
// Cycling {2}{G}{G}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}{G}{G}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}{G}{G}")));
// When you cycle Gempalm Strider, Elf creatures get +2/+2 until end of turn.
this.addAbility(new CycleTriggeredAbility(new BoostAllEffect(2,2,Duration.EndOfTurn, filter, false)));
}
diff --git a/Mage.Sets/src/mage/cards/g/GemstoneArray.java b/Mage.Sets/src/mage/cards/g/GemstoneArray.java
index 1795c33340..c030b122f5 100644
--- a/Mage.Sets/src/mage/cards/g/GemstoneArray.java
+++ b/Mage.Sets/src/mage/cards/g/GemstoneArray.java
@@ -24,7 +24,7 @@ public final class GemstoneArray extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// {2}: Put a charge counter on Gemstone Array.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)), new ManaCostsImpl<>("{2}")));
// Remove a charge counter from Gemstone Array: Add one mana of any color.
this.addAbility(new AnyColorManaAbility(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(1)),
new CountersSourceCount(CounterType.CHARGE), false));
diff --git a/Mage.Sets/src/mage/cards/g/GeneralHux.java b/Mage.Sets/src/mage/cards/g/GeneralHux.java
index 5cb21a537c..28dbf3d424 100644
--- a/Mage.Sets/src/mage/cards/g/GeneralHux.java
+++ b/Mage.Sets/src/mage/cards/g/GeneralHux.java
@@ -41,7 +41,7 @@ public final class GeneralHux extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostSourceEffect(1, 1, Duration.EndOfTurn)
.setText("This creature gets +1/+1 until end of turn"),
- new ManaCostsImpl("{B}"));
+ new ManaCostsImpl<>("{B}"));
Effect effect = new GainAbilitySourceEffect(ability, Duration.EndOfTurn);
effect.setText("until end of turn, target creature gains");
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, effect, filter, false));
diff --git a/Mage.Sets/src/mage/cards/g/GeneralTazri.java b/Mage.Sets/src/mage/cards/g/GeneralTazri.java
index 0fb70766bc..7c0cd785e4 100644
--- a/Mage.Sets/src/mage/cards/g/GeneralTazri.java
+++ b/Mage.Sets/src/mage/cards/g/GeneralTazri.java
@@ -51,7 +51,7 @@ public final class GeneralTazri extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
effect,
- new ManaCostsImpl("{W}{U}{B}{R}{G}")));
+ new ManaCostsImpl<>("{W}{U}{B}{R}{G}")));
}
diff --git a/Mage.Sets/src/mage/cards/g/GeneralsEnforcer.java b/Mage.Sets/src/mage/cards/g/GeneralsEnforcer.java
index 88e416018e..3eb328bf5d 100644
--- a/Mage.Sets/src/mage/cards/g/GeneralsEnforcer.java
+++ b/Mage.Sets/src/mage/cards/g/GeneralsEnforcer.java
@@ -46,7 +46,7 @@ public final class GeneralsEnforcer extends CardImpl {
)));
// {2}{W}{B}: Exile target card from a graveyard. If it was a creature card, create a 1/1 white Human Soldier creature token.
- Ability ability = new SimpleActivatedAbility(new GeneralsEnforcerEffect(), new ManaCostsImpl("{2}{W}{B}"));
+ Ability ability = new SimpleActivatedAbility(new GeneralsEnforcerEffect(), new ManaCostsImpl<>("{2}{W}{B}"));
ability.addTarget(new TargetCardInGraveyard());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/Genesis.java b/Mage.Sets/src/mage/cards/g/Genesis.java
index bc8e0e970e..48104c4d05 100644
--- a/Mage.Sets/src/mage/cards/g/Genesis.java
+++ b/Mage.Sets/src/mage/cards/g/Genesis.java
@@ -32,7 +32,7 @@ public final class Genesis extends CardImpl {
// At the beginning of your upkeep, if Genesis is in your graveyard, you may pay {2}{G}. If you do, return target creature card from your graveyard to your hand.
Ability ability = new BeginningOfUpkeepTriggeredAbility(
- Zone.GRAVEYARD, new DoIfCostPaid(new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{2}{G}")), TargetController.YOU, false, false);
+ Zone.GRAVEYARD, new DoIfCostPaid(new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl<>("{2}{G}")), TargetController.YOU, false, false);
ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GenjuOfTheFens.java b/Mage.Sets/src/mage/cards/g/GenjuOfTheFens.java
index 4a9c9f22a5..9385c8de50 100644
--- a/Mage.Sets/src/mage/cards/g/GenjuOfTheFens.java
+++ b/Mage.Sets/src/mage/cards/g/GenjuOfTheFens.java
@@ -67,7 +67,7 @@ public final class GenjuOfTheFens extends CardImpl {
subtype.add(SubType.SPIRIT);
power = new MageInt(2);
toughness = new MageInt(2);
- addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
+ addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
}
public SpiritToken(final SpiritToken token) {
diff --git a/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java b/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java
index 3780966c20..cbd984e2f9 100644
--- a/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java
+++ b/Mage.Sets/src/mage/cards/g/GeralfsMasterpiece.java
@@ -47,7 +47,7 @@ public final class GeralfsMasterpiece extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
// {3}{U}, Discard three cards: Return Geralf's Masterpiece from your graveyard to the battlefield tapped.
- Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{3}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl<>("{3}{U}"));
ability.addCost(new DiscardTargetCost(new TargetCardInHand(3, new FilterCard("three cards"))));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GerrardCapashen.java b/Mage.Sets/src/mage/cards/g/GerrardCapashen.java
index d5048bb394..3e21e1f5f1 100644
--- a/Mage.Sets/src/mage/cards/g/GerrardCapashen.java
+++ b/Mage.Sets/src/mage/cards/g/GerrardCapashen.java
@@ -40,7 +40,7 @@ public final class GerrardCapashen extends CardImpl {
// {3}{W}: Tap target creature. Activate this ability only if {this} is attacking.
Ability ability2 = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(),
- new ManaCostsImpl("{3}{W}"), SourceAttackingCondition.instance);
+ new ManaCostsImpl<>("{3}{W}"), SourceAttackingCondition.instance);
ability2.addTarget(new TargetCreaturePermanent());
this.addAbility(ability2);
}
diff --git a/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java b/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java
index 61dc352010..9621f81124 100644
--- a/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java
+++ b/Mage.Sets/src/mage/cards/g/GerrardsBattleCry.java
@@ -21,7 +21,7 @@ public final class GerrardsBattleCry extends CardImpl {
public GerrardsBattleCry(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false), new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false), new ManaCostsImpl<>("{2}{W}")));
}
private GerrardsBattleCry(final GerrardsBattleCry card) {
diff --git a/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java b/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java
index ee740491e0..6bc918c965 100644
--- a/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java
+++ b/Mage.Sets/src/mage/cards/g/GethLordOfTheVault.java
@@ -46,7 +46,7 @@ public final class GethLordOfTheVault extends CardImpl {
this.addAbility(IntimidateAbility.getInstance());
// {X}{B}: Put target artifact or creature card with converted mana cost X from an opponent's graveyard onto the battlefield under your control tapped.
// Then that player puts the top X cards of their library into their graveyard.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GethLordOfTheVaultEffect(), new ManaCostsImpl("{X}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GethLordOfTheVaultEffect(), new ManaCostsImpl<>("{X}{B}"));
ability.setTargetAdjuster(XCMCGraveyardAdjuster.instance);
ability.addTarget(new TargetCardInGraveyard(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GhastlyConscription.java b/Mage.Sets/src/mage/cards/g/GhastlyConscription.java
index 036d42425a..d83b74fb43 100644
--- a/Mage.Sets/src/mage/cards/g/GhastlyConscription.java
+++ b/Mage.Sets/src/mage/cards/g/GhastlyConscription.java
@@ -82,7 +82,7 @@ class GhastlyConscriptionEffect extends OneShotEffect {
if (card.isCreature(game)) {
manaCosts = card.getSpellAbility().getManaCosts();
if (manaCosts == null) {
- manaCosts = new ManaCostsImpl("{0}");
+ manaCosts = new ManaCostsImpl<>("{0}");
}
}
MageObjectReference objectReference = new MageObjectReference(card.getId(), card.getZoneChangeCounter(game) + 1, game);
diff --git a/Mage.Sets/src/mage/cards/g/GhastlyRemains.java b/Mage.Sets/src/mage/cards/g/GhastlyRemains.java
index 8883f7990b..458c2a708b 100644
--- a/Mage.Sets/src/mage/cards/g/GhastlyRemains.java
+++ b/Mage.Sets/src/mage/cards/g/GhastlyRemains.java
@@ -52,7 +52,7 @@ public final class GhastlyRemains extends CardImpl {
class GhastlyRemainsTriggeredAbility extends BeginningOfUpkeepTriggeredAbility {
public GhastlyRemainsTriggeredAbility() {
- super(Zone.GRAVEYARD, new DoIfCostPaid(new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl("{B}{B}{B}")), TargetController.YOU, false);
+ super(Zone.GRAVEYARD, new DoIfCostPaid(new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl<>("{B}{B}{B}")), TargetController.YOU, false);
}
public GhastlyRemainsTriggeredAbility(GhastlyRemainsTriggeredAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/g/GhenArcanumWeaver.java b/Mage.Sets/src/mage/cards/g/GhenArcanumWeaver.java
index 05a174d127..e9ab7a79e7 100644
--- a/Mage.Sets/src/mage/cards/g/GhenArcanumWeaver.java
+++ b/Mage.Sets/src/mage/cards/g/GhenArcanumWeaver.java
@@ -42,7 +42,7 @@ public final class GhenArcanumWeaver extends CardImpl {
// {R}{W}{B}, {T}, Sacrifice an enchantment: Return target enchantment card from your graveyard to the battlefield.
Ability ability = new SimpleActivatedAbility(
- new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{R}{W}{B}")
+ new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl<>("{R}{W}{B}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
diff --git a/Mage.Sets/src/mage/cards/g/GhituEncampment.java b/Mage.Sets/src/mage/cards/g/GhituEncampment.java
index 127dac949e..59072f1bf1 100644
--- a/Mage.Sets/src/mage/cards/g/GhituEncampment.java
+++ b/Mage.Sets/src/mage/cards/g/GhituEncampment.java
@@ -30,7 +30,7 @@ public final class GhituEncampment extends CardImpl {
this.addAbility(new RedManaAbility());
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BecomesCreatureSourceEffect(new GhituEncampmentToken(), "land", Duration.EndOfTurn),
- new ManaCostsImpl("{1}{R}")));
+ new ManaCostsImpl<>("{1}{R}")));
}
private GhituEncampment(final GhituEncampment card) {
diff --git a/Mage.Sets/src/mage/cards/g/GhituFire.java b/Mage.Sets/src/mage/cards/g/GhituFire.java
index f383065a44..537bfabd64 100644
--- a/Mage.Sets/src/mage/cards/g/GhituFire.java
+++ b/Mage.Sets/src/mage/cards/g/GhituFire.java
@@ -25,7 +25,7 @@ public final class GhituFire extends CardImpl {
Effect effect = new DamageTargetEffect(ManacostVariableValue.REGULAR);
// You may cast Ghitu Fire as though it had flash if you pay {2} more to cast it.
- Ability ability = new PayMoreToCastAsThoughtItHadFlashAbility(this, new ManaCostsImpl("{2}"));
+ Ability ability = new PayMoreToCastAsThoughtItHadFlashAbility(this, new ManaCostsImpl<>("{2}"));
ability.addEffect(effect);
ability.addTarget(new TargetAnyTarget());
ability.setRuleAtTheTop(true);
diff --git a/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java b/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java
index 97f59af617..ba5175fc22 100644
--- a/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java
+++ b/Mage.Sets/src/mage/cards/g/GhituFirebreathing.java
@@ -41,7 +41,7 @@ public final class GhituFirebreathing extends CardImpl {
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 0, Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.R)));
// {R}: Return Ghitu Firebreathing to its owner's hand.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(), new ManaCostsImpl<>("{R}")));
}
private GhituFirebreathing(final GhituFirebreathing card) {
diff --git a/Mage.Sets/src/mage/cards/g/GhituWarCry.java b/Mage.Sets/src/mage/cards/g/GhituWarCry.java
index f77d8cff95..ded5b6ca61 100644
--- a/Mage.Sets/src/mage/cards/g/GhituWarCry.java
+++ b/Mage.Sets/src/mage/cards/g/GhituWarCry.java
@@ -24,7 +24,7 @@ public final class GhituWarCry extends CardImpl {
// {R}: Target creature gets +1/+0 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java b/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java
index 34e7e107ee..f641cef6e8 100644
--- a/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java
+++ b/Mage.Sets/src/mage/cards/g/GhorClanBloodscale.java
@@ -28,7 +28,7 @@ public final class GhorClanBloodscale extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
this.addAbility(FirstStrikeAbility.getInstance());
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}")));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{3}{G}")));
}
private GhorClanBloodscale(final GhorClanBloodscale card) {
diff --git a/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java b/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java
index 55f615ba37..0bf904bad1 100644
--- a/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java
+++ b/Mage.Sets/src/mage/cards/g/GhostLitNourisher.java
@@ -31,7 +31,7 @@ public final class GhostLitNourisher extends CardImpl {
this.toughness = new MageInt(1);
// {2}{G}, {tap}: Target creature gets +2/+2 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{2}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{G}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GhostLitRaider.java b/Mage.Sets/src/mage/cards/g/GhostLitRaider.java
index 8148ab19dc..8f281cb23c 100644
--- a/Mage.Sets/src/mage/cards/g/GhostLitRaider.java
+++ b/Mage.Sets/src/mage/cards/g/GhostLitRaider.java
@@ -30,7 +30,7 @@ public final class GhostLitRaider extends CardImpl {
this.toughness = new MageInt(1);
// {2}{R}, {tap}: Ghost-Lit Raider deals 2 damage to target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java b/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java
index 8e6f9c4c32..e9d898420f 100644
--- a/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java
+++ b/Mage.Sets/src/mage/cards/g/GhostLitRedeemer.java
@@ -29,7 +29,7 @@ public final class GhostLitRedeemer extends CardImpl {
this.toughness = new MageInt(1);
// {W}, {tap}: You gain 2 life.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
// Channel - {1}{W}, Discard Ghost-Lit Redeemer: You gain 4 life.
diff --git a/Mage.Sets/src/mage/cards/g/GhostLitStalker.java b/Mage.Sets/src/mage/cards/g/GhostLitStalker.java
index 41aba38573..fefa170b4b 100644
--- a/Mage.Sets/src/mage/cards/g/GhostLitStalker.java
+++ b/Mage.Sets/src/mage/cards/g/GhostLitStalker.java
@@ -31,7 +31,7 @@ public final class GhostLitStalker extends CardImpl {
this.toughness = new MageInt(1);
// {4}{B}, {tap}: Target player discards two cards. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(2),new ManaCostsImpl("{4}{B}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(2),new ManaCostsImpl<>("{4}{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GhostLitWarder.java b/Mage.Sets/src/mage/cards/g/GhostLitWarder.java
index a6bf336078..3bbce4acea 100644
--- a/Mage.Sets/src/mage/cards/g/GhostLitWarder.java
+++ b/Mage.Sets/src/mage/cards/g/GhostLitWarder.java
@@ -30,12 +30,12 @@ public final class GhostLitWarder extends CardImpl {
this.toughness = new MageInt(1);
// {3}{U}, {tap}: Counter target spell unless its controller pays {2}.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterUnlessPaysEffect(new ManaCostsImpl("{2}")), new ManaCostsImpl("{3}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterUnlessPaysEffect(new ManaCostsImpl<>("{2}")), new ManaCostsImpl<>("{3}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetSpell());
this.addAbility(ability);
// Channel - {3}{U}, Discard Ghost-Lit Warder: Counter target spell unless its controller pays {4}.
- Ability ability2 = new ChannelAbility("{3}{U}", new CounterUnlessPaysEffect(new ManaCostsImpl("{4}")));
+ Ability ability2 = new ChannelAbility("{3}{U}", new CounterUnlessPaysEffect(new ManaCostsImpl<>("{4}")));
ability2.addTarget(new TargetSpell());
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/g/GhostShip.java b/Mage.Sets/src/mage/cards/g/GhostShip.java
index 5158628409..030be31780 100644
--- a/Mage.Sets/src/mage/cards/g/GhostShip.java
+++ b/Mage.Sets/src/mage/cards/g/GhostShip.java
@@ -30,7 +30,7 @@ public final class GhostShip extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {U}{U}{U}: Regenerate Ghost Ship.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{U}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{U}{U}{U}"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GhostTactician.java b/Mage.Sets/src/mage/cards/g/GhostTactician.java
index b786f75e16..073463479c 100644
--- a/Mage.Sets/src/mage/cards/g/GhostTactician.java
+++ b/Mage.Sets/src/mage/cards/g/GhostTactician.java
@@ -31,7 +31,7 @@ public final class GhostTactician extends CardImpl {
// {W}, {T}, Discard a card: Creatures you control get +1/+0 until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new BoostControlledEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{W}"));
+ new BoostControlledEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java b/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java
index 21afeb69b5..93fd64fdea 100644
--- a/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java
+++ b/Mage.Sets/src/mage/cards/g/GhosthelmCourier.java
@@ -46,7 +46,7 @@ public final class GhosthelmCourier extends CardImpl {
// {2}{U}, {tap}: Target Wizard creature gets +2/+2 and has shroud for as long as Ghosthelm Courier remains tapped.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostTargetEffect(2, 2, Duration.Custom), SourceTappedCondition.TAPPED,
- "target Wizard creature gets +2/+2"), new ManaCostsImpl("{2}{U}"));
+ "target Wizard creature gets +2/+2"), new ManaCostsImpl<>("{2}{U}"));
ability.addEffect(new ConditionalContinuousEffect(new GainAbilityTargetEffect(ShroudAbility.getInstance(),
Duration.Custom), SourceTappedCondition.TAPPED,"and has shroud for as long as {this} remains tapped"));
ability.addCost(new TapSourceCost());
diff --git a/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java b/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java
index 34daf55f4e..ca691cfed2 100644
--- a/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java
+++ b/Mage.Sets/src/mage/cards/g/GhostlyChangeling.java
@@ -27,7 +27,7 @@ public final class GhostlyChangeling extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.addAbility(new ChangelingAbility());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}")));
}
private GhostlyChangeling(final GhostlyChangeling card) {
diff --git a/Mage.Sets/src/mage/cards/g/GhostlyPrison.java b/Mage.Sets/src/mage/cards/g/GhostlyPrison.java
index e70d0caedf..c9e990efd3 100644
--- a/Mage.Sets/src/mage/cards/g/GhostlyPrison.java
+++ b/Mage.Sets/src/mage/cards/g/GhostlyPrison.java
@@ -20,7 +20,7 @@ public final class GhostlyPrison extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
// Creatures can't attack you unless their controller pays {2} for each creature they control that's attacking you
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl("{2}"))));
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl<>("{2}"))));
}
diff --git a/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java b/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java
index dde67209ad..fed5c45339 100644
--- a/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java
+++ b/Mage.Sets/src/mage/cards/g/GhoulcallerGisa.java
@@ -44,7 +44,7 @@ public final class GhoulcallerGisa extends CardImpl {
zombie.setTokenType(2);
Effect effect = new CreateTokenEffect(zombie, xValue);
effect.setText("create X 2/2 black Zombie creature tokens, where X is the sacrificed creature's power");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GhoulcallersAccomplice.java b/Mage.Sets/src/mage/cards/g/GhoulcallersAccomplice.java
index f184a3a5d4..458f96c425 100644
--- a/Mage.Sets/src/mage/cards/g/GhoulcallersAccomplice.java
+++ b/Mage.Sets/src/mage/cards/g/GhoulcallersAccomplice.java
@@ -30,7 +30,7 @@ public final class GhoulcallersAccomplice extends CardImpl {
// {3}{B}, Exile Ghoulcaller's Accomplice from your graveyard: Create a 2/2 black Zombie creature token.
// Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl("{3}{B}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl<>("{3}{B}"));
ability.addCost(new ExileSourceFromGraveCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/Ghoulsteed.java b/Mage.Sets/src/mage/cards/g/Ghoulsteed.java
index 1930c52fca..dfbc7fe180 100644
--- a/Mage.Sets/src/mage/cards/g/Ghoulsteed.java
+++ b/Mage.Sets/src/mage/cards/g/Ghoulsteed.java
@@ -30,7 +30,7 @@ public final class Ghoulsteed extends CardImpl {
this.toughness = new MageInt(4);
// {2}{B}, Discard two cards: Return Ghouldsteed from your graveyard to the battlefield tapped.
- Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, new FilterCard("two cards"))));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GiantAlbatross.java b/Mage.Sets/src/mage/cards/g/GiantAlbatross.java
index c831b12659..efd6d76825 100644
--- a/Mage.Sets/src/mage/cards/g/GiantAlbatross.java
+++ b/Mage.Sets/src/mage/cards/g/GiantAlbatross.java
@@ -39,7 +39,7 @@ public final class GiantAlbatross extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// When Giant Albatross dies, you may pay {1}{U}. If you do, for each creature that dealt damage to Giant Albatross this turn, destroy that creature unless its controller pays 2 life. A creature destroyed this way can't be regenerated.
- Ability ability = new DiesSourceTriggeredAbility(new DoIfCostPaid(new GiantAlbatrossEffect(), new ManaCostsImpl("{1}{U}")));
+ Ability ability = new DiesSourceTriggeredAbility(new DoIfCostPaid(new GiantAlbatrossEffect(), new ManaCostsImpl<>("{1}{U}")));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java b/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java
index e2c74d29d0..88963e49af 100644
--- a/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java
+++ b/Mage.Sets/src/mage/cards/g/GiantCaterpillar.java
@@ -32,7 +32,7 @@ public final class GiantCaterpillar extends CardImpl {
// {G}, Sacrifice Giant Caterpillar: Create a 1/1 green Insect creature token with flying named Butterfly at the beginning of the next end step.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateDelayedTriggeredAbilityEffect(
new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new CreateTokenEffect(new ButterflyToken()))),
- new ManaCostsImpl("{G}"));
+ new ManaCostsImpl<>("{G}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GiantDustwasp.java b/Mage.Sets/src/mage/cards/g/GiantDustwasp.java
index d0b9eabded..0f98a572ee 100644
--- a/Mage.Sets/src/mage/cards/g/GiantDustwasp.java
+++ b/Mage.Sets/src/mage/cards/g/GiantDustwasp.java
@@ -27,7 +27,7 @@ public final class GiantDustwasp extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Suspend 4-{1}{G}
- this.addAbility(new SuspendAbility(4, new ManaCostsImpl("{1}{G}"), this));
+ this.addAbility(new SuspendAbility(4, new ManaCostsImpl<>("{1}{G}"), this));
}
private GiantDustwasp(final GiantDustwasp card) {
diff --git a/Mage.Sets/src/mage/cards/g/GiantKiller.java b/Mage.Sets/src/mage/cards/g/GiantKiller.java
index 07f0520465..f0d9b71c74 100644
--- a/Mage.Sets/src/mage/cards/g/GiantKiller.java
+++ b/Mage.Sets/src/mage/cards/g/GiantKiller.java
@@ -40,7 +40,7 @@ public final class GiantKiller extends AdventureCard {
this.toughness = new MageInt(2);
// {1}{W}, {T}: Tap target creature.
- Ability ability = new SimpleActivatedAbility(new TapTargetEffect(), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(new TapTargetEffect(), new ManaCostsImpl<>("{1}{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GiantSlug.java b/Mage.Sets/src/mage/cards/g/GiantSlug.java
index ec1f364df2..6a04d189c1 100644
--- a/Mage.Sets/src/mage/cards/g/GiantSlug.java
+++ b/Mage.Sets/src/mage/cards/g/GiantSlug.java
@@ -37,7 +37,7 @@ public final class GiantSlug extends CardImpl {
// {5}: At the beginning of your next upkeep, choose a basic land type. Giant Slug gains landwalk of the chosen type until the end of that turn.
this.addAbility(new SimpleActivatedAbility(new CreateDelayedTriggeredAbilityEffect(
new AtTheBeginOfYourNextUpkeepDelayedTriggeredAbility(new GiantSlugEffect())
- ), new ManaCostsImpl("{5}")));
+ ), new ManaCostsImpl<>("{5}")));
}
private GiantSlug(final GiantSlug card) {
diff --git a/Mage.Sets/src/mage/cards/g/GiantTrapDoorSpider.java b/Mage.Sets/src/mage/cards/g/GiantTrapDoorSpider.java
index 7e596817b4..06195e2c47 100644
--- a/Mage.Sets/src/mage/cards/g/GiantTrapDoorSpider.java
+++ b/Mage.Sets/src/mage/cards/g/GiantTrapDoorSpider.java
@@ -40,7 +40,7 @@ public final class GiantTrapDoorSpider extends CardImpl {
this.toughness = new MageInt(3);
// {1}{R}{G}, {tap}: Exile Giant Trap Door Spider and target creature without flying that's attacking you.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileSourceEffect(), new ManaCostsImpl("{1}{R}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileSourceEffect(), new ManaCostsImpl<>("{1}{R}{G}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ExileTargetEffect().setText("and target creature without flying that's attacking you"));
ability.addTarget(new TargetCreaturePermanent(filter));
diff --git a/Mage.Sets/src/mage/cards/g/GideonsCompany.java b/Mage.Sets/src/mage/cards/g/GideonsCompany.java
index f5e3a03f7d..d51830d119 100644
--- a/Mage.Sets/src/mage/cards/g/GideonsCompany.java
+++ b/Mage.Sets/src/mage/cards/g/GideonsCompany.java
@@ -40,7 +40,7 @@ public final class GideonsCompany extends CardImpl {
// {3}{W}: Put a loyalty counter on target Gideon planeswalker.
Ability ability = new SimpleActivatedAbility(
- new AddCountersTargetEffect(CounterType.LOYALTY.createInstance()), new ManaCostsImpl("{3}{W}")
+ new AddCountersTargetEffect(CounterType.LOYALTY.createInstance()), new ManaCostsImpl<>("{3}{W}")
);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GiftedInitiate.java b/Mage.Sets/src/mage/cards/g/GiftedInitiate.java
index 63063c6c8b..aa8e14113c 100644
--- a/Mage.Sets/src/mage/cards/g/GiftedInitiate.java
+++ b/Mage.Sets/src/mage/cards/g/GiftedInitiate.java
@@ -37,7 +37,7 @@ public final class GiftedInitiate extends CardImpl {
this.addAbility(ability);
// Meditate {1}{W}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{W}")));
}
private GiftedInitiate(final GiftedInitiate card) {
diff --git a/Mage.Sets/src/mage/cards/g/Gigantoplasm.java b/Mage.Sets/src/mage/cards/g/Gigantoplasm.java
index 544388d29c..6f410e2d0a 100644
--- a/Mage.Sets/src/mage/cards/g/Gigantoplasm.java
+++ b/Mage.Sets/src/mage/cards/g/Gigantoplasm.java
@@ -59,7 +59,7 @@ class GigantoplasmCopyApplier extends CopyApplier {
DynamicValue variableMana = ManacostVariableValue.REGULAR;
Effect effect = new SetPowerToughnessSourceEffect(variableMana, Duration.WhileOnBattlefield, SubLayer.SetPT_7b);
effect.setText("This creature has base power and toughness X/X");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{X}"));
blueprint.getAbilities().add(ability);
return true;
}
diff --git a/Mage.Sets/src/mage/cards/g/GildedGoose.java b/Mage.Sets/src/mage/cards/g/GildedGoose.java
index 4b2cfd80bb..769fb3f793 100644
--- a/Mage.Sets/src/mage/cards/g/GildedGoose.java
+++ b/Mage.Sets/src/mage/cards/g/GildedGoose.java
@@ -48,7 +48,7 @@ public final class GildedGoose extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new FoodToken()), false));
// {1}{G}, {T}: Create a Food token.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new FoodToken()), new ManaCostsImpl("{1}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new FoodToken()), new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GildedLight.java b/Mage.Sets/src/mage/cards/g/GildedLight.java
index a51ed59a9a..1b810c8479 100644
--- a/Mage.Sets/src/mage/cards/g/GildedLight.java
+++ b/Mage.Sets/src/mage/cards/g/GildedLight.java
@@ -25,7 +25,7 @@ public final class GildedLight extends CardImpl {
this.getSpellAbility().addEffect(new GainAbilityControllerEffect(ShroudAbility.getInstance(), Duration.EndOfTurn));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private GildedLight(final GildedLight card) {
diff --git a/Mage.Sets/src/mage/cards/g/GilderBairn.java b/Mage.Sets/src/mage/cards/g/GilderBairn.java
index c68d54bbe3..23dabdfeb2 100644
--- a/Mage.Sets/src/mage/cards/g/GilderBairn.java
+++ b/Mage.Sets/src/mage/cards/g/GilderBairn.java
@@ -33,7 +33,7 @@ public final class GilderBairn extends CardImpl {
this.toughness = new MageInt(3);
// {2}{GU}, {untap}: For each counter on target permanent, put another of those counters on that permanent.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GilderBairnEffect(), new ManaCostsImpl("{2}{G/U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GilderBairnEffect(), new ManaCostsImpl<>("{2}{G/U}"));
ability.addCost(new UntapSourceCost());
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java b/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java
index fa7a0802bb..e7f0e1ef36 100644
--- a/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java
+++ b/Mage.Sets/src/mage/cards/g/GiltLeafSeer.java
@@ -29,7 +29,7 @@ public final class GiltLeafSeer extends CardImpl {
this.toughness = new MageInt(2);
// {G}, {tap}: Look at the top two cards of your library, then put them back in any order.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LookLibraryControllerEffect(2), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LookLibraryControllerEffect(2), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GisasBidding.java b/Mage.Sets/src/mage/cards/g/GisasBidding.java
index a8862d89f2..5c59e1c8b3 100644
--- a/Mage.Sets/src/mage/cards/g/GisasBidding.java
+++ b/Mage.Sets/src/mage/cards/g/GisasBidding.java
@@ -23,7 +23,7 @@ public final class GisasBidding extends CardImpl {
this.getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken(), 2));
// Madness {2}{B}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{2}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{2}{B}")));
}
private GisasBidding(final GisasBidding card) {
diff --git a/Mage.Sets/src/mage/cards/g/GlacialPlating.java b/Mage.Sets/src/mage/cards/g/GlacialPlating.java
index 98fa2ca94f..725f78c51a 100644
--- a/Mage.Sets/src/mage/cards/g/GlacialPlating.java
+++ b/Mage.Sets/src/mage/cards/g/GlacialPlating.java
@@ -45,7 +45,7 @@ public final class GlacialPlating extends CardImpl {
this.addAbility(ability);
// Cumulative upkeep {snow}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{S}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{S}")));
// Enchanted creature gets +3/+3 for each age counter on Glacial Plating.
DynamicValue boostValue = new MultipliedValue(new CountersSourceCount(CounterType.AGE), 3);
diff --git a/Mage.Sets/src/mage/cards/g/GlacialStalker.java b/Mage.Sets/src/mage/cards/g/GlacialStalker.java
index 1ba3afbe7f..180885fe1a 100644
--- a/Mage.Sets/src/mage/cards/g/GlacialStalker.java
+++ b/Mage.Sets/src/mage/cards/g/GlacialStalker.java
@@ -24,7 +24,7 @@ public final class GlacialStalker extends CardImpl {
this.toughness = new MageInt(5);
// Morph {4}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{4}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{4}{U}")));
}
private GlacialStalker(final GlacialStalker card) {
diff --git a/Mage.Sets/src/mage/cards/g/Glaciers.java b/Mage.Sets/src/mage/cards/g/Glaciers.java
index dfb36138d0..a78fb40556 100644
--- a/Mage.Sets/src/mage/cards/g/Glaciers.java
+++ b/Mage.Sets/src/mage/cards/g/Glaciers.java
@@ -30,7 +30,7 @@ public final class Glaciers extends CardImpl {
// At the beginning of your upkeep, sacrifice Glaciers unless you pay {W}{U}.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
- new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{W}{U}")), TargetController.YOU, false));
+ new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{W}{U}")), TargetController.YOU, false));
// All Mountains are Plains.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GlaciersEffect()));
diff --git a/Mage.Sets/src/mage/cards/g/GladeWatcher.java b/Mage.Sets/src/mage/cards/g/GladeWatcher.java
index c3966c78a0..07d0f2b4b4 100644
--- a/Mage.Sets/src/mage/cards/g/GladeWatcher.java
+++ b/Mage.Sets/src/mage/cards/g/GladeWatcher.java
@@ -35,7 +35,7 @@ public final class GladeWatcher extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(
Zone.BATTLEFIELD,
new CanAttackAsThoughItDidntHaveDefenderSourceEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{G}"),
+ new ManaCostsImpl<>("{G}"),
FormidableCondition.instance);
ability.setAbilityWord(AbilityWord.FORMIDABLE);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/Glarecaster.java b/Mage.Sets/src/mage/cards/g/Glarecaster.java
index 30cbef5c45..1d2f1c3353 100644
--- a/Mage.Sets/src/mage/cards/g/Glarecaster.java
+++ b/Mage.Sets/src/mage/cards/g/Glarecaster.java
@@ -38,7 +38,7 @@ public final class Glarecaster extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {5}{W}: The next time damage would be dealt to Glarecaster and/or you this turn, that damage is dealt to any target instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GlarecasterEffect(), new ManaCostsImpl("{5}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GlarecasterEffect(), new ManaCostsImpl<>("{5}{W}"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GlassAsp.java b/Mage.Sets/src/mage/cards/g/GlassAsp.java
index 4ac368e349..be9bc5efb1 100644
--- a/Mage.Sets/src/mage/cards/g/GlassAsp.java
+++ b/Mage.Sets/src/mage/cards/g/GlassAsp.java
@@ -27,7 +27,7 @@ public final class GlassAsp extends CardImpl {
// Whenever Glass Asp deals combat damage to a player, that player loses 2 life at the beginning of their next draw step unless they pay {2} before that step.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new UnlessPaysDelayedEffect(
- new ManaCostsImpl("{2}"), new LoseLifeTargetEffect(2), PhaseStep.DRAW, true,
+ new ManaCostsImpl<>("{2}"), new LoseLifeTargetEffect(2), PhaseStep.DRAW, true,
"that player loses 2 life at the beginning of their next draw step unless they pay {2} before that step."),
false, true));
}
diff --git a/Mage.Sets/src/mage/cards/g/GlassdustHulk.java b/Mage.Sets/src/mage/cards/g/GlassdustHulk.java
index 543f43fd25..f60213c79c 100644
--- a/Mage.Sets/src/mage/cards/g/GlassdustHulk.java
+++ b/Mage.Sets/src/mage/cards/g/GlassdustHulk.java
@@ -45,7 +45,7 @@ public final class GlassdustHulk extends CardImpl {
ability.addEffect(new CantBeBlockedSourceEffect(Duration.EndOfTurn));
this.addAbility(ability);
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{W/U}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{W/U}")));
}
private GlassdustHulk(final GlassdustHulk card) {
diff --git a/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java b/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java
index 63af0a5b78..fc6f3c24b1 100644
--- a/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java
+++ b/Mage.Sets/src/mage/cards/g/GleamOfAuthority.java
@@ -50,7 +50,7 @@ public final class GleamOfAuthority extends CardImpl {
// Enchanted creature has vigilance and "{W}, {T}: Bloster 1."
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.AURA));
- Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BolsterEffect(1), new ManaCostsImpl("{W}"));
+ Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BolsterEffect(1), new ManaCostsImpl<>("{W}"));
gainedAbility.addCost(new TapSourceCost());
ability.addEffect(new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA).setText("and \"{W}, {T}: Bloster 1.\""));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GleamOfResistance.java b/Mage.Sets/src/mage/cards/g/GleamOfResistance.java
index cf6539fbcb..36c83d7c0d 100644
--- a/Mage.Sets/src/mage/cards/g/GleamOfResistance.java
+++ b/Mage.Sets/src/mage/cards/g/GleamOfResistance.java
@@ -25,7 +25,7 @@ public final class GleamOfResistance extends CardImpl {
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 2, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new UntapAllControllerEffect(StaticFilters.FILTER_PERMANENT_CREATURE, "Untap those creatures"));
// Basic landcycling {1}{W}({1}{W}, Discard this card: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.)
- this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl<>("{1}{W}")));
}
private GleamOfResistance(final GleamOfResistance card) {
diff --git a/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java b/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java
index a1a61da72d..7f0c2d93c1 100644
--- a/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java
+++ b/Mage.Sets/src/mage/cards/g/GlenElendraArchmage.java
@@ -35,7 +35,7 @@ public final class GlenElendraArchmage extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {U}, Sacrifice Glen Elendra Archmage: Counter target noncreature spell.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl<>("{U}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_NON_CREATURE));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/Glimmerbell.java b/Mage.Sets/src/mage/cards/g/Glimmerbell.java
index c9604e6fce..eef561a1ec 100644
--- a/Mage.Sets/src/mage/cards/g/Glimmerbell.java
+++ b/Mage.Sets/src/mage/cards/g/Glimmerbell.java
@@ -29,7 +29,7 @@ public final class Glimmerbell extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {1}{U}: Untap Glimmerbell.
- this.addAbility(new SimpleActivatedAbility(new UntapSourceEffect(), new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new SimpleActivatedAbility(new UntapSourceEffect(), new ManaCostsImpl<>("{1}{U}")));
}
private Glimmerbell(final Glimmerbell card) {
diff --git a/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java b/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java
index ea7c2ffdd8..f81f3c0bf4 100644
--- a/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java
+++ b/Mage.Sets/src/mage/cards/g/GlimmeringAngel.java
@@ -31,7 +31,7 @@ public final class GlimmeringAngel extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {U}: Glimmering Angel gains shroud until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(ShroudAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(ShroudAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{U}")));
}
private GlimmeringAngel(final GlimmeringAngel card) {
diff --git a/Mage.Sets/src/mage/cards/g/GlintHornBuccaneer.java b/Mage.Sets/src/mage/cards/g/GlintHornBuccaneer.java
index 67fae6af13..d019749437 100644
--- a/Mage.Sets/src/mage/cards/g/GlintHornBuccaneer.java
+++ b/Mage.Sets/src/mage/cards/g/GlintHornBuccaneer.java
@@ -43,7 +43,7 @@ public final class GlintHornBuccaneer extends CardImpl {
// {1}{R}, Discard a card: Draw a card. Activate this ability only if Glint-Horn Buccaneer is attacking.
Ability ability = new ConditionalActivatedAbility(
Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1),
- new ManaCostsImpl("{1}{R}"), SourceAttackingCondition.instance
+ new ManaCostsImpl<>("{1}{R}"), SourceAttackingCondition.instance
);
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java b/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java
index 61c95f3978..6e06665651 100644
--- a/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java
+++ b/Mage.Sets/src/mage/cards/g/GlintwingInvoker.java
@@ -34,7 +34,7 @@ public final class GlintwingInvoker extends CardImpl {
// {7}{U}: Glintwing Invoker gets +3/+3 and gains flying until end of turn.
Effect effect = new BoostSourceEffect(3, 3, Duration.EndOfTurn);
effect.setText("{this} gets +3/+3");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{7}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{7}{U}"));
effect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains flying until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/g/GlitteringLion.java b/Mage.Sets/src/mage/cards/g/GlitteringLion.java
index b1a45bdd0d..65782958c8 100644
--- a/Mage.Sets/src/mage/cards/g/GlitteringLion.java
+++ b/Mage.Sets/src/mage/cards/g/GlitteringLion.java
@@ -32,7 +32,7 @@ public final class GlitteringLion extends CardImpl {
// Prevent all damage that would be dealt to Glittering Lion.
this.addAbility(GlitteringLionAbility.getInstance());
// {3}: Until end of turn, Glittering Lion loses "Prevent all damage that would be dealt to Glittering Lion." Any player may activate this ability.
- SimpleActivatedAbility ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilitySourceEffect(GlitteringLionAbility.getInstance(), Duration.EndOfTurn).setText("Until end of turn, {this} loses \"Prevent all damage that would be dealt to {this}.\" Any player may activate this ability"), new ManaCostsImpl("{3}"));
+ SimpleActivatedAbility ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilitySourceEffect(GlitteringLionAbility.getInstance(), Duration.EndOfTurn).setText("Until end of turn, {this} loses \"Prevent all damage that would be dealt to {this}.\" Any player may activate this ability"), new ManaCostsImpl<>("{3}"));
ability2.setMayActivate(TargetController.ANY);
this.addAbility(ability2);
}
diff --git a/Mage.Sets/src/mage/cards/g/GlitteringLynx.java b/Mage.Sets/src/mage/cards/g/GlitteringLynx.java
index f5b4b5009c..0d3c271d4a 100644
--- a/Mage.Sets/src/mage/cards/g/GlitteringLynx.java
+++ b/Mage.Sets/src/mage/cards/g/GlitteringLynx.java
@@ -33,7 +33,7 @@ public final class GlitteringLynx extends CardImpl {
// Prevent all damage that would be dealt to Glittering Lynx.
this.addAbility(GlitteringLynxAbility.getInstance());
// {2}: Until end of turn, Glittering Lynx loses "Prevent all damage that would be dealt to Glittering Lynx." Any player may activate this ability.
- SimpleActivatedAbility ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilitySourceEffect(GlitteringLynxAbility.getInstance(), Duration.EndOfTurn).setText("Until end of turn, {this} loses \"Prevent all damage that would be dealt to {this}.\""), new ManaCostsImpl("{2}"));
+ SimpleActivatedAbility ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilitySourceEffect(GlitteringLynxAbility.getInstance(), Duration.EndOfTurn).setText("Until end of turn, {this} loses \"Prevent all damage that would be dealt to {this}.\""), new ManaCostsImpl<>("{2}"));
ability2.setMayActivate(TargetController.ANY);
ability2.addEffect(new InfoEffect("Any player may activate this ability"));
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/g/Glory.java b/Mage.Sets/src/mage/cards/g/Glory.java
index 5f5b5eec62..295de6d07d 100644
--- a/Mage.Sets/src/mage/cards/g/Glory.java
+++ b/Mage.Sets/src/mage/cards/g/Glory.java
@@ -33,7 +33,7 @@ public final class Glory extends CardImpl {
// {2}{W}: Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate this ability only if Glory is in your graveyard.
Effect effect = new GainProtectionFromColorAllEffect(Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES);
effect.setText("Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate only if {this} is in your graveyard.");
- this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, effect, new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, effect, new ManaCostsImpl<>("{2}{W}")));
}
private Glory(final Glory card) {
diff --git a/Mage.Sets/src/mage/cards/g/GluttonousTroll.java b/Mage.Sets/src/mage/cards/g/GluttonousTroll.java
index 3770ec3942..bad7ed4ac3 100644
--- a/Mage.Sets/src/mage/cards/g/GluttonousTroll.java
+++ b/Mage.Sets/src/mage/cards/g/GluttonousTroll.java
@@ -53,7 +53,7 @@ public final class GluttonousTroll extends CardImpl {
// {1}{G}, Sacrifice another nonland permanent: Gluttonous Troll gets +2/+2 until end of turn.
Ability ability = new SimpleActivatedAbility(
- new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{1}{G}")
+ new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}")
);
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GlyphKeeper.java b/Mage.Sets/src/mage/cards/g/GlyphKeeper.java
index cb9944378e..0b218dcd1c 100644
--- a/Mage.Sets/src/mage/cards/g/GlyphKeeper.java
+++ b/Mage.Sets/src/mage/cards/g/GlyphKeeper.java
@@ -40,7 +40,7 @@ public final class GlyphKeeper extends CardImpl {
this.addAbility(new GlyphKeeperAbility(), new NumberOfTimesPermanentTargetedATurnWatcher());
// Embalm {5}{U}{U}
- this.addAbility(new EmbalmAbility(new ManaCostsImpl("{5}{U}{U}"), this));
+ this.addAbility(new EmbalmAbility(new ManaCostsImpl<>("{5}{U}{U}"), this));
}
diff --git a/Mage.Sets/src/mage/cards/g/GnawToTheBone.java b/Mage.Sets/src/mage/cards/g/GnawToTheBone.java
index 26949fb457..9d6d6363e3 100644
--- a/Mage.Sets/src/mage/cards/g/GnawToTheBone.java
+++ b/Mage.Sets/src/mage/cards/g/GnawToTheBone.java
@@ -26,7 +26,7 @@ public final class GnawToTheBone extends CardImpl {
this.getSpellAbility().addEffect(new GainLifeEffect(value));
// Flashback {2}{G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{2}{G}")));
}
private GnawToTheBone(final GnawToTheBone card) {
diff --git a/Mage.Sets/src/mage/cards/g/GnawingZombie.java b/Mage.Sets/src/mage/cards/g/GnawingZombie.java
index 63d285bfbd..1ccc00ed40 100644
--- a/Mage.Sets/src/mage/cards/g/GnawingZombie.java
+++ b/Mage.Sets/src/mage/cards/g/GnawingZombie.java
@@ -32,7 +32,7 @@ public final class GnawingZombie extends CardImpl {
this.toughness = new MageInt(3);
// {1}{B}, Sacrifice a creature: Target player loses 1 life and you gain 1 life.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCostsImpl<>("{1}{B}"));
ability.addEffect(new GainLifeEffect(1));
ability.addTarget(new TargetPlayer());
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
diff --git a/Mage.Sets/src/mage/cards/g/GnottvoldSlumbermound.java b/Mage.Sets/src/mage/cards/g/GnottvoldSlumbermound.java
index 725debff1f..242a91b1a9 100644
--- a/Mage.Sets/src/mage/cards/g/GnottvoldSlumbermound.java
+++ b/Mage.Sets/src/mage/cards/g/GnottvoldSlumbermound.java
@@ -33,7 +33,7 @@ public final class GnottvoldSlumbermound extends CardImpl {
// {3}{R}{G}{G}, {T}, Sacrifice Gnottvold Slumbermound: Destroy target land. Create a 4/4 green Troll Warrior creature token with trample.
Ability ability = new SimpleActivatedAbility(
- new DestroyTargetEffect().setText("destroy target land."), new ManaCostsImpl("{3}{R}{G}{G}")
+ new DestroyTargetEffect().setText("destroy target land."), new ManaCostsImpl<>("{3}{R}{G}{G}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/g/GoForBlood.java b/Mage.Sets/src/mage/cards/g/GoForBlood.java
index 8dc6a87c62..9829274798 100644
--- a/Mage.Sets/src/mage/cards/g/GoForBlood.java
+++ b/Mage.Sets/src/mage/cards/g/GoForBlood.java
@@ -26,7 +26,7 @@ public final class GoForBlood extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
// Cycling {1}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{1}")));
}
private GoForBlood(final GoForBlood card) {
diff --git a/Mage.Sets/src/mage/cards/g/GobblingOoze.java b/Mage.Sets/src/mage/cards/g/GobblingOoze.java
index a73d325645..97494b2c85 100644
--- a/Mage.Sets/src/mage/cards/g/GobblingOoze.java
+++ b/Mage.Sets/src/mage/cards/g/GobblingOoze.java
@@ -31,7 +31,7 @@ public final class GobblingOoze extends CardImpl {
this.toughness = new MageInt(3);
// {G}, Sacrifice another creature: Put a +1/+1 counter on Gobbling Ooze.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), new ManaCostsImpl<>("{G}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE, false)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GobhobblerRats.java b/Mage.Sets/src/mage/cards/g/GobhobblerRats.java
index ff76a4c1a9..91ac8002e5 100644
--- a/Mage.Sets/src/mage/cards/g/GobhobblerRats.java
+++ b/Mage.Sets/src/mage/cards/g/GobhobblerRats.java
@@ -35,7 +35,7 @@ public final class GobhobblerRats extends CardImpl {
// Hellbent - As long as you have no cards in hand, Gobhobbler Rats gets +1/+0 and has "{B}: Regenerate Gobhobbler Rats."
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostSourceEffect(1,0, Duration.WhileOnBattlefield), HellbentCondition.instance, "Hellbent — As long as you have no cards in hand, {this} gets +1/+0"));
- Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}"));
+ Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}"));
ability.addEffect(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(gainedAbility, Duration.WhileOnBattlefield), HellbentCondition.instance, "and has \"{B}: Regenerate {this}.\""));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java b/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java
index ae07c81c85..dcc3c8c53e 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinArchaeologist.java
@@ -34,7 +34,7 @@ public final class GoblinArchaeologist extends CardImpl {
this.toughness = new MageInt(2);
// {R}, {T]: Flip a coin. If you win the flip, destroy target artifact and untap Goblin Archaeologist. If you lose the flip, sacrifice Goblin Archaeologist.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinArchaeologistEffect(),new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinArchaeologistEffect(),new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java b/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java
index fc027fbf7a..fbe4ae0099 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinBalloonBrigade.java
@@ -32,7 +32,7 @@ public final class GoblinBalloonBrigade extends CardImpl {
// {R}: Goblin Balloon Brigade gains flying until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GainAbilitySourceEffect(FlyingAbility.getInstance(),
- Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
}
private GoblinBalloonBrigade(final GoblinBalloonBrigade card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinBanneret.java b/Mage.Sets/src/mage/cards/g/GoblinBanneret.java
index 2eb8c321ff..191cf3e78a 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinBanneret.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinBanneret.java
@@ -34,7 +34,7 @@ public final class GoblinBanneret extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new BoostSourceEffect(2, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{1}{R}")
+ new ManaCostsImpl<>("{1}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java b/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java
index d1d26e47a9..d63bcf6759 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinBirdGrabber.java
@@ -43,7 +43,7 @@ public final class GoblinBirdGrabber extends CardImpl {
// {R}: Goblin Bird-Grabber gains flying until end of turn. Activate this ability only if you control a creature with flying.
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(
FlyingAbility.getInstance(), Duration.EndOfTurn
- ), new ManaCostsImpl("{R}"), condition));
+ ), new ManaCostsImpl<>("{R}"), condition));
}
private GoblinBirdGrabber(final GoblinBirdGrabber card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinBurrows.java b/Mage.Sets/src/mage/cards/g/GoblinBurrows.java
index 0e8d5b25f4..17c3d503a3 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinBurrows.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinBurrows.java
@@ -35,7 +35,7 @@ public final class GoblinBurrows extends CardImpl {
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2,0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2,0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinCannon.java b/Mage.Sets/src/mage/cards/g/GoblinCannon.java
index 85d4f40911..02ed36630b 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinCannon.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinCannon.java
@@ -23,7 +23,7 @@ public final class GoblinCannon extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// {2}: Goblin Cannon deals 1 damage to any target. Sacrifice Goblin Cannon.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{2}"));
ability.addTarget(new TargetAnyTarget());
ability.addEffect(new SacrificeSourceEffect());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java b/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java
index e443c2d2eb..98a2b6a25e 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinCharbelcher.java
@@ -27,7 +27,7 @@ public final class GoblinCharbelcher extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
// {3}, {tap}: Reveal cards from the top of your library until you reveal a land card. Goblin Charbelcher deals damage equal to the number of nonland cards revealed this way to any target. If the revealed land card was a Mountain, Goblin Charbelcher deals double that damage instead. Put the revealed cards on the bottom of your library in any order.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinCharbelcherEffect(), new ManaCostsImpl("{3}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinCharbelcherEffect(), new ManaCostsImpl<>("{3}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinDirigible.java b/Mage.Sets/src/mage/cards/g/GoblinDirigible.java
index 005f073f5b..651d224fe7 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinDirigible.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinDirigible.java
@@ -35,7 +35,7 @@ public final class GoblinDirigible extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// At the beginning of your upkeep, you may pay {4}. If you do, untap Goblin Dirigible.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DoIfCostPaid(
- new UntapSourceEffect(), new ManaCostsImpl("{4}")), TargetController.YOU, false));
+ new UntapSourceEffect(), new ManaCostsImpl<>("{4}")), TargetController.YOU, false));
}
private GoblinDirigible(final GoblinDirigible card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinDynamo.java b/Mage.Sets/src/mage/cards/g/GoblinDynamo.java
index c8b3ff1df4..0a13516c60 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinDynamo.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinDynamo.java
@@ -35,7 +35,7 @@ public final class GoblinDynamo extends CardImpl {
this.addAbility(ability);
//{X}{R}, {T}, Sacrifice Goblin Dynamo: Goblin Dynamo deals X damage to any target.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl<>("{X}{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinEngineer.java b/Mage.Sets/src/mage/cards/g/GoblinEngineer.java
index c17f3450b6..da26604d60 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinEngineer.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinEngineer.java
@@ -53,7 +53,7 @@ public final class GoblinEngineer extends CardImpl {
// {R}, {T}, Sacrifice an artifact: Return target artifact card with converted mana cost 3 or less from your graveyard to the battlefield.
Ability ability = new SimpleActivatedAbility(
- new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{R}")
+ new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl<>("{R}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
diff --git a/Mage.Sets/src/mage/cards/g/GoblinFestival.java b/Mage.Sets/src/mage/cards/g/GoblinFestival.java
index 4b59c28792..bd3cb48a56 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinFestival.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinFestival.java
@@ -31,7 +31,7 @@ public final class GoblinFestival extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{R}");
// {2}: Goblin Festival deals 1 damage to any target. Flip a coin. If you lose the flip, choose one of your opponents. That player gains control of Goblin Festival.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{2}"));
ability.addTarget(new TargetAnyTarget());
ability.addEffect(new GoblinFestivalChangeControlEffect());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java b/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java
index b318f7e2c2..1d388d9d95 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinFireFiend.java
@@ -37,7 +37,7 @@ public final class GoblinFireFiend extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAtLeastOneSourceEffect(Duration.WhileOnBattlefield)));
//{R}: Goblin Fire Fiend gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
}
private GoblinFireFiend(final GoblinFireFiend card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java b/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java
index 1f0cef2c0a..9b7a64726a 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java
@@ -43,7 +43,7 @@ public final class GoblinFlotilla extends CardImpl {
"Blocks or Blocked by Goblin Flotilla"),
false),
Duration.EndOfCombat),
- new ManaCostsImpl("{R}"),
+ new ManaCostsImpl<>("{R}"),
"Pay Goblin Flotilla combat effect?"
);
effect.setText("unless you pay {R}, whenever {this} blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn.");
diff --git a/Mage.Sets/src/mage/cards/g/GoblinGoliath.java b/Mage.Sets/src/mage/cards/g/GoblinGoliath.java
index ce3afd13fd..a24afab806 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinGoliath.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinGoliath.java
@@ -39,7 +39,7 @@ public final class GoblinGoliath extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(effect));
// {3}{R}, {T}: If a source you control would deal damage to an opponent this turn, it deals double that damage to that player instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinGoliathDamageEffect(), new ManaCostsImpl("{3}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinGoliathDamageEffect(), new ManaCostsImpl<>("{3}{R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GoblinKites.java b/Mage.Sets/src/mage/cards/g/GoblinKites.java
index 3260517f46..f48cf32e65 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinKites.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinKites.java
@@ -37,7 +37,7 @@ public final class GoblinKites extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{R}");
// {R}: Target creature you control with toughness 2 or less gains flying until end of turn. Flip a coin at the beginning of the next end step. If you lose the flip, sacrifice that creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addTarget(new TargetCreaturePermanent(filter));
ability.addEffect(new GainAbilityTargetEffect(new BeginningOfEndStepTriggeredAbility(new GoblinKitesEffect(), TargetController.NEXT, false), Duration.EndOfTurn));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinMachinist.java b/Mage.Sets/src/mage/cards/g/GoblinMachinist.java
index 3e81b03652..3b223d9a55 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinMachinist.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinMachinist.java
@@ -33,7 +33,7 @@ public final class GoblinMachinist extends CardImpl {
this.toughness = new MageInt(5);
// {2}{R}: Reveal cards from the top of your library until you reveal a nonland card. Goblin Machinist gets +X/+0 until end of turn, where X is that card's converted mana cost. Put the revealed cards on the bottom of your library in any order.
- this.addAbility(new SimpleActivatedAbility(new GoblinMachinistEffect(), new ManaCostsImpl("{2}{R}")));
+ this.addAbility(new SimpleActivatedAbility(new GoblinMachinistEffect(), new ManaCostsImpl<>("{2}{R}")));
}
private GoblinMachinist(final GoblinMachinist card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java b/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java
index fa861bae0a..a14077578b 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java
@@ -39,7 +39,7 @@ public final class GoblinRazerunners extends CardImpl {
this.toughness = new MageInt(4);
// {1}{R}, Sacrifice a land: Put a +1/+1 counter on Goblin Razerunners.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinReplica.java b/Mage.Sets/src/mage/cards/g/GoblinReplica.java
index 8dd06695df..94c5de4862 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinReplica.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinReplica.java
@@ -33,7 +33,7 @@ public final class GoblinReplica extends CardImpl {
this.subtype.add(SubType.GOBLIN);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{3}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{3}{R}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinRimerunner.java b/Mage.Sets/src/mage/cards/g/GoblinRimerunner.java
index a756d63c2c..cf3a6a1806 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinRimerunner.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinRimerunner.java
@@ -39,7 +39,7 @@ public final class GoblinRimerunner extends CardImpl {
this.addAbility(ability);
// {snow}: Goblin Rimerunner gains haste until end of turn.
- this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{S}")));
+ this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{S}")));
}
private GoblinRimerunner(final GoblinRimerunner card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java b/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java
index a7b3c97e6d..36e6474cfd 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinSoothsayer.java
@@ -43,7 +43,7 @@ public final class GoblinSoothsayer extends CardImpl {
this.toughness = new MageInt(1);
// {R}, {T}, Sacrifice a Goblin: Red creatures get +1/+1 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1,1,Duration.EndOfTurn, filter, false), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1,1,Duration.EndOfTurn, filter, false), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter2)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java b/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java
index e5be2d3f5f..e4d0dd54bd 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinTaskmaster.java
@@ -36,12 +36,12 @@ public final class GoblinTaskmaster extends CardImpl {
this.toughness = new MageInt(1);
// {1}{R}: Target Goblin creature gets +1/+0 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
// Morph {R}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{R}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{R}")));
}
private GoblinTaskmaster(final GoblinTaskmaster card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinVandal.java b/Mage.Sets/src/mage/cards/g/GoblinVandal.java
index d67eacf712..3d326eb069 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinVandal.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinVandal.java
@@ -43,7 +43,7 @@ public final class GoblinVandal extends CardImpl {
// Whenever Goblin Vandal attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and Goblin Vandal assigns no combat damage this turn.
Effect effect = new DestroyTargetEffect();
effect.setText("destroy target artifact defending player controls");
- DoIfCostPaid effect2 = new DoIfCostPaid(effect, new ManaCostsImpl("{R}"), "Pay {R} to destroy artifact of defending player?");
+ DoIfCostPaid effect2 = new DoIfCostPaid(effect, new ManaCostsImpl<>("{R}"), "Pay {R} to destroy artifact of defending player?");
effect = new AssignNoCombatDamageSourceEffect(Duration.EndOfTurn);
effect.setText("and {this} assigns no combat damage this turn");
effect2.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java b/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java
index 8da5122f68..748b76976c 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinWarWagon.java
@@ -32,7 +32,7 @@ public final class GoblinWarWagon extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// At the beginning of your upkeep, you may pay {2}. If you do, untap Goblin War Wagon.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DoIfCostPaid(
- new UntapSourceEffect(), new ManaCostsImpl("{2}")), TargetController.YOU, false));
+ new UntapSourceEffect(), new ManaCostsImpl<>("{2}")), TargetController.YOU, false));
}
private GoblinWarWagon(final GoblinWarWagon card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoblinWarrens.java b/Mage.Sets/src/mage/cards/g/GoblinWarrens.java
index ad305b1e69..8e16f18471 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinWarrens.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinWarrens.java
@@ -29,7 +29,7 @@ public final class GoblinWarrens extends CardImpl {
// {2}{R}, Sacrifice two Goblins: Create three 1/1 red Goblin creature tokens.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoblinToken(), 3), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoblinToken(), 3), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(2, 2, filter, true)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GoblinWizard.java b/Mage.Sets/src/mage/cards/g/GoblinWizard.java
index 6da98c09f7..5b724132be 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinWizard.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinWizard.java
@@ -50,7 +50,7 @@ public final class GoblinWizard extends CardImpl {
// {R}: Target Goblin gains protection from white until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new GainAbilityTargetEffect(ProtectionAbility.from(ObjectColor.WHITE), Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ new GainAbilityTargetEffect(ProtectionAbility.from(ObjectColor.WHITE), Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
Target target = new TargetPermanent(goblinPermanent);
ability.addTarget(target);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java b/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java
index 3ed26475d1..4462bc1057 100644
--- a/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java
+++ b/Mage.Sets/src/mage/cards/g/GodFavoredGeneral.java
@@ -28,7 +28,7 @@ public final class GodFavoredGeneral extends CardImpl {
this.toughness = new MageInt(1);
// Inspired — Whenever God-Favored General becomes untapped, you may pay {2}{W}. If you do, create two 1/1 white Soldier enchantment creature tokens.
- this.addAbility(new InspiredAbility(new DoIfCostPaid(new CreateTokenEffect(new GodFavoredGeneralSoldierToken(), 2), new ManaCostsImpl("{2}{W}"))));
+ this.addAbility(new InspiredAbility(new DoIfCostPaid(new CreateTokenEffect(new GodFavoredGeneralSoldierToken(), 2), new ManaCostsImpl<>("{2}{W}"))));
}
private GodFavoredGeneral(final GodFavoredGeneral card) {
diff --git a/Mage.Sets/src/mage/cards/g/Godtoucher.java b/Mage.Sets/src/mage/cards/g/Godtoucher.java
index b85d9d0e82..31e94672ea 100644
--- a/Mage.Sets/src/mage/cards/g/Godtoucher.java
+++ b/Mage.Sets/src/mage/cards/g/Godtoucher.java
@@ -39,7 +39,7 @@ public final class Godtoucher extends CardImpl {
// {1}{W}, {T}: Prevent all damage that would be dealt to target creature with power 5 or greater this turn.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GodtoucherEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{1}{W}"));
+ new ManaCostsImpl<>("{1}{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GohamDjinn.java b/Mage.Sets/src/mage/cards/g/GohamDjinn.java
index 16e19d984b..b17db40cdd 100644
--- a/Mage.Sets/src/mage/cards/g/GohamDjinn.java
+++ b/Mage.Sets/src/mage/cards/g/GohamDjinn.java
@@ -32,7 +32,7 @@ public final class GohamDjinn extends CardImpl {
this.toughness = new MageInt(5);
// {1}{B}: Regenerate Goham Djinn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
// Goham Djinn gets -2/-2 as long as black is the most common color among all permanents or is tied for most common.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
diff --git a/Mage.Sets/src/mage/cards/g/GoldenEgg.java b/Mage.Sets/src/mage/cards/g/GoldenEgg.java
index 0d28927039..fc506e96f7 100644
--- a/Mage.Sets/src/mage/cards/g/GoldenEgg.java
+++ b/Mage.Sets/src/mage/cards/g/GoldenEgg.java
@@ -38,7 +38,7 @@ public final class GoldenEgg extends CardImpl {
this.addAbility(ability);
// {2}, {T}, Sacrifice Golden Egg: You gain 3 life.
- Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3), new ManaCostsImpl("{2}"));
+ Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3), new ManaCostsImpl<>("{2}"));
ability1.addCost(new TapSourceCost());
ability1.addCost(new SacrificeSourceCost());
this.addAbility(ability1);
diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java b/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java
index e644c33867..e970917d76 100644
--- a/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java
+++ b/Mage.Sets/src/mage/cards/g/GoldmeadowHarrier.java
@@ -29,7 +29,7 @@ public final class GoldmeadowHarrier extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java b/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java
index 50e8b96fab..ebd61dd71b 100644
--- a/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java
+++ b/Mage.Sets/src/mage/cards/g/GoldmeadowLookout.java
@@ -30,7 +30,7 @@ public final class GoldmeadowLookout extends CardImpl {
this.toughness = new MageInt(2);
// {W}, {tap}, Discard a card: Create a 1/1 white Kithkin Soldier creature token named Goldmeadow Harrier. It has "{W}, {tap}: Tap target creature."
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoldmeadowHarrierToken()), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoldmeadowHarrierToken()), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GolgariCluestone.java b/Mage.Sets/src/mage/cards/g/GolgariCluestone.java
index ac67bb982e..8174dae6e2 100644
--- a/Mage.Sets/src/mage/cards/g/GolgariCluestone.java
+++ b/Mage.Sets/src/mage/cards/g/GolgariCluestone.java
@@ -32,7 +32,7 @@ public final class GolgariCluestone extends CardImpl {
this.addAbility(new GreenManaAbility());
// {B}{G}, {T}, Sacrifice Golgari Cluestone: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{B}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{B}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GolgariDecoy.java b/Mage.Sets/src/mage/cards/g/GolgariDecoy.java
index 847e134c7c..d0154889d8 100644
--- a/Mage.Sets/src/mage/cards/g/GolgariDecoy.java
+++ b/Mage.Sets/src/mage/cards/g/GolgariDecoy.java
@@ -30,7 +30,7 @@ public final class GolgariDecoy extends CardImpl {
// All creatures able to block Golgari Decoy do so.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect()));
// Scavenge {3}{G}{G} ({3}{G}{G}, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.)
- this.addAbility(new ScavengeAbility(new ManaCostsImpl("{3}{G}{G}")));
+ this.addAbility(new ScavengeAbility(new ManaCostsImpl<>("{3}{G}{G}")));
}
private GolgariDecoy(final GolgariDecoy card) {
diff --git a/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java b/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java
index fcb6ad1d91..801837999c 100644
--- a/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java
+++ b/Mage.Sets/src/mage/cards/g/GolgariGraveTroll.java
@@ -39,7 +39,7 @@ public final class GolgariGraveTroll extends CardImpl {
// Golgari Grave-Troll enters the battlefield with a +1/+1 counter on it for each creature card in your graveyard.
this.addAbility(new EntersBattlefieldAbility(new GolgariGraveTrollEffect(), "with a +1/+1 counter on it for each creature card in your graveyard"));
// {1}, Remove a +1/+1 counter from Golgari Grave-Troll: Regenerate Golgari Grave-Troll.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance()));
this.addAbility(ability);
// Dredge 6
diff --git a/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java b/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java
index 996f0ac4c7..c98f536004 100644
--- a/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java
+++ b/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java
@@ -30,7 +30,7 @@ public final class GolgariKeyrune extends CardImpl {
this.addAbility(new GreenManaAbility());
// {B}{G}: Golgari Keyrune becomes a 2/2 black and green Insect artifact creature with deathtouch until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GolgariKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{B}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GolgariKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{B}{G}")));
}
private GolgariKeyrune(final GolgariKeyrune card) {
diff --git a/Mage.Sets/src/mage/cards/g/GolgariLocket.java b/Mage.Sets/src/mage/cards/g/GolgariLocket.java
index bf6b10805f..a492dfa3bd 100644
--- a/Mage.Sets/src/mage/cards/g/GolgariLocket.java
+++ b/Mage.Sets/src/mage/cards/g/GolgariLocket.java
@@ -29,7 +29,7 @@ public final class GolgariLocket extends CardImpl {
// {B/G}{B/G}{B/G}{B/G}, {T}, Sacrifice Golgari Locket: Draw two cards.
Ability ability = new SimpleActivatedAbility(
new DrawCardSourceControllerEffect(2),
- new ManaCostsImpl("{B/G}{B/G}{B/G}{B/G}")
+ new ManaCostsImpl<>("{B/G}{B/G}{B/G}{B/G}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/g/GolgothianSylex.java b/Mage.Sets/src/mage/cards/g/GolgothianSylex.java
index cdf4df4e66..18f0893c59 100644
--- a/Mage.Sets/src/mage/cards/g/GolgothianSylex.java
+++ b/Mage.Sets/src/mage/cards/g/GolgothianSylex.java
@@ -29,7 +29,7 @@ public final class GolgothianSylex extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// {1}, {tap}: Each nontoken permanent from the Antiquities expansion is sacrificed by its controller.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GolgothianSylexEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GolgothianSylexEffect(), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GolosTirelessPilgrim.java b/Mage.Sets/src/mage/cards/g/GolosTirelessPilgrim.java
index d0c592f14a..e54da63ee6 100644
--- a/Mage.Sets/src/mage/cards/g/GolosTirelessPilgrim.java
+++ b/Mage.Sets/src/mage/cards/g/GolosTirelessPilgrim.java
@@ -41,7 +41,7 @@ public final class GolosTirelessPilgrim extends CardImpl {
// {2}{W}{U}{B}{R}{G}: Exile the top three cards of your library. You may play them this turn without paying their mana costs.
this.addAbility(new SimpleActivatedAbility(
new GolosTirelessPilgrimEffect(),
- new ManaCostsImpl("{2}{W}{U}{B}{R}{G}")
+ new ManaCostsImpl<>("{2}{W}{U}{B}{R}{G}")
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GondGate.java b/Mage.Sets/src/mage/cards/g/GondGate.java
new file mode 100644
index 0000000000..d3b0d29273
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/g/GondGate.java
@@ -0,0 +1,86 @@
+package mage.cards.g;
+
+import mage.abilities.Ability;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.effects.ReplacementEffectImpl;
+import mage.abilities.mana.AnyColorLandsProduceManaAbility;
+import mage.abilities.mana.ColorlessManaAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.*;
+import mage.filter.FilterPermanent;
+import mage.filter.common.FilterControlledPermanent;
+import mage.game.Game;
+import mage.game.events.EntersTheBattlefieldEvent;
+import mage.game.events.GameEvent;
+import mage.game.permanent.Permanent;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class GondGate extends CardImpl {
+
+ private static final FilterPermanent filter = new FilterControlledPermanent(SubType.GATE);
+
+ public GondGate(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
+
+ this.subtype.add(SubType.GATE);
+
+ // Gates you control enter the battlefield untapped.
+ this.addAbility(new SimpleStaticAbility(new GondGateEffect()));
+
+ // {T}: Add {C}.
+ this.addAbility(new ColorlessManaAbility());
+
+ // {T}: Add one mana of any color that a Gate you control could produce.
+ this.addAbility(new AnyColorLandsProduceManaAbility(TargetController.YOU, true, filter));
+ }
+
+ private GondGate(final GondGate card) {
+ super(card);
+ }
+
+ @Override
+ public GondGate copy() {
+ return new GondGate(this);
+ }
+}
+
+class GondGateEffect extends ReplacementEffectImpl {
+
+ GondGateEffect() {
+ super(Duration.WhileOnBattlefield, Outcome.Benefit);
+ staticText = "Gates you control enter the battlefield untapped";
+ }
+
+ private GondGateEffect(final GondGateEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public boolean replaceEvent(GameEvent event, Ability source, Game game) {
+ ((EntersTheBattlefieldEvent) event).getTarget().setTapped(false);
+ return false;
+ }
+
+ @Override
+ public boolean checksEventType(GameEvent event, Game game) {
+ return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD;
+ }
+
+ @Override
+ public boolean applies(GameEvent event, Ability source, Game game) {
+ Permanent targetObject = ((EntersTheBattlefieldEvent) event).getTarget();
+ return targetObject != null
+ && targetObject.isControlledBy(source.getControllerId())
+ && targetObject.hasSubtype(SubType.GATE, game);
+ }
+
+ @Override
+ public GondGateEffect copy() {
+ return new GondGateEffect(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/cards/g/GorgonRecluse.java b/Mage.Sets/src/mage/cards/g/GorgonRecluse.java
index d428a6d639..c5b4d424ae 100644
--- a/Mage.Sets/src/mage/cards/g/GorgonRecluse.java
+++ b/Mage.Sets/src/mage/cards/g/GorgonRecluse.java
@@ -33,7 +33,7 @@ public final class GorgonRecluse extends CardImpl {
this.addAbility(new BlocksOrBecomesBlockedSourceTriggeredAbility(effect, StaticFilters.FILTER_PERMANENT_CREATURE_NON_BLACK, false));
// Madness {B}{B}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{B}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{B}{B}")));
}
private GorgonRecluse(final GorgonRecluse card) {
diff --git a/Mage.Sets/src/mage/cards/g/GorillaChieftain.java b/Mage.Sets/src/mage/cards/g/GorillaChieftain.java
index eebbfcb35d..03d5065a9a 100644
--- a/Mage.Sets/src/mage/cards/g/GorillaChieftain.java
+++ b/Mage.Sets/src/mage/cards/g/GorillaChieftain.java
@@ -26,7 +26,7 @@ public final class GorillaChieftain extends CardImpl {
this.toughness = new MageInt(3);
// {1}{G}: Regenerate Gorilla Chieftain.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{G}")));
}
private GorillaChieftain(final GorillaChieftain card) {
diff --git a/Mage.Sets/src/mage/cards/g/GorillaShaman.java b/Mage.Sets/src/mage/cards/g/GorillaShaman.java
index 33eeffbdf0..4f3cfe82e4 100644
--- a/Mage.Sets/src/mage/cards/g/GorillaShaman.java
+++ b/Mage.Sets/src/mage/cards/g/GorillaShaman.java
@@ -37,7 +37,7 @@ public final class GorillaShaman extends CardImpl {
this.toughness = new MageInt(1);
// {X}{X}{1}: Destroy target noncreature artifact with converted mana cost X.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{X}{X}{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{X}{X}{1}"));
ability.addTarget(new TargetPermanent(filter));
ability.setTargetAdjuster(XCMCPermanentAdjuster.instance);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java b/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java
index d7c2388295..a1e1e3798d 100644
--- a/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java
+++ b/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java
@@ -34,7 +34,7 @@ public final class GovernTheGuildless extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// Forecast - {1}{U}, Reveal Govern the Guildless from your hand: Target creature becomes the color or colors of your choice until end of turn.
- ForecastAbility ability = new ForecastAbility(new BecomesColorTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{U}"));
+ ForecastAbility ability = new ForecastAbility(new BecomesColorTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GrafHarvest.java b/Mage.Sets/src/mage/cards/g/GrafHarvest.java
index dc02d8c52b..68e4f5fd0d 100644
--- a/Mage.Sets/src/mage/cards/g/GrafHarvest.java
+++ b/Mage.Sets/src/mage/cards/g/GrafHarvest.java
@@ -43,7 +43,7 @@ public final class GrafHarvest extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
// {3}{B}, Exile a creature card from your graveyard: Create a 2/2 black Zombie creature token.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl("{3}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl<>("{3}{B}"));
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard("a creature card from your graveyard"))));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GrandArchitect.java b/Mage.Sets/src/mage/cards/g/GrandArchitect.java
index 2a53c4a73b..f5fad22e60 100644
--- a/Mage.Sets/src/mage/cards/g/GrandArchitect.java
+++ b/Mage.Sets/src/mage/cards/g/GrandArchitect.java
@@ -51,7 +51,7 @@ public final class GrandArchitect extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, boostFilter, true)));
// {U}: Target artifact creature becomes blue until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GrandArchitectEffect(), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GrandArchitectEffect(), new ManaCostsImpl<>("{U}"));
ability.addTarget(new TargetPermanent(targetFilter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java b/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java
index c71e9e0f58..9db7817a35 100644
--- a/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java
+++ b/Mage.Sets/src/mage/cards/g/GrandmotherSengir.java
@@ -32,7 +32,7 @@ public final class GrandmotherSengir extends CardImpl {
this.toughness = new MageInt(3);
// {1}{B}, {tap}: Target creature gets -1/-1 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java b/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java
index 162fba1030..86c82df1b7 100644
--- a/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java
+++ b/Mage.Sets/src/mage/cards/g/GrangerGuildmage.java
@@ -34,14 +34,14 @@ public final class GrangerGuildmage extends CardImpl {
this.toughness = new MageInt(1);
// {R}, {tap}: Granger Guildmage deals 1 damage to any target and 1 damage to you.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new DamageControllerEffect(1));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
// {W}, {tap}: Target creature gains first strike until end of turn.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java b/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java
index 5a1cac8610..6ac12f4003 100644
--- a/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java
+++ b/Mage.Sets/src/mage/cards/g/GraniteGargoyle.java
@@ -29,7 +29,7 @@ public final class GraniteGargoyle extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {R}: Granite Gargoyle gets +0/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
}
private GraniteGargoyle(final GraniteGargoyle card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrapplingSundew.java b/Mage.Sets/src/mage/cards/g/GrapplingSundew.java
index 5f0780a77c..cb6a1d4d33 100644
--- a/Mage.Sets/src/mage/cards/g/GrapplingSundew.java
+++ b/Mage.Sets/src/mage/cards/g/GrapplingSundew.java
@@ -40,7 +40,7 @@ public final class GrapplingSundew extends CardImpl {
new GainAbilitySourceEffect(
IndestructibleAbility.getInstance(),
Duration.EndOfTurn
- ), new ManaCostsImpl("{4}{G}")
+ ), new ManaCostsImpl<>("{4}{G}")
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java b/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java
index 31fb236694..ad399ab018 100644
--- a/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java
+++ b/Mage.Sets/src/mage/cards/g/GraspOfPhantoms.java
@@ -26,7 +26,7 @@ public final class GraspOfPhantoms extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Flashback {7}{U}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{7}{U}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{7}{U}")));
}
private GraspOfPhantoms(final GraspOfPhantoms card) {
diff --git a/Mage.Sets/src/mage/cards/g/GraspingDunes.java b/Mage.Sets/src/mage/cards/g/GraspingDunes.java
index be0c6e3217..1df9867533 100644
--- a/Mage.Sets/src/mage/cards/g/GraspingDunes.java
+++ b/Mage.Sets/src/mage/cards/g/GraspingDunes.java
@@ -32,7 +32,7 @@ public final class GraspingDunes extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {1}, {T}, Sacrifice Grasping Dunes: Put a -1/-1 counter on target creature. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance()), new ManaCostsImpl("{1}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance()), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/g/GraveDefiler.java b/Mage.Sets/src/mage/cards/g/GraveDefiler.java
index e2800747ff..eace4dbf03 100644
--- a/Mage.Sets/src/mage/cards/g/GraveDefiler.java
+++ b/Mage.Sets/src/mage/cards/g/GraveDefiler.java
@@ -37,7 +37,7 @@ public final class GraveDefiler extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new RevealLibraryPutIntoHandEffect(4, filter, Zone.LIBRARY)));
// {1}{B}: Regenerate Grave Defiler.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private GraveDefiler(final GraveDefiler card) {
diff --git a/Mage.Sets/src/mage/cards/g/GraveRobbers.java b/Mage.Sets/src/mage/cards/g/GraveRobbers.java
index 82cfdb2873..9aa3bc93d8 100644
--- a/Mage.Sets/src/mage/cards/g/GraveRobbers.java
+++ b/Mage.Sets/src/mage/cards/g/GraveRobbers.java
@@ -31,7 +31,7 @@ public final class GraveRobbers extends CardImpl {
this.toughness = new MageInt(1);
// {B}, {tap}: Exile target artifact card from a graveyard. You gain 2 life.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl<>("{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_ARTIFACT_FROM_YOUR_GRAVEYARD));
ability.addEffect(new GainLifeEffect(2));
diff --git a/Mage.Sets/src/mage/cards/g/GraveScrabbler.java b/Mage.Sets/src/mage/cards/g/GraveScrabbler.java
index 2af5869d94..95c666ae78 100644
--- a/Mage.Sets/src/mage/cards/g/GraveScrabbler.java
+++ b/Mage.Sets/src/mage/cards/g/GraveScrabbler.java
@@ -26,7 +26,7 @@ public final class GraveScrabbler extends CardImpl {
this.toughness = new MageInt(2);
//Madness {1}{B}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{1}{B}")));
//When Grave Scrabbler enters the battlefield, if its madness cost was paid,
//you may return target creature card from a graveyard to its owner's hand.
diff --git a/Mage.Sets/src/mage/cards/g/GraveUpheaval.java b/Mage.Sets/src/mage/cards/g/GraveUpheaval.java
index d42793bdaf..7b918e9094 100644
--- a/Mage.Sets/src/mage/cards/g/GraveUpheaval.java
+++ b/Mage.Sets/src/mage/cards/g/GraveUpheaval.java
@@ -25,7 +25,7 @@ public final class GraveUpheaval extends CardImpl {
this.getSpellAbility().addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_CREATURE));
// Basic landcycling {2}
- this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl<>("{2}")));
}
private GraveUpheaval(final GraveUpheaval card) {
diff --git a/Mage.Sets/src/mage/cards/g/GravelHideGoblin.java b/Mage.Sets/src/mage/cards/g/GravelHideGoblin.java
index 1d5f4f2e1c..7867ddc138 100644
--- a/Mage.Sets/src/mage/cards/g/GravelHideGoblin.java
+++ b/Mage.Sets/src/mage/cards/g/GravelHideGoblin.java
@@ -27,7 +27,7 @@ public final class GravelHideGoblin extends CardImpl {
// {3}{G}: Gravel-Hide Goblin gets +2/+2 until end of turn.
this.addAbility(new SimpleActivatedAbility(
- new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}")
+ new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{3}{G}")
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GravelSlinger.java b/Mage.Sets/src/mage/cards/g/GravelSlinger.java
index a35cd707f1..f3f562e83f 100644
--- a/Mage.Sets/src/mage/cards/g/GravelSlinger.java
+++ b/Mage.Sets/src/mage/cards/g/GravelSlinger.java
@@ -35,7 +35,7 @@ public final class GravelSlinger extends CardImpl {
ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature()));
this.addAbility(ability);
// Morph {1}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{W}")));
}
private GravelSlinger(final GravelSlinger card) {
diff --git a/Mage.Sets/src/mage/cards/g/GravenCairns.java b/Mage.Sets/src/mage/cards/g/GravenCairns.java
index 0351a04cda..e7b7e50b11 100644
--- a/Mage.Sets/src/mage/cards/g/GravenCairns.java
+++ b/Mage.Sets/src/mage/cards/g/GravenCairns.java
@@ -25,15 +25,15 @@ public final class GravenCairns extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {B/R}, {tap}: Add {B}{B}, {B}{R}, or {R}{R}.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new ManaCostsImpl("{B/R}"));
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new ManaCostsImpl<>("{B/R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{B/R}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl<>("{B/R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl("{B/R}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl<>("{B/R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GraverobberSpider.java b/Mage.Sets/src/mage/cards/g/GraverobberSpider.java
index 310fc62579..d9d31d507d 100644
--- a/Mage.Sets/src/mage/cards/g/GraverobberSpider.java
+++ b/Mage.Sets/src/mage/cards/g/GraverobberSpider.java
@@ -35,7 +35,7 @@ public final class GraverobberSpider extends CardImpl {
this.addAbility(ReachAbility.getInstance());
// {3}{B}: Graverobber Spider gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. Activate this ability only once each turn.
DynamicValue xValue = new CardsInControllerGraveyardCount(new FilterCreatureCard("creature cards"));
- Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(xValue, xValue, Duration.EndOfTurn, true), new ManaCostsImpl("{3}{B}"));
+ Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(xValue, xValue, Duration.EndOfTurn, true), new ManaCostsImpl<>("{3}{B}"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/Gravewaker.java b/Mage.Sets/src/mage/cards/g/Gravewaker.java
index 15ce659881..2cfc417f81 100644
--- a/Mage.Sets/src/mage/cards/g/Gravewaker.java
+++ b/Mage.Sets/src/mage/cards/g/Gravewaker.java
@@ -37,7 +37,7 @@ public final class Gravewaker extends CardImpl {
Zone.BATTLEFIELD,
new ReturnFromGraveyardToBattlefieldTargetEffect(true)
.setText("return target creature card from your graveyard to the battlefield tapped"),
- new ManaCostsImpl("{5}{B}{B}")
+ new ManaCostsImpl<>("{5}{B}{B}")
);
ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GraveyardMarshal.java b/Mage.Sets/src/mage/cards/g/GraveyardMarshal.java
index 57e9079950..a21a1c0ab3 100644
--- a/Mage.Sets/src/mage/cards/g/GraveyardMarshal.java
+++ b/Mage.Sets/src/mage/cards/g/GraveyardMarshal.java
@@ -40,7 +40,7 @@ public final class GraveyardMarshal extends CardImpl {
new ZombieToken(),
1, true, false
),
- new ManaCostsImpl("{2}{B}")
+ new ManaCostsImpl<>("{2}{B}")
);
ability.addCost(new ExileFromGraveCost(
new TargetCardInYourGraveyard(filter)
diff --git a/Mage.Sets/src/mage/cards/g/GravityNegator.java b/Mage.Sets/src/mage/cards/g/GravityNegator.java
index 3f21ccefa5..963fcf1395 100644
--- a/Mage.Sets/src/mage/cards/g/GravityNegator.java
+++ b/Mage.Sets/src/mage/cards/g/GravityNegator.java
@@ -45,7 +45,7 @@ public final class GravityNegator extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Whenenever Gravity Negator attacks, you may pay {C}. If you do, another target creature gains flying until end of turn.
- Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{C}")), false,
+ Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{C}")), false,
"Whenever {this} attacks you may pay {C}. If you do, another target creature gains flying until end of turn.");
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GrazingKelpie.java b/Mage.Sets/src/mage/cards/g/GrazingKelpie.java
index 675858953a..ff08e43f7b 100644
--- a/Mage.Sets/src/mage/cards/g/GrazingKelpie.java
+++ b/Mage.Sets/src/mage/cards/g/GrazingKelpie.java
@@ -31,7 +31,7 @@ public final class GrazingKelpie extends CardImpl {
this.toughness = new MageInt(3);
// {GU}, Sacrifice Grazing Kelpie: Put target card from a graveyard on the bottom of its owner's library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(false), new ManaCostsImpl("{G/U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(false), new ManaCostsImpl<>("{G/U}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInGraveyard());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GreaterForgeling.java b/Mage.Sets/src/mage/cards/g/GreaterForgeling.java
index 6cbfef840f..4d11a6c181 100644
--- a/Mage.Sets/src/mage/cards/g/GreaterForgeling.java
+++ b/Mage.Sets/src/mage/cards/g/GreaterForgeling.java
@@ -27,7 +27,7 @@ public final class GreaterForgeling extends CardImpl {
this.toughness = new MageInt(4);
// {1}{R}: Greater Forgeling gets +3/-3 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, -3, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, -3, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")));
}
private GreaterForgeling(final GreaterForgeling card) {
diff --git a/Mage.Sets/src/mage/cards/g/GreaterGargadon.java b/Mage.Sets/src/mage/cards/g/GreaterGargadon.java
index e1dd9917d1..564c339d82 100644
--- a/Mage.Sets/src/mage/cards/g/GreaterGargadon.java
+++ b/Mage.Sets/src/mage/cards/g/GreaterGargadon.java
@@ -34,7 +34,7 @@ public final class GreaterGargadon extends CardImpl {
this.toughness = new MageInt(7);
// Suspend 10-{R}
- this.addAbility(new SuspendAbility(10, new ManaCostsImpl("{R}"), this));
+ this.addAbility(new SuspendAbility(10, new ManaCostsImpl<>("{R}"), this));
// Sacrifice an artifact, creature, or land: Remove a time counter from Greater Gargadon. Activate this ability only if Greater Gargadon is suspended.
this.addAbility(new GreaterGargadonAbility());
}
diff --git a/Mage.Sets/src/mage/cards/g/GreaterRealmOfPreservation.java b/Mage.Sets/src/mage/cards/g/GreaterRealmOfPreservation.java
index 20959d2193..a79c077d2d 100644
--- a/Mage.Sets/src/mage/cards/g/GreaterRealmOfPreservation.java
+++ b/Mage.Sets/src/mage/cards/g/GreaterRealmOfPreservation.java
@@ -33,7 +33,7 @@ public final class GreaterRealmOfPreservation extends CardImpl {
// {1}{W}: The next time a black or red source of your choice would deal damage to you this turn, prevent that damage.
Effect effect = new PreventNextDamageFromChosenSourceToYouEffect(Duration.EndOfTurn, filter);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{W}")));
}
private GreaterRealmOfPreservation(final GreaterRealmOfPreservation card) {
diff --git a/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java b/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java
index 83dcb1b1ee..d89979fd6b 100644
--- a/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java
+++ b/Mage.Sets/src/mage/cards/g/GreaterSandwurm.java
@@ -27,7 +27,7 @@ public final class GreaterSandwurm extends CardImpl {
this.addAbility(new DauntAbility());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private GreaterSandwurm(final GreaterSandwurm card) {
diff --git a/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java b/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java
index 72ae2c91ab..7443bc958c 100644
--- a/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java
+++ b/Mage.Sets/src/mage/cards/g/GreaterStoneSpirit.java
@@ -49,11 +49,11 @@ public final class GreaterStoneSpirit extends CardImpl {
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostSourceEffect(1, 0, Duration.EndOfTurn)
.setText("until end of turn, target creature gets +0/+2"),
- new ManaCostsImpl("{R}")
+ new ManaCostsImpl<>("{R}")
);
Effect effect = new GainAbilityTargetEffect(gainedAbility, Duration.EndOfTurn);
effect.setText("and gains \"{R}: This creature gets +1/+0 until end of turn.\"");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(0, 2, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(0, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{R}"));
ability.addEffect(effect);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/Greed.java b/Mage.Sets/src/mage/cards/g/Greed.java
index f02233ac88..ab0a29f606 100644
--- a/Mage.Sets/src/mage/cards/g/Greed.java
+++ b/Mage.Sets/src/mage/cards/g/Greed.java
@@ -23,7 +23,7 @@ public final class Greed extends CardImpl {
// {B}, Pay 2 life: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{B}"));
ability.addCost(new PayLifeCost(2));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GreelMindRaker.java b/Mage.Sets/src/mage/cards/g/GreelMindRaker.java
index 0d06e966fe..1b3cf687f4 100644
--- a/Mage.Sets/src/mage/cards/g/GreelMindRaker.java
+++ b/Mage.Sets/src/mage/cards/g/GreelMindRaker.java
@@ -38,7 +38,7 @@ public final class GreelMindRaker extends CardImpl {
// {X}{B}, {tap}, Discard two cards: Target player discards X cards at random.
Ability ability = new SimpleActivatedAbility(new DiscardTargetEffect(
ManacostVariableValue.REGULAR, true
- ), new ManaCostsImpl("{X}{B}"));
+ ), new ManaCostsImpl<>("{X}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, filter)));
ability.addTarget(new TargetPlayer());
diff --git a/Mage.Sets/src/mage/cards/g/GreenSlime.java b/Mage.Sets/src/mage/cards/g/GreenSlime.java
new file mode 100644
index 0000000000..6487e82846
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/g/GreenSlime.java
@@ -0,0 +1,108 @@
+package mage.cards.g;
+
+import mage.MageInt;
+import mage.MageObject;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.keyword.FlashAbility;
+import mage.abilities.keyword.ForetellAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.SubType;
+import mage.filter.FilterStackObject;
+import mage.filter.predicate.Predicate;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.game.stack.StackAbility;
+import mage.game.stack.StackObject;
+import mage.target.TargetStackObject;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class GreenSlime extends CardImpl {
+
+ private static final FilterStackObject filter
+ = new FilterStackObject("activated or triggered ability from an artifact or enchantment source");
+
+ static {
+ filter.add(GreenSlimePredicate.instance);
+ }
+
+ public GreenSlime(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
+
+ this.subtype.add(SubType.OOZE);
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // Flash
+ this.addAbility(FlashAbility.getInstance());
+
+ // When Green Slime enters the battlefield, counter target activated or triggered ability from an artifact or enchantment source. If a permanent's ability is countered this way, destroy that permanent.
+ Ability ability = new EntersBattlefieldTriggeredAbility(new GreenSlimeEffect());
+ ability.addTarget(new TargetStackObject(filter));
+ this.addAbility(ability);
+
+ // Foretell {G}
+ this.addAbility(new ForetellAbility(this, "{G}"));
+ }
+
+ private GreenSlime(final GreenSlime card) {
+ super(card);
+ }
+
+ @Override
+ public GreenSlime copy() {
+ return new GreenSlime(this);
+ }
+}
+
+enum GreenSlimePredicate implements Predicate {
+ instance;
+
+ @Override
+ public boolean apply(StackObject input, Game game) {
+ if (!(input instanceof StackAbility)) {
+ return false;
+ }
+ MageObject sourceObject = input.getStackAbility().getSourceObject(game);
+ return sourceObject != null && (sourceObject.isArtifact(game) || sourceObject.isEnchantment(game));
+ }
+}
+
+class GreenSlimeEffect extends OneShotEffect {
+
+ GreenSlimeEffect() {
+ super(Outcome.Benefit);
+ staticText = "counter target activated or triggered ability from an artifact or enchantment source. " +
+ "If a permanent's ability is countered this way, destroy that permanent";
+ }
+
+ private GreenSlimeEffect(final GreenSlimeEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public GreenSlimeEffect copy() {
+ return new GreenSlimeEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ StackObject stackObject = game.getStack().getStackObject(getTargetPointer().getFirst(game, source));
+ if (stackObject == null) {
+ return false;
+ }
+ Permanent permanent = stackObject.getStackAbility().getSourcePermanentIfItStillExists(game);
+ if (game.getStack().counter(stackObject.getId(), source, game) && permanent != null) {
+ permanent.destroy(source, game);
+ }
+ return true;
+ }
+}
diff --git a/Mage.Sets/src/mage/cards/g/Greenseeker.java b/Mage.Sets/src/mage/cards/g/Greenseeker.java
index 0e358027ae..cc36223b33 100644
--- a/Mage.Sets/src/mage/cards/g/Greenseeker.java
+++ b/Mage.Sets/src/mage/cards/g/Greenseeker.java
@@ -34,7 +34,7 @@ public final class Greenseeker extends CardImpl {
// {G}, {tap}, Discard a card: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
- new ManaCostsImpl("{G}"));
+ new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GremlinMine.java b/Mage.Sets/src/mage/cards/g/GremlinMine.java
index 0b3bdca820..bfa2cb78c4 100644
--- a/Mage.Sets/src/mage/cards/g/GremlinMine.java
+++ b/Mage.Sets/src/mage/cards/g/GremlinMine.java
@@ -42,13 +42,13 @@ public final class GremlinMine extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// {1}, {tap}, Sacrifice Gremlin Mine: Gremlin Mine deals 4 damage to target artifact creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetArtifactPermanent(filterCreature));
this.addAbility(ability);
// {1}, {tap}, Sacrifice Gremlin Mine: Remove up to four charge counters from target noncreature artifact.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GremlinMineEffect(), new ManaCostsImpl("{1}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GremlinMineEffect(), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetArtifactPermanent(filterNonCreature));
diff --git a/Mage.Sets/src/mage/cards/g/GrimBackwoods.java b/Mage.Sets/src/mage/cards/g/GrimBackwoods.java
index fd3c5b1459..9bda3322c3 100644
--- a/Mage.Sets/src/mage/cards/g/GrimBackwoods.java
+++ b/Mage.Sets/src/mage/cards/g/GrimBackwoods.java
@@ -28,7 +28,7 @@ public final class GrimBackwoods extends CardImpl {
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{B}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{2}{B}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GrimDraugr.java b/Mage.Sets/src/mage/cards/g/GrimDraugr.java
index 7fa16db81c..44d9b9cd83 100644
--- a/Mage.Sets/src/mage/cards/g/GrimDraugr.java
+++ b/Mage.Sets/src/mage/cards/g/GrimDraugr.java
@@ -33,7 +33,7 @@ public final class GrimDraugr extends CardImpl {
// {1}{S}: Grim Draugr gets +1/+0 and gains menace until end of turn.
Ability ability = new SimpleActivatedAbility(
new BoostSourceEffect(1, 0, Duration.EndOfTurn).setText("{this} gets +1/+0"),
- new ManaCostsImpl("{1}{S}")
+ new ManaCostsImpl<>("{1}{S}")
);
ability.addEffect(new GainAbilitySourceEffect(
new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn. " +
diff --git a/Mage.Sets/src/mage/cards/g/GrimMonolith.java b/Mage.Sets/src/mage/cards/g/GrimMonolith.java
index 961f7a7d17..0c8094854c 100644
--- a/Mage.Sets/src/mage/cards/g/GrimMonolith.java
+++ b/Mage.Sets/src/mage/cards/g/GrimMonolith.java
@@ -29,7 +29,7 @@ public final class GrimMonolith extends CardImpl {
// {tap}: Add {C}{C}{C}.
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost()));
// {4}: Untap Grim Monolith.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{4}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl<>("{4}")));
}
private GrimMonolith(final GrimMonolith card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrimReminder.java b/Mage.Sets/src/mage/cards/g/GrimReminder.java
index 40699dcfa6..1845b0cbc3 100644
--- a/Mage.Sets/src/mage/cards/g/GrimReminder.java
+++ b/Mage.Sets/src/mage/cards/g/GrimReminder.java
@@ -48,7 +48,7 @@ public final class GrimReminder extends CardImpl {
this.addAbility(new ConditionalActivatedAbility(
Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToHandEffect(),
- new ManaCostsImpl("{B}{B}"),
+ new ManaCostsImpl<>("{B}{B}"),
new IsStepCondition(PhaseStep.UPKEEP),
null
));
diff --git a/Mage.Sets/src/mage/cards/g/GrimRoustabout.java b/Mage.Sets/src/mage/cards/g/GrimRoustabout.java
index 9c112f2a77..3b6ac0f285 100644
--- a/Mage.Sets/src/mage/cards/g/GrimRoustabout.java
+++ b/Mage.Sets/src/mage/cards/g/GrimRoustabout.java
@@ -32,7 +32,7 @@ public final class GrimRoustabout extends CardImpl {
this.addAbility(new UnleashAbility());
// {1}{B}: Regenerate Grim Roustabout.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private GrimRoustabout(final GrimRoustabout card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrimlockDinobotLeader.java b/Mage.Sets/src/mage/cards/g/GrimlockDinobotLeader.java
index 94c472489d..74deb601ba 100644
--- a/Mage.Sets/src/mage/cards/g/GrimlockDinobotLeader.java
+++ b/Mage.Sets/src/mage/cards/g/GrimlockDinobotLeader.java
@@ -55,7 +55,7 @@ public final class GrimlockDinobotLeader extends CardImpl{
// {2}: Grimlock, Dinobot Leader becomes Grimlock, Ferocious King.
this.addAbility(new TransformAbility());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl<>("{2}")));
}
private GrimlockDinobotLeader(final GrimlockDinobotLeader card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrimlockFerociousKing.java b/Mage.Sets/src/mage/cards/g/GrimlockFerociousKing.java
index 5b16978b08..630a92c01b 100644
--- a/Mage.Sets/src/mage/cards/g/GrimlockFerociousKing.java
+++ b/Mage.Sets/src/mage/cards/g/GrimlockFerociousKing.java
@@ -38,7 +38,7 @@ public final class GrimlockFerociousKing extends CardImpl{
// {2}: Grimlock, Ferocious King becomes Grimlock, Dinobot Leader.
this.addAbility(new TransformAbility());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl<>("{2}")));
}
private GrimlockFerociousKing(final GrimlockFerociousKing card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrimoireThief.java b/Mage.Sets/src/mage/cards/g/GrimoireThief.java
index 201b6e2e16..a589f24237 100644
--- a/Mage.Sets/src/mage/cards/g/GrimoireThief.java
+++ b/Mage.Sets/src/mage/cards/g/GrimoireThief.java
@@ -52,7 +52,7 @@ public final class GrimoireThief extends CardImpl {
// {U}, Sacrifice Grimoire Thief: Turn all cards exiled with
//Grimoire Thief face up. Counter all spells with those names.
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new GrimoireThiefCounterspellEffect(), new ManaCostsImpl("{U}"));
+ new GrimoireThiefCounterspellEffect(), new ManaCostsImpl<>("{U}"));
ability2.addCost(new SacrificeSourceCost());
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/g/Grindstone.java b/Mage.Sets/src/mage/cards/g/Grindstone.java
index 6f8460f277..35d1744a2d 100644
--- a/Mage.Sets/src/mage/cards/g/Grindstone.java
+++ b/Mage.Sets/src/mage/cards/g/Grindstone.java
@@ -28,7 +28,7 @@ public final class Grindstone extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// {3}, {T}: Target player puts the top two cards of their library into their graveyard. If both cards share a color, repeat this process.
- Ability ability = new SimpleActivatedAbility(new GrindstoneEffect(), new ManaCostsImpl("{3}"));
+ Ability ability = new SimpleActivatedAbility(new GrindstoneEffect(), new ManaCostsImpl<>("{3}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GrinningDemon.java b/Mage.Sets/src/mage/cards/g/GrinningDemon.java
index 9a7ef93e65..60abbce6cb 100644
--- a/Mage.Sets/src/mage/cards/g/GrinningDemon.java
+++ b/Mage.Sets/src/mage/cards/g/GrinningDemon.java
@@ -28,7 +28,7 @@ public final class GrinningDemon extends CardImpl {
// At the beginning of your upkeep, you lose 2 life.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new LoseLifeSourceControllerEffect(2), TargetController.YOU, false));
// Morph {2}{B}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{B}{B}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{B}{B}")));
}
private GrinningDemon(final GrinningDemon card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrinningIgnus.java b/Mage.Sets/src/mage/cards/g/GrinningIgnus.java
index 279adb90c6..8d8c0cf127 100644
--- a/Mage.Sets/src/mage/cards/g/GrinningIgnus.java
+++ b/Mage.Sets/src/mage/cards/g/GrinningIgnus.java
@@ -28,7 +28,7 @@ public final class GrinningIgnus extends CardImpl {
this.toughness = new MageInt(2);
// {R}, Return Grinning Ignus to its owner's hand: Add {C}{C}{R}. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 0, 0, 0, 2), new ManaCostsImpl("{R}"));
+ Ability ability = new ActivateAsSorceryManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 0, 0, 0, 2), new ManaCostsImpl<>("{R}"));
ability.addCost(new ReturnToHandFromBattlefieldSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java b/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java
index 2b02dd3c5b..eca9e51857 100644
--- a/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java
+++ b/Mage.Sets/src/mage/cards/g/GrislyAnglerfish.java
@@ -33,7 +33,7 @@ public final class GrislyAnglerfish extends CardImpl {
this.nightCard = true;
// {6}: Creatures your opponents control attack this turn if able.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GrislyAnglerfishMustAttackEffect(), new ManaCostsImpl("{6}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GrislyAnglerfishMustAttackEffect(), new ManaCostsImpl<>("{6}")));
}
private GrislyAnglerfish(final GrislyAnglerfish card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java b/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java
index 6fa26d620e..81bed8ed43 100644
--- a/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java
+++ b/Mage.Sets/src/mage/cards/g/GrixisBattlemage.java
@@ -32,11 +32,11 @@ public final class GrixisBattlemage extends CardImpl {
this.toughness = new MageInt(2);
// {U}, {tap}: Draw a card, then discard a card.
- Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(), new ManaCostsImpl("{U}"));
+ Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(), new ManaCostsImpl<>("{U}"));
ability1.addCost(new TapSourceCost());
this.addAbility(ability1);
// {R}, {tap}: Target creature can't block this turn.
- Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability2.addCost(new TapSourceCost());
ability2.addTarget(new TargetCreaturePermanent());
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java b/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java
index 1119cf767b..61e491d6bf 100644
--- a/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java
+++ b/Mage.Sets/src/mage/cards/g/GrixisSlavedriver.java
@@ -26,7 +26,7 @@ public final class GrixisSlavedriver extends CardImpl {
this.power = new MageInt(4);
this.toughness = new MageInt(4);
this.addAbility(new LeavesBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieToken()), false));
- this.addAbility(new UnearthAbility(new ManaCostsImpl("{3}{B}")));
+ this.addAbility(new UnearthAbility(new ManaCostsImpl<>("{3}{B}")));
}
private GrixisSlavedriver(final GrixisSlavedriver card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrizzledWolverine.java b/Mage.Sets/src/mage/cards/g/GrizzledWolverine.java
index 18712cb7da..68c91fc16f 100644
--- a/Mage.Sets/src/mage/cards/g/GrizzledWolverine.java
+++ b/Mage.Sets/src/mage/cards/g/GrizzledWolverine.java
@@ -28,7 +28,7 @@ public final class GrizzledWolverine extends CardImpl {
// {R}: Grizzled Wolverine gets +2/+0 until end of turn. Activate this ability only during the declare blockers step, only if at least one creature is blocking Grizzled Wolverine, and only once each turn.
this.addAbility(new LimitedTimesPerTurnActivatedAbility(
Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{R}"), 1, GrizzledWolverineCondition.instance
+ new ManaCostsImpl<>("{R}"), 1, GrizzledWolverineCondition.instance
));
}
diff --git a/Mage.Sets/src/mage/cards/g/GrizzlyFate.java b/Mage.Sets/src/mage/cards/g/GrizzlyFate.java
index fe9b432feb..1a7fd237f5 100644
--- a/Mage.Sets/src/mage/cards/g/GrizzlyFate.java
+++ b/Mage.Sets/src/mage/cards/g/GrizzlyFate.java
@@ -33,7 +33,7 @@ public final class GrizzlyFate extends CardImpl {
this.getSpellAbility().addEffect(effect);
// Flashback {5}{G}{G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{5}{G}{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{G}{G}")));
}
private GrizzlyFate(final GrizzlyFate card) {
diff --git a/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java b/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java
index d5ad10bf16..91b94d1c13 100644
--- a/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java
+++ b/Mage.Sets/src/mage/cards/g/GrotagSiegeRunner.java
@@ -41,7 +41,7 @@ public final class GrotagSiegeRunner extends CardImpl {
this.toughness = new MageInt(1);
// {R}, Sacrifice Grotag Siege-Runner: Destroy target creature with defender. Grotag Siege-Runner deals 2 damage to that creature's controller.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeSourceCost());
Effect effect = new DamageTargetControllerEffect(2);
effect.setText("{this} deals 2 damage to that creature's controller");
diff --git a/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java b/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java
index 0a8d43381e..9497cb1488 100644
--- a/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java
+++ b/Mage.Sets/src/mage/cards/g/GroundlingPouncer.java
@@ -49,7 +49,7 @@ public final class GroundlingPouncer extends CardImpl {
Ability ability = new GroundlingPouncerAbility(
Zone.BATTLEFIELD,
new BoostSourceEffect(1, 3, Duration.EndOfTurn),
- new ManaCostsImpl("{G/U}"),
+ new ManaCostsImpl<>("{G/U}"),
new OpponentControlsPermanentCondition(filter),
"{G/U}: {this} gets +1/+3 and gains flying until end of turn. Activate only once each turn and only if an opponent controls a creature with flying.");
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, false, true));
diff --git a/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java b/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java
index 9980d75083..b8898282e6 100644
--- a/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java
+++ b/Mage.Sets/src/mage/cards/g/GroveOfTheGuardian.java
@@ -38,7 +38,7 @@ public final class GroveOfTheGuardian extends CardImpl {
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new TapSourceCost()));
// {3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Create an 8/8 green and white Elemental creature token with vigilance.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GreenAndWhiteElementalToken(), 1), new ManaCostsImpl("{3}{G}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GreenAndWhiteElementalToken(), 1), new ManaCostsImpl<>("{3}{G}{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(2, 2, filter, false)));
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/g/GruulCluestone.java b/Mage.Sets/src/mage/cards/g/GruulCluestone.java
index ed527ac8b5..2a8a4ce978 100644
--- a/Mage.Sets/src/mage/cards/g/GruulCluestone.java
+++ b/Mage.Sets/src/mage/cards/g/GruulCluestone.java
@@ -32,7 +32,7 @@ public final class GruulCluestone extends CardImpl {
this.addAbility(new GreenManaAbility());
// {R}{G}, {T}, Sacrifice Gruul Cluestone: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{R}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{R}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GruulGuildmage.java b/Mage.Sets/src/mage/cards/g/GruulGuildmage.java
index 225207d35f..fdec5210dc 100644
--- a/Mage.Sets/src/mage/cards/g/GruulGuildmage.java
+++ b/Mage.Sets/src/mage/cards/g/GruulGuildmage.java
@@ -37,12 +37,12 @@ public final class GruulGuildmage extends CardImpl {
this.toughness = new MageInt(2);
// {3}{R}, Sacrifice a land: Gruul Guildmage deals 2 damage to target player.
- Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{3}{R}"));
+ Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{3}{R}"));
firstAbility.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
firstAbility.addTarget(new TargetPlayerOrPlaneswalker(1));
this.addAbility(firstAbility);
// {3}{G}: Target creature gets +2/+2 until end of turn.
- Ability secondAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}"));
+ Ability secondAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{3}{G}"));
secondAbility.addTarget(new TargetCreaturePermanent());
this.addAbility(secondAbility);
}
diff --git a/Mage.Sets/src/mage/cards/g/GruulKeyrune.java b/Mage.Sets/src/mage/cards/g/GruulKeyrune.java
index ec4786d49f..bbfdeac8e3 100644
--- a/Mage.Sets/src/mage/cards/g/GruulKeyrune.java
+++ b/Mage.Sets/src/mage/cards/g/GruulKeyrune.java
@@ -31,7 +31,7 @@ public final class GruulKeyrune extends CardImpl {
this.addAbility(new GreenManaAbility());
// {R}{G}: Gruul Keyrune becomes a 3/2 red and green Beast artifact creature with trample until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{R}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{R}{G}")));
}
private GruulKeyrune(final GruulKeyrune card) {
diff --git a/Mage.Sets/src/mage/cards/g/GruulNodorog.java b/Mage.Sets/src/mage/cards/g/GruulNodorog.java
index 92e342c206..edd20d6dbc 100644
--- a/Mage.Sets/src/mage/cards/g/GruulNodorog.java
+++ b/Mage.Sets/src/mage/cards/g/GruulNodorog.java
@@ -28,7 +28,7 @@ public final class GruulNodorog extends CardImpl {
this.toughness = new MageInt(4);
//{R}: Gruul Nodorog gains menace until end of turn. (It can't be blocked except by two or more creatures.)
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
}
private GruulNodorog(final GruulNodorog card) {
diff --git a/Mage.Sets/src/mage/cards/g/GruulWarPlow.java b/Mage.Sets/src/mage/cards/g/GruulWarPlow.java
index 1bfe37720f..652e895061 100644
--- a/Mage.Sets/src/mage/cards/g/GruulWarPlow.java
+++ b/Mage.Sets/src/mage/cards/g/GruulWarPlow.java
@@ -30,7 +30,7 @@ public final class GruulWarPlow extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES)));
// {1}{R}{G}: Gruul War Plow becomes a 4/4 Juggernaut artifact creature until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulWarPlowToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{1}{R}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GruulWarPlowToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}{G}")));
}
private GruulWarPlow(final GruulWarPlow card) {
diff --git a/Mage.Sets/src/mage/cards/g/GryffsBoon.java b/Mage.Sets/src/mage/cards/g/GryffsBoon.java
index ed5703a9d4..cdbe31b9c5 100644
--- a/Mage.Sets/src/mage/cards/g/GryffsBoon.java
+++ b/Mage.Sets/src/mage/cards/g/GryffsBoon.java
@@ -47,7 +47,7 @@ public final class GryffsBoon extends CardImpl {
this.addAbility(ability);
// {3}{W}: Return Gryff's Boon from your graveyard to the battlefield attached to target creature. Activate this ability only any time you could cast a sorcery.
- ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new GryffsBoonEffect(), new ManaCostsImpl("{3}{W}"));
+ ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new GryffsBoonEffect(), new ManaCostsImpl<>("{3}{W}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GuardDogs.java b/Mage.Sets/src/mage/cards/g/GuardDogs.java
index 3659e5dc4a..bfb51e3aa2 100644
--- a/Mage.Sets/src/mage/cards/g/GuardDogs.java
+++ b/Mage.Sets/src/mage/cards/g/GuardDogs.java
@@ -35,7 +35,7 @@ public final class GuardDogs extends CardImpl {
this.toughness = new MageInt(2);
// {2}{W}, {T}: Choose a permanent you control. Prevent all combat damage target creature would deal this turn if it shares a color with that permanent.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GuardDogsEffect(), new ManaCostsImpl("{2}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GuardDogsEffect(), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/g/GuardianIdol.java b/Mage.Sets/src/mage/cards/g/GuardianIdol.java
index cd783a97b7..97bb7faac6 100644
--- a/Mage.Sets/src/mage/cards/g/GuardianIdol.java
+++ b/Mage.Sets/src/mage/cards/g/GuardianIdol.java
@@ -30,7 +30,7 @@ public final class GuardianIdol extends CardImpl {
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {2}: Guardian Idol becomes a 2/2 Golem artifact creature until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GuardianIdolGolemToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GuardianIdolGolemToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
}
private GuardianIdol(final GuardianIdol card) {
diff --git a/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java b/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java
index d7810c327f..b59cc09335 100644
--- a/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java
+++ b/Mage.Sets/src/mage/cards/g/GuardianShieldBearer.java
@@ -37,7 +37,7 @@ public final class GuardianShieldBearer extends CardImpl {
this.toughness = new MageInt(1);
// Megamorph {3}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{G}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{G}"), true));
// When Guardian Shield-Bearer is turned face up, put a +1/+1 counter on another target creature you control.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false);
diff --git a/Mage.Sets/src/mage/cards/g/GudulLurker.java b/Mage.Sets/src/mage/cards/g/GudulLurker.java
index ddac8b1345..183dab44bb 100644
--- a/Mage.Sets/src/mage/cards/g/GudulLurker.java
+++ b/Mage.Sets/src/mage/cards/g/GudulLurker.java
@@ -27,7 +27,7 @@ public final class GudulLurker extends CardImpl {
this.addAbility(new CantBeBlockedSourceAbility());
// Megamorph {U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{U}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{U}"), true));
}
private GudulLurker(final GudulLurker card) {
diff --git a/Mage.Sets/src/mage/cards/g/Gurzigost.java b/Mage.Sets/src/mage/cards/g/Gurzigost.java
index 8a2c0a46be..e15eabdd30 100644
--- a/Mage.Sets/src/mage/cards/g/Gurzigost.java
+++ b/Mage.Sets/src/mage/cards/g/Gurzigost.java
@@ -46,7 +46,7 @@ public final class Gurzigost extends CardImpl {
// {G}{G}, Discard a card: You may have Gurzigost assign its combat damage this turn as though it weren't blocked.
Effect effect = new GainAbilitySourceEffect(DamageAsThoughNotBlockedAbility.getInstance(), Duration.EndOfTurn);
effect.setText("You may have Gurzigost assign its combat damage this turn as though it weren't blocked");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{G}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{G}{G}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GustSkimmer.java b/Mage.Sets/src/mage/cards/g/GustSkimmer.java
index ac9ffecbb0..d265c9b7a5 100644
--- a/Mage.Sets/src/mage/cards/g/GustSkimmer.java
+++ b/Mage.Sets/src/mage/cards/g/GustSkimmer.java
@@ -26,7 +26,7 @@ public final class GustSkimmer extends CardImpl {
this.subtype.add(SubType.INSECT);
this.power = new MageInt(2);
this.toughness = new MageInt(1);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{U}")));
}
public GustSkimmer (final GustSkimmer card) {
diff --git a/Mage.Sets/src/mage/cards/g/GutlessGhoul.java b/Mage.Sets/src/mage/cards/g/GutlessGhoul.java
index 28911b3d5c..964daf8595 100644
--- a/Mage.Sets/src/mage/cards/g/GutlessGhoul.java
+++ b/Mage.Sets/src/mage/cards/g/GutlessGhoul.java
@@ -31,7 +31,7 @@ public final class GutlessGhoul extends CardImpl {
this.toughness = new MageInt(2);
// {1}, Sacrifice a creature: You gain 2 life.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new ManaCostsImpl<>("{1}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java b/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java
index 10ceba8c49..0a564a1d86 100644
--- a/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java
+++ b/Mage.Sets/src/mage/cards/g/GuulDrazAssassin.java
@@ -35,16 +35,16 @@ public final class GuulDrazAssassin extends LevelerCard {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{1}{B}")));
Abilities abilities1 = new AbilitiesImpl<>();
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, -2, Duration.EndOfTurn), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, -2, Duration.EndOfTurn), new ManaCostsImpl<>("{B}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
abilities1.add(ability);
Abilities abilities2 = new AbilitiesImpl<>();
- Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-4, -4, Duration.EndOfTurn), new ManaCostsImpl("{B}"));
+ Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-4, -4, Duration.EndOfTurn), new ManaCostsImpl<>("{B}"));
ability2.addTarget(new TargetCreaturePermanent());
ability2.addCost(new TapSourceCost());
abilities2.add(ability2);
diff --git a/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java b/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java
index 62e75d2e61..181cd8f57e 100644
--- a/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java
+++ b/Mage.Sets/src/mage/cards/g/GwafaHazidProfiteer.java
@@ -35,7 +35,7 @@ public final class GwafaHazidProfiteer extends CardImpl {
this.toughness = new MageInt(2);
// {W}{U}, {tap}: Put a bribery counter on target creature you don't control. Its controller draws a card.
- Ability ability = new SimpleActivatedAbility(new GwafaHazidProfiteerEffect1(), new ManaCostsImpl("{W}{U}"));
+ Ability ability = new SimpleActivatedAbility(new GwafaHazidProfiteerEffect1(), new ManaCostsImpl<>("{W}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HaazdaShieldMate.java b/Mage.Sets/src/mage/cards/h/HaazdaShieldMate.java
index f66cd143fe..1f6d1052b1 100644
--- a/Mage.Sets/src/mage/cards/h/HaazdaShieldMate.java
+++ b/Mage.Sets/src/mage/cards/h/HaazdaShieldMate.java
@@ -30,10 +30,10 @@ public final class HaazdaShieldMate extends CardImpl {
this.toughness = new MageInt(1);
// At the beginning of your upkeep, sacrifice Haazda Shield Mate unless you pay {W}{W}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{W}{W}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{W}{W}")), TargetController.YOU, false));
// {W}: The next time a source of your choice would deal damage to you this turn, prevent that damage.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventNextDamageFromChosenSourceToYouEffect(Duration.EndOfTurn), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventNextDamageFromChosenSourceToYouEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{W}")));
}
private HaazdaShieldMate(final HaazdaShieldMate card) {
diff --git a/Mage.Sets/src/mage/cards/h/HaazdaSnareSquad.java b/Mage.Sets/src/mage/cards/h/HaazdaSnareSquad.java
index e8127b215d..27ec162fcd 100644
--- a/Mage.Sets/src/mage/cards/h/HaazdaSnareSquad.java
+++ b/Mage.Sets/src/mage/cards/h/HaazdaSnareSquad.java
@@ -35,7 +35,7 @@ public final class HaazdaSnareSquad extends CardImpl {
this.toughness = new MageInt(4);
// Whenever Haazda Snare Squad attacks you may pay {W}. If you do, tap target creature an opponent controls.
- Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new TapTargetEffect(), new ManaCostsImpl("{W}")),false,
+ Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new TapTargetEffect(), new ManaCostsImpl<>("{W}")),false,
"Whenever {this} attacks, you may pay {W}. If you do, tap target creature an opponent controls.");
Target target = new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE);
ability.addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/h/Hackrobat.java b/Mage.Sets/src/mage/cards/h/Hackrobat.java
index c2ad3229d6..71c40c5d97 100644
--- a/Mage.Sets/src/mage/cards/h/Hackrobat.java
+++ b/Mage.Sets/src/mage/cards/h/Hackrobat.java
@@ -28,7 +28,7 @@ public final class Hackrobat extends CardImpl {
this.toughness = new MageInt(3);
// Spectacle {B}{R}
- this.addAbility(new SpectacleAbility(this, new ManaCostsImpl("{B}{R}")));
+ this.addAbility(new SpectacleAbility(this, new ManaCostsImpl<>("{B}{R}")));
// {B}: Hackrobat gains deathtouch until end of turn.
this.addAbility(new SimpleActivatedAbility(
diff --git a/Mage.Sets/src/mage/cards/h/HadaSpyPatrol.java b/Mage.Sets/src/mage/cards/h/HadaSpyPatrol.java
index 29210971b6..3f98f9fbac 100644
--- a/Mage.Sets/src/mage/cards/h/HadaSpyPatrol.java
+++ b/Mage.Sets/src/mage/cards/h/HadaSpyPatrol.java
@@ -32,7 +32,7 @@ public final class HadaSpyPatrol extends LevelerCard {
this.toughness = new MageInt(1);
// Level up 2Blue ({U}{U}: Put a level counter on this. Level up only as a sorcery.)
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{2}{U}")));
// LEVEL 1-2
// 2/2
diff --git a/Mage.Sets/src/mage/cards/h/HagraSharpshooter.java b/Mage.Sets/src/mage/cards/h/HagraSharpshooter.java
index 71f4fe7061..22aa3dad5a 100644
--- a/Mage.Sets/src/mage/cards/h/HagraSharpshooter.java
+++ b/Mage.Sets/src/mage/cards/h/HagraSharpshooter.java
@@ -30,7 +30,7 @@ public final class HagraSharpshooter extends CardImpl {
this.toughness = new MageInt(2);
// {4}{B}: Target creature gets -1/-1 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl("{4}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{B}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HalimarWavewatch.java b/Mage.Sets/src/mage/cards/h/HalimarWavewatch.java
index aa5d198f80..98cede9c37 100644
--- a/Mage.Sets/src/mage/cards/h/HalimarWavewatch.java
+++ b/Mage.Sets/src/mage/cards/h/HalimarWavewatch.java
@@ -30,7 +30,7 @@ public final class HalimarWavewatch extends LevelerCard {
this.power = new MageInt(0);
this.toughness = new MageInt(3);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{2}")));
Abilities levelAbilities = new AbilitiesImpl<>();
levelAbilities.add(new IslandwalkAbility());
diff --git a/Mage.Sets/src/mage/cards/h/HallMonitor.java b/Mage.Sets/src/mage/cards/h/HallMonitor.java
index e08315c4da..297aae6a55 100644
--- a/Mage.Sets/src/mage/cards/h/HallMonitor.java
+++ b/Mage.Sets/src/mage/cards/h/HallMonitor.java
@@ -34,7 +34,7 @@ public final class HallMonitor extends CardImpl {
// {1}{R}, {T}: Target creature can't block this turn.
Ability ability = new SimpleActivatedAbility(
- new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")
+ new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/h/HallOfHeliodsGenerosity.java b/Mage.Sets/src/mage/cards/h/HallOfHeliodsGenerosity.java
index 6a46002a00..85197a00c6 100644
--- a/Mage.Sets/src/mage/cards/h/HallOfHeliodsGenerosity.java
+++ b/Mage.Sets/src/mage/cards/h/HallOfHeliodsGenerosity.java
@@ -33,7 +33,7 @@ public final class HallOfHeliodsGenerosity extends CardImpl {
// {1}{W}, {T}: Put target enchantment card from your graveyard on top of your library.
Ability ability = new SimpleActivatedAbility(
- new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{W}")
+ new PutOnLibraryTargetEffect(true), new ManaCostsImpl<>("{1}{W}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCardInYourGraveyard(filter));
diff --git a/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java b/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java
index 58ae81c1ff..49ef4ba26a 100644
--- a/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java
+++ b/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java
@@ -55,7 +55,7 @@ public final class HallOfStormGiants extends CardImpl {
"It's still a land. " +
"(Whenever it becomes the target of a spell or ability an opponent controls, " +
"counter it unless that player pays {3}.)"),
- new ManaCostsImpl("{5}{U}")));
+ new ManaCostsImpl<>("{5}{U}")));
}
private HallOfStormGiants(final HallOfStormGiants card) {
diff --git a/Mage.Sets/src/mage/cards/h/HallowedGround.java b/Mage.Sets/src/mage/cards/h/HallowedGround.java
index c4ccf6f56c..e47899d59a 100644
--- a/Mage.Sets/src/mage/cards/h/HallowedGround.java
+++ b/Mage.Sets/src/mage/cards/h/HallowedGround.java
@@ -32,7 +32,7 @@ public final class HallowedGround extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}");
// {W}{W}: Return target nonsnow land you control to its owner's hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{W}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{W}{W}"));
ability.addTarget(new TargetControlledPermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HammerMage.java b/Mage.Sets/src/mage/cards/h/HammerMage.java
index 28517cfec3..4f14982946 100644
--- a/Mage.Sets/src/mage/cards/h/HammerMage.java
+++ b/Mage.Sets/src/mage/cards/h/HammerMage.java
@@ -35,7 +35,7 @@ public final class HammerMage extends CardImpl {
this.toughness = new MageInt(1);
// {X}{R}, {tap}, Discard a card: Destroy all artifacts with converted mana cost X or less.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HammerMageEffect(), new ManaCostsImpl("{X}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HammerMageEffect(), new ManaCostsImpl<>("{X}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HammerOfBogardan.java b/Mage.Sets/src/mage/cards/h/HammerOfBogardan.java
index 5cf6fc94f5..5afd779f58 100644
--- a/Mage.Sets/src/mage/cards/h/HammerOfBogardan.java
+++ b/Mage.Sets/src/mage/cards/h/HammerOfBogardan.java
@@ -31,7 +31,7 @@ public final class HammerOfBogardan extends CardImpl {
// {2}{R}{R}{R}: Return Hammer of Bogardan from your graveyard to your hand. Activate this ability only during your upkeep.
this.addAbility(new ConditionalActivatedAbility(Zone.GRAVEYARD,
- new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl("{2}{R}{R}{R}"), new IsStepCondition(PhaseStep.UPKEEP), null));
+ new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl<>("{2}{R}{R}{R}"), new IsStepCondition(PhaseStep.UPKEEP), null));
}
private HammerOfBogardan(final HammerOfBogardan card) {
diff --git a/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java b/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java
index 908bbbf576..4f9347bafb 100644
--- a/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java
+++ b/Mage.Sets/src/mage/cards/h/HammerOfPurphoros.java
@@ -37,7 +37,7 @@ public final class HammerOfPurphoros extends CardImpl {
new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES)));
// {2}{R}, {tap}, Sacrifice a land: Create a 3/3 colorless Golem enchantment artifact creature token.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HammerOfPurphorosGolemToken()), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HammerOfPurphorosGolemToken()), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("land"))));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HamperingSnare.java b/Mage.Sets/src/mage/cards/h/HamperingSnare.java
index 2dc408cfad..83c066a8dc 100644
--- a/Mage.Sets/src/mage/cards/h/HamperingSnare.java
+++ b/Mage.Sets/src/mage/cards/h/HamperingSnare.java
@@ -22,7 +22,7 @@ public final class HamperingSnare extends CardImpl {
this.getSpellAbility().addEffect(new BoostOpponentsEffect(-2, 0, Duration.EndOfTurn));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private HamperingSnare(final HamperingSnare card) {
diff --git a/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java b/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java
index 34eda60e37..504ce36d1d 100644
--- a/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java
+++ b/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java
@@ -45,7 +45,7 @@ public final class HanSoloScrumrat extends CardImpl {
this.addAbility(new PartnerWithAbility("Chewbacca, the Beast"));
// R: Han Solo, Scrumrat gains first strike until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
// Whenever Han Solo, Scrumrat deals damage during your turn, put a +1/+1 counter on another target creature you control.
Ability ability = new HanSoloScrumratTriggeredAbility();
diff --git a/Mage.Sets/src/mage/cards/h/HanaKami.java b/Mage.Sets/src/mage/cards/h/HanaKami.java
index 6f83c4d039..7274f7226c 100644
--- a/Mage.Sets/src/mage/cards/h/HanaKami.java
+++ b/Mage.Sets/src/mage/cards/h/HanaKami.java
@@ -32,7 +32,7 @@ public final class HanaKami extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- Ability ability = new SimpleActivatedAbility(new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{1}{G}"));
+ Ability ability = new SimpleActivatedAbility(new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInYourGraveyard(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HangedExecutioner.java b/Mage.Sets/src/mage/cards/h/HangedExecutioner.java
index 803bf3e814..a5767a191e 100644
--- a/Mage.Sets/src/mage/cards/h/HangedExecutioner.java
+++ b/Mage.Sets/src/mage/cards/h/HangedExecutioner.java
@@ -37,7 +37,7 @@ public final class HangedExecutioner extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken())));
// {3}{W}, Exile Hanged Executioner: Exile target creature.
- Ability ability = new SimpleActivatedAbility(new ExileTargetEffect(), new ManaCostsImpl("{3}{W}"));
+ Ability ability = new SimpleActivatedAbility(new ExileTargetEffect(), new ManaCostsImpl<>("{3}{W}"));
ability.addCost(new ExileSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java b/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java
index aff9e629ca..3d274e64da 100644
--- a/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java
+++ b/Mage.Sets/src/mage/cards/h/HannaShipsNavigator.java
@@ -42,7 +42,7 @@ public final class HannaShipsNavigator extends CardImpl {
this.toughness = new MageInt(2);
// {1}{W}{U}, {tap}: Return target artifact or enchantment card from your graveyard to your hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{1}{W}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl<>("{1}{W}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCardInYourGraveyard(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HanweirBattlements.java b/Mage.Sets/src/mage/cards/h/HanweirBattlements.java
index bbfa828b1c..9400f36b7b 100644
--- a/Mage.Sets/src/mage/cards/h/HanweirBattlements.java
+++ b/Mage.Sets/src/mage/cards/h/HanweirBattlements.java
@@ -32,7 +32,7 @@ public final class HanweirBattlements extends CardImpl {
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {R},{T}: Target creature gains haste until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
@@ -41,7 +41,7 @@ public final class HanweirBattlements extends CardImpl {
ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new MeldEffect("Hanweir Garrison",
new HanweirTheWrithingTownship(ownerId, new CardSetInfo("Hanweir, the Writhing Township", "EMN", "130", Rarity.RARE))),
- new ManaCostsImpl("{3}{R}{R}"), new MeldCondition("Hanweir Garrison"),
+ new ManaCostsImpl<>("{3}{R}{R}"), new MeldCondition("Hanweir Garrison"),
"{3}{R}{R}, {T}: If you both own and control {this} and a creature named Hanweir Garrison, exile them, then meld them into Hanweir, the Writhing Township.");
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HarbingerOfTheHunt.java b/Mage.Sets/src/mage/cards/h/HarbingerOfTheHunt.java
index c1834f55ac..768784f4a1 100644
--- a/Mage.Sets/src/mage/cards/h/HarbingerOfTheHunt.java
+++ b/Mage.Sets/src/mage/cards/h/HarbingerOfTheHunt.java
@@ -42,10 +42,10 @@ public final class HarbingerOfTheHunt extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {2}{R}: Harbinger of the Hunt deals 1 damage to each creature without flying.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter), new ManaCostsImpl("{2}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter), new ManaCostsImpl<>("{2}{R}")));
// {2}{G}: Harbinger of the Hunt deals 1 damage to each other creature with flying.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter2), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter2), new ManaCostsImpl<>("{2}{G}")));
}
private HarbingerOfTheHunt(final HarbingerOfTheHunt card) {
diff --git a/Mage.Sets/src/mage/cards/h/HarborBandit.java b/Mage.Sets/src/mage/cards/h/HarborBandit.java
index 90f4ea6fb2..cc43e2a399 100644
--- a/Mage.Sets/src/mage/cards/h/HarborBandit.java
+++ b/Mage.Sets/src/mage/cards/h/HarborBandit.java
@@ -47,7 +47,7 @@ public final class HarborBandit extends CardImpl {
// {1}{U}: Harbor Bandit can't be blocked this turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new CantBeBlockedSourceEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{1}{U}")));
+ new ManaCostsImpl<>("{1}{U}")));
}
private HarborBandit(final HarborBandit card) {
diff --git a/Mage.Sets/src/mage/cards/h/HarmattanEfreet.java b/Mage.Sets/src/mage/cards/h/HarmattanEfreet.java
index f4001fc925..f882a34374 100644
--- a/Mage.Sets/src/mage/cards/h/HarmattanEfreet.java
+++ b/Mage.Sets/src/mage/cards/h/HarmattanEfreet.java
@@ -32,7 +32,7 @@ public final class HarmattanEfreet extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
//
// {1}{U}{U}: Target creature gains flying until end of turn.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{U}{U}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HarshDeceiver.java b/Mage.Sets/src/mage/cards/h/HarshDeceiver.java
index 8b7a253b78..3b53624c49 100644
--- a/Mage.Sets/src/mage/cards/h/HarshDeceiver.java
+++ b/Mage.Sets/src/mage/cards/h/HarshDeceiver.java
@@ -43,7 +43,7 @@ public final class HarshDeceiver extends CardImpl {
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new LookLibraryControllerEffect(), new GenericManaCost(1)));
// {2}: Reveal the top card of your library. If it's a land card, untap {this} and it gets +1/+1 until end of turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new HarshDeceiverEffect(), new ManaCostsImpl("{2}")));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new HarshDeceiverEffect(), new ManaCostsImpl<>("{2}")));
}
private HarshDeceiver(final HarshDeceiver card) {
diff --git a/Mage.Sets/src/mage/cards/h/HarvestMage.java b/Mage.Sets/src/mage/cards/h/HarvestMage.java
index a36dbaa41e..de307f2d6b 100644
--- a/Mage.Sets/src/mage/cards/h/HarvestMage.java
+++ b/Mage.Sets/src/mage/cards/h/HarvestMage.java
@@ -36,7 +36,7 @@ public final class HarvestMage extends CardImpl {
this.toughness = new MageInt(1);
// {G}, {T}, Discard a card: Until end of turn, if you tap a land for mana, it produces one mana of a color of your choice instead of any other type and amount.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(new HarvestMageReplacementEffect(), new ManaCostsImpl("{G}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(new HarvestMageReplacementEffect(), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HashepOasis.java b/Mage.Sets/src/mage/cards/h/HashepOasis.java
index feabfe1ee9..56ed2d9794 100644
--- a/Mage.Sets/src/mage/cards/h/HashepOasis.java
+++ b/Mage.Sets/src/mage/cards/h/HashepOasis.java
@@ -46,7 +46,7 @@ public final class HashepOasis extends CardImpl {
addAbility(ability);
// {1}{G}{G}, {t}, Sacrifice a Desert: Target creature gets +3/+3 until end of turn. Activate this ability only any time you could cast a sorcery.
- ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3,3,Duration.EndOfTurn), new ManaCostsImpl("{1}{G}{G}"));
+ ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(3,3,Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}{G}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
diff --git a/Mage.Sets/src/mage/cards/h/HasranOgress.java b/Mage.Sets/src/mage/cards/h/HasranOgress.java
index 124d238d00..c00d598ea0 100644
--- a/Mage.Sets/src/mage/cards/h/HasranOgress.java
+++ b/Mage.Sets/src/mage/cards/h/HasranOgress.java
@@ -61,7 +61,7 @@ class HasranOgressEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
- Cost cost = new ManaCostsImpl("{2}");
+ Cost cost = new ManaCostsImpl<>("{2}");
if (!(controller.chooseUse(Outcome.Benefit, "Pay {2}?", source, game)
&& cost.pay(source, game, source, controller.getId(), false, null))) {
controller.damage(3, source.getSourceId(), source, game);
diff --git a/Mage.Sets/src/mage/cards/h/HatchetBully.java b/Mage.Sets/src/mage/cards/h/HatchetBully.java
index 409090c0e3..1ee026f962 100644
--- a/Mage.Sets/src/mage/cards/h/HatchetBully.java
+++ b/Mage.Sets/src/mage/cards/h/HatchetBully.java
@@ -38,7 +38,7 @@ public final class HatchetBully extends CardImpl {
this.toughness = new MageInt(3);
// {2}{R}, {tap}, Put a -1/-1 counter on a creature you control: Hatchet Bully deals 2 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HatchetBullyEffect(), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HatchetBullyEffect(), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new HatchetBullyCost());
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/h/Hateflayer.java b/Mage.Sets/src/mage/cards/h/Hateflayer.java
index 283ceb4960..1bf7297f43 100644
--- a/Mage.Sets/src/mage/cards/h/Hateflayer.java
+++ b/Mage.Sets/src/mage/cards/h/Hateflayer.java
@@ -34,7 +34,7 @@ public final class Hateflayer extends CardImpl {
this.addAbility(WitherAbility.getInstance());
// {2}{R}, {untap}: Hateflayer deals damage equal to its power to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new UntapSourceCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HauntedCadaver.java b/Mage.Sets/src/mage/cards/h/HauntedCadaver.java
index a5c089ec90..5bef7ac752 100644
--- a/Mage.Sets/src/mage/cards/h/HauntedCadaver.java
+++ b/Mage.Sets/src/mage/cards/h/HauntedCadaver.java
@@ -31,7 +31,7 @@ public final class HauntedCadaver extends CardImpl {
ability.addEffect( new DiscardTargetEffect(3));
this.addAbility(ability);
// Morph {1}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{B}")));
}
private HauntedCadaver(final HauntedCadaver card) {
diff --git a/Mage.Sets/src/mage/cards/h/HauntedCrossroads.java b/Mage.Sets/src/mage/cards/h/HauntedCrossroads.java
index 47a136890f..a257973550 100644
--- a/Mage.Sets/src/mage/cards/h/HauntedCrossroads.java
+++ b/Mage.Sets/src/mage/cards/h/HauntedCrossroads.java
@@ -23,7 +23,7 @@ public final class HauntedCrossroads extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}");
// {B}: Put target creature card from your graveyard on top of your library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl<>("{B}"));
ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HauntedDead.java b/Mage.Sets/src/mage/cards/h/HauntedDead.java
index 63e9413320..d0acb78df3 100644
--- a/Mage.Sets/src/mage/cards/h/HauntedDead.java
+++ b/Mage.Sets/src/mage/cards/h/HauntedDead.java
@@ -35,7 +35,7 @@ public final class HauntedDead extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken())));
// {1}{B}, Discard two cards: Return Haunted Dead from your graveyard to the battlefield tapped.
- Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, new FilterCard("two cards"))));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java b/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java
index f614277e4c..0d27d83f97 100644
--- a/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java
+++ b/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java
@@ -38,12 +38,12 @@ public final class HauntedPlateMail extends CardImpl {
Ability ability = new ConditionalActivatedAbility(
Zone.BATTLEFIELD,
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), "", Duration.EndOfTurn),
- new ManaCostsImpl("{0}"),
+ new ManaCostsImpl<>("{0}"),
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, ComparisonType.EQUAL_TO, 0),
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate only if you control no creatures.");
this.addAbility(ability);
// Equip {4}
- this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{4}")));
+ this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{4}")));
}
private HauntedPlateMail(final HauntedPlateMail card) {
diff --git a/Mage.Sets/src/mage/cards/h/HavenOfTheSpiritDragon.java b/Mage.Sets/src/mage/cards/h/HavenOfTheSpiritDragon.java
index f7ad7b3c6a..e7eb164b33 100644
--- a/Mage.Sets/src/mage/cards/h/HavenOfTheSpiritDragon.java
+++ b/Mage.Sets/src/mage/cards/h/HavenOfTheSpiritDragon.java
@@ -50,7 +50,7 @@ public final class HavenOfTheSpiritDragon extends CardImpl {
this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new HavenOfTheSpiritManaBuilder(), true));
// {2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInYourGraveyard(filter));
diff --git a/Mage.Sets/src/mage/cards/h/HavengulLich.java b/Mage.Sets/src/mage/cards/h/HavengulLich.java
index 218915429d..706f95ed48 100644
--- a/Mage.Sets/src/mage/cards/h/HavengulLich.java
+++ b/Mage.Sets/src/mage/cards/h/HavengulLich.java
@@ -46,7 +46,7 @@ public final class HavengulLich extends CardImpl {
this.toughness = new MageInt(4);
// {1}: You may cast target creature card in a graveyard this turn. When you cast that card this turn, Havengul Lich gains all activated abilities of that card until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HavengulLichPlayEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HavengulLichPlayEffect(), new ManaCostsImpl<>("{1}"));
ability.addEffect(new HavengulLichPlayedEffect());
ability.addTarget(new TargetCardInGraveyard(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HavengulRunebinder.java b/Mage.Sets/src/mage/cards/h/HavengulRunebinder.java
index d8a3e48a09..036d7afbb7 100644
--- a/Mage.Sets/src/mage/cards/h/HavengulRunebinder.java
+++ b/Mage.Sets/src/mage/cards/h/HavengulRunebinder.java
@@ -45,7 +45,7 @@ public final class HavengulRunebinder extends CardImpl {
// then put a +1/+1 counter on each Zombie creature you control.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new CreateTokenEffect(new ZombieToken()),
- new ManaCostsImpl("{2}{U}"));
+ new ManaCostsImpl<>("{2}{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filter)));
ability.addEffect(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filterPermanent).concatBy(", then"));
diff --git a/Mage.Sets/src/mage/cards/h/HavocSower.java b/Mage.Sets/src/mage/cards/h/HavocSower.java
index 46838a8d13..33bc8690ea 100644
--- a/Mage.Sets/src/mage/cards/h/HavocSower.java
+++ b/Mage.Sets/src/mage/cards/h/HavocSower.java
@@ -30,7 +30,7 @@ public final class HavocSower extends CardImpl {
// Devoid
this.addAbility(new DevoidAbility(this.color));
// {1}{C}: Havoc Sower gets +2/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{C}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{C}")));
}
private HavocSower(final HavocSower card) {
diff --git a/Mage.Sets/src/mage/cards/h/HazduhrTheAbbot.java b/Mage.Sets/src/mage/cards/h/HazduhrTheAbbot.java
index e4e72630d2..1769330d3f 100644
--- a/Mage.Sets/src/mage/cards/h/HazduhrTheAbbot.java
+++ b/Mage.Sets/src/mage/cards/h/HazduhrTheAbbot.java
@@ -45,7 +45,7 @@ public final class HazduhrTheAbbot extends CardImpl {
this.toughness = new MageInt(5);
// {X}, {T}: The next X damage that would be dealt this turn to target white creature you control is dealt to Hazduhr the Abbot instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HazduhrTheAbbotRedirectDamageEffect(Duration.EndOfTurn), new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HazduhrTheAbbotRedirectDamageEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetControlledCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HazeOfPollen.java b/Mage.Sets/src/mage/cards/h/HazeOfPollen.java
index d0d0c25c74..286e813cd1 100644
--- a/Mage.Sets/src/mage/cards/h/HazeOfPollen.java
+++ b/Mage.Sets/src/mage/cards/h/HazeOfPollen.java
@@ -27,7 +27,7 @@ public final class HazeOfPollen extends CardImpl {
getSpellAbility().addEffect(effect);
// Cycling {3}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{3}")));
}
diff --git a/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java b/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java
index 26052e0d5c..3c87537a80 100644
--- a/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java
+++ b/Mage.Sets/src/mage/cards/h/HazoretTheFervent.java
@@ -48,7 +48,7 @@ public final class HazoretTheFervent extends CardImpl {
.setText("{this} can't attack or block unless you have one or fewer cards in hand")));
// {2}{R}, Discard a card: Hazoret deals 2 damage to each opponent.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(2, TargetController.OPPONENT), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(2, TargetController.OPPONENT), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HeWhoHungers.java b/Mage.Sets/src/mage/cards/h/HeWhoHungers.java
index b7270f21ee..c9f51938e1 100644
--- a/Mage.Sets/src/mage/cards/h/HeWhoHungers.java
+++ b/Mage.Sets/src/mage/cards/h/HeWhoHungers.java
@@ -50,7 +50,7 @@ public final class HeWhoHungers extends CardImpl {
/* {1}, Sacrifice a Spirit: Target opponent reveals their hand. You choose a card from it.
* That player discards that card. Activate this ability only any time you could cast a sorcery. */
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardCardYouChooseTargetEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardCardYouChooseTargetEffect(), new ManaCostsImpl<>("{1}"));
ability.addTarget(new TargetOpponent());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/Headhunter.java b/Mage.Sets/src/mage/cards/h/Headhunter.java
index 6a9237a229..60437f803c 100644
--- a/Mage.Sets/src/mage/cards/h/Headhunter.java
+++ b/Mage.Sets/src/mage/cards/h/Headhunter.java
@@ -31,7 +31,7 @@ public final class Headhunter extends CardImpl {
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DiscardTargetEffect(1), false, true));
// Morph {B} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)
- this.addAbility(new MorphAbility(new ManaCostsImpl("{B}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{B}")));
}
diff --git a/Mage.Sets/src/mage/cards/h/HealersHeaddress.java b/Mage.Sets/src/mage/cards/h/HealersHeaddress.java
index bb1dd72af0..e8f80fc6ed 100644
--- a/Mage.Sets/src/mage/cards/h/HealersHeaddress.java
+++ b/Mage.Sets/src/mage/cards/h/HealersHeaddress.java
@@ -46,7 +46,7 @@ public final class HealersHeaddress extends CardImpl {
ability.addEffect(effect);
this.addAbility(ability);
// {W}{W}: Attach Healer's Headdress to target creature you control.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttachEffect(Outcome.BoostCreature, "Attach {this} to target creature you control"), new ManaCostsImpl("{W}{W}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttachEffect(Outcome.BoostCreature, "Attach {this} to target creature you control"), new ManaCostsImpl<>("{W}{W}"));
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
// Equip {1}
diff --git a/Mage.Sets/src/mage/cards/h/HeartOfBogardan.java b/Mage.Sets/src/mage/cards/h/HeartOfBogardan.java
index 4536a12dac..f494771c0e 100644
--- a/Mage.Sets/src/mage/cards/h/HeartOfBogardan.java
+++ b/Mage.Sets/src/mage/cards/h/HeartOfBogardan.java
@@ -30,7 +30,7 @@ public final class HeartOfBogardan extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}{R}");
// Cumulative upkeep-Pay {2}.
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{2}")));
// When a player doesn't pay Heart of Bogardan's cumulative upkeep, Heart of Bogardan deals X damage to target player and each creature they control, where X is twice the number of age counters on Heart of Bogardan minus 2.
this.addAbility(new HeartOfBogardanTriggeredAbility());
diff --git a/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java b/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java
index 4d7f1ac997..0a17b5860d 100644
--- a/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java
+++ b/Mage.Sets/src/mage/cards/h/HeartPiercerManticore.java
@@ -39,7 +39,7 @@ public final class HeartPiercerManticore extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new HeartPiercerManticoreSacrificeEffect(), true));
// Embalm {5}{R}
- this.addAbility(new EmbalmAbility(new ManaCostsImpl("{5}{R}"), this));
+ this.addAbility(new EmbalmAbility(new ManaCostsImpl<>("{5}{R}"), this));
}
private HeartPiercerManticore(final HeartPiercerManticore card) {
diff --git a/Mage.Sets/src/mage/cards/h/HeartWarden.java b/Mage.Sets/src/mage/cards/h/HeartWarden.java
index 838005b404..97476f1aa4 100644
--- a/Mage.Sets/src/mage/cards/h/HeartWarden.java
+++ b/Mage.Sets/src/mage/cards/h/HeartWarden.java
@@ -32,7 +32,7 @@ public final class HeartWarden extends CardImpl {
// {tap}: Add {G}.
this.addAbility(new GreenManaAbility());
// {2}, Sacrifice Heart Warden: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{2}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HeartfireImmolator.java b/Mage.Sets/src/mage/cards/h/HeartfireImmolator.java
index 3d8399f894..e5382836b0 100644
--- a/Mage.Sets/src/mage/cards/h/HeartfireImmolator.java
+++ b/Mage.Sets/src/mage/cards/h/HeartfireImmolator.java
@@ -39,7 +39,7 @@ public final class HeartfireImmolator extends CardImpl {
Ability ability = new SimpleActivatedAbility(
new DamageTargetEffect(xValue)
.setText("it deals damage equal to its power to target creature or planeswalker"),
- new ManaCostsImpl("{R}")
+ new ManaCostsImpl<>("{R}")
);
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreatureOrPlaneswalker());
diff --git a/Mage.Sets/src/mage/cards/h/HearthKami.java b/Mage.Sets/src/mage/cards/h/HearthKami.java
index 33d4fb047b..d83d2ef9b7 100644
--- a/Mage.Sets/src/mage/cards/h/HearthKami.java
+++ b/Mage.Sets/src/mage/cards/h/HearthKami.java
@@ -35,7 +35,7 @@ public final class HearthKami extends CardImpl {
this.toughness = new MageInt(1);
// {X}, Sacrifice Hearth Kami: Destroy target artifact with converted mana cost X.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{X}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPermanent(filter));
ability.setTargetAdjuster(XCMCPermanentAdjuster.instance);
diff --git a/Mage.Sets/src/mage/cards/h/HecklingFiends.java b/Mage.Sets/src/mage/cards/h/HecklingFiends.java
index 0be9bad5fd..5aa5e9eeef 100644
--- a/Mage.Sets/src/mage/cards/h/HecklingFiends.java
+++ b/Mage.Sets/src/mage/cards/h/HecklingFiends.java
@@ -30,7 +30,7 @@ public final class HecklingFiends extends CardImpl {
// {2}{R}: Target creature attacks this turn if able.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new AttacksIfAbleTargetEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{2}{R}"));
+ new ManaCostsImpl<>("{2}{R}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HedgeTroll.java b/Mage.Sets/src/mage/cards/h/HedgeTroll.java
index 9174a9a9b8..032393ff1d 100644
--- a/Mage.Sets/src/mage/cards/h/HedgeTroll.java
+++ b/Mage.Sets/src/mage/cards/h/HedgeTroll.java
@@ -38,7 +38,7 @@ public final class HedgeTroll extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceWhileControlsEffect(filter, 1, 1)));
// {W}: Regenerate Hedge Troll.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{W}")));
}
private HedgeTroll(final HedgeTroll card) {
diff --git a/Mage.Sets/src/mage/cards/h/HedronAlignment.java b/Mage.Sets/src/mage/cards/h/HedronAlignment.java
index 2d2ed09462..00a9eecec9 100644
--- a/Mage.Sets/src/mage/cards/h/HedronAlignment.java
+++ b/Mage.Sets/src/mage/cards/h/HedronAlignment.java
@@ -37,7 +37,7 @@ public final class HedronAlignment extends CardImpl {
// At the beginning of your upkeep, you may reveal your hand. If you do, you win the game if you own a card named Hedron Alignment in exile, in your hand, in your graveyard, and on the battlefield.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new HedronAlignmentEffect(), TargetController.YOU, true));
// {1}{U}: Scry 1.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new ManaCostsImpl<>("{1}{U}")));
}
private HedronAlignment(final HedronAlignment card) {
diff --git a/Mage.Sets/src/mage/cards/h/HedronFieldPurists.java b/Mage.Sets/src/mage/cards/h/HedronFieldPurists.java
index 766ff6e246..03711e3c4f 100644
--- a/Mage.Sets/src/mage/cards/h/HedronFieldPurists.java
+++ b/Mage.Sets/src/mage/cards/h/HedronFieldPurists.java
@@ -37,7 +37,7 @@ public final class HedronFieldPurists extends LevelerCard {
this.toughness = new MageInt(3);
// Level up {2}{W}
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{2}{W}")));
// LEVEL 1-4
// 1/4
// If a source would deal damage to you or a creature you control, prevent 1 of that damage.
diff --git a/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java b/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java
index c4e063ff6d..95406223b6 100644
--- a/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java
+++ b/Mage.Sets/src/mage/cards/h/HeliodGodOfTheSun.java
@@ -49,7 +49,7 @@ public final class HeliodGodOfTheSun extends CardImpl {
// {2}{W}{W}: Create a 2/1 white Cleric enchantment creature token.
this.addAbility(new SimpleActivatedAbility(
- new CreateTokenEffect(new HeliodGodOfTheSunToken()), new ManaCostsImpl("{2}{W}{W}")
+ new CreateTokenEffect(new HeliodGodOfTheSunToken()), new ManaCostsImpl<>("{2}{W}{W}")
));
}
diff --git a/Mage.Sets/src/mage/cards/h/HeliodSunCrowned.java b/Mage.Sets/src/mage/cards/h/HeliodSunCrowned.java
index 8991ab0a0a..1a3b5a5849 100644
--- a/Mage.Sets/src/mage/cards/h/HeliodSunCrowned.java
+++ b/Mage.Sets/src/mage/cards/h/HeliodSunCrowned.java
@@ -69,7 +69,7 @@ public final class HeliodSunCrowned extends CardImpl {
// {1}{W}: Another target creature gains lifelink until end of turn.
ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
LifelinkAbility.getInstance(), Duration.EndOfTurn
- ), new ManaCostsImpl("{1}{W}"));
+ ), new ManaCostsImpl<>("{1}{W}"));
ability.addTarget(new TargetPermanent(filter2));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/Heliophial.java b/Mage.Sets/src/mage/cards/h/Heliophial.java
index 47dd9da2cb..94dabd9ac9 100644
--- a/Mage.Sets/src/mage/cards/h/Heliophial.java
+++ b/Mage.Sets/src/mage/cards/h/Heliophial.java
@@ -31,7 +31,7 @@ public final class Heliophial extends CardImpl {
// {2}, Sacrifice Heliophial: Heliophial deals damage equal to the number of charge counters on it to any target.
Effect effect = new DamageTargetEffect(new CountersSourceCount(CounterType.CHARGE));
effect.setText("{this} deals damage equal to the number of charge counters on it to any target");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HelixPinnacle.java b/Mage.Sets/src/mage/cards/h/HelixPinnacle.java
index 4cf9dbf7e0..78e5926baf 100644
--- a/Mage.Sets/src/mage/cards/h/HelixPinnacle.java
+++ b/Mage.Sets/src/mage/cards/h/HelixPinnacle.java
@@ -35,7 +35,7 @@ public final class HelixPinnacle extends CardImpl {
// {X}: Put X tower counters on Helix Pinnacle.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.TOWER.createInstance(), ManacostVariableValue.REGULAR, true),
- new ManaCostsImpl("{X}")));
+ new ManaCostsImpl<>("{X}")));
// At the beginning of your upkeep, if there are 100 or more tower counters on Helix Pinnacle, you win the game.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/h/Helldozer.java b/Mage.Sets/src/mage/cards/h/Helldozer.java
index 80641ced80..ab3e035d5a 100644
--- a/Mage.Sets/src/mage/cards/h/Helldozer.java
+++ b/Mage.Sets/src/mage/cards/h/Helldozer.java
@@ -35,7 +35,7 @@ public final class Helldozer extends CardImpl {
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new HelldozerEffect(),
- new ManaCostsImpl("{B}{B}{B}"));
+ new ManaCostsImpl<>("{B}{B}{B}"));
ability.addTarget(new TargetLandPermanent());
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HellholeFlailer.java b/Mage.Sets/src/mage/cards/h/HellholeFlailer.java
index 1c7950b917..3a42a68f87 100644
--- a/Mage.Sets/src/mage/cards/h/HellholeFlailer.java
+++ b/Mage.Sets/src/mage/cards/h/HellholeFlailer.java
@@ -35,7 +35,7 @@ public final class HellholeFlailer extends CardImpl {
this.addAbility(new UnleashAbility());
// {2}{B}{R}, Sacrifice Hellhole Flailer: Hellhole Flailer deals damage equal to its power to target player.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new ManaCostsImpl("{2}{B}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new ManaCostsImpl<>("{2}{B}{R}"));
ability.addTarget(new TargetPlayerOrPlaneswalker());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HellionCrucible.java b/Mage.Sets/src/mage/cards/h/HellionCrucible.java
index f57f284179..c34fe35312 100644
--- a/Mage.Sets/src/mage/cards/h/HellionCrucible.java
+++ b/Mage.Sets/src/mage/cards/h/HellionCrucible.java
@@ -31,12 +31,12 @@ public final class HellionCrucible extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {1}{R}, {tap}: Put a pressure counter on Hellion Crucible.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.PRESSURE.createInstance()), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.PRESSURE.createInstance()), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
// {1}{R}, {tap}, Remove two pressure counters from Hellion Crucible and sacrifice it: Create a 4/4 red Hellion creature token with haste.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HellionHasteToken(), 1), new ManaCostsImpl("{1}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HellionHasteToken(), 1), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new RemoveCountersSourceCost(CounterType.PRESSURE.createInstance(2)));
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/h/HellkiteCharger.java b/Mage.Sets/src/mage/cards/h/HellkiteCharger.java
index 787e68b820..947efe6d98 100644
--- a/Mage.Sets/src/mage/cards/h/HellkiteCharger.java
+++ b/Mage.Sets/src/mage/cards/h/HellkiteCharger.java
@@ -69,7 +69,7 @@ class HellkiteChargerEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
if (player != null) {
- ManaCosts cost = new ManaCostsImpl("{5}{R}{R}");
+ ManaCosts cost = new ManaCostsImpl<>("{5}{R}{R}");
if (player.chooseUse(Outcome.Damage, "Pay " + cost.getText() + '?', source, game)) {
cost.clearPaid();
if (cost.pay(source, game, source, source.getControllerId(), false, null)) {
diff --git a/Mage.Sets/src/mage/cards/h/HellkiteIgniter.java b/Mage.Sets/src/mage/cards/h/HellkiteIgniter.java
index 738e35f0c5..8dc9aacd2b 100644
--- a/Mage.Sets/src/mage/cards/h/HellkiteIgniter.java
+++ b/Mage.Sets/src/mage/cards/h/HellkiteIgniter.java
@@ -48,7 +48,7 @@ public final class HellkiteIgniter extends CardImpl {
StaticValue.get(0),
Duration.EndOfTurn,
true),
- new ManaCostsImpl("{1}{R}")));
+ new ManaCostsImpl<>("{1}{R}")));
}
private HellkiteIgniter(final HellkiteIgniter card) {
diff --git a/Mage.Sets/src/mage/cards/h/HellkiteOverlord.java b/Mage.Sets/src/mage/cards/h/HellkiteOverlord.java
index 9857bed1c8..ccad8402b1 100644
--- a/Mage.Sets/src/mage/cards/h/HellkiteOverlord.java
+++ b/Mage.Sets/src/mage/cards/h/HellkiteOverlord.java
@@ -34,8 +34,8 @@ public final class HellkiteOverlord extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
this.addAbility(TrampleAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}{G}")));
}
public HellkiteOverlord (final HellkiteOverlord card) {
diff --git a/Mage.Sets/src/mage/cards/h/HellkitePunisher.java b/Mage.Sets/src/mage/cards/h/HellkitePunisher.java
index f6509448db..c4085d4e05 100644
--- a/Mage.Sets/src/mage/cards/h/HellkitePunisher.java
+++ b/Mage.Sets/src/mage/cards/h/HellkitePunisher.java
@@ -30,7 +30,7 @@ public final class HellkitePunisher extends CardImpl {
// {R}: Hellkite Punisher gets +1/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(
- new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")
+ new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/h/HellsThunder.java b/Mage.Sets/src/mage/cards/h/HellsThunder.java
index f91cf42a2b..fc67120871 100644
--- a/Mage.Sets/src/mage/cards/h/HellsThunder.java
+++ b/Mage.Sets/src/mage/cards/h/HellsThunder.java
@@ -32,7 +32,7 @@ public final class HellsThunder extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
this.addAbility(new OnEventTriggeredAbility(EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new SacrificeSourceEffect()));
- this.addAbility(new UnearthAbility(new ManaCostsImpl("{4}{R}")));
+ this.addAbility(new UnearthAbility(new ManaCostsImpl<>("{4}{R}")));
}
diff --git a/Mage.Sets/src/mage/cards/h/HellsparkElemental.java b/Mage.Sets/src/mage/cards/h/HellsparkElemental.java
index bcf3724903..ef3573fb74 100644
--- a/Mage.Sets/src/mage/cards/h/HellsparkElemental.java
+++ b/Mage.Sets/src/mage/cards/h/HellsparkElemental.java
@@ -37,7 +37,7 @@ public final class HellsparkElemental extends CardImpl {
this.addAbility(new OnEventTriggeredAbility(EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new SacrificeSourceEffect()));
// Unearth {1}{R}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
- this.addAbility(new UnearthAbility(new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new UnearthAbility(new ManaCostsImpl<>("{1}{R}")));
}
private HellsparkElemental(final HellsparkElemental card) {
diff --git a/Mage.Sets/src/mage/cards/h/HelmOfChatzuk.java b/Mage.Sets/src/mage/cards/h/HelmOfChatzuk.java
index 3a9ef643b4..1ec0552d20 100644
--- a/Mage.Sets/src/mage/cards/h/HelmOfChatzuk.java
+++ b/Mage.Sets/src/mage/cards/h/HelmOfChatzuk.java
@@ -25,7 +25,7 @@ public final class HelmOfChatzuk extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
// {1}, {T}: Target creature gains banding until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(BandingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(BandingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HematiteGolem.java b/Mage.Sets/src/mage/cards/h/HematiteGolem.java
index ace9012c83..0228fd11cf 100644
--- a/Mage.Sets/src/mage/cards/h/HematiteGolem.java
+++ b/Mage.Sets/src/mage/cards/h/HematiteGolem.java
@@ -26,7 +26,7 @@ public final class HematiteGolem extends CardImpl {
this.toughness = new MageInt(4);
// {1}{R}: Hematite Golem gets +2/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")));
}
private HematiteGolem(final HematiteGolem card) {
diff --git a/Mage.Sets/src/mage/cards/h/HematiteTalisman.java b/Mage.Sets/src/mage/cards/h/HematiteTalisman.java
index 8cd27e6fce..4cf1ff6e1b 100644
--- a/Mage.Sets/src/mage/cards/h/HematiteTalisman.java
+++ b/Mage.Sets/src/mage/cards/h/HematiteTalisman.java
@@ -30,7 +30,7 @@ public final class HematiteTalisman extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// Whenever a player casts a red spell, you may pay {3}. If you do, untap target permanent.
- Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl("{3}")), filter, false);
+ Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl<>("{3}")), filter, false);
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HenchfiendOfUkor.java b/Mage.Sets/src/mage/cards/h/HenchfiendOfUkor.java
index f13a84b9a5..ff5c726faf 100644
--- a/Mage.Sets/src/mage/cards/h/HenchfiendOfUkor.java
+++ b/Mage.Sets/src/mage/cards/h/HenchfiendOfUkor.java
@@ -34,7 +34,7 @@ public final class HenchfiendOfUkor extends CardImpl {
this.addAbility(new EchoAbility("{1}{B}"));
// {BR}: Henchfiend of Ukor gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{B/R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{B/R}")));
}
private HenchfiendOfUkor(final HenchfiendOfUkor card) {
diff --git a/Mage.Sets/src/mage/cards/h/HengeGuardian.java b/Mage.Sets/src/mage/cards/h/HengeGuardian.java
index f73853bc22..4faaf7322e 100644
--- a/Mage.Sets/src/mage/cards/h/HengeGuardian.java
+++ b/Mage.Sets/src/mage/cards/h/HengeGuardian.java
@@ -29,7 +29,7 @@ public final class HengeGuardian extends CardImpl {
this.toughness = new MageInt(4);
// {2}: Henge Guardian gains trample until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
}
private HengeGuardian(final HengeGuardian card) {
diff --git a/Mage.Sets/src/mage/cards/h/HeraldOfAnafenza.java b/Mage.Sets/src/mage/cards/h/HeraldOfAnafenza.java
index f888244359..787c765f1b 100644
--- a/Mage.Sets/src/mage/cards/h/HeraldOfAnafenza.java
+++ b/Mage.Sets/src/mage/cards/h/HeraldOfAnafenza.java
@@ -32,7 +32,7 @@ public final class HeraldOfAnafenza extends CardImpl {
this.toughness = new MageInt(2);
// Outlast {2}{W} ({2}{W} {T}: Put a +1/+1 counter on this creature. Outlast only as a sorcery.)
- this.addAbility(new OutlastAbility(new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new OutlastAbility(new ManaCostsImpl<>("{2}{W}")));
// Whenever you activate Herald of Anafenza's outlast ability, create a 1/1 white Warrior creature token.
this.addAbility(new HeraldOfAnafenzaTriggeredAbility());
diff --git a/Mage.Sets/src/mage/cards/h/HeraldOfAnguish.java b/Mage.Sets/src/mage/cards/h/HeraldOfAnguish.java
index ebd207e12f..1e49090a11 100644
--- a/Mage.Sets/src/mage/cards/h/HeraldOfAnguish.java
+++ b/Mage.Sets/src/mage/cards/h/HeraldOfAnguish.java
@@ -41,7 +41,7 @@ public final class HeraldOfAnguish extends CardImpl {
this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new DiscardEachPlayerEffect(TargetController.OPPONENT), false));
// {1}{B}, Sacrifice an artifact: Target creature gets -2/-2 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, -2, Duration.EndOfTurn), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, -2, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HeraldOfTheSun.java b/Mage.Sets/src/mage/cards/h/HeraldOfTheSun.java
index 784aa47c72..53082f7e8b 100644
--- a/Mage.Sets/src/mage/cards/h/HeraldOfTheSun.java
+++ b/Mage.Sets/src/mage/cards/h/HeraldOfTheSun.java
@@ -44,7 +44,7 @@ public final class HeraldOfTheSun extends CardImpl {
// {3}{W}: Put a +1/+1 counter on another target creature with flying.
Ability ability = new SimpleActivatedAbility(
- new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{3}{W}")
+ new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{3}{W}")
);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HerdchaserDragon.java b/Mage.Sets/src/mage/cards/h/HerdchaserDragon.java
index c61cbc3d0f..5ba9a572a0 100644
--- a/Mage.Sets/src/mage/cards/h/HerdchaserDragon.java
+++ b/Mage.Sets/src/mage/cards/h/HerdchaserDragon.java
@@ -43,7 +43,7 @@ public final class HerdchaserDragon extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// Megamorph {5}{G}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{5}{G}{G}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{5}{G}{G}"), true));
// When Herdchaser Dragon is turned face up, put a +1/+1 counter on each other Dragon creature you control.
this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), false, false));
diff --git a/Mage.Sets/src/mage/cards/h/HereticsPunishment.java b/Mage.Sets/src/mage/cards/h/HereticsPunishment.java
index 8736fcebb1..579c38ac33 100644
--- a/Mage.Sets/src/mage/cards/h/HereticsPunishment.java
+++ b/Mage.Sets/src/mage/cards/h/HereticsPunishment.java
@@ -26,7 +26,7 @@ public final class HereticsPunishment extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{R}");
// {3}{R}: Choose any target, then put the top three cards of your library into your graveyard. Heretic's Punishment deals damage to that creature or player equal to the highest converted mana cost among those cards.
- Ability ability = new SimpleActivatedAbility(new HereticsPunishmentEffect(), new ManaCostsImpl("{3}{R}"));
+ Ability ability = new SimpleActivatedAbility(new HereticsPunishmentEffect(), new ManaCostsImpl<>("{3}{R}"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HermitDruid.java b/Mage.Sets/src/mage/cards/h/HermitDruid.java
index 92018432f4..657563c269 100644
--- a/Mage.Sets/src/mage/cards/h/HermitDruid.java
+++ b/Mage.Sets/src/mage/cards/h/HermitDruid.java
@@ -31,7 +31,7 @@ public final class HermitDruid extends CardImpl {
this.toughness = new MageInt(1);
// {G}, {tap}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RevealCardsFromLibraryUntilEffect(StaticFilters.FILTER_CARD_BASIC_LAND, Zone.HAND, Zone.GRAVEYARD), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RevealCardsFromLibraryUntilEffect(StaticFilters.FILTER_CARD_BASIC_LAND, Zone.HAND, Zone.GRAVEYARD), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HeroOfLeinaTower.java b/Mage.Sets/src/mage/cards/h/HeroOfLeinaTower.java
index eec70587a0..e775a06cea 100644
--- a/Mage.Sets/src/mage/cards/h/HeroOfLeinaTower.java
+++ b/Mage.Sets/src/mage/cards/h/HeroOfLeinaTower.java
@@ -68,7 +68,7 @@ class HeroOfLeinaTowerEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player you = game.getPlayer(source.getControllerId());
- ManaCosts cost = new ManaCostsImpl("{X}");
+ ManaCosts cost = new ManaCostsImpl<>("{X}");
if (you != null && you.chooseUse(Outcome.BoostCreature, "Do you want to to pay {X}?", source, game)) {
int costX = you.announceXMana(0, Integer.MAX_VALUE, "Announce the value for {X}", game, source);
cost.add(new GenericManaCost(costX));
diff --git a/Mage.Sets/src/mage/cards/h/HeroesBane.java b/Mage.Sets/src/mage/cards/h/HeroesBane.java
index 21e9f0c2de..1ee3ac631a 100644
--- a/Mage.Sets/src/mage/cards/h/HeroesBane.java
+++ b/Mage.Sets/src/mage/cards/h/HeroesBane.java
@@ -35,7 +35,7 @@ public final class HeroesBane extends CardImpl {
// {2}{G}{G}: Put X +1/+1 counters on Heroe's Bane, where X is its power.
Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new SourcePermanentPowerCount(), true);
effect.setText("Put X +1/+1 counters on {this}, where X is its power");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{G}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{G}{G}")));
}
private HeroesBane(final HeroesBane card) {
diff --git a/Mage.Sets/src/mage/cards/h/HeroesPodium.java b/Mage.Sets/src/mage/cards/h/HeroesPodium.java
index 7895ad60f5..ae30add9fc 100644
--- a/Mage.Sets/src/mage/cards/h/HeroesPodium.java
+++ b/Mage.Sets/src/mage/cards/h/HeroesPodium.java
@@ -48,7 +48,7 @@ public final class HeroesPodium extends CardImpl {
// Put the rest on the bottom of your library in a random order.
Ability ability = new SimpleActivatedAbility(
new LookLibraryAndPickControllerEffect(ManacostVariableValue.REGULAR, 1, filter2, PutCards.HAND, PutCards.BOTTOM_RANDOM),
- new ManaCostsImpl("{X}"));
+ new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HeroesRemembered.java b/Mage.Sets/src/mage/cards/h/HeroesRemembered.java
index 4b8879cdb6..188d226a7d 100644
--- a/Mage.Sets/src/mage/cards/h/HeroesRemembered.java
+++ b/Mage.Sets/src/mage/cards/h/HeroesRemembered.java
@@ -17,7 +17,7 @@ public final class HeroesRemembered extends CardImpl {
//You gain 20 life.
this.getSpellAbility().addEffect(new GainLifeEffect(20));
//Suspend 10-{W}
- this.addAbility(new SuspendAbility(10, new ManaCostsImpl("{W}"), this));
+ this.addAbility(new SuspendAbility(10, new ManaCostsImpl<>("{W}"), this));
}
private HeroesRemembered(final HeroesRemembered card) {
diff --git a/Mage.Sets/src/mage/cards/h/Heroism.java b/Mage.Sets/src/mage/cards/h/Heroism.java
index d3801688ef..3b2043f153 100644
--- a/Mage.Sets/src/mage/cards/h/Heroism.java
+++ b/Mage.Sets/src/mage/cards/h/Heroism.java
@@ -84,7 +84,7 @@ class HeroismEffect extends OneShotEffect {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
Player player = game.getPlayer(game.getActivePlayerId());
- Cost cost = new ManaCostsImpl("{2}{R}");
+ Cost cost = new ManaCostsImpl<>("{2}{R}");
List permanentsToPrevent = new ArrayList<>();
for (Permanent permanent : game.getState().getBattlefield().getAllActivePermanents(filter, game.getActivePlayerId(), game)) {
cost.clearPaid();
diff --git a/Mage.Sets/src/mage/cards/h/HexParasite.java b/Mage.Sets/src/mage/cards/h/HexParasite.java
index 05a919f937..2d3c7988bb 100644
--- a/Mage.Sets/src/mage/cards/h/HexParasite.java
+++ b/Mage.Sets/src/mage/cards/h/HexParasite.java
@@ -30,7 +30,7 @@ public final class HexParasite extends CardImpl {
this.toughness = new MageInt(1);
// {X}{B/P}: Remove up to X counters from target permanent. For each counter removed this way, Hex Parasite gets +1/+0 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HexParasiteEffect(), new ManaCostsImpl("{X}{B/P}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HexParasiteEffect(), new ManaCostsImpl<>("{X}{B/P}"));
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/Hexdrinker.java b/Mage.Sets/src/mage/cards/h/Hexdrinker.java
index 7641d116cb..a391bd4a9a 100644
--- a/Mage.Sets/src/mage/cards/h/Hexdrinker.java
+++ b/Mage.Sets/src/mage/cards/h/Hexdrinker.java
@@ -35,7 +35,7 @@ public final class Hexdrinker extends LevelerCard {
this.toughness = new MageInt(1);
// Level up {1}
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{1}")));
// LEVEL 3-7
// 4/4
diff --git a/Mage.Sets/src/mage/cards/h/HibernationsEnd.java b/Mage.Sets/src/mage/cards/h/HibernationsEnd.java
index 2bba1fd71c..54a6f2ef6b 100644
--- a/Mage.Sets/src/mage/cards/h/HibernationsEnd.java
+++ b/Mage.Sets/src/mage/cards/h/HibernationsEnd.java
@@ -32,7 +32,7 @@ public final class HibernationsEnd extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{G}");
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// Whenever you pay Hibernation's End's cumulative upkeep, you may search your library for a creature card with converted mana cost equal to the number of age counters on Hibernation's End and put it onto the battlefield. If you do, shuffle your library.
this.addAbility(new HibernationsEndAbility());
}
diff --git a/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java b/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java
index 315ff5b193..21c4a45e28 100644
--- a/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java
+++ b/Mage.Sets/src/mage/cards/h/HiddenDragonslayer.java
@@ -43,7 +43,7 @@ public final class HiddenDragonslayer extends CardImpl {
this.addAbility(LifelinkAbility.getInstance());
// Megamorph {2}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{W}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{W}"), true));
// When Hidden Dragonslayer is turned face up, destroy target creature with power 4 or greater an opponent controls.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new DestroyTargetEffect(), false, false);
diff --git a/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java b/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java
index 72f3f7f531..31b26dc1e4 100644
--- a/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java
+++ b/Mage.Sets/src/mage/cards/h/HieroglyphicIllumination.java
@@ -22,7 +22,7 @@ public final class HieroglyphicIllumination extends CardImpl {
getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
// Cycling {U}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{U}")));
}
diff --git a/Mage.Sets/src/mage/cards/h/HighAlert.java b/Mage.Sets/src/mage/cards/h/HighAlert.java
index c846241de8..4a397e082e 100644
--- a/Mage.Sets/src/mage/cards/h/HighAlert.java
+++ b/Mage.Sets/src/mage/cards/h/HighAlert.java
@@ -44,7 +44,7 @@ public final class HighAlert extends CardImpl {
));
// {2}{W}{U}: Untap target creature.
- Ability ability = new SimpleActivatedAbility(new UntapTargetEffect(), new ManaCostsImpl("{2}{W}{U}"));
+ Ability ability = new SimpleActivatedAbility(new UntapTargetEffect(), new ManaCostsImpl<>("{2}{W}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HiredTorturer.java b/Mage.Sets/src/mage/cards/h/HiredTorturer.java
index 16612d2d1f..d7e292ce89 100644
--- a/Mage.Sets/src/mage/cards/h/HiredTorturer.java
+++ b/Mage.Sets/src/mage/cards/h/HiredTorturer.java
@@ -43,7 +43,7 @@ public final class HiredTorturer extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
// {3}{B}, {T}: Target opponent loses 2 life and reveals a card at random from their hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2),new ManaCostsImpl("{3}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2),new ManaCostsImpl<>("{3}{B}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new HiredTorturerEffect());
ability.addTarget(new TargetOpponent());
diff --git a/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java b/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java
index 84d856df42..59e31b19a4 100644
--- a/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java
+++ b/Mage.Sets/src/mage/cards/h/HisokaMinamoSensei.java
@@ -40,7 +40,7 @@ public final class HisokaMinamoSensei extends CardImpl {
this.toughness = new MageInt(3);
// {2}{U}, Discard a card: Counter target spell if it has the same converted mana cost as the discarded card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HisokaMinamoSenseiCounterEffect(), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HisokaMinamoSenseiCounterEffect(), new ManaCostsImpl<>("{2}{U}"));
ability.addTarget(new TargetSpell());
TargetCardInHand targetCard = new TargetCardInHand(new FilterCard("a card"));
ability.addCost(new HisokaMinamoSenseiDiscardTargetCost(targetCard));
diff --git a/Mage.Sets/src/mage/cards/h/HisokasGuard.java b/Mage.Sets/src/mage/cards/h/HisokasGuard.java
index c6769aafd0..6802897c12 100644
--- a/Mage.Sets/src/mage/cards/h/HisokasGuard.java
+++ b/Mage.Sets/src/mage/cards/h/HisokasGuard.java
@@ -46,7 +46,7 @@ public final class HisokasGuard extends CardImpl {
// {1}{U}, {T}: Target creature you control other than Hisoka's Guard has shroud for as long as Hisoka's Guard remains tapped. (It can't be the target of spells or abilities.)
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent();
filter.add(AnotherPredicate.instance);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HisokasGuardGainAbilityTargetEffect(), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HisokasGuardGainAbilityTargetEffect(), new ManaCostsImpl<>("{1}{U}"));
ability.addCost(new TapSourceCost());
Target target = new TargetControlledCreaturePermanent(1, 1, filter, true);
ability.addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/h/HissingQuagmire.java b/Mage.Sets/src/mage/cards/h/HissingQuagmire.java
index f05f8bd92e..4400408822 100644
--- a/Mage.Sets/src/mage/cards/h/HissingQuagmire.java
+++ b/Mage.Sets/src/mage/cards/h/HissingQuagmire.java
@@ -38,7 +38,7 @@ public final class HissingQuagmire extends CardImpl {
// {1}{B}{G}: Hissing Quagmire becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land.
Effect effect = new BecomesCreatureSourceEffect(new HissingQuagmireToken(), "land", Duration.EndOfTurn);
effect.setText("{this} becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}{G}")));
}
private HissingQuagmire(final HissingQuagmire card) {
diff --git a/Mage.Sets/src/mage/cards/h/HoardSmelterDragon.java b/Mage.Sets/src/mage/cards/h/HoardSmelterDragon.java
index 96b903d0d7..2021040df0 100644
--- a/Mage.Sets/src/mage/cards/h/HoardSmelterDragon.java
+++ b/Mage.Sets/src/mage/cards/h/HoardSmelterDragon.java
@@ -37,7 +37,7 @@ public final class HoardSmelterDragon extends CardImpl {
this.power = new MageInt(5);
this.toughness = new MageInt(5);
this.addAbility(FlyingAbility.getInstance());
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{3}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{3}{R}"));
ability.addTarget(new TargetPermanent(filter));
ability.addEffect(new HoardSmelterEffect());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HobgoblinBanditLord.java b/Mage.Sets/src/mage/cards/h/HobgoblinBanditLord.java
index a55a72956f..e4839edd0a 100644
--- a/Mage.Sets/src/mage/cards/h/HobgoblinBanditLord.java
+++ b/Mage.Sets/src/mage/cards/h/HobgoblinBanditLord.java
@@ -48,7 +48,7 @@ public final class HobgoblinBanditLord extends CardImpl {
Ability ability = new SimpleActivatedAbility(
new DamageTargetEffect(GoblinsEnteredThisTurnDynamicValue.instance)
.setText("{this} deals damage equal to the number of Goblins that entered the battlefield under your control this turn to any target"),
- new ManaCostsImpl("{R}")
+ new ManaCostsImpl<>("{R}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/h/HolisticWisdom.java b/Mage.Sets/src/mage/cards/h/HolisticWisdom.java
index b173134972..c0b01cbada 100644
--- a/Mage.Sets/src/mage/cards/h/HolisticWisdom.java
+++ b/Mage.Sets/src/mage/cards/h/HolisticWisdom.java
@@ -34,7 +34,7 @@ public final class HolisticWisdom extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}{G}");
// {2}, Exile a card from your hand: Return target card from your graveyard to your hand if it shares a card type with the card exiled this way.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HolisticWisdomEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HolisticWisdomEffect(), new ManaCostsImpl<>("{2}"));
ability.addCost(new ExileFromHandCost(new TargetCardInHand(new FilterCard("a card from your hand"))));
ability.addTarget(new TargetCardInYourGraveyard());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HollowOne.java b/Mage.Sets/src/mage/cards/h/HollowOne.java
index 8ba2e0b81c..060d67f363 100644
--- a/Mage.Sets/src/mage/cards/h/HollowOne.java
+++ b/Mage.Sets/src/mage/cards/h/HollowOne.java
@@ -40,7 +40,7 @@ public final class HollowOne extends CardImpl {
this.addAbility(ability, new CardsCycledOrDiscardedThisTurnWatcher());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private HollowOne(final HollowOne card) {
diff --git a/Mage.Sets/src/mage/cards/h/HolyJusticiar.java b/Mage.Sets/src/mage/cards/h/HolyJusticiar.java
index f0e7330b92..67d926681f 100644
--- a/Mage.Sets/src/mage/cards/h/HolyJusticiar.java
+++ b/Mage.Sets/src/mage/cards/h/HolyJusticiar.java
@@ -33,7 +33,7 @@ public final class HolyJusticiar extends CardImpl {
this.toughness = new MageInt(1);
// {2}{W}, {tap}: Tap target creature. If that creature is a Zombie, exile it.
- Ability ability = new SimpleActivatedAbility(new HolyJusticiarEffect(), new ManaCostsImpl("{2}{W}"));
+ Ability ability = new SimpleActivatedAbility(new HolyJusticiarEffect(), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HomaridShaman.java b/Mage.Sets/src/mage/cards/h/HomaridShaman.java
index ae226ad77c..3e0536d26a 100644
--- a/Mage.Sets/src/mage/cards/h/HomaridShaman.java
+++ b/Mage.Sets/src/mage/cards/h/HomaridShaman.java
@@ -37,7 +37,7 @@ public final class HomaridShaman extends CardImpl {
this.toughness = new MageInt(1);
// {U}: Tap target green creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{U}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java b/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java
index b5c5ef1171..72b77411e1 100644
--- a/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java
+++ b/Mage.Sets/src/mage/cards/h/HomaridSpawningBed.java
@@ -35,7 +35,7 @@ public final class HomaridSpawningBed extends CardImpl {
// {1}{U}{U}, Sacrifice a blue creature: create X 1/1 blue Camarid creature tokens, where X is the sacrificed creature's converted mana cost.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CamaridToken(), new SacrificeCostConvertedMana("creature")),
- new ManaCostsImpl("{1}{U}{U}"));
+ new ManaCostsImpl<>("{1}{U}{U}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(filter)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HomaridWarrior.java b/Mage.Sets/src/mage/cards/h/HomaridWarrior.java
index 22501ede57..24bf1fe35a 100644
--- a/Mage.Sets/src/mage/cards/h/HomaridWarrior.java
+++ b/Mage.Sets/src/mage/cards/h/HomaridWarrior.java
@@ -33,7 +33,7 @@ public final class HomaridWarrior extends CardImpl {
// {U}: Homarid Warrior gains shroud until end of turn and doesn't untap during your next untap step. Tap Homarid Warrior.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(
- ShroudAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{U}"));
+ ShroudAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{U}"));
Effect effect = new DontUntapInControllersNextUntapStepSourceEffect();
effect.setText("and doesn't untap during your next untap step");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/h/HomingSliver.java b/Mage.Sets/src/mage/cards/h/HomingSliver.java
index 405ef572c5..b8f44127ff 100644
--- a/Mage.Sets/src/mage/cards/h/HomingSliver.java
+++ b/Mage.Sets/src/mage/cards/h/HomingSliver.java
@@ -40,7 +40,7 @@ public final class HomingSliver extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new HomingSliverEffect()));
// Slivercycling {3}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}"), filter, "Slivercycling"));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{3}"), filter, "Slivercycling"));
}
private HomingSliver(final HomingSliver card) {
diff --git a/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java b/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java
index 465dcfe204..4cb9eea477 100644
--- a/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java
+++ b/Mage.Sets/src/mage/cards/h/HomuraHumanAscendant.java
@@ -115,7 +115,7 @@ class HomurasEssence2 extends TokenImpl {
Effect effect = new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter);
effect.setText("and have flying");
ability.addEffect(effect);
- Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
effect = new GainAbilityControlledEffect(gainedAbility, Duration.WhileOnBattlefield, filter);
effect.setText("and \"{R}: This creature gets +1/+0 until end of turn.\"");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/h/HonoredHydra.java b/Mage.Sets/src/mage/cards/h/HonoredHydra.java
index eb51d57641..1cf3f7f289 100644
--- a/Mage.Sets/src/mage/cards/h/HonoredHydra.java
+++ b/Mage.Sets/src/mage/cards/h/HonoredHydra.java
@@ -29,7 +29,7 @@ public final class HonoredHydra extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// Embalm {3}{G}
- this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{G}"), this));
+ this.addAbility(new EmbalmAbility(new ManaCostsImpl<>("{3}{G}"), this));
}
diff --git a/Mage.Sets/src/mage/cards/h/HoodedHydra.java b/Mage.Sets/src/mage/cards/h/HoodedHydra.java
index 48c6bf1d41..dcec75ed42 100644
--- a/Mage.Sets/src/mage/cards/h/HoodedHydra.java
+++ b/Mage.Sets/src/mage/cards/h/HoodedHydra.java
@@ -44,7 +44,7 @@ public final class HoodedHydra extends CardImpl {
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new SnakeToken(), new CountersSourceCount(CounterType.P1P1)), false));
// Morph {3}{G}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{G}{G}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{G}{G}")));
// As Hooded Hydra is turned face up, put five +1/+1 counters on it.
Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(5));
diff --git a/Mage.Sets/src/mage/cards/h/HoodedKavu.java b/Mage.Sets/src/mage/cards/h/HoodedKavu.java
index 56668c7fa0..0b0cd6d03d 100644
--- a/Mage.Sets/src/mage/cards/h/HoodedKavu.java
+++ b/Mage.Sets/src/mage/cards/h/HoodedKavu.java
@@ -28,7 +28,7 @@ public final class HoodedKavu extends CardImpl {
this.toughness = new MageInt(2);
// {B}: Hooded Kavu gains fear until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FearAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FearAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
}
private HoodedKavu(final HoodedKavu card) {
diff --git a/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java b/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java
index 7a28ea83a0..d0ff1798d1 100644
--- a/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java
+++ b/Mage.Sets/src/mage/cards/h/HoofprintsOfTheStag.java
@@ -32,7 +32,7 @@ public final class HoofprintsOfTheStag extends CardImpl {
this.addAbility(new DrawCardControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.HOOFPRINT.createInstance(1)), true));
// {2}{w}, Remove four hoofprint counters from Hoofprints of the Stag: Create a 4/4 white Elemental creature token with flying. Activate this ability only during your turn.
- Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WhiteElementalToken(), 1), new ManaCostsImpl("{2}{W}"), MyTurnCondition.instance);
+ Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WhiteElementalToken(), 1), new ManaCostsImpl<>("{2}{W}"), MyTurnCondition.instance);
ability.addCost(new RemoveCountersSourceCost(CounterType.HOOFPRINT.createInstance(4)));
ability.addHint(MyTurnHint.instance);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HoppingAutomaton.java b/Mage.Sets/src/mage/cards/h/HoppingAutomaton.java
index 166cee1980..ed642d625e 100644
--- a/Mage.Sets/src/mage/cards/h/HoppingAutomaton.java
+++ b/Mage.Sets/src/mage/cards/h/HoppingAutomaton.java
@@ -32,7 +32,7 @@ public final class HoppingAutomaton extends CardImpl {
// {0}: Hopping Automaton gets -1/-1 and gains flying until end of turn.
Effect effect = new BoostSourceEffect(-1, -1, Duration.EndOfTurn);
effect.setText("{this} gets -1/-1");
- Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl("{0}"));
+ Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{0}"));
effect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains flying until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/h/HorizonSpellbomb.java b/Mage.Sets/src/mage/cards/h/HorizonSpellbomb.java
index a85f77ad24..158965ea83 100644
--- a/Mage.Sets/src/mage/cards/h/HorizonSpellbomb.java
+++ b/Mage.Sets/src/mage/cards/h/HorizonSpellbomb.java
@@ -30,12 +30,12 @@ public final class HorizonSpellbomb extends CardImpl {
// {2}, {tap}, Sacrifice Horizon Spellbomb: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true),
- new ManaCostsImpl("{2}"));
+ new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
// When Horizon Spellbomb is put into a graveyard from the battlefield, you may pay {G}. If you do, draw a card.
- this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{G}"))));
+ this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{G}"))));
}
private HorizonSpellbomb(final HorizonSpellbomb card) {
diff --git a/Mage.Sets/src/mage/cards/h/HornOfDeafening.java b/Mage.Sets/src/mage/cards/h/HornOfDeafening.java
index 7195fcb10d..e773447409 100644
--- a/Mage.Sets/src/mage/cards/h/HornOfDeafening.java
+++ b/Mage.Sets/src/mage/cards/h/HornOfDeafening.java
@@ -27,7 +27,7 @@ public final class HornOfDeafening extends CardImpl {
// {2}, {tap}: Prevent all combat damage that would be dealt by target creature this turn.
Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true);
effect.setText("Prevent all combat damage that would be dealt by target creature this turn.");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HornOfPlenty.java b/Mage.Sets/src/mage/cards/h/HornOfPlenty.java
index a3c76253bf..c0196b9720 100644
--- a/Mage.Sets/src/mage/cards/h/HornOfPlenty.java
+++ b/Mage.Sets/src/mage/cards/h/HornOfPlenty.java
@@ -65,7 +65,7 @@ class HornOfPlentyEffect extends OneShotEffect {
Player caster = game.getPlayer(targetPointer.getFirst(game, source));
if (caster != null) {
if (caster.chooseUse(Outcome.DrawCard, "Pay {1} to draw a card at the beginning of the next end step?", source, game)) {
- Cost cost = new ManaCostsImpl("{1}");
+ Cost cost = new ManaCostsImpl<>("{1}");
if (cost.pay(source, game, source, caster.getId(), false, null)) {
Effect effect = new DrawCardTargetEffect(1);
effect.setTargetPointer(new FixedTarget(caster.getId()));
diff --git a/Mage.Sets/src/mage/cards/h/HornbashMentor.java b/Mage.Sets/src/mage/cards/h/HornbashMentor.java
index a59c438f72..684da3add2 100644
--- a/Mage.Sets/src/mage/cards/h/HornbashMentor.java
+++ b/Mage.Sets/src/mage/cards/h/HornbashMentor.java
@@ -54,7 +54,7 @@ public final class HornbashMentor extends CardImpl {
// {2}{G}, {T}: Put a +1/+1 counter on each creature you control with trample.
ability = new SimpleActivatedAbility(
- new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter2), new ManaCostsImpl("{2}{G}")
+ new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter2), new ManaCostsImpl<>("{2}{G}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HornedHelm.java b/Mage.Sets/src/mage/cards/h/HornedHelm.java
index 0740317836..16daf8b93f 100644
--- a/Mage.Sets/src/mage/cards/h/HornedHelm.java
+++ b/Mage.Sets/src/mage/cards/h/HornedHelm.java
@@ -41,7 +41,7 @@ public final class HornedHelm extends CardImpl {
ability.addEffect(effect);
this.addAbility(ability);
// {G}{G}: Attach Horned Helm to target creature you control.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttachEffect(Outcome.BoostCreature, "Attach {this} to target creature you control"), new ManaCostsImpl("{G}{G}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttachEffect(Outcome.BoostCreature, "Attach {this} to target creature you control"), new ManaCostsImpl<>("{G}{G}"));
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
// Equip {1}
diff --git a/Mage.Sets/src/mage/cards/h/HornedTroll.java b/Mage.Sets/src/mage/cards/h/HornedTroll.java
index 8628afcb0f..9c685b1390 100644
--- a/Mage.Sets/src/mage/cards/h/HornedTroll.java
+++ b/Mage.Sets/src/mage/cards/h/HornedTroll.java
@@ -26,7 +26,7 @@ public final class HornedTroll extends CardImpl {
this.toughness = new MageInt(2);
// {G}: Regenerate Horned Troll.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{G}")));
}
private HornedTroll(final HornedTroll card) {
diff --git a/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java b/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java
index e144a1f9b4..c9b1006d2a 100644
--- a/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java
+++ b/Mage.Sets/src/mage/cards/h/HorrorOfTheBrokenLands.java
@@ -30,7 +30,7 @@ public final class HorrorOfTheBrokenLands extends CardImpl {
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(2, 1, Duration.EndOfTurn)));
// Cycling {B}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{B}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{B}")));
}
diff --git a/Mage.Sets/src/mage/cards/h/HouseGuildmage.java b/Mage.Sets/src/mage/cards/h/HouseGuildmage.java
index d8ba7328a0..ed901eec46 100644
--- a/Mage.Sets/src/mage/cards/h/HouseGuildmage.java
+++ b/Mage.Sets/src/mage/cards/h/HouseGuildmage.java
@@ -31,7 +31,7 @@ public final class HouseGuildmage extends CardImpl {
// {1}{U}, {T}: Target creature doesn't untap during its controller's next untap step.
Ability ability = new SimpleActivatedAbility(
new DontUntapInControllersNextUntapStepTargetEffect(),
- new ManaCostsImpl("{1}{U}")
+ new ManaCostsImpl<>("{1}{U}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
@@ -40,7 +40,7 @@ public final class HouseGuildmage extends CardImpl {
// {2}{B}, {T}: Surveil 2.
ability = new SimpleActivatedAbility(
new SurveilEffect(2),
- new ManaCostsImpl("{2}{B}")
+ new ManaCostsImpl<>("{2}{B}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/HowlingGale.java b/Mage.Sets/src/mage/cards/h/HowlingGale.java
index 7c8ae9fae7..c4e058056c 100644
--- a/Mage.Sets/src/mage/cards/h/HowlingGale.java
+++ b/Mage.Sets/src/mage/cards/h/HowlingGale.java
@@ -36,7 +36,7 @@ public final class HowlingGale extends CardImpl {
effect.setText("and each player");
this.getSpellAbility().addEffect(effect);
// Flashback {1}{G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{1}{G}")));
}
private HowlingGale(final HowlingGale card) {
diff --git a/Mage.Sets/src/mage/cards/h/HowltoothHollow.java b/Mage.Sets/src/mage/cards/h/HowltoothHollow.java
index adf9b5c9f2..c4a8bdecdf 100644
--- a/Mage.Sets/src/mage/cards/h/HowltoothHollow.java
+++ b/Mage.Sets/src/mage/cards/h/HowltoothHollow.java
@@ -41,7 +41,7 @@ public final class HowltoothHollow extends CardImpl {
Ability ability = new SimpleActivatedAbility(new ConditionalOneShotEffect(
new HideawayPlayEffect(), condition, "you may play the exiled card " +
"without paying its mana cost if each player has no cards in hand"
- ), new ManaCostsImpl("{B}"));
+ ), new ManaCostsImpl<>("{B}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/Hundroog.java b/Mage.Sets/src/mage/cards/h/Hundroog.java
index 25ad5732a3..8b3b15de61 100644
--- a/Mage.Sets/src/mage/cards/h/Hundroog.java
+++ b/Mage.Sets/src/mage/cards/h/Hundroog.java
@@ -24,7 +24,7 @@ public final class Hundroog extends CardImpl {
this.toughness = new MageInt(7);
// Cycling {3}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{3}")));
}
private Hundroog(final Hundroog card) {
diff --git a/Mage.Sets/src/mage/cards/h/HungryMist.java b/Mage.Sets/src/mage/cards/h/HungryMist.java
index 47c3047bd8..9b67705bd4 100644
--- a/Mage.Sets/src/mage/cards/h/HungryMist.java
+++ b/Mage.Sets/src/mage/cards/h/HungryMist.java
@@ -25,7 +25,7 @@ public final class HungryMist extends CardImpl {
this.toughness = new MageInt(2);
// At the beginning of your upkeep, sacrifice Hungry Mist unless you pay {G}{G}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{G}{G}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{G}{G}")), TargetController.YOU, false));
}
private HungryMist(final HungryMist card) {
diff --git a/Mage.Sets/src/mage/cards/h/HunterOfEyeblights.java b/Mage.Sets/src/mage/cards/h/HunterOfEyeblights.java
index 7e7c3bba92..1656e05c8a 100644
--- a/Mage.Sets/src/mage/cards/h/HunterOfEyeblights.java
+++ b/Mage.Sets/src/mage/cards/h/HunterOfEyeblights.java
@@ -44,7 +44,7 @@ public final class HunterOfEyeblights extends CardImpl {
this.addAbility(ability);
//{B}{2},{T}: Destroy target creature with a counter on it.
- Ability ability2 = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl("{2}{B}"));
+ Ability ability2 = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
ability2.addCost(new TapSourceCost());
ability2.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/h/HuntingKavu.java b/Mage.Sets/src/mage/cards/h/HuntingKavu.java
index fab54cdaff..71a6f6626a 100644
--- a/Mage.Sets/src/mage/cards/h/HuntingKavu.java
+++ b/Mage.Sets/src/mage/cards/h/HuntingKavu.java
@@ -40,7 +40,7 @@ public final class HuntingKavu extends CardImpl {
this.toughness = new MageInt(3);
// {1}{R}{G}, {tap}: Exile Hunting Kavu and target creature without flying that's attacking you.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileSourceEffect(), new ManaCostsImpl("{1}{R}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileSourceEffect(), new ManaCostsImpl<>("{1}{R}{G}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ExileTargetEffect().setText("and target creature without flying that's attacking you"));
ability.addTarget(new TargetCreaturePermanent(filter));
diff --git a/Mage.Sets/src/mage/cards/h/HuntingTriad.java b/Mage.Sets/src/mage/cards/h/HuntingTriad.java
index aad6b3a790..7d7cc2f58a 100644
--- a/Mage.Sets/src/mage/cards/h/HuntingTriad.java
+++ b/Mage.Sets/src/mage/cards/h/HuntingTriad.java
@@ -21,7 +21,7 @@ public final class HuntingTriad extends CardImpl {
this.subtype.add(SubType.ELF);
this.getSpellAbility().addEffect(new CreateTokenEffect(new ElfWarriorToken(), 3));
- this.addAbility(new ReinforceAbility(3, new ManaCostsImpl("{3}{G}")));
+ this.addAbility(new ReinforceAbility(3, new ManaCostsImpl<>("{3}{G}")));
}
private HuntingTriad(final HuntingTriad card) {
diff --git a/Mage.Sets/src/mage/cards/h/Hush.java b/Mage.Sets/src/mage/cards/h/Hush.java
index 0e85e21f21..4fce23b4b4 100644
--- a/Mage.Sets/src/mage/cards/h/Hush.java
+++ b/Mage.Sets/src/mage/cards/h/Hush.java
@@ -21,7 +21,7 @@ public final class Hush extends CardImpl {
this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterEnchantmentPermanent("enchantments")));
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private Hush(final Hush card) {
diff --git a/Mage.Sets/src/mage/cards/h/HyalopterousLemure.java b/Mage.Sets/src/mage/cards/h/HyalopterousLemure.java
index 11dfd050f3..835d4caac5 100644
--- a/Mage.Sets/src/mage/cards/h/HyalopterousLemure.java
+++ b/Mage.Sets/src/mage/cards/h/HyalopterousLemure.java
@@ -32,7 +32,7 @@ public final class HyalopterousLemure extends CardImpl {
// {0}: Hyalopterous Lemure gets -1/-0 and gains flying until end of turn.
Effect effect = new BoostSourceEffect(-1, 0, Duration.EndOfTurn);
effect.setText("{this} gets -1/-0");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{0}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{0}"));
effect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains flying until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/h/Hypergenesis.java b/Mage.Sets/src/mage/cards/h/Hypergenesis.java
index ef05c0ad68..bb8e8ce2fb 100644
--- a/Mage.Sets/src/mage/cards/h/Hypergenesis.java
+++ b/Mage.Sets/src/mage/cards/h/Hypergenesis.java
@@ -31,7 +31,7 @@ public final class Hypergenesis extends CardImpl {
this.color.setGreen(true);
// Suspend 3-{1}{G}{G}
- this.addAbility(new SuspendAbility(3, new ManaCostsImpl("{1}{G}{G}"), this));
+ this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{1}{G}{G}"), this));
// Starting with you, each player may put an artifact, creature, enchantment, or land card from their hand onto the battlefield. Repeat this process until no one puts a card onto the battlefield.
this.getSpellAbility().addEffect(new HypergenesisEffect());
diff --git a/Mage.Sets/src/mage/cards/h/HypervoltGrasp.java b/Mage.Sets/src/mage/cards/h/HypervoltGrasp.java
index 07941880f3..ac1b58fb76 100644
--- a/Mage.Sets/src/mage/cards/h/HypervoltGrasp.java
+++ b/Mage.Sets/src/mage/cards/h/HypervoltGrasp.java
@@ -44,7 +44,7 @@ public final class HypervoltGrasp extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA)));
// {1}{U}: Return Hypervolt Grasp to its owner's hand.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl<>("{1}{U}")));
}
private HypervoltGrasp(final HypervoltGrasp card) {
diff --git a/Mage.Sets/src/mage/cards/h/Hypochondria.java b/Mage.Sets/src/mage/cards/h/Hypochondria.java
index f14953025d..ff9fb9afd6 100644
--- a/Mage.Sets/src/mage/cards/h/Hypochondria.java
+++ b/Mage.Sets/src/mage/cards/h/Hypochondria.java
@@ -25,12 +25,12 @@ public final class Hypochondria extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}");
// {W}, Discard a card: Prevent the next 3 damage that would be dealt to any target this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 3), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 3), new ManaCostsImpl<>("{W}"));
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
// {W}, Sacrifice Hypochondria: Prevent the next 3 damage that would be dealt to any target this turn.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 3), new ManaCostsImpl("{W}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageToTargetEffect(Duration.EndOfTurn, 3), new ManaCostsImpl<>("{W}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/h/Hystrodon.java b/Mage.Sets/src/mage/cards/h/Hystrodon.java
index c6222c5b85..9e98d691b1 100644
--- a/Mage.Sets/src/mage/cards/h/Hystrodon.java
+++ b/Mage.Sets/src/mage/cards/h/Hystrodon.java
@@ -31,7 +31,7 @@ public final class Hystrodon extends CardImpl {
// Whenever Hystrodon deals combat damage to a player, you may draw a card.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DrawCardSourceControllerEffect(1), true));
// Morph {1}{G}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{G}{G}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{G}{G}")));
}
private Hystrodon(final Hystrodon card) {
diff --git a/Mage.Sets/src/mage/cards/i/IcatianCrier.java b/Mage.Sets/src/mage/cards/i/IcatianCrier.java
index c64d759bba..85274ab46d 100644
--- a/Mage.Sets/src/mage/cards/i/IcatianCrier.java
+++ b/Mage.Sets/src/mage/cards/i/IcatianCrier.java
@@ -30,7 +30,7 @@ public final class IcatianCrier extends CardImpl {
this.toughness = new MageInt(1);
// {1}{W}, {tap}, Discard a card: Create two 1/1 white Citizen creature tokens.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CitizenToken(), 2), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new CitizenToken(), 2), new ManaCostsImpl<>("{1}{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IcatianInfantry.java b/Mage.Sets/src/mage/cards/i/IcatianInfantry.java
index 2d9ccc70b8..1ac3ce0a44 100644
--- a/Mage.Sets/src/mage/cards/i/IcatianInfantry.java
+++ b/Mage.Sets/src/mage/cards/i/IcatianInfantry.java
@@ -31,10 +31,10 @@ public final class IcatianInfantry extends CardImpl {
this.toughness = new MageInt(1);
// {1}: Icatian Infantry gains first strike until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}")));
// {1}: Icatian Infantry gains banding until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(BandingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(BandingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}")));
}
private IcatianInfantry(final IcatianInfantry card) {
diff --git a/Mage.Sets/src/mage/cards/i/IcatianLieutenant.java b/Mage.Sets/src/mage/cards/i/IcatianLieutenant.java
index 04364ff6dc..637188a451 100644
--- a/Mage.Sets/src/mage/cards/i/IcatianLieutenant.java
+++ b/Mage.Sets/src/mage/cards/i/IcatianLieutenant.java
@@ -36,7 +36,7 @@ public final class IcatianLieutenant extends CardImpl {
this.toughness = new MageInt(2);
// {1}{W}: Target Soldier creature gets +1/+0 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/IcatianPriest.java b/Mage.Sets/src/mage/cards/i/IcatianPriest.java
index 8cdef48264..96fd7d9237 100644
--- a/Mage.Sets/src/mage/cards/i/IcatianPriest.java
+++ b/Mage.Sets/src/mage/cards/i/IcatianPriest.java
@@ -28,7 +28,7 @@ public final class IcatianPriest extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{W}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}{W}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/IcatianScout.java b/Mage.Sets/src/mage/cards/i/IcatianScout.java
index e98f562466..63c385b5de 100644
--- a/Mage.Sets/src/mage/cards/i/IcatianScout.java
+++ b/Mage.Sets/src/mage/cards/i/IcatianScout.java
@@ -33,7 +33,7 @@ public final class IcatianScout extends CardImpl {
// {1}, {tap}: Target creature gains first strike until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(
- FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}"));
+ FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IceCauldron.java b/Mage.Sets/src/mage/cards/i/IceCauldron.java
index 7971da9c26..76627f7a39 100644
--- a/Mage.Sets/src/mage/cards/i/IceCauldron.java
+++ b/Mage.Sets/src/mage/cards/i/IceCauldron.java
@@ -43,7 +43,7 @@ public final class IceCauldron extends CardImpl {
// {X}, {T}: Put a charge counter on Ice Cauldron and exile a nonland card from your hand. You may cast that card for as long as it remains exiled. Note the type and amount of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on Ice Cauldron.
ConditionalActivatedAbility ability = new ConditionalActivatedAbility(
- Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true), new ManaCostsImpl("{X}"), new SourceHasCounterCondition(CounterType.CHARGE, 0, 0));
+ Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true), new ManaCostsImpl<>("{X}"), new SourceHasCounterCondition(CounterType.CHARGE, 0, 0));
ability.addEffect(new IceCauldronExileEffect());
ability.addEffect(new IceCauldronNoteManaEffect());
ability.addCost(new TapSourceCost());
diff --git a/Mage.Sets/src/mage/cards/i/IceCave.java b/Mage.Sets/src/mage/cards/i/IceCave.java
index 18c3319f71..3dcb650156 100644
--- a/Mage.Sets/src/mage/cards/i/IceCave.java
+++ b/Mage.Sets/src/mage/cards/i/IceCave.java
@@ -65,7 +65,7 @@ class IceCaveEffect extends OneShotEffect {
Spell spell = (Spell) game.getStack().getStackObject(targetPointer.getFirst(game, source));
if (sourcePermanent != null && spell != null && controller != null) {
Player spellController = game.getPlayer(spell.getControllerId());
- Cost cost = new ManaCostsImpl(spell.getSpellAbility().getManaCosts().getText());
+ Cost cost = new ManaCostsImpl<>(spell.getSpellAbility().getManaCosts().getText());
if (spellController != null) {
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
diff --git a/Mage.Sets/src/mage/cards/i/Iceberg.java b/Mage.Sets/src/mage/cards/i/Iceberg.java
index 6a3f2f27ca..49a724e761 100644
--- a/Mage.Sets/src/mage/cards/i/Iceberg.java
+++ b/Mage.Sets/src/mage/cards/i/Iceberg.java
@@ -30,7 +30,7 @@ public final class Iceberg extends CardImpl {
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.ICE.createInstance())));
// {3}: Put an ice counter on Iceberg.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.ICE.createInstance(1)), new ManaCostsImpl("{3}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.ICE.createInstance(1)), new ManaCostsImpl<>("{3}")));
// Remove an ice counter from Iceberg: Add {C}.
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1),
diff --git a/Mage.Sets/src/mage/cards/i/IcebindPillar.java b/Mage.Sets/src/mage/cards/i/IcebindPillar.java
index 1b59dbcc98..e32efdc667 100644
--- a/Mage.Sets/src/mage/cards/i/IcebindPillar.java
+++ b/Mage.Sets/src/mage/cards/i/IcebindPillar.java
@@ -25,7 +25,7 @@ public final class IcebindPillar extends CardImpl {
this.addSuperType(SuperType.SNOW);
// {S}, {T}: Tap target artifact or creature.
- Ability ability = new SimpleActivatedAbility(new TapTargetEffect(), new ManaCostsImpl("{S}"));
+ Ability ability = new SimpleActivatedAbility(new TapTargetEffect(), new ManaCostsImpl<>("{S}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_CREATURE));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/Icefall.java b/Mage.Sets/src/mage/cards/i/Icefall.java
index 0a7d5a3555..960b08e925 100644
--- a/Mage.Sets/src/mage/cards/i/Icefall.java
+++ b/Mage.Sets/src/mage/cards/i/Icefall.java
@@ -34,7 +34,7 @@ public final class Icefall extends CardImpl {
this.getSpellAbility().addEffect(new DestroyTargetEffect());
// Recover {R}{R}
- this.addAbility(new RecoverAbility(new ManaCostsImpl("{R}{R}"), this));
+ this.addAbility(new RecoverAbility(new ManaCostsImpl<>("{R}{R}"), this));
}
private Icefall(final Icefall card) {
diff --git a/Mage.Sets/src/mage/cards/i/IcefeatherAven.java b/Mage.Sets/src/mage/cards/i/IcefeatherAven.java
index 206169db7a..99fd716c33 100644
--- a/Mage.Sets/src/mage/cards/i/IcefeatherAven.java
+++ b/Mage.Sets/src/mage/cards/i/IcefeatherAven.java
@@ -40,7 +40,7 @@ public final class IcefeatherAven extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Morph {1}{G}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{G}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{G}{U}")));
// When Icefeather Aven is turned face up, you may return another target creature to its owner's hand.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new ReturnToHandTargetEffect(), false, true);
ability.addTarget(new TargetCreaturePermanent(filter));
diff --git a/Mage.Sets/src/mage/cards/i/IcehideTroll.java b/Mage.Sets/src/mage/cards/i/IcehideTroll.java
index bb5af1fe3c..549230d4bb 100644
--- a/Mage.Sets/src/mage/cards/i/IcehideTroll.java
+++ b/Mage.Sets/src/mage/cards/i/IcehideTroll.java
@@ -34,7 +34,7 @@ public final class IcehideTroll extends CardImpl {
// {S}{S}: Icehide Troll gets +2/+0 and gains indestructible until end of turn. Tap it.
Ability ability = new SimpleActivatedAbility(new BoostSourceEffect(
2, 0, Duration.EndOfTurn
- ).setText("{this} gets +2/+0"), new ManaCostsImpl("{S}{S}"));
+ ).setText("{this} gets +2/+0"), new ManaCostsImpl<>("{S}{S}"));
ability.addEffect(new GainAbilitySourceEffect(
IndestructibleAbility.getInstance(), Duration.EndOfTurn
).setText("and gains indestructible until end of turn."));
diff --git a/Mage.Sets/src/mage/cards/i/IchorSlick.java b/Mage.Sets/src/mage/cards/i/IchorSlick.java
index b5a6a49faf..19aa08ce25 100644
--- a/Mage.Sets/src/mage/cards/i/IchorSlick.java
+++ b/Mage.Sets/src/mage/cards/i/IchorSlick.java
@@ -27,10 +27,10 @@ public final class IchorSlick extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
// Madness {3}{B}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{3}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{3}{B}")));
}
private IchorSlick(final IchorSlick card) {
diff --git a/Mage.Sets/src/mage/cards/i/IdleThoughts.java b/Mage.Sets/src/mage/cards/i/IdleThoughts.java
index 93168bc050..c47ccaa137 100644
--- a/Mage.Sets/src/mage/cards/i/IdleThoughts.java
+++ b/Mage.Sets/src/mage/cards/i/IdleThoughts.java
@@ -24,7 +24,7 @@ public final class IdleThoughts extends CardImpl {
// {2}: Draw a card if you have no cards in hand.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalOneShotEffect(
- new DrawCardSourceControllerEffect(2), new CardsInHandCondition(), "Draw a card if you have no cards in hand"), new ManaCostsImpl("{2}")));
+ new DrawCardSourceControllerEffect(2), new CardsInHandCondition(), "Draw a card if you have no cards in hand"), new ManaCostsImpl<>("{2}")));
}
private IdleThoughts(final IdleThoughts card) {
diff --git a/Mage.Sets/src/mage/cards/i/IfhBiffEfreet.java b/Mage.Sets/src/mage/cards/i/IfhBiffEfreet.java
index 71080fa398..470912fe53 100644
--- a/Mage.Sets/src/mage/cards/i/IfhBiffEfreet.java
+++ b/Mage.Sets/src/mage/cards/i/IfhBiffEfreet.java
@@ -41,7 +41,7 @@ public final class IfhBiffEfreet extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {G}: Ifh-Biff Efreet deals 1 damage to each creature with flying and each player. Any player may activate this ability.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter), new ManaCostsImpl("{G}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter), new ManaCostsImpl<>("{G}"));
Effect effect = new DamagePlayersEffect(1);
effect.setText("and each player");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/i/IfnirDeadlands.java b/Mage.Sets/src/mage/cards/i/IfnirDeadlands.java
index 0ba823798c..33a72c4b31 100644
--- a/Mage.Sets/src/mage/cards/i/IfnirDeadlands.java
+++ b/Mage.Sets/src/mage/cards/i/IfnirDeadlands.java
@@ -47,7 +47,7 @@ public final class IfnirDeadlands extends CardImpl {
this.addAbility(manaAbility);
// {2}{B}{B}, {t}, Sacrifice a Desert: Put two -1/-1 counters on target creature an opponent controls. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance(2)), new ManaCostsImpl("{2}{B}{B}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.M1M1.createInstance(2)), new ManaCostsImpl<>("{2}{B}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, filter, true)));
ability.addTarget(new TargetOpponentsCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/i/IgneousCur.java b/Mage.Sets/src/mage/cards/i/IgneousCur.java
index 941413c9c4..873ed4002c 100644
--- a/Mage.Sets/src/mage/cards/i/IgneousCur.java
+++ b/Mage.Sets/src/mage/cards/i/IgneousCur.java
@@ -27,7 +27,7 @@ public final class IgneousCur extends CardImpl {
// {1}{R}: Igneous Cur gets +2/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(
- new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")
+ new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/i/IgneousGolem.java b/Mage.Sets/src/mage/cards/i/IgneousGolem.java
index 2653e07fd7..d19235e9ff 100644
--- a/Mage.Sets/src/mage/cards/i/IgneousGolem.java
+++ b/Mage.Sets/src/mage/cards/i/IgneousGolem.java
@@ -27,7 +27,7 @@ public final class IgneousGolem extends CardImpl {
this.toughness = new MageInt(4);
// {2}: Igneous Golem gains trample until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
}
private IgneousGolem(final IgneousGolem card) {
diff --git a/Mage.Sets/src/mage/cards/i/IgneousPouncer.java b/Mage.Sets/src/mage/cards/i/IgneousPouncer.java
index 6752384396..17854ded72 100644
--- a/Mage.Sets/src/mage/cards/i/IgneousPouncer.java
+++ b/Mage.Sets/src/mage/cards/i/IgneousPouncer.java
@@ -30,9 +30,9 @@ public final class IgneousPouncer extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
// Swampcycling {2}
- this.addAbility(new SwampcyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new SwampcyclingAbility(new ManaCostsImpl<>("{2}")));
// Mountaincycling {2}
- this.addAbility(new MountaincyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new MountaincyclingAbility(new ManaCostsImpl<>("{2}")));
}
private IgneousPouncer(final IgneousPouncer card) {
diff --git a/Mage.Sets/src/mage/cards/i/IgniteTheFuture.java b/Mage.Sets/src/mage/cards/i/IgniteTheFuture.java
index 4883b16f65..ab331f4b85 100644
--- a/Mage.Sets/src/mage/cards/i/IgniteTheFuture.java
+++ b/Mage.Sets/src/mage/cards/i/IgniteTheFuture.java
@@ -28,7 +28,7 @@ public final class IgniteTheFuture extends CardImpl {
this.getSpellAbility().addEffect(new IgniteTheFutureEffect());
// Flashback {7}{R}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{7}{R}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{7}{R}")));
}
private IgniteTheFuture(final IgniteTheFuture card) {
diff --git a/Mage.Sets/src/mage/cards/i/IgnitionTeam.java b/Mage.Sets/src/mage/cards/i/IgnitionTeam.java
index 9027cf2926..c611f4a922 100644
--- a/Mage.Sets/src/mage/cards/i/IgnitionTeam.java
+++ b/Mage.Sets/src/mage/cards/i/IgnitionTeam.java
@@ -48,7 +48,7 @@ public final class IgnitionTeam extends CardImpl {
// {2}{R}, Remove a +1/+1 counter from Ignition Team: Target land becomes a 4/4 red Elemental creature until end of turn. It's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(
new ElementalCreatureToken(4, 4, "4/4 red Elemental creature", new ObjectColor("R")),
- false, true, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}"));
+ false, true, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
ability.addTarget(new TargetLandPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java b/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java
index c70a18a1a8..836dc774d3 100644
--- a/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java
+++ b/Mage.Sets/src/mage/cards/i/IizukaTheRuthless.java
@@ -38,7 +38,7 @@ public final class IizukaTheRuthless extends CardImpl {
this.toughness = new MageInt(3);
this.addAbility(new BushidoAbility(2));
// {2}{R}, Sacrifice a Samurai: Samurai creatures you control gain double strike until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn, filter, false), new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn, filter, false), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/IkiralOutrider.java b/Mage.Sets/src/mage/cards/i/IkiralOutrider.java
index 9a56760d70..ddc5ed72dd 100644
--- a/Mage.Sets/src/mage/cards/i/IkiralOutrider.java
+++ b/Mage.Sets/src/mage/cards/i/IkiralOutrider.java
@@ -30,7 +30,7 @@ public final class IkiralOutrider extends LevelerCard {
this.power = new MageInt(1);
this.toughness = new MageInt(2);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{4}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{4}")));
Abilities abilities1 = new AbilitiesImpl<>();
abilities1.add(VigilanceAbility.getInstance());
diff --git a/Mage.Sets/src/mage/cards/i/IllGottenInheritance.java b/Mage.Sets/src/mage/cards/i/IllGottenInheritance.java
index 1c01c6a3c7..9d613f0b51 100644
--- a/Mage.Sets/src/mage/cards/i/IllGottenInheritance.java
+++ b/Mage.Sets/src/mage/cards/i/IllGottenInheritance.java
@@ -35,7 +35,7 @@ public final class IllGottenInheritance extends CardImpl {
// {5}{B}, Sacrifice Ill-Gotten Inheritance: It deals 4 damage to target opponent and you gain 4 life.
ability = new SimpleActivatedAbility(
new DamageTargetEffect(4, "it"),
- new ManaCostsImpl("{5}{B}")
+ new ManaCostsImpl<>("{5}{B}")
);
ability.addEffect(new GainLifeEffect(4).concatBy("and"));
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/i/IlluminatedWings.java b/Mage.Sets/src/mage/cards/i/IlluminatedWings.java
index b3dc936935..e0f47bfc0e 100644
--- a/Mage.Sets/src/mage/cards/i/IlluminatedWings.java
+++ b/Mage.Sets/src/mage/cards/i/IlluminatedWings.java
@@ -41,7 +41,7 @@ public final class IlluminatedWings extends CardImpl {
// Enchanted creature has flying.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA)));
// {2}, Sacrifice Illuminated Wings: Draw a card.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{2}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/IllusionaryForces.java b/Mage.Sets/src/mage/cards/i/IllusionaryForces.java
index b1e183eec1..5c22881388 100644
--- a/Mage.Sets/src/mage/cards/i/IllusionaryForces.java
+++ b/Mage.Sets/src/mage/cards/i/IllusionaryForces.java
@@ -26,7 +26,7 @@ public final class IllusionaryForces extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Cumulative upkeep {U}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{U}")));
}
private IllusionaryForces(final IllusionaryForces card) {
diff --git a/Mage.Sets/src/mage/cards/i/IllusionaryPresence.java b/Mage.Sets/src/mage/cards/i/IllusionaryPresence.java
index 6f47376227..1ee08da5c2 100644
--- a/Mage.Sets/src/mage/cards/i/IllusionaryPresence.java
+++ b/Mage.Sets/src/mage/cards/i/IllusionaryPresence.java
@@ -39,7 +39,7 @@ public final class IllusionaryPresence extends CardImpl {
this.toughness = new MageInt(2);
// Cumulative upkeep {U}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{U}")));
// At the beginning of your upkeep, choose a land type. Illusionary Presence gains landwalk of the chosen type until end of turn.
Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ChooseBasicLandTypeEffect(Outcome.Neutral), TargetController.YOU, false);
diff --git a/Mage.Sets/src/mage/cards/i/IllusionaryTerrain.java b/Mage.Sets/src/mage/cards/i/IllusionaryTerrain.java
index 88cd2c1d18..63c9d9319c 100644
--- a/Mage.Sets/src/mage/cards/i/IllusionaryTerrain.java
+++ b/Mage.Sets/src/mage/cards/i/IllusionaryTerrain.java
@@ -36,7 +36,7 @@ public final class IllusionaryTerrain extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}{U}");
// Cumulative upkeep {2}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{2}")));
// As Illusionary Terrain enters the battlefield, choose two basic land types.
this.addAbility(new AsEntersBattlefieldAbility(new ChooseTwoBasicLandTypesEffect(Outcome.Neutral)));
diff --git a/Mage.Sets/src/mage/cards/i/IllusionaryWall.java b/Mage.Sets/src/mage/cards/i/IllusionaryWall.java
index 74ab21776d..be339d8dba 100644
--- a/Mage.Sets/src/mage/cards/i/IllusionaryWall.java
+++ b/Mage.Sets/src/mage/cards/i/IllusionaryWall.java
@@ -33,7 +33,7 @@ public final class IllusionaryWall extends CardImpl {
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// Cumulative upkeep {U}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{U}")));
}
private IllusionaryWall(final IllusionaryWall card) {
diff --git a/Mage.Sets/src/mage/cards/i/ImaginaryThreats.java b/Mage.Sets/src/mage/cards/i/ImaginaryThreats.java
index e1bbf2b029..990993d1cb 100644
--- a/Mage.Sets/src/mage/cards/i/ImaginaryThreats.java
+++ b/Mage.Sets/src/mage/cards/i/ImaginaryThreats.java
@@ -37,7 +37,7 @@ public final class ImaginaryThreats extends CardImpl {
getSpellAbility().addEffect(new DontUntapInPlayersNextUntapStepAllEffect(new FilterCreaturePermanent())
.setText("During that player's next untap step, creatures they control don't untap"));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
diff --git a/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java b/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java
index 2c6d5445c5..1ccf402ecf 100644
--- a/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java
+++ b/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java
@@ -42,7 +42,7 @@ public final class ImmobilizerEldrazi extends CardImpl {
this.addAbility(new DevoidAbility(this.color));
// {2}{C}: Each creature with toughness greater than its power can't block this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockAllEffect(filter, Duration.EndOfTurn), new ManaCostsImpl("{2}{C}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockAllEffect(filter, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{C}"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImmobilizingInk.java b/Mage.Sets/src/mage/cards/i/ImmobilizingInk.java
index bebe1ead80..25c42ce6d5 100644
--- a/Mage.Sets/src/mage/cards/i/ImmobilizingInk.java
+++ b/Mage.Sets/src/mage/cards/i/ImmobilizingInk.java
@@ -49,7 +49,7 @@ public final class ImmobilizingInk extends CardImpl {
Duration.WhileOnBattlefield,"Enchanted creature doesn't untap during its controller's untap step.")));
// Enchanted creature has "{1}, Discard a card: Untap this creature."
- Ability untapAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{1}"));
+ Ability untapAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl<>("{1}"));
untapAbility.addCost(new DiscardTargetCost(new TargetCardInHand()));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAttachedEffect(untapAbility,
diff --git a/Mage.Sets/src/mage/cards/i/ImmolationShaman.java b/Mage.Sets/src/mage/cards/i/ImmolationShaman.java
index bfac0a745f..df0a6f9ca7 100644
--- a/Mage.Sets/src/mage/cards/i/ImmolationShaman.java
+++ b/Mage.Sets/src/mage/cards/i/ImmolationShaman.java
@@ -48,7 +48,7 @@ public final class ImmolationShaman extends CardImpl {
new BoostSourceEffect(
3, 3, Duration.EndOfTurn
).setText("{this} gets +3/+3"),
- new ManaCostsImpl("{3}{R}{R}")
+ new ManaCostsImpl<>("{3}{R}{R}")
);
ability.addEffect(new GainAbilitySourceEffect(
new MenaceAbility(), Duration.EndOfTurn
diff --git a/Mage.Sets/src/mage/cards/i/ImperialGunner.java b/Mage.Sets/src/mage/cards/i/ImperialGunner.java
index 3776ddebed..e0c96dc9e4 100644
--- a/Mage.Sets/src/mage/cards/i/ImperialGunner.java
+++ b/Mage.Sets/src/mage/cards/i/ImperialGunner.java
@@ -32,7 +32,7 @@ public final class ImperialGunner extends CardImpl {
this.toughness = new MageInt(2);
// {1},{T}: Imperial Gunner deals 1 damage to target player or Starship creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{1}"));
ability.addTarget(new TargetAnyTarget(filter));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImperialHellkite.java b/Mage.Sets/src/mage/cards/i/ImperialHellkite.java
index 2c634f3083..b4828d0c6e 100644
--- a/Mage.Sets/src/mage/cards/i/ImperialHellkite.java
+++ b/Mage.Sets/src/mage/cards/i/ImperialHellkite.java
@@ -32,7 +32,7 @@ public final class ImperialHellkite extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Morph {6}{R}{R}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{6}{R}{R}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{6}{R}{R}")));
// When Imperial Hellkite is turned face up, you may search your library for a Dragon card, reveal it, and put it into your hand. If you do, shuffle your library.
Effect effect = new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, new FilterBySubtypeCard(SubType.DRAGON)), true, true);
diff --git a/Mage.Sets/src/mage/cards/i/ImplementOfCombustion.java b/Mage.Sets/src/mage/cards/i/ImplementOfCombustion.java
index 073501142d..5124d9069c 100644
--- a/Mage.Sets/src/mage/cards/i/ImplementOfCombustion.java
+++ b/Mage.Sets/src/mage/cards/i/ImplementOfCombustion.java
@@ -25,7 +25,7 @@ public final class ImplementOfCombustion extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// {R}, Sacrifice Implement of Combustion: It deals 1 damage to target player.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "It"), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1, "It"), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPlayerOrPlaneswalker());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImplementOfExamination.java b/Mage.Sets/src/mage/cards/i/ImplementOfExamination.java
index 8b53ef7962..f29d615389 100644
--- a/Mage.Sets/src/mage/cards/i/ImplementOfExamination.java
+++ b/Mage.Sets/src/mage/cards/i/ImplementOfExamination.java
@@ -23,7 +23,7 @@ public final class ImplementOfExamination extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
// {U}, Sacrifice Implement of Examination: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{U}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImplementOfFerocity.java b/Mage.Sets/src/mage/cards/i/ImplementOfFerocity.java
index 59a19b2b1b..e602748fec 100644
--- a/Mage.Sets/src/mage/cards/i/ImplementOfFerocity.java
+++ b/Mage.Sets/src/mage/cards/i/ImplementOfFerocity.java
@@ -26,7 +26,7 @@ public final class ImplementOfFerocity extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// {G}, Sacrifice Implement of Ferocity: Put a +1/+1 counter on target creature. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{G}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{G}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImplementOfImprovement.java b/Mage.Sets/src/mage/cards/i/ImplementOfImprovement.java
index d60cdc0802..9c72077846 100644
--- a/Mage.Sets/src/mage/cards/i/ImplementOfImprovement.java
+++ b/Mage.Sets/src/mage/cards/i/ImplementOfImprovement.java
@@ -24,7 +24,7 @@ public final class ImplementOfImprovement extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// {W}, Sacrifice Implement of Improvement: You gain 2 life.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(2), new ManaCostsImpl<>("{W}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImplementOfMalice.java b/Mage.Sets/src/mage/cards/i/ImplementOfMalice.java
index adc500e6a9..d1b86d526c 100644
--- a/Mage.Sets/src/mage/cards/i/ImplementOfMalice.java
+++ b/Mage.Sets/src/mage/cards/i/ImplementOfMalice.java
@@ -25,7 +25,7 @@ public final class ImplementOfMalice extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// {B}, Sacrifice Implement of Malice: 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("{B}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1),new ManaCostsImpl<>("{B}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImplementsOfSacrifice.java b/Mage.Sets/src/mage/cards/i/ImplementsOfSacrifice.java
index 709ab5b1af..cbf04305b1 100644
--- a/Mage.Sets/src/mage/cards/i/ImplementsOfSacrifice.java
+++ b/Mage.Sets/src/mage/cards/i/ImplementsOfSacrifice.java
@@ -22,7 +22,7 @@ public final class ImplementsOfSacrifice extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
// {1}, {tap}, Sacrifice Implements of Sacrifice: Add two mana of any one color.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(2), new ManaCostsImpl("{1}"));
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(2), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/ImposingVantasaur.java b/Mage.Sets/src/mage/cards/i/ImposingVantasaur.java
index 159d1d3120..ab649c7297 100644
--- a/Mage.Sets/src/mage/cards/i/ImposingVantasaur.java
+++ b/Mage.Sets/src/mage/cards/i/ImposingVantasaur.java
@@ -27,7 +27,7 @@ public final class ImposingVantasaur extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Cycling {1}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{1}")));
}
private ImposingVantasaur(final ImposingVantasaur card) {
diff --git a/Mage.Sets/src/mage/cards/i/ImprobableAlliance.java b/Mage.Sets/src/mage/cards/i/ImprobableAlliance.java
index 85c917a197..40c680fb5f 100644
--- a/Mage.Sets/src/mage/cards/i/ImprobableAlliance.java
+++ b/Mage.Sets/src/mage/cards/i/ImprobableAlliance.java
@@ -25,7 +25,7 @@ public final class ImprobableAlliance extends CardImpl {
// {4}{U}{R}: Draw a card, then discard a card.
this.addAbility(new SimpleActivatedAbility(
- new DrawDiscardControllerEffect(1, 1), new ManaCostsImpl("{4}{U}{R}")
+ new DrawDiscardControllerEffect(1, 1), new ManaCostsImpl<>("{4}{U}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java b/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java
index f99d57e6bb..bcb6b98193 100644
--- a/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java
+++ b/Mage.Sets/src/mage/cards/i/ImpromptuRaid.java
@@ -39,7 +39,7 @@ public final class ImpromptuRaid extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R/G}");
// {2}{RG}: Reveal the top card of your library. If it isn't a creature card, put it into your graveyard. Otherwise, put that card onto the battlefield. That creature gains haste. Sacrifice it at the beginning of the next end step.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ImpromptuRaidEffect(), new ManaCostsImpl("{2}{R/G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ImpromptuRaidEffect(), new ManaCostsImpl<>("{2}{R/G}")));
}
diff --git a/Mage.Sets/src/mage/cards/i/ImprovisedArmor.java b/Mage.Sets/src/mage/cards/i/ImprovisedArmor.java
index f103019a5a..5199751694 100644
--- a/Mage.Sets/src/mage/cards/i/ImprovisedArmor.java
+++ b/Mage.Sets/src/mage/cards/i/ImprovisedArmor.java
@@ -38,7 +38,7 @@ public final class ImprovisedArmor extends CardImpl {
// Enchanted creature gets +2/+5.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 5, Duration.WhileOnBattlefield)));
// Cycling {3}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{3}")));
}
private ImprovisedArmor(final ImprovisedArmor card) {
diff --git a/Mage.Sets/src/mage/cards/i/InallaArchmageRitualist.java b/Mage.Sets/src/mage/cards/i/InallaArchmageRitualist.java
index 3a3e7ec8b2..135b733663 100644
--- a/Mage.Sets/src/mage/cards/i/InallaArchmageRitualist.java
+++ b/Mage.Sets/src/mage/cards/i/InallaArchmageRitualist.java
@@ -65,7 +65,7 @@ public final class InallaArchmageRitualist extends CardImpl {
// Eminence - Whenever another nontoken Wizard enters the battlefield under your control, if Inalla, Archmage Ritualist is in the command zone or on the battlefield, you may pay {1}. If you do, create a token that's a copy of that Wizard. The token gains haste. Exile it at the beginning of the next end step.
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldControlledTriggeredAbility(Zone.ALL, new DoIfCostPaid(
- new InallaArchmageRitualistEffect(), new ManaCostsImpl("{1}"), "Pay {1} to create a token copy?"),
+ new InallaArchmageRitualistEffect(), new ManaCostsImpl<>("{1}"), "Pay {1} to create a token copy?"),
filter, false, SetTargetPointer.PERMANENT, ""),
SourceOnBattlefieldOrCommandZoneCondition.instance,
"Whenever another nontoken Wizard enters the battlefield under your control, "
diff --git a/Mage.Sets/src/mage/cards/i/IncendiaryOracle.java b/Mage.Sets/src/mage/cards/i/IncendiaryOracle.java
index 2ad0be2093..f70fc66c21 100644
--- a/Mage.Sets/src/mage/cards/i/IncendiaryOracle.java
+++ b/Mage.Sets/src/mage/cards/i/IncendiaryOracle.java
@@ -31,7 +31,7 @@ public final class IncendiaryOracle extends CardImpl {
// {1}{R}: Incendiary Oracle gets +1/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
+ new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")));
// If a creature dealt damage by Incendiary Oracle this turn would die, exile it instead.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
diff --git a/Mage.Sets/src/mage/cards/i/IncitedRabble.java b/Mage.Sets/src/mage/cards/i/IncitedRabble.java
index bbe4b925bd..2f0a75f75c 100644
--- a/Mage.Sets/src/mage/cards/i/IncitedRabble.java
+++ b/Mage.Sets/src/mage/cards/i/IncitedRabble.java
@@ -34,7 +34,7 @@ public final class IncitedRabble extends CardImpl {
this.addAbility(new AttacksEachCombatStaticAbility());
// {2}: Incited Rabble gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
}
private IncitedRabble(final IncitedRabble card) {
diff --git a/Mage.Sets/src/mage/cards/i/IncorrigibleYouths.java b/Mage.Sets/src/mage/cards/i/IncorrigibleYouths.java
index 216e55f723..abdf418111 100644
--- a/Mage.Sets/src/mage/cards/i/IncorrigibleYouths.java
+++ b/Mage.Sets/src/mage/cards/i/IncorrigibleYouths.java
@@ -26,7 +26,7 @@ public final class IncorrigibleYouths extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
// Madness {2}{R}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{2}{R}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{2}{R}")));
}
private IncorrigibleYouths(final IncorrigibleYouths card) {
diff --git a/Mage.Sets/src/mage/cards/i/IncreasingAmbition.java b/Mage.Sets/src/mage/cards/i/IncreasingAmbition.java
index f32b6cfb44..37c60155d8 100644
--- a/Mage.Sets/src/mage/cards/i/IncreasingAmbition.java
+++ b/Mage.Sets/src/mage/cards/i/IncreasingAmbition.java
@@ -37,7 +37,7 @@ public final class IncreasingAmbition extends CardImpl {
));
// Flashback {7}{B}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{7}{B}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{7}{B}")));
}
private IncreasingAmbition(final IncreasingAmbition card) {
diff --git a/Mage.Sets/src/mage/cards/i/IncreasingConfusion.java b/Mage.Sets/src/mage/cards/i/IncreasingConfusion.java
index 7e6f63dd96..89cb765a1a 100644
--- a/Mage.Sets/src/mage/cards/i/IncreasingConfusion.java
+++ b/Mage.Sets/src/mage/cards/i/IncreasingConfusion.java
@@ -29,7 +29,7 @@ public final class IncreasingConfusion extends CardImpl {
this.getSpellAbility().addTarget(new TargetPlayer());
// Flashback {X}{U}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{X}{U}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{X}{U}")));
}
private IncreasingConfusion(final IncreasingConfusion card) {
diff --git a/Mage.Sets/src/mage/cards/i/IncreasingDevotion.java b/Mage.Sets/src/mage/cards/i/IncreasingDevotion.java
index fa318c4bdd..2f870cf627 100644
--- a/Mage.Sets/src/mage/cards/i/IncreasingDevotion.java
+++ b/Mage.Sets/src/mage/cards/i/IncreasingDevotion.java
@@ -29,7 +29,7 @@ public final class IncreasingDevotion extends CardImpl {
this.getSpellAbility().addEffect(new IncreasingDevotionEffect());
// Flashback {7}{W}{W}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{7}{W}{W}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{7}{W}{W}")));
}
private IncreasingDevotion(final IncreasingDevotion card) {
diff --git a/Mage.Sets/src/mage/cards/i/IncreasingSavagery.java b/Mage.Sets/src/mage/cards/i/IncreasingSavagery.java
index 5eddaae842..5b1cddee2b 100644
--- a/Mage.Sets/src/mage/cards/i/IncreasingSavagery.java
+++ b/Mage.Sets/src/mage/cards/i/IncreasingSavagery.java
@@ -30,7 +30,7 @@ public final class IncreasingSavagery extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Flashback {5}{G}{G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{5}{G}{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{G}{G}")));
}
private IncreasingSavagery(final IncreasingSavagery card) {
diff --git a/Mage.Sets/src/mage/cards/i/IncreasingVengeance.java b/Mage.Sets/src/mage/cards/i/IncreasingVengeance.java
index 78b4b1d479..bd930b2948 100644
--- a/Mage.Sets/src/mage/cards/i/IncreasingVengeance.java
+++ b/Mage.Sets/src/mage/cards/i/IncreasingVengeance.java
@@ -41,7 +41,7 @@ public final class IncreasingVengeance extends CardImpl {
this.getSpellAbility().addTarget(target);
// Flashback {3}{R}{R}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{3}{R}{R}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{3}{R}{R}")));
}
private IncreasingVengeance(final IncreasingVengeance card) {
diff --git a/Mage.Sets/src/mage/cards/i/IndathaCrystal.java b/Mage.Sets/src/mage/cards/i/IndathaCrystal.java
index 7a5857ff15..b05f203056 100644
--- a/Mage.Sets/src/mage/cards/i/IndathaCrystal.java
+++ b/Mage.Sets/src/mage/cards/i/IndathaCrystal.java
@@ -25,7 +25,7 @@ public final class IndathaCrystal extends CardImpl {
this.addAbility(new GreenManaAbility());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private IndathaCrystal(final IndathaCrystal card) {
diff --git a/Mage.Sets/src/mage/cards/i/IndigoFaerie.java b/Mage.Sets/src/mage/cards/i/IndigoFaerie.java
index 119af8e192..986b163c86 100644
--- a/Mage.Sets/src/mage/cards/i/IndigoFaerie.java
+++ b/Mage.Sets/src/mage/cards/i/IndigoFaerie.java
@@ -39,7 +39,7 @@ public final class IndigoFaerie extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {U}: Target permanent becomes blue in addition to its other colors until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBlueTargetEffect(), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBlueTargetEffect(), new ManaCostsImpl<>("{U}"));
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/InfectedVermin.java b/Mage.Sets/src/mage/cards/i/InfectedVermin.java
index 1b06cdb6a9..5074c949c2 100644
--- a/Mage.Sets/src/mage/cards/i/InfectedVermin.java
+++ b/Mage.Sets/src/mage/cards/i/InfectedVermin.java
@@ -30,11 +30,11 @@ public final class InfectedVermin extends CardImpl {
this.toughness = new MageInt(1);
// {2}{B}: Infected Vermin deals 1 damage to each creature and each player.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(1), new ManaCostsImpl("{2}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(1), new ManaCostsImpl<>("{2}{B}")));
// Threshold - {3}{B}: Infected Vermin deals 3 damage to each creature and each player. Activate this ability only if seven or more cards are in your graveyard.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new DamageEverythingEffect(3),
- new ManaCostsImpl("{3}{B}"),
+ new ManaCostsImpl<>("{3}{B}"),
new CardsInControllerGraveyardCondition(7));
ability.setAbilityWord(AbilityWord.THRESHOLD);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/InfernalCaretaker.java b/Mage.Sets/src/mage/cards/i/InfernalCaretaker.java
index 12fdda32ad..80f40d24cc 100644
--- a/Mage.Sets/src/mage/cards/i/InfernalCaretaker.java
+++ b/Mage.Sets/src/mage/cards/i/InfernalCaretaker.java
@@ -31,7 +31,7 @@ public final class InfernalCaretaker extends CardImpl {
this.toughness = new MageInt(2);
// Morph {3}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{B}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{B}")));
// When Infernal Caretaker is turned face up, return all Zombie cards from all graveyards to their owners' hands.
Effect effect = new ReturnToHandFromGraveyardAllEffect(zombieCard);
diff --git a/Mage.Sets/src/mage/cards/i/InfernalSpawnOfEvil.java b/Mage.Sets/src/mage/cards/i/InfernalSpawnOfEvil.java
index a9031950ee..f63b5cc163 100644
--- a/Mage.Sets/src/mage/cards/i/InfernalSpawnOfEvil.java
+++ b/Mage.Sets/src/mage/cards/i/InfernalSpawnOfEvil.java
@@ -48,7 +48,7 @@ public final class InfernalSpawnOfEvil extends CardImpl {
// Activate this ability only during your upkeep and only once each turn.
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.HAND, new DamageTargetEffect(1),
new CompositeCost(
- new ManaCostsImpl("{1}{B}"),
+ new ManaCostsImpl<>("{1}{B}"),
new CompositeCost(
new RevealSourceFromYourHandCost(),
new SayCost("It's coming!"),
diff --git a/Mage.Sets/src/mage/cards/i/InfernoFist.java b/Mage.Sets/src/mage/cards/i/InfernoFist.java
index bd33c6a8e5..3f73456ac4 100644
--- a/Mage.Sets/src/mage/cards/i/InfernoFist.java
+++ b/Mage.Sets/src/mage/cards/i/InfernoFist.java
@@ -43,7 +43,7 @@ public final class InfernoFist extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 0)));
// {R}, Sacrifice Inferno Fist: Inferno Fist deals 2 damage to any target.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/InfernoJet.java b/Mage.Sets/src/mage/cards/i/InfernoJet.java
index 00394255bf..63a1f4988a 100644
--- a/Mage.Sets/src/mage/cards/i/InfernoJet.java
+++ b/Mage.Sets/src/mage/cards/i/InfernoJet.java
@@ -24,7 +24,7 @@ public final class InfernoJet extends CardImpl {
getSpellAbility().addTarget(new TargetOpponentOrPlaneswalker());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
diff --git a/Mage.Sets/src/mage/cards/i/InfernoOfTheStarMounts.java b/Mage.Sets/src/mage/cards/i/InfernoOfTheStarMounts.java
index 1b408e79cc..1319880090 100644
--- a/Mage.Sets/src/mage/cards/i/InfernoOfTheStarMounts.java
+++ b/Mage.Sets/src/mage/cards/i/InfernoOfTheStarMounts.java
@@ -43,7 +43,7 @@ public final class InfernoOfTheStarMounts extends CardImpl {
this.addAbility(HasteAbility.getInstance());
// {R}: Inferno of the Star Mounts gets +1/+0 until end of turn. When its power becomes 20 this way, it deals 20 damage to any target.
- Ability ability = new SimpleActivatedAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addEffect(new InfernoOfTheStarMountsEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/InfernoTrap.java b/Mage.Sets/src/mage/cards/i/InfernoTrap.java
index 16153c7ab5..4a57ffd396 100644
--- a/Mage.Sets/src/mage/cards/i/InfernoTrap.java
+++ b/Mage.Sets/src/mage/cards/i/InfernoTrap.java
@@ -30,7 +30,7 @@ public final class InfernoTrap extends CardImpl {
this.subtype.add(SubType.TRAP);
// If you've been dealt damage by two or more creatures this turn, you may pay {R} rather than pay Inferno Trap's mana cost.
- this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{R}"), InfernoTrapCondition.instance), new InfernoTrapWatcher());
+ this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{R}"), InfernoTrapCondition.instance), new InfernoTrapWatcher());
// Inferno Trap deals 4 damage to target creature.
this.getSpellAbility().addEffect(new DamageTargetEffect(4));
diff --git a/Mage.Sets/src/mage/cards/i/InfiltratorIlKor.java b/Mage.Sets/src/mage/cards/i/InfiltratorIlKor.java
index 9f8fcd1cfa..75e60632f2 100644
--- a/Mage.Sets/src/mage/cards/i/InfiltratorIlKor.java
+++ b/Mage.Sets/src/mage/cards/i/InfiltratorIlKor.java
@@ -27,7 +27,7 @@ public final class InfiltratorIlKor extends CardImpl {
// Shadow
this.addAbility(ShadowAbility.getInstance());
// Suspend 2-{1}{U}
- this.addAbility(new SuspendAbility(2, new ManaCostsImpl("{1}{U}"), this));
+ this.addAbility(new SuspendAbility(2, new ManaCostsImpl<>("{1}{U}"), this));
}
private InfiltratorIlKor(final InfiltratorIlKor card) {
diff --git a/Mage.Sets/src/mage/cards/i/IngeniousSkaab.java b/Mage.Sets/src/mage/cards/i/IngeniousSkaab.java
index 751e407251..df033da3bc 100644
--- a/Mage.Sets/src/mage/cards/i/IngeniousSkaab.java
+++ b/Mage.Sets/src/mage/cards/i/IngeniousSkaab.java
@@ -31,7 +31,7 @@ public final class IngeniousSkaab extends CardImpl {
this.addAbility(new ProwessAbility());
// {U}: Ingenius Skaab gets +1/-1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, -1, Duration.EndOfTurn), new ManaCostsImpl("{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{U}")));
}
private IngeniousSkaab(final IngeniousSkaab card) {
diff --git a/Mage.Sets/src/mage/cards/i/Inheritance.java b/Mage.Sets/src/mage/cards/i/Inheritance.java
index e972ca827e..04c304d943 100644
--- a/Mage.Sets/src/mage/cards/i/Inheritance.java
+++ b/Mage.Sets/src/mage/cards/i/Inheritance.java
@@ -21,7 +21,7 @@ public final class Inheritance extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}");
// Whenever a creature dies, you may pay {3}. If you do, draw a card.
- Ability ability = new DiesCreatureTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{3}")), false);
+ Ability ability = new DiesCreatureTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{3}")), false);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java b/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java
index 7a6aa056fb..bb69c8b661 100644
--- a/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java
+++ b/Mage.Sets/src/mage/cards/i/InitiatesOfTheEbonHand.java
@@ -33,7 +33,7 @@ public final class InitiatesOfTheEbonHand extends CardImpl {
this.toughness = new MageInt(1);
// {1}: Add {B}. If this ability has been activated four or more times this turn, sacrifice Initiates of the Ebon Hand at the beginning of the next end step.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, BlackMana(1), new ManaCostsImpl("{1}"));
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, BlackMana(1), new ManaCostsImpl<>("{1}"));
ability.addEffect(new InitiatesOfTheEbonHandEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java b/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java
index 975bdf7aad..e8c53865cd 100644
--- a/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java
+++ b/Mage.Sets/src/mage/cards/i/InkEyesServantOfOni.java
@@ -44,7 +44,7 @@ public final class InkEyesServantOfOni extends CardImpl {
this.addAbility(new InkEyesServantOfOniTriggeredAbility());
// {1}{B}: Regenerate Ink-Eyes.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private InkEyesServantOfOni(final InkEyesServantOfOni card) {
diff --git a/Mage.Sets/src/mage/cards/i/InkfathomWitch.java b/Mage.Sets/src/mage/cards/i/InkfathomWitch.java
index 90a1289586..01bd628b8f 100644
--- a/Mage.Sets/src/mage/cards/i/InkfathomWitch.java
+++ b/Mage.Sets/src/mage/cards/i/InkfathomWitch.java
@@ -38,7 +38,7 @@ public final class InkfathomWitch extends CardImpl {
// Fear
this.addAbility(FearAbility.getInstance());
// {2}{U}{B}: Each unblocked creature has base power and toughness 4/1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SetPowerToughnessAllEffect(4, 1, Duration.EndOfTurn, filter, true), new ManaCostsImpl("{2}{U}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SetPowerToughnessAllEffect(4, 1, Duration.EndOfTurn, filter, true), new ManaCostsImpl<>("{2}{U}{B}")));
}
private InkfathomWitch(final InkfathomWitch card) {
diff --git a/Mage.Sets/src/mage/cards/i/InnerFlameIgniter.java b/Mage.Sets/src/mage/cards/i/InnerFlameIgniter.java
index 19b6a685f4..1e2e9519bd 100644
--- a/Mage.Sets/src/mage/cards/i/InnerFlameIgniter.java
+++ b/Mage.Sets/src/mage/cards/i/InnerFlameIgniter.java
@@ -35,7 +35,7 @@ public final class InnerFlameIgniter extends CardImpl {
// {2}{R}: Creatures you control get +1/+0 until end of turn. If this is the third time this ability has resolved this turn, creatures you control gain first strike until end of turn.
Ability ability = new SimpleActivatedAbility(
- new BoostControlledEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}")
+ new BoostControlledEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{R}")
);
ContinuousEffect effectIf3rdResolution = new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES);
ability.addEffect(new IfAbilityHasResolvedXTimesEffect(Outcome.AddAbility, 3, effectIf3rdResolution));
diff --git a/Mage.Sets/src/mage/cards/i/InniazTheGaleForce.java b/Mage.Sets/src/mage/cards/i/InniazTheGaleForce.java
index c4bb03519b..ce528380c1 100644
--- a/Mage.Sets/src/mage/cards/i/InniazTheGaleForce.java
+++ b/Mage.Sets/src/mage/cards/i/InniazTheGaleForce.java
@@ -58,7 +58,7 @@ public final class InniazTheGaleForce extends CardImpl {
// {2}{W/U}: Attacking creatures with flying get +1/+1 until end of turn.
this.addAbility(new SimpleActivatedAbility(new BoostAllEffect(
1, 1, Duration.EndOfTurn, filter, false
- ), new ManaCostsImpl("{2}{W/U}")));
+ ), new ManaCostsImpl<>("{2}{W/U}")));
// Whenever three or more creatures you control with flying attack, each player gains control
// of a nonland permanent of your choice controlled by the player to their right.
diff --git a/Mage.Sets/src/mage/cards/i/InsatiableGorgers.java b/Mage.Sets/src/mage/cards/i/InsatiableGorgers.java
index a8af08653c..b404189c3a 100644
--- a/Mage.Sets/src/mage/cards/i/InsatiableGorgers.java
+++ b/Mage.Sets/src/mage/cards/i/InsatiableGorgers.java
@@ -28,7 +28,7 @@ public final class InsatiableGorgers extends CardImpl {
this.addAbility(new AttacksEachCombatStaticAbility());
// Madness {3}{R}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{3}{R}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{3}{R}")));
}
private InsatiableGorgers(final InsatiableGorgers card) {
diff --git a/Mage.Sets/src/mage/cards/i/InsidiousBookworms.java b/Mage.Sets/src/mage/cards/i/InsidiousBookworms.java
index cf67980518..f7569d4c21 100644
--- a/Mage.Sets/src/mage/cards/i/InsidiousBookworms.java
+++ b/Mage.Sets/src/mage/cards/i/InsidiousBookworms.java
@@ -27,7 +27,7 @@ public final class InsidiousBookworms extends CardImpl {
this.toughness = new MageInt(1);
// When Insidious Bookworms dies, you may pay {1}{B}. If you do, target player discards a card at random.
- Ability ability = new DiesSourceTriggeredAbility(new DoIfCostPaid(new DiscardTargetEffect(1, true), new ManaCostsImpl("{1}{B}")));
+ Ability ability = new DiesSourceTriggeredAbility(new DoIfCostPaid(new DiscardTargetEffect(1, true), new ManaCostsImpl<>("{1}{B}")));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/InsidiousMist.java b/Mage.Sets/src/mage/cards/i/InsidiousMist.java
index f5598c337d..44802b492d 100644
--- a/Mage.Sets/src/mage/cards/i/InsidiousMist.java
+++ b/Mage.Sets/src/mage/cards/i/InsidiousMist.java
@@ -52,7 +52,7 @@ public final class InsidiousMist extends CardImpl {
// Whenever Insideous Mist attacks and isn't blocked, you may pay {2}{B}. If you do, transform it.
this.addAbility(new TransformAbility());
- this.addAbility(new AttacksAndIsNotBlockedTriggeredAbility(new DoIfCostPaid(new TransformSourceEffect(), new ManaCostsImpl("{2}{B}"), "Pay {2}{B} to transform?")));
+ this.addAbility(new AttacksAndIsNotBlockedTriggeredAbility(new DoIfCostPaid(new TransformSourceEffect(), new ManaCostsImpl<>("{2}{B}"), "Pay {2}{B} to transform?")));
}
private InsidiousMist(final InsidiousMist card) {
diff --git a/Mage.Sets/src/mage/cards/i/Instigator.java b/Mage.Sets/src/mage/cards/i/Instigator.java
index eb8b91c834..48e3736fd9 100644
--- a/Mage.Sets/src/mage/cards/i/Instigator.java
+++ b/Mage.Sets/src/mage/cards/i/Instigator.java
@@ -39,7 +39,7 @@ public final class Instigator extends CardImpl {
this.toughness = new MageInt(1);
// {1}{B}{B}, {tap}, Discard a card: Creatures target player controls attack this turn if able.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new InstigatorEffect(), new ManaCostsImpl("{1}{B}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new InstigatorEffect(), new ManaCostsImpl<>("{1}{B}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetPlayer());
diff --git a/Mage.Sets/src/mage/cards/i/InstrumentOfTheBards.java b/Mage.Sets/src/mage/cards/i/InstrumentOfTheBards.java
index 0a5c4382ed..f1a40bdf14 100644
--- a/Mage.Sets/src/mage/cards/i/InstrumentOfTheBards.java
+++ b/Mage.Sets/src/mage/cards/i/InstrumentOfTheBards.java
@@ -43,7 +43,7 @@ public final class InstrumentOfTheBards extends CardImpl {
// {3}{G}, {T}: Search your library for a creature card with mana value equal to the number of harmony
// counters on Instrument of Bards, reveal it, and put it into your hand.
// If that card is legendary, create a Treasure token. Then shuffle.
- Ability ability = new SimpleActivatedAbility(new InstrumentOfTheBardsEffect(), new ManaCostsImpl("{3}{G}"));
+ Ability ability = new SimpleActivatedAbility(new InstrumentOfTheBardsEffect(), new ManaCostsImpl<>("{3}{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/InterventionPact.java b/Mage.Sets/src/mage/cards/i/InterventionPact.java
index e8acc4964b..0859537e70 100644
--- a/Mage.Sets/src/mage/cards/i/InterventionPact.java
+++ b/Mage.Sets/src/mage/cards/i/InterventionPact.java
@@ -35,7 +35,7 @@ public final class InterventionPact extends CardImpl {
// The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
this.getSpellAbility().addEffect(new InterventionPactEffect());
// At the beginning of your next upkeep, pay {1}{W}{W}. If you don't, you lose the game.
- this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new PactDelayedTriggeredAbility(new ManaCostsImpl("{1}{W}{W}")), false));
+ this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new PactDelayedTriggeredAbility(new ManaCostsImpl<>("{1}{W}{W}")), false));
}
private InterventionPact(final InterventionPact card) {
diff --git a/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java b/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java
index 10289acecc..6e38453985 100644
--- a/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java
+++ b/Mage.Sets/src/mage/cards/i/IntetTheDreamer.java
@@ -42,7 +42,7 @@ public final class IntetTheDreamer extends CardImpl {
// Whenever Intet, the Dreamer deals combat damage to a player, you may pay {2}{U}. If you do, exile the top card of your library face down.
// You may play that card without paying its mana cost for as long as Intet remains on the battlefield.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
- new DoIfCostPaid(new IntetTheDreamerExileEffect(), new ManaCostsImpl("{2}{U}")), false, true));
+ new DoIfCostPaid(new IntetTheDreamerExileEffect(), new ManaCostsImpl<>("{2}{U}")), false, true));
// You may look at that card for as long as it remains exiled.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new IntetTheDreamerLookEffect()));
diff --git a/Mage.Sets/src/mage/cards/i/IonStorm.java b/Mage.Sets/src/mage/cards/i/IonStorm.java
index be134304d2..9eba226252 100644
--- a/Mage.Sets/src/mage/cards/i/IonStorm.java
+++ b/Mage.Sets/src/mage/cards/i/IonStorm.java
@@ -27,7 +27,7 @@ public final class IonStorm extends CardImpl {
// {1}{R}, Remove a +1/+1 counter or a charge counter from a permanent you control: Ion Storm deals 2 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new OrCost(" Remove a +1/+1 counter or a charge counter from a permanent you control", new RemoveCounterCost(new TargetControlledPermanent(), CounterType.P1P1), new RemoveCounterCost(new TargetControlledPermanent(), CounterType.CHARGE)));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IpnuRivulet.java b/Mage.Sets/src/mage/cards/i/IpnuRivulet.java
index 02a0d6239d..0909d66eba 100644
--- a/Mage.Sets/src/mage/cards/i/IpnuRivulet.java
+++ b/Mage.Sets/src/mage/cards/i/IpnuRivulet.java
@@ -46,7 +46,7 @@ public final class IpnuRivulet extends CardImpl {
this.addAbility(manaAbility);
// {1}{U}, {t}, Sacrifice a Desert: Target player puts the top four cards of their library into their graveyard.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(4), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(4), new ManaCostsImpl<>("{1}{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, filter, true)));
ability.addTarget(new TargetPlayer());
diff --git a/Mage.Sets/src/mage/cards/i/IreShaman.java b/Mage.Sets/src/mage/cards/i/IreShaman.java
index 980fc8b7f5..73cce4c1e3 100644
--- a/Mage.Sets/src/mage/cards/i/IreShaman.java
+++ b/Mage.Sets/src/mage/cards/i/IreShaman.java
@@ -30,7 +30,7 @@ public final class IreShaman extends CardImpl {
this.addAbility(new MenaceAbility());
// Megamorph {R}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{R}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{R}"), true));
// When Ire Shaman is turned face up, exile the top card of your library. Until end of turn, you may play that card.
this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new ExileTopXMayPlayUntilEndOfTurnEffect(1), false));
diff --git a/Mage.Sets/src/mage/cards/i/IronLance.java b/Mage.Sets/src/mage/cards/i/IronLance.java
index 0e4cf76660..77d6d14f91 100644
--- a/Mage.Sets/src/mage/cards/i/IronLance.java
+++ b/Mage.Sets/src/mage/cards/i/IronLance.java
@@ -25,7 +25,7 @@ public final class IronLance extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
// {3}, {tap}: Target creature gains first strike until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{3}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{3}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IronWill.java b/Mage.Sets/src/mage/cards/i/IronWill.java
index e5832f41bb..1bd279808c 100644
--- a/Mage.Sets/src/mage/cards/i/IronWill.java
+++ b/Mage.Sets/src/mage/cards/i/IronWill.java
@@ -25,7 +25,7 @@ public final class IronWill extends CardImpl {
this.getSpellAbility().addEffect(new BoostTargetEffect(0, 4, Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private IronWill(final IronWill card) {
diff --git a/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java b/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java
index 36fd93f123..ea7c5b26f7 100644
--- a/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java
+++ b/Mage.Sets/src/mage/cards/i/IronclawBuzzardiers.java
@@ -41,7 +41,7 @@ public final class IronclawBuzzardiers extends CardImpl {
// Ironclaw Buzzardiers can't block creatures with power 2 or greater.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockCreaturesSourceEffect(filter)));
// {R}: Ironclaw Buzzardiers gains flying until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
}
private IronclawBuzzardiers(final IronclawBuzzardiers card) {
diff --git a/Mage.Sets/src/mage/cards/i/IronfistCrusher.java b/Mage.Sets/src/mage/cards/i/IronfistCrusher.java
index db6f71dec3..5a4c2c4f11 100644
--- a/Mage.Sets/src/mage/cards/i/IronfistCrusher.java
+++ b/Mage.Sets/src/mage/cards/i/IronfistCrusher.java
@@ -30,7 +30,7 @@ public final class IronfistCrusher extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(0)));
// Morph {3}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{W}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{W}")));
}
private IronfistCrusher(final IronfistCrusher card) {
diff --git a/Mage.Sets/src/mage/cards/i/IronrootWarlord.java b/Mage.Sets/src/mage/cards/i/IronrootWarlord.java
index c9f693f7f6..4060bea981 100644
--- a/Mage.Sets/src/mage/cards/i/IronrootWarlord.java
+++ b/Mage.Sets/src/mage/cards/i/IronrootWarlord.java
@@ -43,7 +43,7 @@ public final class IronrootWarlord extends CardImpl {
// {3}{G}{W}: Create a 1/1 white Soldier creature token.
this.addAbility(new SimpleActivatedAbility(
- new CreateTokenEffect(new SoldierToken()), new ManaCostsImpl("{3}{G}{W}")
+ new CreateTokenEffect(new SoldierToken()), new ManaCostsImpl<>("{3}{G}{W}")
));
}
diff --git a/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java b/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java
index 64e5324c28..849e219e96 100644
--- a/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java
+++ b/Mage.Sets/src/mage/cards/i/IrrigatedFarmland.java
@@ -32,7 +32,7 @@ public final class IrrigatedFarmland extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
diff --git a/Mage.Sets/src/mage/cards/i/IsarethTheAwakener.java b/Mage.Sets/src/mage/cards/i/IsarethTheAwakener.java
index ba436201bb..f7875acbc2 100644
--- a/Mage.Sets/src/mage/cards/i/IsarethTheAwakener.java
+++ b/Mage.Sets/src/mage/cards/i/IsarethTheAwakener.java
@@ -82,7 +82,7 @@ class IsarethTheAwakenerCreateReflexiveTriggerEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
- ManaCosts cost = new ManaCostsImpl("{X}");
+ ManaCosts cost = new ManaCostsImpl<>("{X}");
if (player == null
|| !player.chooseUse(Outcome.BoostCreature, "Pay " + cost.getText() + "?", source, game)) {
return false;
diff --git a/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java b/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java
index 6647c15dcb..2966a587cd 100644
--- a/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java
+++ b/Mage.Sets/src/mage/cards/i/IshkanahGrafwidow.java
@@ -58,7 +58,7 @@ public final class IshkanahGrafwidow extends CardImpl {
// {5}{B}: Target opponent loses 1 life for each Spider you control.
PermanentsOnBattlefieldCount count = new PermanentsOnBattlefieldCount(filter);
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(count), new ManaCostsImpl("{6}{B}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(count), new ManaCostsImpl<>("{6}{B}"));
ability.addTarget(new TargetOpponent());
ability.addHint(new ValueHint("Spiders you control", count));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java b/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java
index 9547e3b7b1..27bb12ea2a 100644
--- a/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java
+++ b/Mage.Sets/src/mage/cards/i/IslandFishJasconius.java
@@ -35,7 +35,7 @@ public final class IslandFishJasconius extends CardImpl {
// At the beginning of your upkeep, you may pay {U}{U}{U}. If you do, untap Island Fish Jasconius.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
Zone.BATTLEFIELD,
- new DoIfCostPaid(new UntapSourceEffect(), new ManaCostsImpl("{U}{U}{U}")),
+ new DoIfCostPaid(new UntapSourceEffect(), new ManaCostsImpl<>("{U}{U}{U}")),
TargetController.YOU,
false));
diff --git a/Mage.Sets/src/mage/cards/i/IthHighArcanist.java b/Mage.Sets/src/mage/cards/i/IthHighArcanist.java
index ef2b124e32..d84719fa1b 100644
--- a/Mage.Sets/src/mage/cards/i/IthHighArcanist.java
+++ b/Mage.Sets/src/mage/cards/i/IthHighArcanist.java
@@ -48,7 +48,7 @@ public final class IthHighArcanist extends CardImpl {
ability.addTarget(new TargetAttackingCreature());
this.addAbility(ability);
// Suspend 4-{W}{U}
- this.addAbility(new SuspendAbility(4, new ManaCostsImpl("{W}{U}"), this));
+ this.addAbility(new SuspendAbility(4, new ManaCostsImpl<>("{W}{U}"), this));
}
private IthHighArcanist(final IthHighArcanist card) {
diff --git a/Mage.Sets/src/mage/cards/i/IthorianInitiate.java b/Mage.Sets/src/mage/cards/i/IthorianInitiate.java
index d086d1a9ea..d8dc6622b1 100644
--- a/Mage.Sets/src/mage/cards/i/IthorianInitiate.java
+++ b/Mage.Sets/src/mage/cards/i/IthorianInitiate.java
@@ -32,7 +32,7 @@ public final class IthorianInitiate extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
// Meditate {1}{G}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{G}")));
}
private IthorianInitiate(final IthorianInitiate card) {
diff --git a/Mage.Sets/src/mage/cards/i/IvoryGargoyle.java b/Mage.Sets/src/mage/cards/i/IvoryGargoyle.java
index 1ba7a64e2a..93e6f9bd13 100644
--- a/Mage.Sets/src/mage/cards/i/IvoryGargoyle.java
+++ b/Mage.Sets/src/mage/cards/i/IvoryGargoyle.java
@@ -40,7 +40,7 @@ public final class IvoryGargoyle extends CardImpl {
this.addAbility(ability);
// {4}{W}: Exile Ivory Gargoyle.
- this.addAbility(new SimpleActivatedAbility(new ExileSourceEffect(), new ManaCostsImpl("{4}{W}")));
+ this.addAbility(new SimpleActivatedAbility(new ExileSourceEffect(), new ManaCostsImpl<>("{4}{W}")));
}
private IvoryGargoyle(final IvoryGargoyle card) {
diff --git a/Mage.Sets/src/mage/cards/i/IvoryGiant.java b/Mage.Sets/src/mage/cards/i/IvoryGiant.java
index e56336a73d..d7db3776ba 100644
--- a/Mage.Sets/src/mage/cards/i/IvoryGiant.java
+++ b/Mage.Sets/src/mage/cards/i/IvoryGiant.java
@@ -37,7 +37,7 @@ public final class IvoryGiant extends CardImpl {
// When Ivory Giant enters the battlefield, tap all nonwhite creatures.
this.addAbility(new EntersBattlefieldTriggeredAbility(new TapAllEffect(filter)));
// Suspend 5-{W}
- this.addAbility(new SuspendAbility(5, new ManaCostsImpl("{W}"), this));
+ this.addAbility(new SuspendAbility(5, new ManaCostsImpl<>("{W}"), this));
}
private IvoryGiant(final IvoryGiant card) {
diff --git a/Mage.Sets/src/mage/cards/i/IvySeer.java b/Mage.Sets/src/mage/cards/i/IvySeer.java
index d903acdfaf..216ad5e5e7 100644
--- a/Mage.Sets/src/mage/cards/i/IvySeer.java
+++ b/Mage.Sets/src/mage/cards/i/IvySeer.java
@@ -37,7 +37,7 @@ public final class IvySeer extends CardImpl {
this.toughness = new MageInt(1);
// {2}{G}, {tap}: Reveal any number of green cards in your hand. Target creature gets +X/+X until end of turn, where X is the number of cards revealed this way.
- Ability ability = new SimpleActivatedAbility(new IvySeerEffect(), new ManaCostsImpl("{2}{G}"));
+ Ability ability = new SimpleActivatedAbility(new IvySeerEffect(), new ManaCostsImpl<>("{2}{G}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IxallisKeeper.java b/Mage.Sets/src/mage/cards/i/IxallisKeeper.java
index 58d5ec50fb..ace1de130d 100644
--- a/Mage.Sets/src/mage/cards/i/IxallisKeeper.java
+++ b/Mage.Sets/src/mage/cards/i/IxallisKeeper.java
@@ -35,7 +35,7 @@ public final class IxallisKeeper extends CardImpl {
// {7}{G}, {T}, Sacrifice Ixalli's Keeper: Target creature gets +5/+5 and gains trample until end of turn.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostTargetEffect(5, 5, Duration.EndOfTurn)
- .setText("Target creature gets +5/+5"), new ManaCostsImpl("{7}{G}"));
+ .setText("Target creature gets +5/+5"), new ManaCostsImpl<>("{7}{G}"));
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)
.setText("and gains trample until end of turn"));
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java b/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java
index e86ca1c763..1f2dd12fe4 100644
--- a/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java
+++ b/Mage.Sets/src/mage/cards/i/IxidorRealitySculptor.java
@@ -43,7 +43,7 @@ public final class IxidorRealitySculptor extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));
// {2}{U}: Turn target face-down creature face up.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TurnFaceUpTargetEffect(), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TurnFaceUpTargetEffect(), new ManaCostsImpl<>("{2}{U}"));
ability.addTarget(new TargetCreaturePermanent(filterTarget));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/IzoniThousandEyed.java b/Mage.Sets/src/mage/cards/i/IzoniThousandEyed.java
index 507a92a3eb..23de815a88 100644
--- a/Mage.Sets/src/mage/cards/i/IzoniThousandEyed.java
+++ b/Mage.Sets/src/mage/cards/i/IzoniThousandEyed.java
@@ -48,7 +48,7 @@ public final class IzoniThousandEyed extends CardImpl {
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new GainLifeEffect(1),
- new ManaCostsImpl("{B}{G}")
+ new ManaCostsImpl<>("{B}{G}")
);
ability.addEffect(
new DrawCardSourceControllerEffect(1).setText("and draw a card")
diff --git a/Mage.Sets/src/mage/cards/i/IzzetCluestone.java b/Mage.Sets/src/mage/cards/i/IzzetCluestone.java
index 5c1bc92d1f..cb6131694a 100644
--- a/Mage.Sets/src/mage/cards/i/IzzetCluestone.java
+++ b/Mage.Sets/src/mage/cards/i/IzzetCluestone.java
@@ -32,7 +32,7 @@ public final class IzzetCluestone extends CardImpl {
this.addAbility(new RedManaAbility());
// {U}{R}, {T}, Sacrifice Izzet Cluestone: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{U}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{U}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java b/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java
index 93c201ea68..a807f3f0f5 100644
--- a/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java
+++ b/Mage.Sets/src/mage/cards/i/IzzetGuildmage.java
@@ -46,12 +46,12 @@ public final class IzzetGuildmage extends CardImpl {
// ({UR} can be paid with either {U} or {R}.)
// {2}{U}: Copy target instant spell you control with converted mana cost 2 or less. You may choose new targets for the copy.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl<>("{2}{U}"));
ability.addTarget(new TargetSpell(filterInstant));
this.addAbility(ability);
// {2}{R}: Copy target sorcery spell you control with converted mana cost 2 or less. You may choose new targets for the copy.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl("{2}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl<>("{2}{R}"));
ability.addTarget(new TargetSpell(filterSorcery));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java b/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java
index b9776d3fb3..ed238ba18d 100644
--- a/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java
+++ b/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java
@@ -32,7 +32,7 @@ public final class IzzetKeyrune extends CardImpl {
// {U}{R}: Until end of turn, Izzet Keyrune becomes a 2/1 blue and red Elemental artifact creature.
this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect(
new IzzetKeyruneToken(), "", Duration.EndOfTurn
- ), new ManaCostsImpl("{U}{R}")));
+ ), new ManaCostsImpl<>("{U}{R}")));
// Whenever Izzet Keyrune deals combat damage to a player, you may draw a card. If you do, discard a card.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/i/IzzetLocket.java b/Mage.Sets/src/mage/cards/i/IzzetLocket.java
index cac5fc4f9f..faeebf1c7c 100644
--- a/Mage.Sets/src/mage/cards/i/IzzetLocket.java
+++ b/Mage.Sets/src/mage/cards/i/IzzetLocket.java
@@ -29,7 +29,7 @@ public final class IzzetLocket extends CardImpl {
// {U/R}{U/R}{U/R}{U/R}, {T}, Sacrifice Izzet Locket: Draw two cards.
Ability ability = new SimpleActivatedAbility(
new DrawCardSourceControllerEffect(2),
- new ManaCostsImpl("{U/R}{U/R}{U/R}{U/R}")
+ new ManaCostsImpl<>("{U/R}{U/R}{U/R}{U/R}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/j/JabarisBanner.java b/Mage.Sets/src/mage/cards/j/JabarisBanner.java
index d5b8b8ebc3..c5fa549977 100644
--- a/Mage.Sets/src/mage/cards/j/JabarisBanner.java
+++ b/Mage.Sets/src/mage/cards/j/JabarisBanner.java
@@ -25,7 +25,7 @@ public final class JabarisBanner extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
// {1}, {tap}: Target creature gains flanking until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(new FlankingAbility(), Duration.EndOfTurn), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(new FlankingAbility(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JacesProjection.java b/Mage.Sets/src/mage/cards/j/JacesProjection.java
index e81b392100..9dc16d589f 100644
--- a/Mage.Sets/src/mage/cards/j/JacesProjection.java
+++ b/Mage.Sets/src/mage/cards/j/JacesProjection.java
@@ -40,7 +40,7 @@ public final class JacesProjection extends CardImpl {
// {3}{U}: Put a loyalty counter on target Jace planeswalker.
Ability ability = new SimpleActivatedAbility(
- new AddCountersTargetEffect(CounterType.LOYALTY.createInstance()), new ManaCostsImpl("{3}{U}")
+ new AddCountersTargetEffect(CounterType.LOYALTY.createInstance()), new ManaCostsImpl<>("{3}{U}")
);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JadeLeech.java b/Mage.Sets/src/mage/cards/j/JadeLeech.java
index 9d900c2ee8..a9f638b118 100644
--- a/Mage.Sets/src/mage/cards/j/JadeLeech.java
+++ b/Mage.Sets/src/mage/cards/j/JadeLeech.java
@@ -35,7 +35,7 @@ public final class JadeLeech extends CardImpl {
// Green spells you cast cost {G} more to cast.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
- new SpellsCostIncreasingAllEffect(new ManaCostsImpl("{G}"), filter, TargetController.YOU)));
+ new SpellsCostIncreasingAllEffect(new ManaCostsImpl<>("{G}"), filter, TargetController.YOU)));
}
private JadeLeech(final JadeLeech card) {
diff --git a/Mage.Sets/src/mage/cards/j/JadeMage.java b/Mage.Sets/src/mage/cards/j/JadeMage.java
index 0851b3f617..b8363aa1a0 100644
--- a/Mage.Sets/src/mage/cards/j/JadeMage.java
+++ b/Mage.Sets/src/mage/cards/j/JadeMage.java
@@ -26,7 +26,7 @@ public final class JadeMage extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl<>("{2}{G}")));
}
private JadeMage(final JadeMage card) {
diff --git a/Mage.Sets/src/mage/cards/j/JadeStatue.java b/Mage.Sets/src/mage/cards/j/JadeStatue.java
index 590772a94f..4d06a699dc 100644
--- a/Mage.Sets/src/mage/cards/j/JadeStatue.java
+++ b/Mage.Sets/src/mage/cards/j/JadeStatue.java
@@ -27,7 +27,7 @@ public final class JadeStatue extends CardImpl {
// {2}: Jade Statue becomes a 3/6 Golem artifact creature until end of combat. Activate this ability only during combat.
- this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect (new JadeStatueToken(), "", Duration.EndOfCombat), new ManaCostsImpl("{2}"), new IsPhaseCondition(TurnPhase.COMBAT), "{2}: {this} becomes a 3/6 Golem artifact creature until end of combat. Activate only during combat."));
+ this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect (new JadeStatueToken(), "", Duration.EndOfCombat), new ManaCostsImpl<>("{2}"), new IsPhaseCondition(TurnPhase.COMBAT), "{2}: {this} becomes a 3/6 Golem artifact creature until end of combat. Activate only during combat."));
}
private JadeStatue(final JadeStatue card) {
diff --git a/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java b/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java
index 565249d10c..5e02166c4d 100644
--- a/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java
+++ b/Mage.Sets/src/mage/cards/j/JaliraMasterPolymorphist.java
@@ -43,7 +43,7 @@ public final class JaliraMasterPolymorphist extends CardImpl {
// {2}{U}, {T}, Sacrifice another creature: Reveal cards from the top of your library until you reveal a nonlegendary creature card.
// Put that card onto the battlefield and the rest on the bottom of your library in a random order.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RevealCardsFromLibraryUntilEffect(filterCard, Zone.BATTLEFIELD, Zone.LIBRARY), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RevealCardsFromLibraryUntilEffect(filterCard, Zone.BATTLEFIELD, Zone.LIBRARY), new ManaCostsImpl<>("{2}{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE, true)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JalumGrifter.java b/Mage.Sets/src/mage/cards/j/JalumGrifter.java
index 03fc79a70d..19dff8ee7d 100644
--- a/Mage.Sets/src/mage/cards/j/JalumGrifter.java
+++ b/Mage.Sets/src/mage/cards/j/JalumGrifter.java
@@ -45,7 +45,7 @@ public final class JalumGrifter extends CardImpl {
this.toughness = new MageInt(5);
// {1}{R}, {T}: Shuffle Jalum Grifter and two lands you control face down. Target opponent chooses one of those cards. Turn the cards face up. If they chose Jalum Grifter, sacrifice it. Otherwise, destroy target permanent.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JalumGrifterEffect(), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JalumGrifterEffect(), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetOpponent());
ability.addTarget(new TargetPermanent());
diff --git a/Mage.Sets/src/mage/cards/j/JalumTome.java b/Mage.Sets/src/mage/cards/j/JalumTome.java
index 3c3c1639e1..ff26f144e5 100644
--- a/Mage.Sets/src/mage/cards/j/JalumTome.java
+++ b/Mage.Sets/src/mage/cards/j/JalumTome.java
@@ -22,7 +22,7 @@ public final class JalumTome extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
// {2}, {tap}: Draw a card, then discard a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(), new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JamuraanLion.java b/Mage.Sets/src/mage/cards/j/JamuraanLion.java
index 935024b72d..6e73dc917c 100644
--- a/Mage.Sets/src/mage/cards/j/JamuraanLion.java
+++ b/Mage.Sets/src/mage/cards/j/JamuraanLion.java
@@ -29,7 +29,7 @@ public final class JamuraanLion extends CardImpl {
this.toughness = new MageInt(1);
// {W}, {tap}: Target creature can't block this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JandorsRing.java b/Mage.Sets/src/mage/cards/j/JandorsRing.java
index f9d551cbeb..9401fe6143 100644
--- a/Mage.Sets/src/mage/cards/j/JandorsRing.java
+++ b/Mage.Sets/src/mage/cards/j/JandorsRing.java
@@ -37,7 +37,7 @@ public final class JandorsRing extends CardImpl {
Watcher watcher = new JandorsRingWatcher();
// {2}, {tap}, Discard the last card you drew this turn: Draw a card.
// TODO: discard has to be a cost not a payment during resolution
- Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new JandorsRingEffect(), new ManaCostsImpl("{2}"), WatchedCardInHandCondition.instance, "{2}, {T}, Discard the last card you drew this turn: Draw a card.");
+ Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new JandorsRingEffect(), new ManaCostsImpl<>("{2}"), WatchedCardInHandCondition.instance, "{2}, {T}, Discard the last card you drew this turn: Draw a card.");
ability.addCost(new TapSourceCost());
this.addAbility(ability, watcher);
}
diff --git a/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java b/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java
index 5e65a10897..b887920db5 100644
--- a/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java
+++ b/Mage.Sets/src/mage/cards/j/JaradGolgariLichLord.java
@@ -50,7 +50,7 @@ public final class JaradGolgariLichLord extends CardImpl {
this.addAbility(ability);
// {1}{B}{G}, Sacrifice another creature: Each opponent loses life equal to the sacrificed creature's power.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeOpponentsEffect(SacrificeCostCreaturesPower.instance), new ManaCostsImpl("{1}{B}{G}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeOpponentsEffect(SacrificeCostCreaturesPower.instance), new ManaCostsImpl<>("{1}{B}{G}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE, false)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JasmineSeer.java b/Mage.Sets/src/mage/cards/j/JasmineSeer.java
index a0a90c78fa..86efb498b7 100644
--- a/Mage.Sets/src/mage/cards/j/JasmineSeer.java
+++ b/Mage.Sets/src/mage/cards/j/JasmineSeer.java
@@ -35,7 +35,7 @@ public final class JasmineSeer extends CardImpl {
this.toughness = new MageInt(1);
// {2}{W}, {tap}: Reveal any number of white cards in your hand. You gain 2 life for each card revealed this way.
- Ability ability = new SimpleActivatedAbility(new JasmineSeerEffect(), new ManaCostsImpl("{2}{W}"));
+ Ability ability = new SimpleActivatedAbility(new JasmineSeerEffect(), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java b/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java
index f7affa020d..e2cd3aa991 100644
--- a/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java
+++ b/Mage.Sets/src/mage/cards/j/JayaBallardTaskMage.java
@@ -47,14 +47,14 @@ public final class JayaBallardTaskMage extends CardImpl {
this.toughness = new MageInt(2);
// {R}, {tap}, Discard a card: Destroy target blue permanent.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{R}"));
ability.addTarget(new TargetPermanent(filter));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
// {1}{R}, {tap}, Discard a card: Jaya Ballard, Task Mage deals 3 damage to any target. A creature dealt damage this way can't be regenerated this turn.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new ManaCostsImpl("{1}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new ManaCostsImpl<>("{1}{R}"));
ability.addTarget(new TargetAnyTarget());
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
@@ -62,7 +62,7 @@ public final class JayaBallardTaskMage extends CardImpl {
this.addAbility(ability, new DamagedByWatcher(false));
// {5}{R}{R}, {tap}, Discard a card: Jaya Ballard deals 6 damage to each creature and each player.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(6), new ManaCostsImpl("{5}{R}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(6), new ManaCostsImpl<>("{5}{R}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JazalGoldmane.java b/Mage.Sets/src/mage/cards/j/JazalGoldmane.java
index 85cd8dac6f..8a685aaa6e 100644
--- a/Mage.Sets/src/mage/cards/j/JazalGoldmane.java
+++ b/Mage.Sets/src/mage/cards/j/JazalGoldmane.java
@@ -37,7 +37,7 @@ public final class JazalGoldmane extends CardImpl {
DynamicValue xValue = new AttackingCreatureCount("the number of attacking creatures");
this.addAbility(new SimpleActivatedAbility(
new BoostControlledEffect(xValue, xValue, Duration.EndOfTurn, StaticFilters.FILTER_ATTACKING_CREATURES, false, true),
- new ManaCostsImpl("{3}{W}{W}")));
+ new ManaCostsImpl<>("{3}{W}{W}")));
}
private JazalGoldmane(final JazalGoldmane card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediBattleHealer.java b/Mage.Sets/src/mage/cards/j/JediBattleHealer.java
index 2e72870ac5..0784fcbcf3 100644
--- a/Mage.Sets/src/mage/cards/j/JediBattleHealer.java
+++ b/Mage.Sets/src/mage/cards/j/JediBattleHealer.java
@@ -33,7 +33,7 @@ public final class JediBattleHealer extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3)));
// Meditate {1}{W}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{W}")));
}
private JediBattleHealer(final JediBattleHealer card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediBattleMage.java b/Mage.Sets/src/mage/cards/j/JediBattleMage.java
index 8b094ea5a2..b784f8e3ea 100644
--- a/Mage.Sets/src/mage/cards/j/JediBattleMage.java
+++ b/Mage.Sets/src/mage/cards/j/JediBattleMage.java
@@ -34,7 +34,7 @@ public final class JediBattleMage extends CardImpl {
this.addAbility(ability);
// Meditate {1}{U}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{U}")));
}
private JediBattleMage(final JediBattleMage card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediBattleSage.java b/Mage.Sets/src/mage/cards/j/JediBattleSage.java
index fea106ee04..ba94bed886 100644
--- a/Mage.Sets/src/mage/cards/j/JediBattleSage.java
+++ b/Mage.Sets/src/mage/cards/j/JediBattleSage.java
@@ -37,7 +37,7 @@ public final class JediBattleSage extends CardImpl {
this.addAbility(ability);
// Meditate {1}{G}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{G}")));
}
private JediBattleSage(final JediBattleSage card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediInquirer.java b/Mage.Sets/src/mage/cards/j/JediInquirer.java
index c7815b698d..88fa097f0b 100644
--- a/Mage.Sets/src/mage/cards/j/JediInquirer.java
+++ b/Mage.Sets/src/mage/cards/j/JediInquirer.java
@@ -32,7 +32,7 @@ public final class JediInquirer extends CardImpl {
this.addAbility(ability);
// Meditate {1}{W}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{W}")));
}
private JediInquirer(final JediInquirer card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediInstructor.java b/Mage.Sets/src/mage/cards/j/JediInstructor.java
index be0757481b..ff0cfc7156 100644
--- a/Mage.Sets/src/mage/cards/j/JediInstructor.java
+++ b/Mage.Sets/src/mage/cards/j/JediInstructor.java
@@ -41,7 +41,7 @@ public final class JediInstructor extends CardImpl {
this.addAbility(ability);
// Meditate {1}{W}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{W}")));
}
private JediInstructor(final JediInstructor card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediKnight.java b/Mage.Sets/src/mage/cards/j/JediKnight.java
index 2a69570060..081ea96e0e 100644
--- a/Mage.Sets/src/mage/cards/j/JediKnight.java
+++ b/Mage.Sets/src/mage/cards/j/JediKnight.java
@@ -42,7 +42,7 @@ public final class JediKnight extends CardImpl {
this.addAbility(ability);
// Meditate {1}{U}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{U}")));
}
private JediKnight(final JediKnight card) {
diff --git a/Mage.Sets/src/mage/cards/j/JediStarfighter.java b/Mage.Sets/src/mage/cards/j/JediStarfighter.java
index 99707f1192..4d2935cbaf 100644
--- a/Mage.Sets/src/mage/cards/j/JediStarfighter.java
+++ b/Mage.Sets/src/mage/cards/j/JediStarfighter.java
@@ -46,7 +46,7 @@ public final class JediStarfighter extends CardImpl {
this.addAbility(ability);
// Meditate {1}{W}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{W}")));
}
private JediStarfighter(final JediStarfighter card) {
diff --git a/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java b/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java
index c26f01b64e..8e30c2b19f 100644
--- a/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java
+++ b/Mage.Sets/src/mage/cards/j/JenaraAsuraOfWar.java
@@ -32,7 +32,7 @@ public final class JenaraAsuraOfWar extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(3);
this.addAbility(FlyingAbility.getInstance());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{1}{W}")));
}
public JenaraAsuraOfWar (final JenaraAsuraOfWar card) {
diff --git a/Mage.Sets/src/mage/cards/j/JeskaiBanner.java b/Mage.Sets/src/mage/cards/j/JeskaiBanner.java
index fb7e680963..693729f8b2 100644
--- a/Mage.Sets/src/mage/cards/j/JeskaiBanner.java
+++ b/Mage.Sets/src/mage/cards/j/JeskaiBanner.java
@@ -31,7 +31,7 @@ public final class JeskaiBanner extends CardImpl {
this.addAbility(new WhiteManaAbility());
// {U}{R}{W}, {T}, Sacrifice Jeskai Banner: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{U}{R}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{U}{R}{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java b/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java
index e70a5dd390..4549631914 100644
--- a/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java
+++ b/Mage.Sets/src/mage/cards/j/JeskaiInfiltrator.java
@@ -102,7 +102,7 @@ class JeskaiInfiltratorEffect extends OneShotEffect {
if (card.isCreature(game)) {
manaCosts = card.getSpellAbility().getManaCosts();
if (manaCosts == null) {
- manaCosts = new ManaCostsImpl("{0}");
+ manaCosts = new ManaCostsImpl<>("{0}");
}
}
MageObjectReference objectReference = new MageObjectReference(card.getId(), card.getZoneChangeCounter(game) + 1, game);
diff --git a/Mage.Sets/src/mage/cards/j/JestersScepter.java b/Mage.Sets/src/mage/cards/j/JestersScepter.java
index d56fba15e6..c99529d022 100644
--- a/Mage.Sets/src/mage/cards/j/JestersScepter.java
+++ b/Mage.Sets/src/mage/cards/j/JestersScepter.java
@@ -43,7 +43,7 @@ public final class JestersScepter extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new JestersScepterLookAtCardEffect()));
// {2}, {tap}, Put a card exiled with Jester's Scepter into its owner's graveyard: Counter target spell if it has the same name as that card.
- Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JestersScepterCounterEffect(), new ManaCostsImpl("{2}"));
+ Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JestersScepterCounterEffect(), new ManaCostsImpl<>("{2}"));
ability2.addCost(new TapSourceCost());
ability2.addCost(new JestersScepterCost());
ability2.addTarget(new TargetSpell());
diff --git a/Mage.Sets/src/mage/cards/j/JeweledAmulet.java b/Mage.Sets/src/mage/cards/j/JeweledAmulet.java
index 9c879362d7..4f276ce14e 100644
--- a/Mage.Sets/src/mage/cards/j/JeweledAmulet.java
+++ b/Mage.Sets/src/mage/cards/j/JeweledAmulet.java
@@ -35,7 +35,7 @@ public final class JeweledAmulet extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{0}");
// {1}, {tap}: Put a charge counter on Jeweled Amulet. Note the type of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on Jeweled Amulet.
- ConditionalActivatedAbility ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new JeweledAmuletAddCounterEffect(), new ManaCostsImpl("{1}"), new SourceHasCounterCondition(CounterType.CHARGE, 0, 0), rule);
+ ConditionalActivatedAbility ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new JeweledAmuletAddCounterEffect(), new ManaCostsImpl<>("{1}"), new SourceHasCounterCondition(CounterType.CHARGE, 0, 0), rule);
ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JhessianZombies.java b/Mage.Sets/src/mage/cards/j/JhessianZombies.java
index 43cde7bcab..83425250b6 100644
--- a/Mage.Sets/src/mage/cards/j/JhessianZombies.java
+++ b/Mage.Sets/src/mage/cards/j/JhessianZombies.java
@@ -30,9 +30,9 @@ public final class JhessianZombies extends CardImpl {
// Fear
this.addAbility(FearAbility.getInstance());
// Islandcycling {2}
- this.addAbility(new IslandcyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new IslandcyclingAbility(new ManaCostsImpl<>("{2}")));
// Swampcycling {2}
- this.addAbility(new SwampcyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new SwampcyclingAbility(new ManaCostsImpl<>("{2}")));
}
private JhessianZombies(final JhessianZombies card) {
diff --git a/Mage.Sets/src/mage/cards/j/JhoirasToolbox.java b/Mage.Sets/src/mage/cards/j/JhoirasToolbox.java
index fbba29c1ed..50fffe1cc8 100644
--- a/Mage.Sets/src/mage/cards/j/JhoirasToolbox.java
+++ b/Mage.Sets/src/mage/cards/j/JhoirasToolbox.java
@@ -35,7 +35,7 @@ public final class JhoirasToolbox extends CardImpl {
this.toughness = new MageInt(1);
// {2}: Regenerate target artifact creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{2}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JinxedChoker.java b/Mage.Sets/src/mage/cards/j/JinxedChoker.java
index ffbf11e810..9dbd749c7b 100644
--- a/Mage.Sets/src/mage/cards/j/JinxedChoker.java
+++ b/Mage.Sets/src/mage/cards/j/JinxedChoker.java
@@ -44,7 +44,7 @@ public final class JinxedChoker extends CardImpl {
this.addAbility(upkeepAbility);
// {3}: Put a charge counter on Jinxed Choker or remove one from it.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JinxedChokerCounterEffect(), new ManaCostsImpl("{3}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JinxedChokerCounterEffect(), new ManaCostsImpl<>("{3}"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java b/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java
index 6d7b6326c2..2f9c9c104e 100644
--- a/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java
+++ b/Mage.Sets/src/mage/cards/j/JiwariTheEarthAflame.java
@@ -44,7 +44,7 @@ public final class JiwariTheEarthAflame extends CardImpl {
this.toughness = new MageInt(3);
// {X}{R}, {tap}: Jiwari, the Earth Aflame deals X damage to target creature without flying.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl<>("{X}{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JodahsAvenger.java b/Mage.Sets/src/mage/cards/j/JodahsAvenger.java
index dbb32877b0..adf56bcc99 100644
--- a/Mage.Sets/src/mage/cards/j/JodahsAvenger.java
+++ b/Mage.Sets/src/mage/cards/j/JodahsAvenger.java
@@ -38,7 +38,7 @@ public final class JodahsAvenger extends CardImpl {
this.toughness = new MageInt(4);
// {0}: Until end of turn, Jodah's Avenger gets -1/-1 and gains your choice of double strike, protection from red, vigilance, or shadow.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new JodahsAvengerEffect(), new ManaCostsImpl("{0}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new JodahsAvengerEffect(), new ManaCostsImpl<>("{0}")));
}
private JodahsAvenger(final JodahsAvenger card) {
diff --git a/Mage.Sets/src/mage/cards/j/JohnnyComboPlayer.java b/Mage.Sets/src/mage/cards/j/JohnnyComboPlayer.java
index f59457c3d8..57bf794781 100644
--- a/Mage.Sets/src/mage/cards/j/JohnnyComboPlayer.java
+++ b/Mage.Sets/src/mage/cards/j/JohnnyComboPlayer.java
@@ -30,7 +30,7 @@ public final class JohnnyComboPlayer extends CardImpl {
this.toughness = new MageInt(1);
// {4}: Search your library for a card, put that card into your hand, then shuffle your library.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(new FilterCard("a card")), false, true), new ManaCostsImpl("{4}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(new FilterCard("a card")), false, true), new ManaCostsImpl<>("{4}")));
}
private JohnnyComboPlayer(final JohnnyComboPlayer card) {
diff --git a/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java b/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java
index deca477cce..c4b120765b 100644
--- a/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java
+++ b/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java
@@ -40,7 +40,7 @@ public final class JolraelMwonvuliRecluse extends CardImpl {
CardsInControllerHandCount.instance, CardsInControllerHandCount.instance,
Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES, true
).setText("until end of turn, creatures you control have base power and toughness X/X, " +
- "where X is the number of cards in your hand"), new ManaCostsImpl("{4}{G}{G}")));
+ "where X is the number of cards in your hand"), new ManaCostsImpl<>("{4}{G}{G}")));
}
private JolraelMwonvuliRecluse(final JolraelMwonvuliRecluse card) {
diff --git a/Mage.Sets/src/mage/cards/j/JolraelsFavor.java b/Mage.Sets/src/mage/cards/j/JolraelsFavor.java
index 0a227f5af3..349172e7a3 100644
--- a/Mage.Sets/src/mage/cards/j/JolraelsFavor.java
+++ b/Mage.Sets/src/mage/cards/j/JolraelsFavor.java
@@ -38,7 +38,7 @@ public final class JolraelsFavor extends CardImpl {
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
// {1}{G}: Regenerate enchanted creature.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAttachedEffect(AttachmentType.AURA), new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAttachedEffect(AttachmentType.AURA), new ManaCostsImpl<>("{1}{G}")));
}
private JolraelsFavor(final JolraelsFavor card) {
diff --git a/Mage.Sets/src/mage/cards/j/JoragaAuxiliary.java b/Mage.Sets/src/mage/cards/j/JoragaAuxiliary.java
index 8ae089d936..a17769ed55 100644
--- a/Mage.Sets/src/mage/cards/j/JoragaAuxiliary.java
+++ b/Mage.Sets/src/mage/cards/j/JoragaAuxiliary.java
@@ -37,7 +37,7 @@ public final class JoragaAuxiliary extends CardImpl {
this.toughness = new MageInt(3);
// {4}{G}{W}: Support 2. (Put a +1/+1 counter on each of up to two other target creatures.)
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SupportEffect(this, 2, true), new ManaCostsImpl("{4}{G}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SupportEffect(this, 2, true), new ManaCostsImpl<>("{4}{G}{W}"));
ability.addTarget(new TargetCreaturePermanent(0, 2, filter, false));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java b/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java
index 283fb55864..b5f8b4d9d8 100644
--- a/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java
+++ b/Mage.Sets/src/mage/cards/j/JoragaTreespeaker.java
@@ -46,7 +46,7 @@ public final class JoragaTreespeaker extends LevelerCard {
this.toughness = new MageInt(1);
// Level up {1}{G} ({1}{G}: Put a level counter on this. Level up only as a sorcery.)
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{1}{G}")));
// LEVEL 1-4
// 1/2
diff --git a/Mage.Sets/src/mage/cards/j/JorubaiMurkLurker.java b/Mage.Sets/src/mage/cards/j/JorubaiMurkLurker.java
index b91469bef8..539d0cc7f4 100644
--- a/Mage.Sets/src/mage/cards/j/JorubaiMurkLurker.java
+++ b/Mage.Sets/src/mage/cards/j/JorubaiMurkLurker.java
@@ -49,7 +49,7 @@ public final class JorubaiMurkLurker extends CardImpl {
// {1}{B}: Target creature gains lifelink until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{B}"));
+ new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JotunOwlKeeper.java b/Mage.Sets/src/mage/cards/j/JotunOwlKeeper.java
index bf6a7af480..1167072ebd 100644
--- a/Mage.Sets/src/mage/cards/j/JotunOwlKeeper.java
+++ b/Mage.Sets/src/mage/cards/j/JotunOwlKeeper.java
@@ -31,8 +31,8 @@ public final class JotunOwlKeeper extends CardImpl {
// Cumulative upkeep {W} or {U}
this.addAbility(new CumulativeUpkeepAbility(new OrCost(
- "{W} or {U}", new ManaCostsImpl("{W}"),
- new ManaCostsImpl("{U}")
+ "{W} or {U}", new ManaCostsImpl<>("{W}"),
+ new ManaCostsImpl<>("{U}")
)));
// When Jötun Owl Keeper dies, put a 1/1 white Bird creature token with flying onto the battlefield for each age counter on it.
diff --git a/Mage.Sets/src/mage/cards/j/Joven.java b/Mage.Sets/src/mage/cards/j/Joven.java
index e131b7e97d..53b33c801a 100644
--- a/Mage.Sets/src/mage/cards/j/Joven.java
+++ b/Mage.Sets/src/mage/cards/j/Joven.java
@@ -38,7 +38,7 @@ public final class Joven extends CardImpl {
this.toughness = new MageInt(3);
// {R}{R}{R}, {tap}: Destroy target noncreature artifact.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{R}{R}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{R}{R}{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JubilantMascot.java b/Mage.Sets/src/mage/cards/j/JubilantMascot.java
index 6cb52caff5..2a21d29069 100644
--- a/Mage.Sets/src/mage/cards/j/JubilantMascot.java
+++ b/Mage.Sets/src/mage/cards/j/JubilantMascot.java
@@ -42,7 +42,7 @@ public final class JubilantMascot extends CardImpl {
new DoIfCostPaid(
new AddCountersTargetEffect(CounterType.P1P1.createInstance())
.setText("support 2"),
- new ManaCostsImpl("{3}{W}")
+ new ManaCostsImpl<>("{3}{W}")
), TargetController.YOU, false);
ability.addTarget(new TargetCreaturePermanent(0, 2, filter, false));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JujuBubble.java b/Mage.Sets/src/mage/cards/j/JujuBubble.java
index fe59d134dd..6fec374ad9 100644
--- a/Mage.Sets/src/mage/cards/j/JujuBubble.java
+++ b/Mage.Sets/src/mage/cards/j/JujuBubble.java
@@ -25,7 +25,7 @@ public final class JujuBubble extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// When you play a card, sacrifice Juju Bubble.
this.addAbility(new JujuBubbleTriggeredAbility());
diff --git a/Mage.Sets/src/mage/cards/j/JundBattlemage.java b/Mage.Sets/src/mage/cards/j/JundBattlemage.java
index 17eb791835..ba62969ce9 100644
--- a/Mage.Sets/src/mage/cards/j/JundBattlemage.java
+++ b/Mage.Sets/src/mage/cards/j/JundBattlemage.java
@@ -31,11 +31,11 @@ public final class JundBattlemage extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCostsImpl<>("{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl("{G}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JungleCreeper.java b/Mage.Sets/src/mage/cards/j/JungleCreeper.java
index 78169d04d0..332064ed63 100644
--- a/Mage.Sets/src/mage/cards/j/JungleCreeper.java
+++ b/Mage.Sets/src/mage/cards/j/JungleCreeper.java
@@ -26,7 +26,7 @@ public final class JungleCreeper extends CardImpl {
this.toughness = new MageInt(3);
// {3}{B}{G}: Return Jungle Creeper from your graveyard to your hand.
- this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl("{3}{B}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl<>("{3}{B}{G}")));
}
private JungleCreeper(final JungleCreeper card) {
diff --git a/Mage.Sets/src/mage/cards/j/JungleDelver.java b/Mage.Sets/src/mage/cards/j/JungleDelver.java
index 09b05b2ac9..baa4373b82 100644
--- a/Mage.Sets/src/mage/cards/j/JungleDelver.java
+++ b/Mage.Sets/src/mage/cards/j/JungleDelver.java
@@ -29,7 +29,7 @@ public final class JungleDelver extends CardImpl {
// {3}{G}: Put a +1/+1 counter on Jungle Delver.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{3}{G}")));
+ new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{3}{G}")));
}
private JungleDelver(final JungleDelver card) {
diff --git a/Mage.Sets/src/mage/cards/j/JunglePatrol.java b/Mage.Sets/src/mage/cards/j/JunglePatrol.java
index cff02c4840..05b392c16f 100644
--- a/Mage.Sets/src/mage/cards/j/JunglePatrol.java
+++ b/Mage.Sets/src/mage/cards/j/JunglePatrol.java
@@ -45,7 +45,7 @@ public final class JunglePatrol extends CardImpl {
this.toughness = new MageInt(2);
// {1}{G}, {T}: Create a 0/1 green Wall creature token with defender named Wood.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WoodToken()), new ManaCostsImpl("{1}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new WoodToken()), new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JungleTroll.java b/Mage.Sets/src/mage/cards/j/JungleTroll.java
index 9e195b4b3c..3af0747749 100644
--- a/Mage.Sets/src/mage/cards/j/JungleTroll.java
+++ b/Mage.Sets/src/mage/cards/j/JungleTroll.java
@@ -25,10 +25,10 @@ public final class JungleTroll extends CardImpl {
this.toughness = new MageInt(1);
// {R}: Regenerate Jungle Troll.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{R}")));
// {G}: Regenerate Jungle Troll.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{G}")));
}
private JungleTroll(final JungleTroll card) {
diff --git a/Mage.Sets/src/mage/cards/j/JungleWeaver.java b/Mage.Sets/src/mage/cards/j/JungleWeaver.java
index 043c75c2f9..1a3dc51051 100644
--- a/Mage.Sets/src/mage/cards/j/JungleWeaver.java
+++ b/Mage.Sets/src/mage/cards/j/JungleWeaver.java
@@ -25,7 +25,7 @@ public final class JungleWeaver extends CardImpl {
this.power = new MageInt(5);
this.toughness = new MageInt(6);
this.addAbility(ReachAbility.getInstance());
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
public JungleWeaver (final JungleWeaver card) {
diff --git a/Mage.Sets/src/mage/cards/j/JunkGolem.java b/Mage.Sets/src/mage/cards/j/JunkGolem.java
index c4b062074d..49bd9a0e5d 100644
--- a/Mage.Sets/src/mage/cards/j/JunkGolem.java
+++ b/Mage.Sets/src/mage/cards/j/JunkGolem.java
@@ -43,7 +43,7 @@ public final class JunkGolem extends CardImpl {
));
// {1}, Discard a card: Put a +1/+1 counter on Junk Golem.
- Ability ability = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{1}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/j/JununEfreet.java b/Mage.Sets/src/mage/cards/j/JununEfreet.java
index b730654f3e..9387cc5af4 100644
--- a/Mage.Sets/src/mage/cards/j/JununEfreet.java
+++ b/Mage.Sets/src/mage/cards/j/JununEfreet.java
@@ -28,7 +28,7 @@ public final class JununEfreet extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// At the beginning of your upkeep, sacrifice Junun Efreet unless you pay {B}{B}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{B}{B}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{B}{B}")), TargetController.YOU, false));
}
private JununEfreet(final JununEfreet card) {
diff --git a/Mage.Sets/src/mage/cards/j/JushiApprentice.java b/Mage.Sets/src/mage/cards/j/JushiApprentice.java
index 91a2787988..d1b89df3ce 100644
--- a/Mage.Sets/src/mage/cards/j/JushiApprentice.java
+++ b/Mage.Sets/src/mage/cards/j/JushiApprentice.java
@@ -40,7 +40,7 @@ public final class JushiApprentice extends CardImpl {
this.flipCardName = "Tomoya the Revealer";
// {2}{U}, {tap}: Draw a card. If you have nine or more cards in hand, flip Jushi Apprentice.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{2}{U}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new TomoyaTheRevealer()), new CardsInHandCondition(ComparisonType.MORE_THAN, 8),
"If you have nine or more cards in hand, flip {this}"));
@@ -70,7 +70,7 @@ class TomoyaTheRevealer extends TokenImpl {
toughness = new MageInt(3);
// {3}{U}{U},{T} : Target player draws X cards, where X is the number of cards in your hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardTargetEffect(CardsInControllerHandCount.instance), new ManaCostsImpl("{3}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardTargetEffect(CardsInControllerHandCount.instance), new ManaCostsImpl<>("{3}{U}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/j/JustTheWind.java b/Mage.Sets/src/mage/cards/j/JustTheWind.java
index 5700435a65..2daffefc11 100644
--- a/Mage.Sets/src/mage/cards/j/JustTheWind.java
+++ b/Mage.Sets/src/mage/cards/j/JustTheWind.java
@@ -24,7 +24,7 @@ public final class JustTheWind extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Madness {U}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{U}")));
}
private JustTheWind(final JustTheWind card) {
diff --git a/Mage.Sets/src/mage/cards/j/Justice.java b/Mage.Sets/src/mage/cards/j/Justice.java
index 0b2dc989fb..ec0120180f 100644
--- a/Mage.Sets/src/mage/cards/j/Justice.java
+++ b/Mage.Sets/src/mage/cards/j/Justice.java
@@ -33,7 +33,7 @@ public final class Justice extends CardImpl {
// At the beginning of your upkeep, sacrifice Justice unless you pay {W}{W}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{W}{W}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{W}{W}")), TargetController.YOU, false));
// Whenever a red creature or spell deals damage, Justice deals that much damage to that creature's or spell's controller.
this.addAbility(new JusticeTriggeredAbility(new JusticeEffect()));
diff --git a/Mage.Sets/src/mage/cards/k/KabiraVindicator.java b/Mage.Sets/src/mage/cards/k/KabiraVindicator.java
index 3f714f6aa3..6cf173ed87 100644
--- a/Mage.Sets/src/mage/cards/k/KabiraVindicator.java
+++ b/Mage.Sets/src/mage/cards/k/KabiraVindicator.java
@@ -34,7 +34,7 @@ public final class KabiraVindicator extends LevelerCard {
this.power = new MageInt(2);
this.toughness = new MageInt(4);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{2}{W}")));
Abilities abilities1 = new AbilitiesImpl<>();
abilities1.add(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, true)));
diff --git a/Mage.Sets/src/mage/cards/k/KadenasSilencer.java b/Mage.Sets/src/mage/cards/k/KadenasSilencer.java
index 3f3c988ba5..23a99425ae 100644
--- a/Mage.Sets/src/mage/cards/k/KadenasSilencer.java
+++ b/Mage.Sets/src/mage/cards/k/KadenasSilencer.java
@@ -33,7 +33,7 @@ public final class KadenasSilencer extends CardImpl {
this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new KadenasSilencerEffect()));
// Megamorph {1}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{U}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{U}"), true));
}
private KadenasSilencer(final KadenasSilencer card) {
diff --git a/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java b/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java
index a18a2791e9..a7c523a733 100644
--- a/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java
+++ b/Mage.Sets/src/mage/cards/k/KagemaroFirstToSuffer.java
@@ -47,7 +47,7 @@ public final class KagemaroFirstToSuffer extends CardImpl {
Zone.BATTLEFIELD,
new BoostAllEffect(xMinusValue, xMinusValue, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false,
"All creatures get -X/-X until end of turn, where X is the number of cards in your hand"),
- new ManaCostsImpl("{B}")
+ new ManaCostsImpl<>("{B}")
);
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java b/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java
index f30d6267db..3cd51456f0 100644
--- a/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java
+++ b/Mage.Sets/src/mage/cards/k/KahoMinamoHistorian.java
@@ -43,7 +43,7 @@ public final class KahoMinamoHistorian extends CardImpl {
// {X}, {tap}: You may cast a card with converted mana cost X exiled with
// Kaho without paying its mana cost.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new KahoMinamoHistorianCastEffect(), new ManaCostsImpl("{X}"));
+ new KahoMinamoHistorianCastEffect(), new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java b/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java
index dc432bc706..28691102e4 100644
--- a/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java
+++ b/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java
@@ -40,7 +40,7 @@ public final class KalastriaHighborn extends CardImpl {
this.toughness = new MageInt(2);
// Whenever Kalastria Highborn or another Vampire you control dies, you may pay {B}. If you do, target player loses 2 life and you gain 2 life.
- Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new DoIfCostPaid(new LoseGainEffect(), new ManaCostsImpl("{B}")), false, filter);
+ Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(new DoIfCostPaid(new LoseGainEffect(), new ManaCostsImpl<>("{B}")), false, filter);
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java b/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java
index 57b491006e..1967fcd9c9 100644
--- a/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java
+++ b/Mage.Sets/src/mage/cards/k/KalitasBloodchiefOfGhet.java
@@ -35,7 +35,7 @@ public final class KalitasBloodchiefOfGhet extends CardImpl {
this.subtype.add(SubType.WARRIOR);
// {B}{B}{B}, {T}: Destroy target creature. If that creature dies this way, create a black Vampire creature token. Its power is equal to that creature's power and its toughness is equal to that creature's toughness.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KalitasDestroyEffect(), new ManaCostsImpl("{B}{B}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KalitasDestroyEffect(), new ManaCostsImpl<>("{B}{B}{B}"));
ability.addCost(new TapSourceCost());
this.power = new MageInt(5);
this.toughness = new MageInt(5);
diff --git a/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java b/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java
index 03e404c4fb..d4cd03b36d 100644
--- a/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java
+++ b/Mage.Sets/src/mage/cards/k/KalitasTraitorOfGhet.java
@@ -56,7 +56,7 @@ public final class KalitasTraitorOfGhet extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new KalitasTraitorOfGhetEffect()));
// {2}{B}, Sacrifice another Vampire or Zombie: Put two +1/+1 counters on Kalitas, Traitor of Ghet.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(filter)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java b/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java
index a0d1c443b2..015ee53359 100644
--- a/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java
+++ b/Mage.Sets/src/mage/cards/k/KamahlFistOfKrosa.java
@@ -39,14 +39,14 @@ public final class KamahlFistOfKrosa extends CardImpl {
// {G}: Target land becomes a 1/1 creature until end of turn. It's still a land.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BecomesCreatureTargetEffect(new CreatureToken(1, 1), false, true, Duration.EndOfTurn),
- new ManaCostsImpl("{G}"));
+ new ManaCostsImpl<>("{G}"));
ability.addTarget(new TargetLandPermanent());
this.addAbility(ability);
// {2}{G}{G}{G}: Creatures you control get +3/+3 and gain trample until end of turn.
SimpleActivatedAbility boostAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostControlledEffect(3, 3, Duration.EndOfTurn),
- new ManaCostsImpl("{2}{G}{G}{G}"));
+ new ManaCostsImpl<>("{2}{G}{G}{G}"));
boostAbility.addEffect(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES));
this.addAbility(boostAbility);
}
diff --git a/Mage.Sets/src/mage/cards/k/KamahlHeartOfKrosa.java b/Mage.Sets/src/mage/cards/k/KamahlHeartOfKrosa.java
index 0cbaf39dca..6bfc531b67 100644
--- a/Mage.Sets/src/mage/cards/k/KamahlHeartOfKrosa.java
+++ b/Mage.Sets/src/mage/cards/k/KamahlHeartOfKrosa.java
@@ -50,7 +50,7 @@ public final class KamahlHeartOfKrosa extends CardImpl {
.withAbility(IndestructibleAbility.getInstance())
.withAbility(HasteAbility.getInstance()),
false, true, Duration.EndOfTurn
- ), new ManaCostsImpl("{1}{G}"));
+ ), new ManaCostsImpl<>("{1}{G}"));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KaminoCloningFacility.java b/Mage.Sets/src/mage/cards/k/KaminoCloningFacility.java
index 8218fd426a..2420456d31 100644
--- a/Mage.Sets/src/mage/cards/k/KaminoCloningFacility.java
+++ b/Mage.Sets/src/mage/cards/k/KaminoCloningFacility.java
@@ -40,7 +40,7 @@ public final class KaminoCloningFacility extends CardImpl {
this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new ConditionalSpellManaBuilder(FILTER), true));
// {5}, {T}: Create a 1/1 white Trooper creature tokens.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new TrooperToken(), 1), new ManaCostsImpl("{5}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new TrooperToken(), 1), new ManaCostsImpl<>("{5}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KarganDragonlord.java b/Mage.Sets/src/mage/cards/k/KarganDragonlord.java
index 5daf7048d9..b3ba0f32f4 100644
--- a/Mage.Sets/src/mage/cards/k/KarganDragonlord.java
+++ b/Mage.Sets/src/mage/cards/k/KarganDragonlord.java
@@ -35,7 +35,7 @@ public final class KarganDragonlord extends LevelerCard {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{R}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{R}")));
Abilities abilities1 = new AbilitiesImpl<>();
abilities1.add(FlyingAbility.getInstance());
@@ -43,7 +43,7 @@ public final class KarganDragonlord extends LevelerCard {
Abilities abilities2 = new AbilitiesImpl<>();
abilities2.add(FlyingAbility.getInstance());
abilities2.add(TrampleAbility.getInstance());
- abilities2.add(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ abilities2.add(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
this.addAbilities(LevelerCardBuilder.construct(
new LevelerCardBuilder.LevelAbility(4, 7, abilities1, 4, 4),
diff --git a/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java b/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java
index 7e8ee1eda9..c325d4ba60 100644
--- a/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java
+++ b/Mage.Sets/src/mage/cards/k/KarlovOfTheGhostCouncil.java
@@ -37,7 +37,7 @@ public final class KarlovOfTheGhostCouncil extends CardImpl {
this.addAbility(new GainLifeControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), false));
// {W}{B}, Remove six +1/+1 counters from Karlov of the Ghost Council: Exile target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{W}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl<>("{W}{B}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(6)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java b/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java
index a121a156d0..f2fcff6dc4 100644
--- a/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java
+++ b/Mage.Sets/src/mage/cards/k/KarnSilverGolem.java
@@ -41,7 +41,7 @@ public final class KarnSilverGolem extends CardImpl {
this.addAbility(new BlocksOrBecomesBlockedSourceTriggeredAbility(new BoostSourceEffect(-4, +4, Duration.EndOfTurn), false));
// {1}: Target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KarnSilverGolemEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KarnSilverGolemEffect(), new ManaCostsImpl<>("{1}"));
ability.addTarget(new TargetPermanent(filterNonCreature));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KaronasZealot.java b/Mage.Sets/src/mage/cards/k/KaronasZealot.java
index 5432c1d6b9..3bcea86f57 100644
--- a/Mage.Sets/src/mage/cards/k/KaronasZealot.java
+++ b/Mage.Sets/src/mage/cards/k/KaronasZealot.java
@@ -30,7 +30,7 @@ public final class KaronasZealot extends CardImpl {
this.toughness = new MageInt(5);
// Morph {3}{W}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{W}{W}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{W}{W}")));
// When Karona's Zealot is turned face up, all damage that would be dealt to it this turn is dealt to target creature instead.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new RedirectDamageFromSourceToTargetEffect(Duration.EndOfTurn, Integer.MAX_VALUE, ACCORDING_DURATION)
diff --git a/Mage.Sets/src/mage/cards/k/KashiTribeReaver.java b/Mage.Sets/src/mage/cards/k/KashiTribeReaver.java
index 647f25f55f..cd3b4f8efb 100644
--- a/Mage.Sets/src/mage/cards/k/KashiTribeReaver.java
+++ b/Mage.Sets/src/mage/cards/k/KashiTribeReaver.java
@@ -36,7 +36,7 @@ public final class KashiTribeReaver extends CardImpl {
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("and it"));
this.addAbility(ability);
// {1}{G}: Regenerate Kashi-Tribe Reaver.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{G}")));
}
private KashiTribeReaver(final KashiTribeReaver card) {
diff --git a/Mage.Sets/src/mage/cards/k/KathariBomber.java b/Mage.Sets/src/mage/cards/k/KathariBomber.java
index fb766421fc..0a3ac06965 100644
--- a/Mage.Sets/src/mage/cards/k/KathariBomber.java
+++ b/Mage.Sets/src/mage/cards/k/KathariBomber.java
@@ -39,7 +39,7 @@ public final class KathariBomber extends CardImpl {
this.addAbility(ability);
// Unearth {3}{B}{R}
- this.addAbility(new UnearthAbility(new ManaCostsImpl("{3}{B}{R}")));
+ this.addAbility(new UnearthAbility(new ManaCostsImpl<>("{3}{B}{R}")));
}
private KathariBomber(final KathariBomber card) {
diff --git a/Mage.Sets/src/mage/cards/k/KathariRemnant.java b/Mage.Sets/src/mage/cards/k/KathariRemnant.java
index b98985540c..384467caf5 100644
--- a/Mage.Sets/src/mage/cards/k/KathariRemnant.java
+++ b/Mage.Sets/src/mage/cards/k/KathariRemnant.java
@@ -30,7 +30,7 @@ public final class KathariRemnant extends CardImpl {
this.power = new MageInt(0);
this.toughness = new MageInt(1);
this.addAbility(FlyingAbility.getInstance());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
this.addAbility(new CascadeAbility());
}
diff --git a/Mage.Sets/src/mage/cards/k/KathariScreecher.java b/Mage.Sets/src/mage/cards/k/KathariScreecher.java
index 2a6fdcf491..ea3633e376 100644
--- a/Mage.Sets/src/mage/cards/k/KathariScreecher.java
+++ b/Mage.Sets/src/mage/cards/k/KathariScreecher.java
@@ -30,7 +30,7 @@ public final class KathariScreecher extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Unearth {2}{U} ({2}{U}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
- this.addAbility(new UnearthAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new UnearthAbility(new ManaCostsImpl<>("{2}{U}")));
}
public KathariScreecher (final KathariScreecher card) {
diff --git a/Mage.Sets/src/mage/cards/k/KavuChameleon.java b/Mage.Sets/src/mage/cards/k/KavuChameleon.java
index d8d321fd4c..ee6c6dc426 100644
--- a/Mage.Sets/src/mage/cards/k/KavuChameleon.java
+++ b/Mage.Sets/src/mage/cards/k/KavuChameleon.java
@@ -31,7 +31,7 @@ public final class KavuChameleon extends CardImpl {
// Kavu Chameleon can't be countered.
this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect()));
// {G}: Kavu Chameleon becomes the color of your choice until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesColorSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesColorSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{G}")));
}
private KavuChameleon(final KavuChameleon card) {
diff --git a/Mage.Sets/src/mage/cards/k/KazanduTuskcaller.java b/Mage.Sets/src/mage/cards/k/KazanduTuskcaller.java
index d5f2e8ed38..9281a06e46 100644
--- a/Mage.Sets/src/mage/cards/k/KazanduTuskcaller.java
+++ b/Mage.Sets/src/mage/cards/k/KazanduTuskcaller.java
@@ -33,7 +33,7 @@ public final class KazanduTuskcaller extends LevelerCard {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{1}{G}")));
Abilities abilities1 = new AbilitiesImpl<>();
abilities1.add(new SimpleActivatedAbility(Zone.BATTLEFIELD,
diff --git a/Mage.Sets/src/mage/cards/k/KazarovSengirPureblood.java b/Mage.Sets/src/mage/cards/k/KazarovSengirPureblood.java
index bb100be098..18673b9e10 100644
--- a/Mage.Sets/src/mage/cards/k/KazarovSengirPureblood.java
+++ b/Mage.Sets/src/mage/cards/k/KazarovSengirPureblood.java
@@ -43,7 +43,7 @@ public final class KazarovSengirPureblood extends CardImpl {
this.addAbility(new KazarovSengirPurebloodTriggeredAbility());
// {3}{R}: Kazarov deals 2 damage to target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{3}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{3}{R}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KazuulsTollCollector.java b/Mage.Sets/src/mage/cards/k/KazuulsTollCollector.java
index 553ca2101d..292646f1cb 100644
--- a/Mage.Sets/src/mage/cards/k/KazuulsTollCollector.java
+++ b/Mage.Sets/src/mage/cards/k/KazuulsTollCollector.java
@@ -38,7 +38,7 @@ public final class KazuulsTollCollector extends CardImpl {
this.toughness = new MageInt(2);
// {0}: Attach target Equipment you control to Kazuul's Toll Collector. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new KazuulsTollCollectorEffect(), new ManaCostsImpl("{0}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new KazuulsTollCollectorEffect(), new ManaCostsImpl<>("{0}"));
ability.addTarget(new TargetControlledPermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KederektLeviathan.java b/Mage.Sets/src/mage/cards/k/KederektLeviathan.java
index e9912a5ebf..fdf320bbbb 100644
--- a/Mage.Sets/src/mage/cards/k/KederektLeviathan.java
+++ b/Mage.Sets/src/mage/cards/k/KederektLeviathan.java
@@ -35,7 +35,7 @@ public final class KederektLeviathan extends CardImpl {
// When Kederekt Leviathan enters the battlefield, return all other nonland permanents to their owners' hands.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandFromBattlefieldAllEffect(filter)));
// Unearth {6}{U}
- this.addAbility(new UnearthAbility(new ManaCostsImpl("{6}{U}")));
+ this.addAbility(new UnearthAbility(new ManaCostsImpl<>("{6}{U}")));
}
private KederektLeviathan(final KederektLeviathan card) {
diff --git a/Mage.Sets/src/mage/cards/k/KeenGlidemaster.java b/Mage.Sets/src/mage/cards/k/KeenGlidemaster.java
index 9205f83928..9c7a6626d8 100644
--- a/Mage.Sets/src/mage/cards/k/KeenGlidemaster.java
+++ b/Mage.Sets/src/mage/cards/k/KeenGlidemaster.java
@@ -31,7 +31,7 @@ public final class KeenGlidemaster extends CardImpl {
// {2}{U}: Target creature gains flying until end of turn.
Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
FlyingAbility.getInstance(), Duration.EndOfTurn
- ), new ManaCostsImpl("{2}{U}"));
+ ), new ManaCostsImpl<>("{2}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KeeneyeAven.java b/Mage.Sets/src/mage/cards/k/KeeneyeAven.java
index dc6c2b5f14..2db1d7642f 100644
--- a/Mage.Sets/src/mage/cards/k/KeeneyeAven.java
+++ b/Mage.Sets/src/mage/cards/k/KeeneyeAven.java
@@ -28,7 +28,7 @@ public final class KeeneyeAven extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private KeeneyeAven(final KeeneyeAven card) {
diff --git a/Mage.Sets/src/mage/cards/k/KeensightMentor.java b/Mage.Sets/src/mage/cards/k/KeensightMentor.java
index d43a187a7c..81ac13925f 100644
--- a/Mage.Sets/src/mage/cards/k/KeensightMentor.java
+++ b/Mage.Sets/src/mage/cards/k/KeensightMentor.java
@@ -54,7 +54,7 @@ public final class KeensightMentor extends CardImpl {
// {1}{W}, {T}: Put a +1/+1 counter on each creature you control with vigilance.
ability = new SimpleActivatedAbility(
- new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter2), new ManaCostsImpl("{1}{W}")
+ new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter2), new ManaCostsImpl<>("{1}{W}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfKookus.java b/Mage.Sets/src/mage/cards/k/KeeperOfKookus.java
index 2c2dfb16a2..367bd16c35 100644
--- a/Mage.Sets/src/mage/cards/k/KeeperOfKookus.java
+++ b/Mage.Sets/src/mage/cards/k/KeeperOfKookus.java
@@ -30,7 +30,7 @@ public final class KeeperOfKookus extends CardImpl {
this.toughness = new MageInt(1);
// {R}: Keeper of Kookus gains protection from red until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(ProtectionAbility.from(ObjectColor.RED), Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(ProtectionAbility.from(ObjectColor.RED), Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfTheBeasts.java b/Mage.Sets/src/mage/cards/k/KeeperOfTheBeasts.java
index 75829c8c4e..09c8fc4954 100644
--- a/Mage.Sets/src/mage/cards/k/KeeperOfTheBeasts.java
+++ b/Mage.Sets/src/mage/cards/k/KeeperOfTheBeasts.java
@@ -37,7 +37,7 @@ public final class KeeperOfTheBeasts extends CardImpl {
// {G}, {tap}: Choose target opponent who controlled more creatures than you did as you activated this ability. Put a 2/2 green Beast creature token onto the battlefield.
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new BeastToken4()).setText("Choose target opponent who controlled more creatures than you did as you activated this ability. Create a 2/2 green Beast creature token."),
- new ManaCostsImpl("{G}"));
+ new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new KeeperOfTheBeastsTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfTheDead.java b/Mage.Sets/src/mage/cards/k/KeeperOfTheDead.java
index f7feb5dabf..fad57ed53b 100644
--- a/Mage.Sets/src/mage/cards/k/KeeperOfTheDead.java
+++ b/Mage.Sets/src/mage/cards/k/KeeperOfTheDead.java
@@ -50,7 +50,7 @@ public final class KeeperOfTheDead extends CardImpl {
// {B}, {T}: Choose target opponent who had at least two fewer creature cards in their graveyard than you did as you activated this ability. Destroy target nonblack creature they control.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KeeperOfTheDeadEffect(), new TapSourceCost());
- ability.addCost(new ManaCostsImpl("{B}"));
+ ability.addCost(new ManaCostsImpl<>("{B}"));
ability.addTarget(new TargetPlayer(1, 1, false, filter));
ability.addTarget(new KeeperOfTheDeadCreatureTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfTheFlame.java b/Mage.Sets/src/mage/cards/k/KeeperOfTheFlame.java
index 6c1d1015ae..5db58496ea 100644
--- a/Mage.Sets/src/mage/cards/k/KeeperOfTheFlame.java
+++ b/Mage.Sets/src/mage/cards/k/KeeperOfTheFlame.java
@@ -41,7 +41,7 @@ public final class KeeperOfTheFlame extends CardImpl {
// {R}, {tap}: Choose target opponent who had more life than you did as you activated this ability. Keeper of the Flame deals 2 damage to that player.
Ability ability = new SimpleActivatedAbility(
new DamageTargetEffect(2).setText("Choose target opponent who had more life than you did as you activated this ability. {this} deals 2 damage to that player"),
- new ManaCostsImpl("{R}"));
+ new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer(1, 1, false, filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfTheLight.java b/Mage.Sets/src/mage/cards/k/KeeperOfTheLight.java
index 16797d55e8..f1255734ab 100644
--- a/Mage.Sets/src/mage/cards/k/KeeperOfTheLight.java
+++ b/Mage.Sets/src/mage/cards/k/KeeperOfTheLight.java
@@ -38,7 +38,7 @@ public final class KeeperOfTheLight extends CardImpl {
// {W}, {T}: Choose target opponent who had more life than you did as you activated this ability. You gain 3 life.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GainLifeEffect(3).setText("Choose target opponent who had more life than you did as you activated this ability. You gain 3 life."),
- new ManaCostsImpl("{W}"));
+ new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new KeeperOfTheLightTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KeeperOfTheMind.java b/Mage.Sets/src/mage/cards/k/KeeperOfTheMind.java
index 3e943da727..887053918a 100644
--- a/Mage.Sets/src/mage/cards/k/KeeperOfTheMind.java
+++ b/Mage.Sets/src/mage/cards/k/KeeperOfTheMind.java
@@ -64,7 +64,7 @@ public class KeeperOfTheMind extends CardImpl {
// {U}, {tap}: Choose target opponent who had at least two more cards in hand than you did as you activated this ability. Draw a card.
Effect effect = new DrawCardSourceControllerEffect(1);
effect.setText("Choose target opponent who had at least two more cards in hand than you did as you activated this ability. Draw a card.");
- Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{U}"));
ability.addCost(new TapSourceCost());
ability.setTargetAdjuster(KeeperOfTheMindAdjuster.instance);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java b/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java
index 8587996f80..84c1208bc8 100644
--- a/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java
+++ b/Mage.Sets/src/mage/cards/k/KefnetTheMindful.java
@@ -44,7 +44,7 @@ public final class KefnetTheMindful extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new KefnetTheMindfulRestrictionEffect()));
// {3}{U}: Draw a card, then you may return a land you control to its owner's hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KefnetTheMindfulEffect(), new ManaCostsImpl("{3}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KefnetTheMindfulEffect(), new ManaCostsImpl<>("{3}{U}"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KeldonHalberdier.java b/Mage.Sets/src/mage/cards/k/KeldonHalberdier.java
index 314d1506cc..57f201da59 100644
--- a/Mage.Sets/src/mage/cards/k/KeldonHalberdier.java
+++ b/Mage.Sets/src/mage/cards/k/KeldonHalberdier.java
@@ -27,7 +27,7 @@ public final class KeldonHalberdier extends CardImpl {
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// Suspend 4-{R}
- this.addAbility(new SuspendAbility(4, new ManaCostsImpl("{R}"), this));
+ this.addAbility(new SuspendAbility(4, new ManaCostsImpl<>("{R}"), this));
}
private KeldonHalberdier(final KeldonHalberdier card) {
diff --git a/Mage.Sets/src/mage/cards/k/KeldonMantle.java b/Mage.Sets/src/mage/cards/k/KeldonMantle.java
index 967b25d135..03f91ae2b6 100644
--- a/Mage.Sets/src/mage/cards/k/KeldonMantle.java
+++ b/Mage.Sets/src/mage/cards/k/KeldonMantle.java
@@ -39,13 +39,13 @@ public final class KeldonMantle extends CardImpl {
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
// {B}: Regenerate enchanted creature.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAttachedEffect(AttachmentType.AURA), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAttachedEffect(AttachmentType.AURA), new ManaCostsImpl<>("{B}")));
// {R}: Enchanted creature gets +1/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{R}")));
+ new ManaCostsImpl<>("{R}")));
// {G}: Enchanted creature gains trample until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(TrampleAbility.getInstance(),
- AttachmentType.AURA, Duration.EndOfTurn), new ManaCostsImpl("{G}")));
+ AttachmentType.AURA, Duration.EndOfTurn), new ManaCostsImpl<>("{G}")));
}
private KeldonMantle(final KeldonMantle card) {
diff --git a/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java b/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java
index 879da84b31..d636b999fd 100644
--- a/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java
+++ b/Mage.Sets/src/mage/cards/k/KeldonNecropolis.java
@@ -31,7 +31,7 @@ public final class KeldonNecropolis extends CardImpl {
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {4}{R}, {T}, Sacrifice a creature: Keldon Necropolis deals 2 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl(new ManaCostsImpl("{4}{R}")));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{4}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/k/KelsinkoRanger.java b/Mage.Sets/src/mage/cards/k/KelsinkoRanger.java
index 0e584464b1..9f4732b36e 100644
--- a/Mage.Sets/src/mage/cards/k/KelsinkoRanger.java
+++ b/Mage.Sets/src/mage/cards/k/KelsinkoRanger.java
@@ -43,7 +43,7 @@ public final class KelsinkoRanger extends CardImpl {
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{1}{W}")
+ new ManaCostsImpl<>("{1}{W}")
);
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KenrithTheReturnedKing.java b/Mage.Sets/src/mage/cards/k/KenrithTheReturnedKing.java
index c1b780cf35..66a717c00b 100644
--- a/Mage.Sets/src/mage/cards/k/KenrithTheReturnedKing.java
+++ b/Mage.Sets/src/mage/cards/k/KenrithTheReturnedKing.java
@@ -43,7 +43,7 @@ public final class KenrithTheReturnedKing extends CardImpl {
Ability ability = new SimpleActivatedAbility(new GainAbilityAllEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_PERMANENT_CREATURE
- ).setText("all creatures gain trample"), new ManaCostsImpl("{R}"));
+ ).setText("all creatures gain trample"), new ManaCostsImpl<>("{R}"));
ability.addEffect(new GainAbilityAllEffect(
HasteAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_PERMANENT_CREATURE
@@ -52,23 +52,23 @@ public final class KenrithTheReturnedKing extends CardImpl {
// {1}{G}: Put a +1/+1 counter on target creature.
ability = new SimpleActivatedAbility(
- new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{1}{G}")
+ new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{1}{G}")
);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// {2}{W}: Target player gains 5 life.
- ability = new SimpleActivatedAbility(new GainLifeTargetEffect(5), new ManaCostsImpl("{2}{W}"));
+ ability = new SimpleActivatedAbility(new GainLifeTargetEffect(5), new ManaCostsImpl<>("{2}{W}"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
// {3}{U}: Target player draws a card.
- ability = new SimpleActivatedAbility(new DrawCardTargetEffect(1), new ManaCostsImpl("{3}{U}"));
+ ability = new SimpleActivatedAbility(new DrawCardTargetEffect(1), new ManaCostsImpl<>("{3}{U}"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
// {4}{B}: Put target creature card from a graveyard onto the battlefield under its owner's control.
- ability = new SimpleActivatedAbility(new KenrithTheReturnedKingEffect(), new ManaCostsImpl("{4}{B}"));
+ ability = new SimpleActivatedAbility(new KenrithTheReturnedKingEffect(), new ManaCostsImpl<>("{4}{B}"));
ability.addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_CREATURE));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KessigProwler.java b/Mage.Sets/src/mage/cards/k/KessigProwler.java
index 93a7767ae4..061f2967ed 100644
--- a/Mage.Sets/src/mage/cards/k/KessigProwler.java
+++ b/Mage.Sets/src/mage/cards/k/KessigProwler.java
@@ -30,7 +30,7 @@ public final class KessigProwler extends CardImpl {
// {4}{G}: Transform Kessig Prowler.
this.addAbility(new TransformAbility());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl("{4}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(), new ManaCostsImpl<>("{4}{G}")));
}
private KessigProwler(final KessigProwler card) {
diff --git a/Mage.Sets/src/mage/cards/k/KessigWolf.java b/Mage.Sets/src/mage/cards/k/KessigWolf.java
index 5b376b1f45..e9f169879e 100644
--- a/Mage.Sets/src/mage/cards/k/KessigWolf.java
+++ b/Mage.Sets/src/mage/cards/k/KessigWolf.java
@@ -30,7 +30,7 @@ public final class KessigWolf extends CardImpl {
// {1}{R}: Kessig Wolf gains first strike until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{1}{R}")));
+ new ManaCostsImpl<>("{1}{R}")));
}
private KessigWolf(final KessigWolf card) {
diff --git a/Mage.Sets/src/mage/cards/k/KessigWolfRun.java b/Mage.Sets/src/mage/cards/k/KessigWolfRun.java
index 22ccd36344..ef5f2241c7 100644
--- a/Mage.Sets/src/mage/cards/k/KessigWolfRun.java
+++ b/Mage.Sets/src/mage/cards/k/KessigWolfRun.java
@@ -32,7 +32,7 @@ public final class KessigWolfRun extends CardImpl {
// {X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn.
Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn
- ).setText("Target creature gets +X/+0"), new ManaCostsImpl("{X}{R}{G}"));
+ ).setText("Target creature gets +X/+0"), new ManaCostsImpl<>("{X}{R}{G}"));
ability.addEffect(new BoostTargetEffect(
ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn
).setText("and gains trample until end of turn"));
diff --git a/Mage.Sets/src/mage/cards/k/KetriaCrystal.java b/Mage.Sets/src/mage/cards/k/KetriaCrystal.java
index 6231879ede..b8abbf7bac 100644
--- a/Mage.Sets/src/mage/cards/k/KetriaCrystal.java
+++ b/Mage.Sets/src/mage/cards/k/KetriaCrystal.java
@@ -25,7 +25,7 @@ public final class KetriaCrystal extends CardImpl {
this.addAbility(new RedManaAbility());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private KetriaCrystal(final KetriaCrystal card) {
diff --git a/Mage.Sets/src/mage/cards/k/KherKeep.java b/Mage.Sets/src/mage/cards/k/KherKeep.java
index 70b8597d9b..ee908a9412 100644
--- a/Mage.Sets/src/mage/cards/k/KherKeep.java
+++ b/Mage.Sets/src/mage/cards/k/KherKeep.java
@@ -28,7 +28,7 @@ public final class KherKeep extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {1}{R}, {T}: Create a 0/1 red Kobold creature token named Kobolds of Kher Keep.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KherKeepKoboldToken()), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KherKeepKoboldToken()), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KheruLichLord.java b/Mage.Sets/src/mage/cards/k/KheruLichLord.java
index adbacf7cae..cc11a9e14f 100644
--- a/Mage.Sets/src/mage/cards/k/KheruLichLord.java
+++ b/Mage.Sets/src/mage/cards/k/KheruLichLord.java
@@ -51,7 +51,7 @@ public final class KheruLichLord extends CardImpl {
// At the beginning of your upkeep, you may pay {2}{B}. If you do, return a creature card at random from your graveyard to the battlefield. It gains flying, trample, and haste. Exile that card at the beginning of the next end step. If that card would leave the battlefield, exile it instead of putting it anywhere else.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD,
- new DoIfCostPaid(new KheruLichLordEffect(), new ManaCostsImpl("{2}{B}"), "Return creature card from your graveyard?"), TargetController.YOU, false));
+ new DoIfCostPaid(new KheruLichLordEffect(), new ManaCostsImpl<>("{2}{B}"), "Return creature card from your graveyard?"), TargetController.YOU, false));
}
private KheruLichLord(final KheruLichLord card) {
diff --git a/Mage.Sets/src/mage/cards/k/KiAdiMundi.java b/Mage.Sets/src/mage/cards/k/KiAdiMundi.java
index 4c57b9b0bd..5ce3521b8e 100644
--- a/Mage.Sets/src/mage/cards/k/KiAdiMundi.java
+++ b/Mage.Sets/src/mage/cards/k/KiAdiMundi.java
@@ -42,7 +42,7 @@ public final class KiAdiMundi extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter)));
// Meditate {1}{G}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{G}")));
}
private KiAdiMundi(final KiAdiMundi card) {
diff --git a/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java b/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java
index a636474584..edcf2e243b 100644
--- a/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java
+++ b/Mage.Sets/src/mage/cards/k/KianneDeanOfSubstance.java
@@ -51,7 +51,7 @@ public final class KianneDeanOfSubstance extends ModalDoubleFacesCard {
this.getLeftHalfCard().addAbility(new SimpleActivatedAbility(FractalToken.getEffect(
KianneDeanOfSubstanceValue.instance, "Put a +1/+1 counter on it for each different mana value " +
"among nonland cards you own in exile with study counters on them"
- ), new ManaCostsImpl("{4}{G}")).addHint(KianneDeanOfSubstanceHint.instance));
+ ), new ManaCostsImpl<>("{4}{G}")).addHint(KianneDeanOfSubstanceHint.instance));
// 2.
// Imbraham, Dean of Theory
@@ -64,7 +64,7 @@ public final class KianneDeanOfSubstance extends ModalDoubleFacesCard {
// {X}{U}{U}, {T}: Exile the top X cards of your library and put a study counter on each of them. Then you may put a card you own in exile with a study counter on it into your hand.
Ability ability = new SimpleActivatedAbility(
- new ImbrahamDeanOfTheoryEffect(), new ManaCostsImpl("{X}{U}{U}")
+ new ImbrahamDeanOfTheoryEffect(), new ManaCostsImpl<>("{X}{U}{U}")
);
ability.addCost(new TapSourceCost());
this.getRightHalfCard().addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java b/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java
index 79672587f5..ad86d767f9 100644
--- a/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java
+++ b/Mage.Sets/src/mage/cards/k/KikuNightsFlower.java
@@ -40,7 +40,7 @@ public final class KikuNightsFlower extends CardImpl {
ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new KikuNightsFlowerEffect(),
- new ManaCostsImpl("{2}{B}{B}")
+ new ManaCostsImpl<>("{2}{B}{B}")
);
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
diff --git a/Mage.Sets/src/mage/cards/k/KillSuitCultist.java b/Mage.Sets/src/mage/cards/k/KillSuitCultist.java
index 00dfe7fd27..5dfbf57e21 100644
--- a/Mage.Sets/src/mage/cards/k/KillSuitCultist.java
+++ b/Mage.Sets/src/mage/cards/k/KillSuitCultist.java
@@ -38,7 +38,7 @@ public final class KillSuitCultist extends CardImpl {
// Kill-Suit Cultist attacks each turn if able.
this.addAbility(new AttacksEachCombatStaticAbility());
// {B}, Sacrifice Kill-Suit Cultist: The next time damage would be dealt to target creature this turn, destroy that creature instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KillSuitCultistEffect(), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KillSuitCultistEffect(), new ManaCostsImpl<>("{B}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KillerBees.java b/Mage.Sets/src/mage/cards/k/KillerBees.java
index 1e3e39e38b..1f0b5eab33 100644
--- a/Mage.Sets/src/mage/cards/k/KillerBees.java
+++ b/Mage.Sets/src/mage/cards/k/KillerBees.java
@@ -30,7 +30,7 @@ public final class KillerBees extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {G}: Killer Bees gets +1/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{G}")));
}
diff --git a/Mage.Sets/src/mage/cards/k/KinTreeWarden.java b/Mage.Sets/src/mage/cards/k/KinTreeWarden.java
index 916e1d0ccb..cd4ad65358 100644
--- a/Mage.Sets/src/mage/cards/k/KinTreeWarden.java
+++ b/Mage.Sets/src/mage/cards/k/KinTreeWarden.java
@@ -31,7 +31,7 @@ public final class KinTreeWarden extends CardImpl {
// {2}: Regenerate Kin-Tree Warden
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new GenericManaCost(2)));
// Morph {G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{G}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{G}")));
}
private KinTreeWarden(final KinTreeWarden card) {
diff --git a/Mage.Sets/src/mage/cards/k/KindredBoon.java b/Mage.Sets/src/mage/cards/k/KindredBoon.java
index 6406cccf32..8fa63f1919 100644
--- a/Mage.Sets/src/mage/cards/k/KindredBoon.java
+++ b/Mage.Sets/src/mage/cards/k/KindredBoon.java
@@ -42,7 +42,7 @@ public final class KindredBoon extends CardImpl {
// {1}{W}: Put a divinity counter on target creature you control of the chosen type.
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature you control of the chosen type");
filter.add(ChosenSubtypePredicate.TRUE);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.DIVINITY.createInstance()), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.DIVINITY.createInstance()), new ManaCostsImpl<>("{1}{W}"));
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KingCrab.java b/Mage.Sets/src/mage/cards/k/KingCrab.java
index 0ab9f2298a..293724f66a 100644
--- a/Mage.Sets/src/mage/cards/k/KingCrab.java
+++ b/Mage.Sets/src/mage/cards/k/KingCrab.java
@@ -38,7 +38,7 @@ public final class KingCrab extends CardImpl {
this.toughness = new MageInt(5);
// {1}{U}, {tap}: Put target green creature on top of its owner's library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl<>("{1}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java b/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java
index 267302a2d7..66fd0b0792 100644
--- a/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java
+++ b/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java
@@ -52,7 +52,7 @@ public final class KinnanBonderProdigy extends CardImpl {
// Put the rest on the bottom of your library in a random order.
this.addAbility(new SimpleActivatedAbility(
new LookLibraryAndPickControllerEffect(5, 1, filter2, PutCards.BATTLEFIELD, PutCards.BOTTOM_RANDOM),
- new ManaCostsImpl("{5}{G}{U}")));
+ new ManaCostsImpl<>("{5}{G}{U}")));
}
private KinnanBonderProdigy(final KinnanBonderProdigy card) {
diff --git a/Mage.Sets/src/mage/cards/k/KirdChieftain.java b/Mage.Sets/src/mage/cards/k/KirdChieftain.java
index 6c1f9104bb..7886ed3990 100644
--- a/Mage.Sets/src/mage/cards/k/KirdChieftain.java
+++ b/Mage.Sets/src/mage/cards/k/KirdChieftain.java
@@ -52,7 +52,7 @@ public final class KirdChieftain extends CardImpl {
// {4}{G}: Target creature gets +2/+2 and gains trample until end of turn.
Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn);
effect.setText("Target creature gets +2/+2");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{4}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{4}{G}"));
effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains trample until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/k/KithkinShielddare.java b/Mage.Sets/src/mage/cards/k/KithkinShielddare.java
index f8d5d485b8..12b044c448 100644
--- a/Mage.Sets/src/mage/cards/k/KithkinShielddare.java
+++ b/Mage.Sets/src/mage/cards/k/KithkinShielddare.java
@@ -36,7 +36,7 @@ public final class KithkinShielddare extends CardImpl {
// {W}, {tap}: Target blocking creature gets +2/+2 until end of turn.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostTargetEffect(2, 2, Duration.EndOfTurn),
- new ManaCostsImpl("{W}"));
+ new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KithkinSpellduster.java b/Mage.Sets/src/mage/cards/k/KithkinSpellduster.java
index 7b64afd77d..965390d9c0 100644
--- a/Mage.Sets/src/mage/cards/k/KithkinSpellduster.java
+++ b/Mage.Sets/src/mage/cards/k/KithkinSpellduster.java
@@ -34,7 +34,7 @@ public final class KithkinSpellduster extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {1}{W}, Sacrifice Kithkin Spellduster: Destroy target enchantment.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{W}"));
ability.addTarget(new TargetEnchantmentPermanent());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KitsuneLoreweaver.java b/Mage.Sets/src/mage/cards/k/KitsuneLoreweaver.java
index 75adbf0a36..5a04faa876 100644
--- a/Mage.Sets/src/mage/cards/k/KitsuneLoreweaver.java
+++ b/Mage.Sets/src/mage/cards/k/KitsuneLoreweaver.java
@@ -32,7 +32,7 @@ public final class KitsuneLoreweaver extends CardImpl {
// {1}{W}: Kitsune Loreweaver gets +0/+X until end of turn, where X is the number of cards in your hand.
Effect effect = new BoostSourceEffect(StaticValue.get(0), CardsInControllerHandCount.instance, Duration.EndOfTurn, true);
effect.setText("{this} gets +0/+X until end of turn, where X is the number of cards in your hand");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{W}")));
}
private KitsuneLoreweaver(final KitsuneLoreweaver card) {
diff --git a/Mage.Sets/src/mage/cards/k/KjeldoranDead.java b/Mage.Sets/src/mage/cards/k/KjeldoranDead.java
index e23899618f..aed3b5e6dc 100644
--- a/Mage.Sets/src/mage/cards/k/KjeldoranDead.java
+++ b/Mage.Sets/src/mage/cards/k/KjeldoranDead.java
@@ -33,7 +33,7 @@ public final class KjeldoranDead extends CardImpl {
Ability ability = new EntersBattlefieldTriggeredAbility(new SacrificeControllerEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, null));
this.addAbility(ability);
// {B}: Regenerate Kjeldoran Dead.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
}
private KjeldoranDead(final KjeldoranDead card) {
diff --git a/Mage.Sets/src/mage/cards/k/KjeldoranJavelineer.java b/Mage.Sets/src/mage/cards/k/KjeldoranJavelineer.java
index 2664fad36d..3a190ba15a 100644
--- a/Mage.Sets/src/mage/cards/k/KjeldoranJavelineer.java
+++ b/Mage.Sets/src/mage/cards/k/KjeldoranJavelineer.java
@@ -33,7 +33,7 @@ public final class KjeldoranJavelineer extends CardImpl {
this.toughness = new MageInt(2);
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// {T}: Kjeldoran Javelineer deals damage equal to the number of age counters on it to target attacking or blocking creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
diff --git a/Mage.Sets/src/mage/cards/k/KjeldoranKnight.java b/Mage.Sets/src/mage/cards/k/KjeldoranKnight.java
index 863b7a2962..6eb36d413c 100644
--- a/Mage.Sets/src/mage/cards/k/KjeldoranKnight.java
+++ b/Mage.Sets/src/mage/cards/k/KjeldoranKnight.java
@@ -32,10 +32,10 @@ public final class KjeldoranKnight extends CardImpl {
this.addAbility(BandingAbility.getInstance());
// {1}{W}: Kjeldoran Knight gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}")));
// {W}{W}: Kjeldoran Knight gets +0/+2 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 2, Duration.EndOfTurn), new ManaCostsImpl("{W}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{W}{W}")));
}
private KjeldoranKnight(final KjeldoranKnight card) {
diff --git a/Mage.Sets/src/mage/cards/k/KjeldoranOutpost.java b/Mage.Sets/src/mage/cards/k/KjeldoranOutpost.java
index 28b217edf6..62881e3666 100644
--- a/Mage.Sets/src/mage/cards/k/KjeldoranOutpost.java
+++ b/Mage.Sets/src/mage/cards/k/KjeldoranOutpost.java
@@ -40,7 +40,7 @@ public final class KjeldoranOutpost extends CardImpl {
// {tap}: Add {W}.
this.addAbility(new WhiteManaAbility());
// {1}{W}, {tap}: Create a 1/1 white Soldier creature token.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierToken()), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierToken()), new ManaCostsImpl<>("{1}{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KjeldoranOutrider.java b/Mage.Sets/src/mage/cards/k/KjeldoranOutrider.java
index 68b5497ab0..b5ad32c345 100644
--- a/Mage.Sets/src/mage/cards/k/KjeldoranOutrider.java
+++ b/Mage.Sets/src/mage/cards/k/KjeldoranOutrider.java
@@ -27,7 +27,7 @@ public final class KjeldoranOutrider extends CardImpl {
this.toughness = new MageInt(2);
// {W}: Kjeldoran Outrider gets +0/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{W}")));
}
private KjeldoranOutrider(final KjeldoranOutrider card) {
diff --git a/Mage.Sets/src/mage/cards/k/KnacksawClique.java b/Mage.Sets/src/mage/cards/k/KnacksawClique.java
index dd2801061b..3c2a92591f 100644
--- a/Mage.Sets/src/mage/cards/k/KnacksawClique.java
+++ b/Mage.Sets/src/mage/cards/k/KnacksawClique.java
@@ -44,7 +44,7 @@ public final class KnacksawClique extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {1}{U}, {untap}: Target opponent exiles the top card of their library. Until end of turn, you may play that card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KnacksawCliqueEffect(), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KnacksawCliqueEffect(), new ManaCostsImpl<>("{1}{U}"));
ability.addCost(new UntapSourceCost());
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KnightCaptainOfEos.java b/Mage.Sets/src/mage/cards/k/KnightCaptainOfEos.java
index 559ce16853..d92c6b4211 100644
--- a/Mage.Sets/src/mage/cards/k/KnightCaptainOfEos.java
+++ b/Mage.Sets/src/mage/cards/k/KnightCaptainOfEos.java
@@ -40,7 +40,7 @@ public final class KnightCaptainOfEos extends CardImpl {
this.toughness = new MageInt(2);
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SoldierToken(), 2), false));
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true), new ManaCostsImpl("{W}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true), new ManaCostsImpl<>("{W}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, true)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfCliffhaven.java b/Mage.Sets/src/mage/cards/k/KnightOfCliffhaven.java
index 11bb7c64f9..b729a3be64 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfCliffhaven.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfCliffhaven.java
@@ -31,7 +31,7 @@ public final class KnightOfCliffhaven extends LevelerCard {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{3}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{3}")));
Abilities abilities1 = new AbilitiesImpl<>();
abilities1.add(FlyingAbility.getInstance());
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfDawn.java b/Mage.Sets/src/mage/cards/k/KnightOfDawn.java
index 4150ebc56b..781d80bc6c 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfDawn.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfDawn.java
@@ -30,7 +30,7 @@ public final class KnightOfDawn extends CardImpl {
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// {W}{W}: Knight of Dawn gains protection from the color of your choice until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainProtectionFromColorSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{W}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainProtectionFromColorSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{W}{W}")));
}
private KnightOfDawn(final KnightOfDawn card) {
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfOldBenalia.java b/Mage.Sets/src/mage/cards/k/KnightOfOldBenalia.java
index 72b211705d..e546b99e45 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfOldBenalia.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfOldBenalia.java
@@ -27,7 +27,7 @@ public final class KnightOfOldBenalia extends CardImpl {
this.toughness = new MageInt(3);
// Suspend 5—{W}
- this.addAbility(new SuspendAbility(5, new ManaCostsImpl("{W}"), this));
+ this.addAbility(new SuspendAbility(5, new ManaCostsImpl<>("{W}"), this));
// When Knight of Old Benalia enters the battlefield, other creatures you control get +1/+1 until end of turn.
this.addAbility(new EntersBattlefieldTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfStromgald.java b/Mage.Sets/src/mage/cards/k/KnightOfStromgald.java
index d7bdb06632..ec46a9a746 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfStromgald.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfStromgald.java
@@ -35,10 +35,10 @@ public final class KnightOfStromgald extends CardImpl {
this.addAbility(ProtectionAbility.from(ObjectColor.WHITE));
// {B}: Knight of Stromgald gains first strike until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
// {B}{B}: Knight of Stromgald gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{B}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl<>("{B}{B}")));
}
private KnightOfStromgald(final KnightOfStromgald card) {
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfSursi.java b/Mage.Sets/src/mage/cards/k/KnightOfSursi.java
index 22f2b880f3..e3ce35aed6 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfSursi.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfSursi.java
@@ -30,7 +30,7 @@ public final class KnightOfSursi extends CardImpl {
// flanking
this.addAbility(new FlankingAbility());
// Suspend 3-{W}
- this.addAbility(new SuspendAbility(3, new ManaCostsImpl("{W}"), this));
+ this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{W}"), this));
}
private KnightOfSursi(final KnightOfSursi card) {
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfTheEbonLegion.java b/Mage.Sets/src/mage/cards/k/KnightOfTheEbonLegion.java
index 7a1dc58338..fbfaa81a29 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfTheEbonLegion.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfTheEbonLegion.java
@@ -39,7 +39,7 @@ public final class KnightOfTheEbonLegion extends CardImpl {
// {2}{B}: Knight of the Ebon Legion gets +3/+3 and gains deathtouch until end of turn.
Ability ability = new SimpleActivatedAbility(new BoostSourceEffect(
3, 3, Duration.EndOfTurn
- ).setText("{this} gets +3/+3"), new ManaCostsImpl("{2}{B}"));
+ ).setText("{this} gets +3/+3"), new ManaCostsImpl<>("{2}{B}"));
ability.addEffect(new GainAbilitySourceEffect(
DeathtouchAbility.getInstance(), Duration.EndOfTurn
).setText("and gains deathtouch until end of turn"));
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfTheHolyNimbus.java b/Mage.Sets/src/mage/cards/k/KnightOfTheHolyNimbus.java
index 8752b4b64e..b154a17d6c 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfTheHolyNimbus.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfTheHolyNimbus.java
@@ -37,7 +37,7 @@ public final class KnightOfTheHolyNimbus extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new KnightOfTheHolyNimbusReplacementEffect()));
// {2}: Knight of the Holy Nimbus can't be regenerated this turn. Only any opponent may activate this ability.
- this.addAbility(new ActivateOnlyByOpponentActivatedAbility(Zone.BATTLEFIELD, new CantBeRegeneratedSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{2}")));
+ this.addAbility(new ActivateOnlyByOpponentActivatedAbility(Zone.BATTLEFIELD, new CantBeRegeneratedSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
}
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfTheMists.java b/Mage.Sets/src/mage/cards/k/KnightOfTheMists.java
index 5490deae5d..0c095d7c5d 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfTheMists.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfTheMists.java
@@ -39,7 +39,7 @@ public final class KnightOfTheMists extends CardImpl {
// When Knight of the Mists enters the battlefield, you may pay {U}. If you don't, destroy target Knight and it can't be regenerated.
Ability ability = new EntersBattlefieldTriggeredAbility(new DoIfCostPaid(
- new InfoEffect(""), new DestroyTargetEffect(true), new ManaCostsImpl("{U}")
+ new InfoEffect(""), new DestroyTargetEffect(true), new ManaCostsImpl<>("{U}")
).setText("you may pay {U}. If you don't, destroy target Knight and it can't be regenerated."));
ability.addTarget(new TargetPermanent(filter));
addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KnightOfTheSkywardEye.java b/Mage.Sets/src/mage/cards/k/KnightOfTheSkywardEye.java
index 1e6e04e1df..41ce500272 100644
--- a/Mage.Sets/src/mage/cards/k/KnightOfTheSkywardEye.java
+++ b/Mage.Sets/src/mage/cards/k/KnightOfTheSkywardEye.java
@@ -28,7 +28,7 @@ public final class KnightOfTheSkywardEye extends CardImpl {
this.toughness = new MageInt(2);
// {3}{G}: Knight of the Skyward Eye gets +3/+3 until end of turn. Activate this ability only once each turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, 3, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}")));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, 3, Duration.EndOfTurn), new ManaCostsImpl<>("{3}{G}")));
}
diff --git a/Mage.Sets/src/mage/cards/k/KnightsCharge.java b/Mage.Sets/src/mage/cards/k/KnightsCharge.java
index 0b3b78a4e0..64f0cd6ac7 100644
--- a/Mage.Sets/src/mage/cards/k/KnightsCharge.java
+++ b/Mage.Sets/src/mage/cards/k/KnightsCharge.java
@@ -41,7 +41,7 @@ public final class KnightsCharge extends CardImpl {
this.addAbility(ability);
// {6}{W}{B}, Sacrifice Knights' Charge: Return all Knight creature cards from your graveyard to the battlefield.
- ability = new SimpleActivatedAbility(new KnightsChargeEffect(), new ManaCostsImpl("{6}{W}{B}"));
+ ability = new SimpleActivatedAbility(new KnightsChargeEffect(), new ManaCostsImpl<>("{6}{W}{B}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KoglaTheTitanApe.java b/Mage.Sets/src/mage/cards/k/KoglaTheTitanApe.java
index 172626e3ff..064a6053e7 100644
--- a/Mage.Sets/src/mage/cards/k/KoglaTheTitanApe.java
+++ b/Mage.Sets/src/mage/cards/k/KoglaTheTitanApe.java
@@ -60,7 +60,7 @@ public final class KoglaTheTitanApe extends CardImpl {
this.addAbility(ability);
// {1}{G}: Return target Human you control to its owner's hand. Kogla gains indestructible until end of turn.
- ability = new SimpleActivatedAbility(new ReturnToHandTargetEffect(), new ManaCostsImpl("{1}{G}"));
+ ability = new SimpleActivatedAbility(new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{1}{G}"));
ability.addEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn));
ability.addTarget(new TargetPermanent(filter2));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KolaghanMonument.java b/Mage.Sets/src/mage/cards/k/KolaghanMonument.java
index 5a9daa646d..865c3bd7d8 100644
--- a/Mage.Sets/src/mage/cards/k/KolaghanMonument.java
+++ b/Mage.Sets/src/mage/cards/k/KolaghanMonument.java
@@ -32,7 +32,7 @@ public final class KolaghanMonument extends CardImpl {
// {4}{B}{R}: Kolaghan Monument becomes a 4/4 black and red Dragon artifact creature with flying until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect
- (new KolaghanMonumentToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{4}{B}{R}")));
+ (new KolaghanMonumentToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{B}{R}")));
}
private KolaghanMonument(final KolaghanMonument card) {
diff --git a/Mage.Sets/src/mage/cards/k/KolaghanStormsinger.java b/Mage.Sets/src/mage/cards/k/KolaghanStormsinger.java
index d30ffdd6c5..66eb63f2da 100644
--- a/Mage.Sets/src/mage/cards/k/KolaghanStormsinger.java
+++ b/Mage.Sets/src/mage/cards/k/KolaghanStormsinger.java
@@ -32,7 +32,7 @@ public final class KolaghanStormsinger extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
// Megamorph {R}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{R}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{R}"), true));
// When Kolaghan Stormsinger is turned face up, target creature gains haste until end of turn.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), false);
diff --git a/Mage.Sets/src/mage/cards/k/KolvoriGodOfKinship.java b/Mage.Sets/src/mage/cards/k/KolvoriGodOfKinship.java
index bf25793fed..5ced6c1550 100644
--- a/Mage.Sets/src/mage/cards/k/KolvoriGodOfKinship.java
+++ b/Mage.Sets/src/mage/cards/k/KolvoriGodOfKinship.java
@@ -75,7 +75,7 @@ public final class KolvoriGodOfKinship extends ModalDoubleFacesCard {
// Put the rest on the bottom of your library in a random order.
ability = new SimpleActivatedAbility(
new LookLibraryAndPickControllerEffect(6, 1, filter2, PutCards.HAND, PutCards.BOTTOM_RANDOM),
- new ManaCostsImpl("{1}{G}"));
+ new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new TapSourceCost());
this.getLeftHalfCard().addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KorSkyClimber.java b/Mage.Sets/src/mage/cards/k/KorSkyClimber.java
index b3a5be4d5f..5066418218 100644
--- a/Mage.Sets/src/mage/cards/k/KorSkyClimber.java
+++ b/Mage.Sets/src/mage/cards/k/KorSkyClimber.java
@@ -29,7 +29,7 @@ public final class KorSkyClimber extends CardImpl {
this.toughness = new MageInt(2);
// {1}{W}: Kor Sky Climber gains flying until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}")));
}
private KorSkyClimber(final KorSkyClimber card) {
diff --git a/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java b/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java
index f39bfe11f0..e2ead6e160 100644
--- a/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java
+++ b/Mage.Sets/src/mage/cards/k/KorlashHeirToBlackblade.java
@@ -48,7 +48,7 @@ public final class KorlashHeirToBlackblade extends CardImpl {
// {1}{B}: Regenerate Korlash.
Effect effect = new RegenerateSourceEffect();
effect.setText("Regenerate Korlash.");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}")));
// Grandeur - Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.
effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filterCard), true, true);
diff --git a/Mage.Sets/src/mage/cards/k/KorozdaGuildmage.java b/Mage.Sets/src/mage/cards/k/KorozdaGuildmage.java
index b52a1d5fdd..26346760b3 100644
--- a/Mage.Sets/src/mage/cards/k/KorozdaGuildmage.java
+++ b/Mage.Sets/src/mage/cards/k/KorozdaGuildmage.java
@@ -47,7 +47,7 @@ public final class KorozdaGuildmage extends CardImpl {
// {1}{B}{G}: Target creature gets +1/+1 and gains intimidate until end of turn.
Effect effect = new BoostTargetEffect(1, 1, Duration.EndOfTurn);
effect.setText("target creature gets +1/+1");
- Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl("{1}{B}{G}"));
+ Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{1}{B}{G}"));
effect = new GainAbilityTargetEffect(IntimidateAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.)");
ability.addEffect(effect);
@@ -55,7 +55,7 @@ public final class KorozdaGuildmage extends CardImpl {
this.addAbility(ability);
// {2}{B}{G}, Sacrifice a nontoken creature: create X 1/1 green Saproling creature tokens, where X is the sacrificed creature's toughness.
- ability = new SimpleActivatedAbility(new CreateTokenEffect(new SaprolingToken(),SacrificeCostCreaturesToughness.instance),new ManaCostsImpl("{2}{B}{G}"));
+ ability = new SimpleActivatedAbility(new CreateTokenEffect(new SaprolingToken(),SacrificeCostCreaturesToughness.instance),new ManaCostsImpl<>("{2}{B}{G}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,filter, true)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KorozdaMonitor.java b/Mage.Sets/src/mage/cards/k/KorozdaMonitor.java
index 6d1e79a7a8..4161a45e47 100644
--- a/Mage.Sets/src/mage/cards/k/KorozdaMonitor.java
+++ b/Mage.Sets/src/mage/cards/k/KorozdaMonitor.java
@@ -27,7 +27,7 @@ public final class KorozdaMonitor extends CardImpl {
// Trample
this.addAbility(TrampleAbility.getInstance());
// Scavenge {5}{G}{G} ({5}{G}{G}, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.)
- this.addAbility(new ScavengeAbility(new ManaCostsImpl("{5}{G}{G}")));
+ this.addAbility(new ScavengeAbility(new ManaCostsImpl<>("{5}{G}{G}")));
}
private KorozdaMonitor(final KorozdaMonitor card) {
diff --git a/Mage.Sets/src/mage/cards/k/KoskunFalls.java b/Mage.Sets/src/mage/cards/k/KoskunFalls.java
index 7aba0942c4..abc876b3df 100644
--- a/Mage.Sets/src/mage/cards/k/KoskunFalls.java
+++ b/Mage.Sets/src/mage/cards/k/KoskunFalls.java
@@ -41,7 +41,7 @@ public final class KoskunFalls extends CardImpl {
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false));
// Creatures can't attack you unless their controller pays {2} for each creature they control that's attacking you.
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl("{2}"))));
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl<>("{2}"))));
}
private KoskunFalls(final KoskunFalls card) {
diff --git a/Mage.Sets/src/mage/cards/k/KozileksPathfinder.java b/Mage.Sets/src/mage/cards/k/KozileksPathfinder.java
index 3eb6ce69e1..211b55974d 100644
--- a/Mage.Sets/src/mage/cards/k/KozileksPathfinder.java
+++ b/Mage.Sets/src/mage/cards/k/KozileksPathfinder.java
@@ -29,7 +29,7 @@ public final class KozileksPathfinder extends CardImpl {
// {C}: Target creature can't block Kozilek's Pathfinder this turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedByTargetSourceEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{C}"));
+ new ManaCostsImpl<>("{C}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KozileksShrieker.java b/Mage.Sets/src/mage/cards/k/KozileksShrieker.java
index 59b2420d18..655c001b67 100644
--- a/Mage.Sets/src/mage/cards/k/KozileksShrieker.java
+++ b/Mage.Sets/src/mage/cards/k/KozileksShrieker.java
@@ -36,7 +36,7 @@ public final class KozileksShrieker extends CardImpl {
// {C}: Kozilek's Shrieker gets +1/+0 and gains menace until end of turn.
Effect effect = new BoostSourceEffect(1, 0, Duration.EndOfTurn);
effect.setText("{this} gets +1/+0");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{C}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{C}"));
effect = new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn);
effect.setText("and gains menace until end of turn. " +
"(It can't be blocked except by two or more creatures. {C} represents colorless mana.)");
diff --git a/Mage.Sets/src/mage/cards/k/Krakilin.java b/Mage.Sets/src/mage/cards/k/Krakilin.java
index 8feb395733..97f9aebbf4 100644
--- a/Mage.Sets/src/mage/cards/k/Krakilin.java
+++ b/Mage.Sets/src/mage/cards/k/Krakilin.java
@@ -31,7 +31,7 @@ public final class Krakilin extends CardImpl {
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.P1P1.createInstance())));
// {1}{G}: Regenerate Krakilin.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{G}")));
}
private Krakilin(final Krakilin card) {
diff --git a/Mage.Sets/src/mage/cards/k/KrallenhordeKiller.java b/Mage.Sets/src/mage/cards/k/KrallenhordeKiller.java
index 6e7e4c4c8d..5c2fc9960c 100644
--- a/Mage.Sets/src/mage/cards/k/KrallenhordeKiller.java
+++ b/Mage.Sets/src/mage/cards/k/KrallenhordeKiller.java
@@ -30,7 +30,7 @@ public final class KrallenhordeKiller extends CardImpl {
this.nightCard = true;
// {3}{G}: Krallenhorde Killer gets +4/+4 until end of turn. Activate this ability only once each turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(4, 4, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}")));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(4, 4, Duration.EndOfTurn), new ManaCostsImpl<>("{3}{G}")));
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Krallenhorde Killer.
this.addAbility(new WerewolfBackTriggeredAbility());
diff --git a/Mage.Sets/src/mage/cards/k/Kranioceros.java b/Mage.Sets/src/mage/cards/k/Kranioceros.java
index 1241938d3e..d59f7c17a1 100644
--- a/Mage.Sets/src/mage/cards/k/Kranioceros.java
+++ b/Mage.Sets/src/mage/cards/k/Kranioceros.java
@@ -27,7 +27,7 @@ public final class Kranioceros extends CardImpl {
this.power = new MageInt(5);
this.toughness = new MageInt(2);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 3, Duration.EndOfTurn), new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 3, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}")));
}
public Kranioceros (final Kranioceros card) {
diff --git a/Mage.Sets/src/mage/cards/k/KrarkClanEngineers.java b/Mage.Sets/src/mage/cards/k/KrarkClanEngineers.java
index 904085abbc..49e1f71752 100644
--- a/Mage.Sets/src/mage/cards/k/KrarkClanEngineers.java
+++ b/Mage.Sets/src/mage/cards/k/KrarkClanEngineers.java
@@ -32,7 +32,7 @@ public final class KrarkClanEngineers extends CardImpl {
this.toughness = new MageInt(2);
// {R}, Sacrifice two artifacts: Destroy target artifact.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(2, 2, new FilterControlledArtifactPermanent("two artifacts"), true)));
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KrarkClanOgre.java b/Mage.Sets/src/mage/cards/k/KrarkClanOgre.java
index c60e858d2f..93acf859a0 100644
--- a/Mage.Sets/src/mage/cards/k/KrarkClanOgre.java
+++ b/Mage.Sets/src/mage/cards/k/KrarkClanOgre.java
@@ -32,7 +32,7 @@ public final class KrarkClanOgre extends CardImpl {
this.toughness = new MageInt(3);
// {R}, Sacrifice an artifact: Target creature can't block this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, new FilterControlledArtifactPermanent("an artifact"), true)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KrasisIncubation.java b/Mage.Sets/src/mage/cards/k/KrasisIncubation.java
index eb8284ed2c..d40ddb9dc6 100644
--- a/Mage.Sets/src/mage/cards/k/KrasisIncubation.java
+++ b/Mage.Sets/src/mage/cards/k/KrasisIncubation.java
@@ -42,7 +42,7 @@ public final class KrasisIncubation extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockAttackActivateAttachedEffect()));
// {1}{G}{U}, Return Krasis Incubation to its owner's hand: Put two +1/+1 counters on enchanted creature.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddPlusOneCountersAttachedEffect(2), new ManaCostsImpl("{1}{G}{U}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddPlusOneCountersAttachedEffect(2), new ManaCostsImpl<>("{1}{G}{U}"));
ability.addCost(new ReturnToHandFromBattlefieldSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KraulSwarm.java b/Mage.Sets/src/mage/cards/k/KraulSwarm.java
index 8184d0e7f7..e0e1fcc968 100644
--- a/Mage.Sets/src/mage/cards/k/KraulSwarm.java
+++ b/Mage.Sets/src/mage/cards/k/KraulSwarm.java
@@ -37,7 +37,7 @@ public final class KraulSwarm extends CardImpl {
Ability ability = new SimpleActivatedAbility(
Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToHandEffect(),
- new ManaCostsImpl("{2}{B}")
+ new ManaCostsImpl<>("{2}{B}")
);
ability.addCost(new DiscardTargetCost(
new TargetCardInHand(StaticFilters.FILTER_CARD_CREATURE_A)
diff --git a/Mage.Sets/src/mage/cards/k/KraulWarrior.java b/Mage.Sets/src/mage/cards/k/KraulWarrior.java
index 59fea573e0..83be63bfae 100644
--- a/Mage.Sets/src/mage/cards/k/KraulWarrior.java
+++ b/Mage.Sets/src/mage/cards/k/KraulWarrior.java
@@ -31,7 +31,7 @@ public final class KraulWarrior extends CardImpl {
this.toughness = new MageInt(2);
// {5}{G}: Kraul Warrior gets +3/+3 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3,3,Duration.EndOfTurn), new ManaCostsImpl("{5}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3,3,Duration.EndOfTurn), new ManaCostsImpl<>("{5}{G}")));
}
diff --git a/Mage.Sets/src/mage/cards/k/KravTheUnredeemed.java b/Mage.Sets/src/mage/cards/k/KravTheUnredeemed.java
index 472beba8d1..6c33a5a689 100644
--- a/Mage.Sets/src/mage/cards/k/KravTheUnredeemed.java
+++ b/Mage.Sets/src/mage/cards/k/KravTheUnredeemed.java
@@ -42,7 +42,7 @@ public final class KravTheUnredeemed extends CardImpl {
this.addAbility(new PartnerWithAbility("Regna, the Redeemer", true));
// {B}, Sacrifice X creatures: Target player draws X cards and gains X life. Put X +1/+1 counters on Krav, the Unredeemed.
- Ability ability = new SimpleActivatedAbility(new KravTheUnredeemedEffect(), new ManaCostsImpl("{B}"));
+ Ability ability = new SimpleActivatedAbility(new KravTheUnredeemedEffect(), new ManaCostsImpl<>("{B}"));
ability.addTarget(new TargetPlayer());
ability.addCost(new SacrificeXTargetCost(StaticFilters.FILTER_CONTROLLED_CREATURE));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KrisMage.java b/Mage.Sets/src/mage/cards/k/KrisMage.java
index df9e68412d..3047d7b010 100644
--- a/Mage.Sets/src/mage/cards/k/KrisMage.java
+++ b/Mage.Sets/src/mage/cards/k/KrisMage.java
@@ -30,7 +30,7 @@ public final class KrisMage extends CardImpl {
this.toughness = new MageInt(1);
// {R}, {tap}, Discard a card: Kris Mage deals 1 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/k/KrosanArcher.java b/Mage.Sets/src/mage/cards/k/KrosanArcher.java
index 0190c41cc7..ba095d1e5a 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanArcher.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanArcher.java
@@ -33,7 +33,7 @@ public final class KrosanArcher extends CardImpl {
// Reach
this.addAbility(ReachAbility.getInstance());
// {G}, Discard a card: Krosan Archer gets +0/+2 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0,2, Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0,2, Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KrosanAvenger.java b/Mage.Sets/src/mage/cards/k/KrosanAvenger.java
index b0e9b36fde..7330a739d9 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanAvenger.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanAvenger.java
@@ -35,7 +35,7 @@ public final class KrosanAvenger extends CardImpl {
// Threshold - {1}{G}: Regenerate Krosan Avenger. Activate this ability only if seven or more cards are in your graveyard.
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new RegenerateSourceEffect(),
- new ManaCostsImpl("{1}{G}"),
+ new ManaCostsImpl<>("{1}{G}"),
new CardsInControllerGraveyardCondition(7));
thresholdAbility.setAbilityWord(AbilityWord.THRESHOLD);
this.addAbility(thresholdAbility);
diff --git a/Mage.Sets/src/mage/cards/k/KrosanCloudscraper.java b/Mage.Sets/src/mage/cards/k/KrosanCloudscraper.java
index c04ba14adf..89039a94e7 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanCloudscraper.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanCloudscraper.java
@@ -28,10 +28,10 @@ public final class KrosanCloudscraper extends CardImpl {
this.toughness = new MageInt(13);
// At the beginning of your upkeep, sacrifice Krosan Cloudscraper unless you pay {G}{G}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{G}{G}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{G}{G}")), TargetController.YOU, false));
// Morph {7}{G}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{7}{G}{G}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{7}{G}{G}")));
}
private KrosanCloudscraper(final KrosanCloudscraper card) {
diff --git a/Mage.Sets/src/mage/cards/k/KrosanColossus.java b/Mage.Sets/src/mage/cards/k/KrosanColossus.java
index c1e74d7747..6286022a97 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanColossus.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanColossus.java
@@ -23,7 +23,7 @@ public final class KrosanColossus extends CardImpl {
this.toughness = new MageInt(9);
// Morph {6}{G}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{6}{G}{G}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{6}{G}{G}")));
}
private KrosanColossus(final KrosanColossus card) {
diff --git a/Mage.Sets/src/mage/cards/k/KrosanGroundshaker.java b/Mage.Sets/src/mage/cards/k/KrosanGroundshaker.java
index 6ea33309b5..e964474c55 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanGroundshaker.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanGroundshaker.java
@@ -36,7 +36,7 @@ public final class KrosanGroundshaker extends CardImpl {
this.toughness = new MageInt(6);
// {G}: Target Beast creature gains trample until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/k/KrosanReclamation.java b/Mage.Sets/src/mage/cards/k/KrosanReclamation.java
index 5673055830..acbb21d3c4 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanReclamation.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanReclamation.java
@@ -26,7 +26,7 @@ public final class KrosanReclamation extends CardImpl {
this.getSpellAbility().addTarget(new TargetCardInTargetPlayersGraveyard(2));
// Flashback {1}{G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{1}{G}")));
}
private KrosanReclamation(final KrosanReclamation card) {
diff --git a/Mage.Sets/src/mage/cards/k/KrosanTusker.java b/Mage.Sets/src/mage/cards/k/KrosanTusker.java
index 99ee1d373c..ec0049af67 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanTusker.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanTusker.java
@@ -29,7 +29,7 @@ public final class KrosanTusker extends CardImpl {
this.toughness = new MageInt(5);
// Cycling {2}{G}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}{G}")));
// When you cycle Krosan Tusker, you may search your library for a basic land card, reveal that card, put it into your hand, then shuffle your library.
this.addAbility(new CycleTriggeredAbility(
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
diff --git a/Mage.Sets/src/mage/cards/k/KrosanWarchief.java b/Mage.Sets/src/mage/cards/k/KrosanWarchief.java
index d7c30bda81..6e973aceb4 100644
--- a/Mage.Sets/src/mage/cards/k/KrosanWarchief.java
+++ b/Mage.Sets/src/mage/cards/k/KrosanWarchief.java
@@ -44,7 +44,7 @@ public final class KrosanWarchief extends CardImpl {
// {1}{G}: Regenerate target Beast.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new RegenerateTargetEffect(),
- new ManaCostsImpl("{1}{G}"));
+ new ManaCostsImpl<>("{1}{G}"));
Target target = new TargetCreaturePermanent(filterTarget);
ability.addTarget(target);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KrovikanElementalist.java b/Mage.Sets/src/mage/cards/k/KrovikanElementalist.java
index 4f3493584e..bcc3b25e27 100644
--- a/Mage.Sets/src/mage/cards/k/KrovikanElementalist.java
+++ b/Mage.Sets/src/mage/cards/k/KrovikanElementalist.java
@@ -39,7 +39,7 @@ public final class KrovikanElementalist extends CardImpl {
// {2}{R}: Target creature gets +1/+0 until end of turn.
Ability ability = new SimpleActivatedAbility(
new BoostTargetEffect(1, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{2}{R}")
+ new ManaCostsImpl<>("{2}{R}")
);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
@@ -48,7 +48,7 @@ public final class KrovikanElementalist extends CardImpl {
ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
FlyingAbility.getInstance(),
Duration.EndOfTurn
- ), new ManaCostsImpl("{U}{U}"));
+ ), new ManaCostsImpl<>("{U}{U}"));
ability.addEffect(new KrovikanElementalistEffect());
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KrovikanRot.java b/Mage.Sets/src/mage/cards/k/KrovikanRot.java
index d93bf2a2d5..126d476117 100644
--- a/Mage.Sets/src/mage/cards/k/KrovikanRot.java
+++ b/Mage.Sets/src/mage/cards/k/KrovikanRot.java
@@ -33,7 +33,7 @@ public final class KrovikanRot extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// Recover {1}{B}{B}
- this.addAbility(new RecoverAbility(new ManaCostsImpl("{1}{B}{B}"), this));
+ this.addAbility(new RecoverAbility(new ManaCostsImpl<>("{1}{B}{B}"), this));
}
private KrovikanRot(final KrovikanRot card) {
diff --git a/Mage.Sets/src/mage/cards/k/KrovikanWhispers.java b/Mage.Sets/src/mage/cards/k/KrovikanWhispers.java
index fd85574f98..737acde337 100644
--- a/Mage.Sets/src/mage/cards/k/KrovikanWhispers.java
+++ b/Mage.Sets/src/mage/cards/k/KrovikanWhispers.java
@@ -42,7 +42,7 @@ public final class KrovikanWhispers extends CardImpl {
this.addAbility(ability);
// Cumulative upkeep-Pay {U} or {B}.
- this.addAbility(new CumulativeUpkeepAbility(new OrCost("{U} or {B}", new ManaCostsImpl("{U}"), new ManaCostsImpl("{B}"))));
+ this.addAbility(new CumulativeUpkeepAbility(new OrCost("{U} or {B}", new ManaCostsImpl<>("{U}"), new ManaCostsImpl<>("{B}"))));
// You control enchanted creature.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect()));
diff --git a/Mage.Sets/src/mage/cards/k/KrumarBondKin.java b/Mage.Sets/src/mage/cards/k/KrumarBondKin.java
index 82c7102424..b4a880e7f3 100644
--- a/Mage.Sets/src/mage/cards/k/KrumarBondKin.java
+++ b/Mage.Sets/src/mage/cards/k/KrumarBondKin.java
@@ -25,7 +25,7 @@ public final class KrumarBondKin extends CardImpl {
this.toughness = new MageInt(3);
// Morph {4}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{4}{B}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{4}{B}")));
}
private KrumarBondKin(final KrumarBondKin card) {
diff --git a/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java b/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java
index 82ef42f8a0..166d605004 100644
--- a/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java
+++ b/Mage.Sets/src/mage/cards/k/KukemssaSerpent.java
@@ -45,7 +45,7 @@ public final class KukemssaSerpent extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
// {U}, Sacrifice an Island: Target land an opponent controls becomes an Island until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn, SubType.ISLAND), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn, SubType.ISLAND), new ManaCostsImpl<>("{U}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, filterControlledLand, true)));
ability.addTarget(new TargetLandPermanent(filterOpponentLand));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/k/KuldothaPhoenix.java b/Mage.Sets/src/mage/cards/k/KuldothaPhoenix.java
index 74c783c0e4..cebeb77a74 100644
--- a/Mage.Sets/src/mage/cards/k/KuldothaPhoenix.java
+++ b/Mage.Sets/src/mage/cards/k/KuldothaPhoenix.java
@@ -37,7 +37,7 @@ public final class KuldothaPhoenix extends CardImpl {
// Activate this ability only during your upkeep and only if you control three or more artifacts.
Ability ability = new ConditionalActivatedAbility(Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
- new ManaCostsImpl("{4}"),
+ new ManaCostsImpl<>("{4}"),
new CompoundCondition("during your upkeep and only if you control three or more artifacts",
new IsStepCondition(PhaseStep.UPKEEP), MetalcraftCondition.instance)
);
diff --git a/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java b/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java
index 80eff12a4f..879181edfe 100644
--- a/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java
+++ b/Mage.Sets/src/mage/cards/k/KumanoMasterYamabushi.java
@@ -60,7 +60,7 @@ public final class KumanoMasterYamabushi extends CardImpl {
this.toughness = new MageInt(4);
// {1}{R}: Kumano, Master Yamabushi deals 1 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{1}{R}"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
// If a creature dealt damage by Kumano this turn would die, exile it instead.
diff --git a/Mage.Sets/src/mage/cards/k/KuroPitlord.java b/Mage.Sets/src/mage/cards/k/KuroPitlord.java
index 11d8e2084c..0019f63713 100644
--- a/Mage.Sets/src/mage/cards/k/KuroPitlord.java
+++ b/Mage.Sets/src/mage/cards/k/KuroPitlord.java
@@ -30,7 +30,7 @@ public final class KuroPitlord extends CardImpl {
this.power = new MageInt(9);
this.toughness = new MageInt(9);
// At the beginning of your upkeep, sacrifice Kuro, Pitlord unless you pay {B}{B}{B}{B}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{B}{B}{B}{B}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{B}{B}{B}{B}")), TargetController.YOU, false));
// Pay 1 life: Target creature gets -1/-1 until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new PayLifeCost(1));
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/k/KurosTaken.java b/Mage.Sets/src/mage/cards/k/KurosTaken.java
index 9c6118a431..80a896e18f 100644
--- a/Mage.Sets/src/mage/cards/k/KurosTaken.java
+++ b/Mage.Sets/src/mage/cards/k/KurosTaken.java
@@ -28,7 +28,7 @@ public final class KurosTaken extends CardImpl {
this.toughness = new MageInt(1);
this.addAbility(new BushidoAbility(1));
// {1}{B}: Regenerate Kuro's Taken.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private KurosTaken(final KurosTaken card) {
diff --git a/Mage.Sets/src/mage/cards/k/KyscuDrake.java b/Mage.Sets/src/mage/cards/k/KyscuDrake.java
index 48ca29399e..a236890d68 100644
--- a/Mage.Sets/src/mage/cards/k/KyscuDrake.java
+++ b/Mage.Sets/src/mage/cards/k/KyscuDrake.java
@@ -46,7 +46,7 @@ public final class KyscuDrake extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {G}: Kyscu Drake gets +0/+1 until end of turn. Activate this ability only once each turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{G}")));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{G}")));
// Sacrifice Kyscu Drake and a creature named Spitting Drake: Search your library for a card named Viashivan Dragon and put that card onto the battlefield. Then shuffle your library.
this.addAbility(new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(1, 1, filter), false, true, Outcome.PutCardInPlay), new CompositeCost(new SacrificeSourceCost(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filterSpitting, false)), "sacrifice {this} and a creature named Spitting Drake")));
diff --git a/Mage.Sets/src/mage/cards/k/KytheonsIrregulars.java b/Mage.Sets/src/mage/cards/k/KytheonsIrregulars.java
index 21530759e7..d154b42e16 100644
--- a/Mage.Sets/src/mage/cards/k/KytheonsIrregulars.java
+++ b/Mage.Sets/src/mage/cards/k/KytheonsIrregulars.java
@@ -33,7 +33,7 @@ public final class KytheonsIrregulars extends CardImpl {
// if it isn't renowned
// put a +1/+1 counter on it and it becomes renowned.)("{W}{W}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LAATGunship.java b/Mage.Sets/src/mage/cards/l/LAATGunship.java
index 5486200d05..5346535dd8 100644
--- a/Mage.Sets/src/mage/cards/l/LAATGunship.java
+++ b/Mage.Sets/src/mage/cards/l/LAATGunship.java
@@ -33,7 +33,7 @@ public final class LAATGunship extends CardImpl {
this.addAbility(new AttacksTriggeredAbility(new CreateTokenEffect(new TrooperToken(), 1, true, true), false));
// {W}: LAAT Gunship gains spaceflight until the end of turn. Activate this ability only as a sorcery
- this.addAbility(new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(SpaceflightAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}")));
+ this.addAbility(new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(SpaceflightAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{W}")));
}
diff --git a/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java b/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java
index 9204db3142..1ac7ca722c 100644
--- a/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java
+++ b/Mage.Sets/src/mage/cards/l/LabyrinthGuardian.java
@@ -37,7 +37,7 @@ public final class LabyrinthGuardian extends CardImpl {
this.addAbility(new LabyrinthGuardianTriggeredAbility());
// Embalm {3}{U}
- this.addAbility(new EmbalmAbility(new ManaCostsImpl("{3}{U}"), this));
+ this.addAbility(new EmbalmAbility(new ManaCostsImpl<>("{3}{U}"), this));
}
diff --git a/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java b/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java
index f7ed9df131..33da0b8d7c 100644
--- a/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java
+++ b/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java
@@ -61,7 +61,7 @@ public final class LabyrinthRaptor extends CardImpl {
// {B}{R}: Creatures you control with menace get +1/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(new BoostAllEffect(
1, 0, Duration.EndOfTurn, filter2, false
- ), new ManaCostsImpl("{B}{R}")));
+ ), new ManaCostsImpl<>("{B}{R}")));
}
private LabyrinthRaptor(final LabyrinthRaptor card) {
diff --git a/Mage.Sets/src/mage/cards/l/LadyEvangela.java b/Mage.Sets/src/mage/cards/l/LadyEvangela.java
index dada1a21e8..4190cd9419 100644
--- a/Mage.Sets/src/mage/cards/l/LadyEvangela.java
+++ b/Mage.Sets/src/mage/cards/l/LadyEvangela.java
@@ -35,7 +35,7 @@ public final class LadyEvangela extends CardImpl {
// {W}{B}, {tap}: Prevent all combat damage that would be dealt by target creature this turn.
Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true);
effect.setText("Prevent all combat damage that would be dealt by target creature this turn.");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{W}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{W}{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java b/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java
index b79cd76693..b7331464ad 100644
--- a/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java
+++ b/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java
@@ -47,7 +47,7 @@ public final class LairOfTheHydra extends CardImpl {
this.addAbility(new GreenManaAbility());
// {X}{G}: Until end of turn, Lair of the Hydra becomes an X/X green Hydra creature. It's still a land. X can't be 0.
- ManaCostsImpl manaCosts = new ManaCostsImpl("{X}{G}");
+ ManaCostsImpl manaCosts = new ManaCostsImpl<>("{X}{G}");
for (Object cost : manaCosts) {
if (cost instanceof VariableManaCost) {
((VariableManaCost) cost).setMinX(1);
diff --git a/Mage.Sets/src/mage/cards/l/LanternSpirit.java b/Mage.Sets/src/mage/cards/l/LanternSpirit.java
index 91d30add3f..ca2bc272ed 100644
--- a/Mage.Sets/src/mage/cards/l/LanternSpirit.java
+++ b/Mage.Sets/src/mage/cards/l/LanternSpirit.java
@@ -28,7 +28,7 @@ public final class LanternSpirit extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {U}: Return Lantern Spirit to its owner's hand.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl<>("{U}")));
}
private LanternSpirit(final LanternSpirit card) {
diff --git a/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java b/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java
index 032322c893..46ee7b2557 100644
--- a/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java
+++ b/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java
@@ -30,7 +30,7 @@ public final class LapisLazuliTalisman extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// Whenever a player casts a blue spell, you may pay {3}. If you do, untap target permanent.
- Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl("{3}")), filter, false);
+ Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl<>("{3}")), filter, false);
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LaquatussChampion.java b/Mage.Sets/src/mage/cards/l/LaquatussChampion.java
index 4c0310d07d..2b92c4d594 100644
--- a/Mage.Sets/src/mage/cards/l/LaquatussChampion.java
+++ b/Mage.Sets/src/mage/cards/l/LaquatussChampion.java
@@ -44,7 +44,7 @@ public final class LaquatussChampion extends CardImpl {
// When Laquatus's Champion leaves the battlefield, that player gains 6 life.
this.addAbility(new LaquatussChampionLeavesBattlefieldTriggeredAbility());
// {B}: Regenerate Laquatus's Champion.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
}
private LaquatussChampion(final LaquatussChampion card) {
diff --git a/Mage.Sets/src/mage/cards/l/LathlissDragonQueen.java b/Mage.Sets/src/mage/cards/l/LathlissDragonQueen.java
index 1d7828cb1a..73a63ba236 100644
--- a/Mage.Sets/src/mage/cards/l/LathlissDragonQueen.java
+++ b/Mage.Sets/src/mage/cards/l/LathlissDragonQueen.java
@@ -59,7 +59,7 @@ public final class LathlissDragonQueen extends CardImpl {
1, 0, Duration.EndOfTurn,
filter2, false
),
- new ManaCostsImpl("{1}{R}")
+ new ManaCostsImpl<>("{1}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java b/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java
index a1334d7968..3178a9b542 100644
--- a/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java
+++ b/Mage.Sets/src/mage/cards/l/LatullaKeldonOverseer.java
@@ -35,7 +35,7 @@ public final class LatullaKeldonOverseer extends CardImpl {
this.toughness = new MageInt(3);
// {X}{R}, {tap}, Discard two cards: Latulla, Keldon Overseer deals X damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl<>("{X}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, 2, new FilterCard("two cards"))));
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/l/LavaSerpent.java b/Mage.Sets/src/mage/cards/l/LavaSerpent.java
index 7451bc2e68..6f49523090 100644
--- a/Mage.Sets/src/mage/cards/l/LavaSerpent.java
+++ b/Mage.Sets/src/mage/cards/l/LavaSerpent.java
@@ -28,7 +28,7 @@ public final class LavaSerpent extends CardImpl {
this.addAbility(HasteAbility.getInstance());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private LavaSerpent(final LavaSerpent card) {
diff --git a/Mage.Sets/src/mage/cards/l/LavaZombie.java b/Mage.Sets/src/mage/cards/l/LavaZombie.java
index 257ed34f42..5708debdf7 100644
--- a/Mage.Sets/src/mage/cards/l/LavaZombie.java
+++ b/Mage.Sets/src/mage/cards/l/LavaZombie.java
@@ -41,7 +41,7 @@ public final class LavaZombie extends CardImpl {
// When Lava Zombie enters the battlefield, return a black or red creature you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// {2}: Lava Zombie gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1,0, Duration.EndOfTurn), new ManaCostsImpl<>("{2}")));
}
private LavaZombie(final LavaZombie card) {
diff --git a/Mage.Sets/src/mage/cards/l/LavaballTrap.java b/Mage.Sets/src/mage/cards/l/LavaballTrap.java
index f6bd230a4b..787bfb2055 100644
--- a/Mage.Sets/src/mage/cards/l/LavaballTrap.java
+++ b/Mage.Sets/src/mage/cards/l/LavaballTrap.java
@@ -32,7 +32,7 @@ public final class LavaballTrap extends CardImpl {
this.subtype.add(SubType.TRAP);
// If an opponent had two or more lands enter the battlefield under their control this turn, you may pay {3}{R}{R} rather than pay Lavaball Trap's mana cost.
- this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{3}{R}{R}"), LavaballTrapCondition.instance), new PermanentsEnteredBattlefieldWatcher());
+ this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{3}{R}{R}"), LavaballTrapCondition.instance), new PermanentsEnteredBattlefieldWatcher());
// Destroy two target lands. Lavaball Trap deals 4 damage to each creature.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
diff --git a/Mage.Sets/src/mage/cards/l/LavaclawReaches.java b/Mage.Sets/src/mage/cards/l/LavaclawReaches.java
index a8ae2337a2..2c70d04c80 100644
--- a/Mage.Sets/src/mage/cards/l/LavaclawReaches.java
+++ b/Mage.Sets/src/mage/cards/l/LavaclawReaches.java
@@ -36,7 +36,7 @@ public final class LavaclawReaches extends CardImpl {
this.addAbility(new RedManaAbility());
// {1}{B}{R}: Until end of turn, Lavaclaw Reaches becomes a 2/2 black and red Elemental creature with ": This creature gets +X/+0 until end of turn." It's still a land.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LavaclawReachesToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{B}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LavaclawReachesToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}{R}")));
}
private LavaclawReaches(final LavaclawReaches card) {
@@ -60,7 +60,7 @@ class LavaclawReachesToken extends TokenImpl {
color.setBlack(true);
power = new MageInt(2);
toughness = new MageInt(2);
- addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn), new ManaCostsImpl("{X}")));
+ addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn), new ManaCostsImpl<>("{X}")));
}
public LavaclawReachesToken(final LavaclawReachesToken token) {
super(token);
diff --git a/Mage.Sets/src/mage/cards/l/LavafumeInvoker.java b/Mage.Sets/src/mage/cards/l/LavafumeInvoker.java
index d9efb2c675..dceda4ad9c 100644
--- a/Mage.Sets/src/mage/cards/l/LavafumeInvoker.java
+++ b/Mage.Sets/src/mage/cards/l/LavafumeInvoker.java
@@ -28,7 +28,7 @@ public final class LavafumeInvoker extends CardImpl {
this.toughness = new MageInt(2);
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new BoostControlledEffect(3, 0, Duration.EndOfTurn), new ManaCostsImpl("{8}")));
+ new BoostControlledEffect(3, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{8}")));
}
private LavafumeInvoker(final LavafumeInvoker card) {
diff --git a/Mage.Sets/src/mage/cards/l/LayClaim.java b/Mage.Sets/src/mage/cards/l/LayClaim.java
index c0a11241af..ccf96d255e 100644
--- a/Mage.Sets/src/mage/cards/l/LayClaim.java
+++ b/Mage.Sets/src/mage/cards/l/LayClaim.java
@@ -39,7 +39,7 @@ public final class LayClaim extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect("permanent")));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
diff --git a/Mage.Sets/src/mage/cards/l/LayWaste.java b/Mage.Sets/src/mage/cards/l/LayWaste.java
index 9531ec34bd..07773a38b1 100644
--- a/Mage.Sets/src/mage/cards/l/LayWaste.java
+++ b/Mage.Sets/src/mage/cards/l/LayWaste.java
@@ -23,7 +23,7 @@ public final class LayWaste extends CardImpl {
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetLandPermanent());
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private LayWaste(final LayWaste card) {
diff --git a/Mage.Sets/src/mage/cards/l/LazavTheMultifarious.java b/Mage.Sets/src/mage/cards/l/LazavTheMultifarious.java
index e5f78b3f61..e42417634c 100644
--- a/Mage.Sets/src/mage/cards/l/LazavTheMultifarious.java
+++ b/Mage.Sets/src/mage/cards/l/LazavTheMultifarious.java
@@ -52,7 +52,7 @@ public final class LazavTheMultifarious extends CardImpl {
// {X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability.
Ability ability = new SimpleActivatedAbility(
new LazavTheMultifariousEffect(),
- new ManaCostsImpl("{X}")
+ new ManaCostsImpl<>("{X}")
);
ability.setTargetAdjuster(LazavTheMultifariousAdjuster.instance);
this.addAbility(ability);
@@ -133,7 +133,7 @@ class LazavTheMultifariousCopyApplier extends CopyApplier {
public boolean apply(Game game, MageObject blueprint, Ability source, UUID copyToObjectId) {
Ability ability = new SimpleActivatedAbility(
new LazavTheMultifariousEffect(),
- new ManaCostsImpl("{X}")
+ new ManaCostsImpl<>("{X}")
);
ability.setTargetAdjuster(LazavTheMultifariousAdjuster.instance);
blueprint.getAbilities().add(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java b/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java
index fbe495e9bb..4e0bea343e 100644
--- a/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java
+++ b/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java
@@ -41,7 +41,7 @@ public final class LeafdrakeRoost extends CardImpl {
this.addAbility(ability);
// Enchanted land has "{G}{U}, {tap}: Create a 2/2 green and blue Drake creature token with flying."
- Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LeafdrakeRoostDrakeToken()), new ManaCostsImpl("{G}{U}"));
+ Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LeafdrakeRoostDrakeToken()), new ManaCostsImpl<>("{G}{U}"));
abilityToGain.addCost(new TapSourceCost());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(abilityToGain, AttachmentType.AURA, Duration.WhileOnBattlefield,
"Enchanted land has \"{G}{U}, {t}: Create a 2/2 green and blue Drake creature token with flying.\"")));
diff --git a/Mage.Sets/src/mage/cards/l/LeafkinAvenger.java b/Mage.Sets/src/mage/cards/l/LeafkinAvenger.java
index 5a1e13ed87..9f44e17eb5 100644
--- a/Mage.Sets/src/mage/cards/l/LeafkinAvenger.java
+++ b/Mage.Sets/src/mage/cards/l/LeafkinAvenger.java
@@ -51,7 +51,7 @@ public final class LeafkinAvenger extends CardImpl {
Ability ability = new SimpleActivatedAbility(
new DamageTargetEffect(xValue2)
.setText("{this} deals damage equal to its power to target player or planeswalker"),
- new ManaCostsImpl("{7}{R}")
+ new ManaCostsImpl<>("{7}{R}")
);
ability.addTarget(new TargetPlayerOrPlaneswalker());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LeagueGuildmage.java b/Mage.Sets/src/mage/cards/l/LeagueGuildmage.java
index cb9c694d33..f207e847d6 100644
--- a/Mage.Sets/src/mage/cards/l/LeagueGuildmage.java
+++ b/Mage.Sets/src/mage/cards/l/LeagueGuildmage.java
@@ -44,7 +44,7 @@ public final class LeagueGuildmage extends CardImpl {
// {3}{U}, {T}: Draw a card.
Ability ability = new SimpleActivatedAbility(
new DrawCardSourceControllerEffect(1),
- new ManaCostsImpl("{3}{U}")
+ new ManaCostsImpl<>("{3}{U}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
@@ -52,7 +52,7 @@ public final class LeagueGuildmage extends CardImpl {
// {X}{R}, {T}: Copy target instant or sorcery spell you control with converted mana cost X. You may choose new targets for the copy.
ability = new SimpleActivatedAbility(
new CopyTargetSpellEffect(),
- new ManaCostsImpl("{X}{R}")
+ new ManaCostsImpl<>("{X}{R}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetSpell(filter));
diff --git a/Mage.Sets/src/mage/cards/l/LeapingLizard.java b/Mage.Sets/src/mage/cards/l/LeapingLizard.java
index 80a3878ff5..1c4b6d9dd1 100644
--- a/Mage.Sets/src/mage/cards/l/LeapingLizard.java
+++ b/Mage.Sets/src/mage/cards/l/LeapingLizard.java
@@ -32,7 +32,7 @@ public final class LeapingLizard extends CardImpl {
// {1}{G}: Leaping Lizard gets -0/-1 and gains flying until end of turn.
Effect effect = new BoostSourceEffect(0, -1, Duration.EndOfTurn);
effect.setText("{this} gets -0/-1");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{G}"));
effect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains flying until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/l/LeapingMaster.java b/Mage.Sets/src/mage/cards/l/LeapingMaster.java
index 3023d2ea47..1bf0c72283 100644
--- a/Mage.Sets/src/mage/cards/l/LeapingMaster.java
+++ b/Mage.Sets/src/mage/cards/l/LeapingMaster.java
@@ -30,7 +30,7 @@ public final class LeapingMaster extends CardImpl {
// {2}{W}: Leaping Master gains flying until end of turn
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{2}{W}")));
+ new ManaCostsImpl<>("{2}{W}")));
}
private LeapingMaster(final LeapingMaster card) {
diff --git a/Mage.Sets/src/mage/cards/l/LedevChampion.java b/Mage.Sets/src/mage/cards/l/LedevChampion.java
index 0a733a5215..3aec8816d6 100644
--- a/Mage.Sets/src/mage/cards/l/LedevChampion.java
+++ b/Mage.Sets/src/mage/cards/l/LedevChampion.java
@@ -42,7 +42,7 @@ public final class LedevChampion extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new CreateTokenEffect(new SoldierLifelinkToken()),
- new ManaCostsImpl("{3}{G}{W}")
+ new ManaCostsImpl<>("{3}{G}{W}")
));
}
diff --git a/Mage.Sets/src/mage/cards/l/LeechBonder.java b/Mage.Sets/src/mage/cards/l/LeechBonder.java
index 9959fd2881..478d5007eb 100644
--- a/Mage.Sets/src/mage/cards/l/LeechBonder.java
+++ b/Mage.Sets/src/mage/cards/l/LeechBonder.java
@@ -46,7 +46,7 @@ public final class LeechBonder extends CardImpl {
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(2)), "with two -1/-1 counters on it"));
// {U}, {untap}: Move a counter from target creature onto another target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LeechBonderEffect(), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LeechBonderEffect(), new ManaCostsImpl<>("{U}"));
ability.addCost(new UntapSourceCost());
// target 1
TargetCreaturePermanent target1 = new TargetCreaturePermanent(new FilterCreaturePermanent("creature to remove counter from"));
diff --git a/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java b/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java
index 478f0e2ee2..2d1d6e334e 100644
--- a/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java
+++ b/Mage.Sets/src/mage/cards/l/LeechriddenSwamp.java
@@ -50,7 +50,7 @@ public final class LeechriddenSwamp extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(
Zone.BATTLEFIELD,
new LeechriddenSwampLoseLifeEffect(),
- new ManaCostsImpl("{B}"),
+ new ManaCostsImpl<>("{B}"),
new PermanentsOnTheBattlefieldCondition(
filter,
ComparisonType.MORE_THAN,
diff --git a/Mage.Sets/src/mage/cards/l/LegacyWeapon.java b/Mage.Sets/src/mage/cards/l/LegacyWeapon.java
index f0203de56f..ceab00aeb4 100644
--- a/Mage.Sets/src/mage/cards/l/LegacyWeapon.java
+++ b/Mage.Sets/src/mage/cards/l/LegacyWeapon.java
@@ -27,7 +27,7 @@ public final class LegacyWeapon extends CardImpl {
// {W}{U}{B}{R}{G}: Exile target permanent.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new ExileTargetEffect(),
- new ManaCostsImpl("{W}{U}{B}{R}{G}"));
+ new ManaCostsImpl<>("{W}{U}{B}{R}{G}"));
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
// If Legacy Weapon would be put into a graveyard from anywhere, reveal Legacy Weapon and shuffle it into its owner's library instead.
diff --git a/Mage.Sets/src/mage/cards/l/LegionGuildmage.java b/Mage.Sets/src/mage/cards/l/LegionGuildmage.java
index d511b76f4c..d14215bfff 100644
--- a/Mage.Sets/src/mage/cards/l/LegionGuildmage.java
+++ b/Mage.Sets/src/mage/cards/l/LegionGuildmage.java
@@ -41,7 +41,7 @@ public final class LegionGuildmage extends CardImpl {
// {5}{R}, {T}: Legion Guildmage deals 3 damage to each opponent.
Ability ability = new SimpleActivatedAbility(
new DamagePlayersEffect(3, TargetController.OPPONENT),
- new ManaCostsImpl("{5}{R}")
+ new ManaCostsImpl<>("{5}{R}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
@@ -49,7 +49,7 @@ public final class LegionGuildmage extends CardImpl {
// {2}{W}, {T}: Tap another target creature.
ability = new SimpleActivatedAbility(
new TapTargetEffect("tap another target creature"),
- new ManaCostsImpl("{2}{W}")
+ new ManaCostsImpl<>("{2}{W}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
diff --git a/Mage.Sets/src/mage/cards/l/LeoninArbiter.java b/Mage.Sets/src/mage/cards/l/LeoninArbiter.java
index e68cf59e25..f5ed2b15f0 100644
--- a/Mage.Sets/src/mage/cards/l/LeoninArbiter.java
+++ b/Mage.Sets/src/mage/cards/l/LeoninArbiter.java
@@ -54,7 +54,7 @@ class LeoninArbiterSpecialAction extends SpecialAction {
public LeoninArbiterSpecialAction(final String keyString) {
super(Zone.BATTLEFIELD);
- this.addCost(new ManaCostsImpl("{2}"));
+ this.addCost(new ManaCostsImpl<>("{2}"));
this.addEffect(new LeoninArbiterIgnoreEffect(keyString));
this.setMayActivate(TargetController.ANY);
}
diff --git a/Mage.Sets/src/mage/cards/l/LeoninSunStandard.java b/Mage.Sets/src/mage/cards/l/LeoninSunStandard.java
index 0774fb5fb2..7dc73f48d9 100644
--- a/Mage.Sets/src/mage/cards/l/LeoninSunStandard.java
+++ b/Mage.Sets/src/mage/cards/l/LeoninSunStandard.java
@@ -20,7 +20,7 @@ public final class LeoninSunStandard extends CardImpl {
public LeoninSunStandard(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false), new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false), new ManaCostsImpl<>("{1}{W}")));
}
private LeoninSunStandard(final LeoninSunStandard card) {
diff --git a/Mage.Sets/src/mage/cards/l/LeshracsSigil.java b/Mage.Sets/src/mage/cards/l/LeshracsSigil.java
index 941b5bea38..8bcb638520 100644
--- a/Mage.Sets/src/mage/cards/l/LeshracsSigil.java
+++ b/Mage.Sets/src/mage/cards/l/LeshracsSigil.java
@@ -34,10 +34,10 @@ public final class LeshracsSigil extends CardImpl {
// Whenever an opponent casts a green spell, you may pay {B}{B}. If you do, look at that player's hand and choose a card from it. The player discards that card.
this.addAbility(new SpellCastOpponentTriggeredAbility(
- Zone.BATTLEFIELD, new DoIfCostPaid(new DiscardCardYouChooseTargetEffect(), new ManaCostsImpl("{B}{B}")), filter, false, SetTargetPointer.PLAYER));
+ Zone.BATTLEFIELD, new DoIfCostPaid(new DiscardCardYouChooseTargetEffect(), new ManaCostsImpl<>("{B}{B}")), filter, false, SetTargetPointer.PLAYER));
// {B}{B}: Return Leshrac's Sigil to its owner's hand.
- this.addAbility(new SimpleActivatedAbility(new ReturnToHandSourceEffect(true), new ManaCostsImpl("{B}{B}")));
+ this.addAbility(new SimpleActivatedAbility(new ReturnToHandSourceEffect(true), new ManaCostsImpl<>("{B}{B}")));
}
private LeshracsSigil(final LeshracsSigil card) {
diff --git a/Mage.Sets/src/mage/cards/l/LethalVapors.java b/Mage.Sets/src/mage/cards/l/LethalVapors.java
index 6037fb3a8c..9c69bf2f7b 100644
--- a/Mage.Sets/src/mage/cards/l/LethalVapors.java
+++ b/Mage.Sets/src/mage/cards/l/LethalVapors.java
@@ -34,7 +34,7 @@ public final class LethalVapors extends CardImpl {
false, SetTargetPointer.PERMANENT, null));
// {0}: Destroy Lethal Vapors. You skip your next turn. Any player may activate this ability.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroySourceEffect(), new ManaCostsImpl("{0}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroySourceEffect(), new ManaCostsImpl<>("{0}"));
ability.setMayActivate(TargetController.ANY);
ability.addEffect(new SkipNextTurnSourceEffect());
ability.addEffect(new InfoEffect("Any player may activate this ability"));
diff --git a/Mage.Sets/src/mage/cards/l/LethargyTrap.java b/Mage.Sets/src/mage/cards/l/LethargyTrap.java
index 6450f30c33..caec0fa8e6 100644
--- a/Mage.Sets/src/mage/cards/l/LethargyTrap.java
+++ b/Mage.Sets/src/mage/cards/l/LethargyTrap.java
@@ -26,7 +26,7 @@ public final class LethargyTrap extends CardImpl {
this.subtype.add(SubType.TRAP);
// If three or more creatures are attacking, you may pay {U} rather than pay Lethargy Trap's mana cost.
- this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{U}"), LethargyTrapCondition.instance));
+ this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{U}"), LethargyTrapCondition.instance));
// Attacking creatures get -3/-0 until end of turn.
this.getSpellAbility().addEffect(new BoostAllEffect(-3, 0, Duration.EndOfTurn, StaticFilters.FILTER_ATTACKING_CREATURES, false));
diff --git a/Mage.Sets/src/mage/cards/l/LeylineOfAbundance.java b/Mage.Sets/src/mage/cards/l/LeylineOfAbundance.java
index 73234db3b7..5e2344fb41 100644
--- a/Mage.Sets/src/mage/cards/l/LeylineOfAbundance.java
+++ b/Mage.Sets/src/mage/cards/l/LeylineOfAbundance.java
@@ -43,7 +43,7 @@ public final class LeylineOfAbundance extends CardImpl {
this.addAbility(new SimpleActivatedAbility(new AddCountersAllEffect(
CounterType.P1P1.createInstance(),
StaticFilters.FILTER_CONTROLLED_CREATURE
- ), new ManaCostsImpl("{6}{G}{G}")));
+ ), new ManaCostsImpl<>("{6}{G}{G}")));
}
private LeylineOfAbundance(final LeylineOfAbundance card) {
diff --git a/Mage.Sets/src/mage/cards/l/LiberatedDwarf.java b/Mage.Sets/src/mage/cards/l/LiberatedDwarf.java
index 7377e6b963..b466bb19c2 100644
--- a/Mage.Sets/src/mage/cards/l/LiberatedDwarf.java
+++ b/Mage.Sets/src/mage/cards/l/LiberatedDwarf.java
@@ -43,7 +43,7 @@ public final class LiberatedDwarf extends CardImpl {
// {R}, Sacrifice Liberated Dwarf: Target green creature gets +1/+0 and gains first strike until end of turn.
Effect effect = new BoostTargetEffect(1, 0, Duration.EndOfTurn);
effect.setText("Target green creature gets +1/+0");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{R}")); ability.addCost(new SacrificeSourceCost());
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{R}")); ability.addCost(new SacrificeSourceCost());
effect = new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains first strike until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/l/LiegeOfTheAxe.java b/Mage.Sets/src/mage/cards/l/LiegeOfTheAxe.java
index 4043a22eb3..7c27c79b25 100644
--- a/Mage.Sets/src/mage/cards/l/LiegeOfTheAxe.java
+++ b/Mage.Sets/src/mage/cards/l/LiegeOfTheAxe.java
@@ -29,7 +29,7 @@ public final class LiegeOfTheAxe extends CardImpl {
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Morph {1}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{W}")));
// When Liege of the Axe is turned face up, untap it.
this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new UntapSourceEffect()));
}
diff --git a/Mage.Sets/src/mage/cards/l/LiegeOfThePit.java b/Mage.Sets/src/mage/cards/l/LiegeOfThePit.java
index 2e33b43f41..ed94c74547 100644
--- a/Mage.Sets/src/mage/cards/l/LiegeOfThePit.java
+++ b/Mage.Sets/src/mage/cards/l/LiegeOfThePit.java
@@ -39,7 +39,7 @@ public final class LiegeOfThePit extends CardImpl {
// At the beginning of your upkeep, sacrifice a creature other than Liege of the Pit. If you can't, Liege of the Pit deals 7 damage to you.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new LiegeOfThePitEffect(), TargetController.YOU, false));
// Morph {B}{B}{B}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{B}{B}{B}{B}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{B}{B}{B}{B}")));
}
private LiegeOfThePit(final LiegeOfThePit card) {
diff --git a/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java b/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java
index 8f87a0ce94..72e5348f02 100644
--- a/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java
+++ b/Mage.Sets/src/mage/cards/l/LieutenantKirtar.java
@@ -35,7 +35,7 @@ public final class LieutenantKirtar extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {1}{W}, Sacrifice Lieutenant Kirtar: Exile target attacking creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl<>("{1}{W}"));
ability.addTarget(new TargetAttackingCreature());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java b/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java
index 31a0a34377..fc5c3fd582 100644
--- a/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java
+++ b/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java
@@ -28,7 +28,7 @@ public final class LifecraftersBestiary extends CardImpl {
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), TargetController.YOU, false));
// Whenever you cast a creature spell, you may pay {G}. If you do, draw a card.
- this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false));
+ this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false));
}
private LifecraftersBestiary(final LifecraftersBestiary card) {
diff --git a/Mage.Sets/src/mage/cards/l/Lifeforce.java b/Mage.Sets/src/mage/cards/l/Lifeforce.java
index fee1aa0ee4..599cdc8729 100644
--- a/Mage.Sets/src/mage/cards/l/Lifeforce.java
+++ b/Mage.Sets/src/mage/cards/l/Lifeforce.java
@@ -30,7 +30,7 @@ public final class Lifeforce extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{G}{G}");
// {G}{G}: Counter target black spell.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl("{G}{G}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl<>("{G}{G}"));
ability.addTarget(new TargetSpell(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java b/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java
index aa3eec8373..577439ce7b 100644
--- a/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java
+++ b/Mage.Sets/src/mage/cards/l/LighthouseChronologist.java
@@ -33,7 +33,7 @@ public final class LighthouseChronologist extends LevelerCard {
this.power = new MageInt(1);
this.toughness = new MageInt(3);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{U}")));
// LEVEL 4-6
// 2/4
diff --git a/Mage.Sets/src/mage/cards/l/LightningBerserker.java b/Mage.Sets/src/mage/cards/l/LightningBerserker.java
index 03da0b0da4..65f5612f9d 100644
--- a/Mage.Sets/src/mage/cards/l/LightningBerserker.java
+++ b/Mage.Sets/src/mage/cards/l/LightningBerserker.java
@@ -30,7 +30,7 @@ public final class LightningBerserker extends CardImpl {
// {R}: Lightning Berserker gets +1/+0 until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostSourceEffect(1, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{R}")));
+ new ManaCostsImpl<>("{R}")));
// Dash {R}
this.addAbility(new DashAbility("{R}"));
diff --git a/Mage.Sets/src/mage/cards/l/LightningCloud.java b/Mage.Sets/src/mage/cards/l/LightningCloud.java
index dbca8b0e4e..48ca1cca64 100644
--- a/Mage.Sets/src/mage/cards/l/LightningCloud.java
+++ b/Mage.Sets/src/mage/cards/l/LightningCloud.java
@@ -31,7 +31,7 @@ public final class LightningCloud extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R}");
// Whenever a player casts a red spell, you may pay {R}. If you do, Lightning Cloud deals 1 damage to any target.
- Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new DamageTargetEffect(1), new ManaCostsImpl("{R}")), filter, false);
+ Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new DamageTargetEffect(1), new ManaCostsImpl<>("{R}")), filter, false);
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LightningMare.java b/Mage.Sets/src/mage/cards/l/LightningMare.java
index 194c5fdaca..32f6f387f4 100644
--- a/Mage.Sets/src/mage/cards/l/LightningMare.java
+++ b/Mage.Sets/src/mage/cards/l/LightningMare.java
@@ -53,7 +53,7 @@ public final class LightningMare extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new BoostSourceEffect(1, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{1}{R}")
+ new ManaCostsImpl<>("{1}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/l/LightningSurge.java b/Mage.Sets/src/mage/cards/l/LightningSurge.java
index 0c2bdf6f2e..0f88f15f90 100644
--- a/Mage.Sets/src/mage/cards/l/LightningSurge.java
+++ b/Mage.Sets/src/mage/cards/l/LightningSurge.java
@@ -33,7 +33,7 @@ public final class LightningSurge extends CardImpl {
this.getSpellAbility().addEffect(effect);
// Flashback {5}{R}{R}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{5}{R}{R}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{R}{R}")));
}
private LightningSurge(final LightningSurge card) {
diff --git a/Mage.Sets/src/mage/cards/l/LilianasDevotee.java b/Mage.Sets/src/mage/cards/l/LilianasDevotee.java
index 5ec2241310..ec0a33f35c 100644
--- a/Mage.Sets/src/mage/cards/l/LilianasDevotee.java
+++ b/Mage.Sets/src/mage/cards/l/LilianasDevotee.java
@@ -44,7 +44,7 @@ public final class LilianasDevotee extends CardImpl {
// At the beginning of your end step, if a creature died this turn, you may pay {1}{B}. If you do, create a 2/2 black Zombie creature token.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new BeginningOfEndStepTriggeredAbility(new DoIfCostPaid(
- new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl("{1}{B}")
+ new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl<>("{1}{B}")
), TargetController.YOU, false), MorbidCondition.instance,
"At the beginning of your end step, if a creature died this turn, " +
"you may pay {1}{B}. If you do, create a 2/2 black Zombie creature token."
diff --git a/Mage.Sets/src/mage/cards/l/LilianasShade.java b/Mage.Sets/src/mage/cards/l/LilianasShade.java
index 7b612d17bb..817e07d473 100644
--- a/Mage.Sets/src/mage/cards/l/LilianasShade.java
+++ b/Mage.Sets/src/mage/cards/l/LilianasShade.java
@@ -39,7 +39,7 @@ public final class LilianasShade extends CardImpl {
// When Liliana's Shade enters the battlefield, you may search your library for a Swamp card, reveal it, put it into your hand, then shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true), true));
// {B}: Liliana's Shade gets +1/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
}
private LilianasShade(final LilianasShade card) {
diff --git a/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java b/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java
index 912aca2b98..457aa13b6b 100644
--- a/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java
+++ b/Mage.Sets/src/mage/cards/l/LimDulTheNecromancer.java
@@ -45,10 +45,10 @@ public final class LimDulTheNecromancer extends CardImpl {
this.toughness = new MageInt(4);
// Whenever a creature an opponent controls dies, you may pay {1}{B}. If you do, return that card to the battlefield under your control. If it's a creature, it's a Zombie in addition to its other creature types.
- this.addAbility(new DiesCreatureTriggeredAbility(new DoIfCostPaid(new LimDulTheNecromancerEffect(), new ManaCostsImpl("{1}{B}")), false, StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE, true));
+ this.addAbility(new DiesCreatureTriggeredAbility(new DoIfCostPaid(new LimDulTheNecromancerEffect(), new ManaCostsImpl<>("{1}{B}")), false, StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE, true));
// {1}{B}: Regenerate target Zombie.
- Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{1}{B}"));
+ Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{1}{B}"));
ability2.addTarget(new TargetPermanent(filter2));
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/l/LimDulsHex.java b/Mage.Sets/src/mage/cards/l/LimDulsHex.java
index 9dd7081f6a..81b8bc7964 100644
--- a/Mage.Sets/src/mage/cards/l/LimDulsHex.java
+++ b/Mage.Sets/src/mage/cards/l/LimDulsHex.java
@@ -61,7 +61,7 @@ class LimDulsHexEffect extends OneShotEffect {
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null) {
- OrCost costToPay = new OrCost("{B} or {3}", new ManaCostsImpl("{B}"), new ManaCostsImpl("{3}"));
+ OrCost costToPay = new OrCost("{B} or {3}", new ManaCostsImpl<>("{B}"), new ManaCostsImpl<>("{3}"));
costToPay.clearPaid();
if (!(player.chooseUse(Outcome.Benefit, "Pay {B} or {3}?", source, game) && costToPay.pay(source, game, source, player.getId(), false, null))) {
game.informPlayers(player.getLogName() + " chooses not to pay " + costToPay.getText() + " to prevent 1 damage from " + sourcePermanent.getLogName());
diff --git a/Mage.Sets/src/mage/cards/l/LimDulsHighGuard.java b/Mage.Sets/src/mage/cards/l/LimDulsHighGuard.java
index 3a39f48780..a0d95b8fc4 100644
--- a/Mage.Sets/src/mage/cards/l/LimDulsHighGuard.java
+++ b/Mage.Sets/src/mage/cards/l/LimDulsHighGuard.java
@@ -28,7 +28,7 @@ public final class LimDulsHighGuard extends CardImpl {
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// {1}{B}: Regenerate Lim-Dul's High Guard.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private LimDulsHighGuard(final LimDulsHighGuard card) {
diff --git a/Mage.Sets/src/mage/cards/l/LimestoneGolem.java b/Mage.Sets/src/mage/cards/l/LimestoneGolem.java
index 8b7cae4b87..43968606ac 100644
--- a/Mage.Sets/src/mage/cards/l/LimestoneGolem.java
+++ b/Mage.Sets/src/mage/cards/l/LimestoneGolem.java
@@ -29,7 +29,7 @@ public final class LimestoneGolem extends CardImpl {
this.toughness = new MageInt(4);
// {2}, Sacrifice Limestone Golem: Target player draws a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardTargetEffect(1), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardTargetEffect(1), new ManaCostsImpl<>("{2}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java b/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java
index cd83cac2ab..24e41d2511 100644
--- a/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java
+++ b/Mage.Sets/src/mage/cards/l/LimitsOfSolidarity.java
@@ -35,7 +35,7 @@ public final class LimitsOfSolidarity extends CardImpl {
this.getSpellAbility().addEffect(effect);
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
diff --git a/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java b/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java
index 4e22fbe3f5..36680bdc78 100644
--- a/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java
+++ b/Mage.Sets/src/mage/cards/l/LinSivviDefiantHero.java
@@ -48,7 +48,7 @@ public final class LinSivviDefiantHero extends CardImpl {
// {X}, {tap}: Search your library for a Rebel permanent card with converted mana cost X or less and put it onto the battlefield. Then shuffle your library.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new LinSivviDefiantHeroEffect(),
- new ManaCostsImpl("{X}"));
+ new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java b/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java
index bdc7d33c8a..d07de0c991 100644
--- a/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java
+++ b/Mage.Sets/src/mage/cards/l/LinessaZephyrMage.java
@@ -50,7 +50,7 @@ public final class LinessaZephyrMage extends CardImpl {
this.toughness = new MageInt(3);
// {X}{U}{U}, {tap}: Return target creature with converted mana cost X to its owner's hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{X}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{X}{U}{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(filter));
ability.setTargetAdjuster(XCMCPermanentAdjuster.instance);
diff --git a/Mage.Sets/src/mage/cards/l/LingeringMirage.java b/Mage.Sets/src/mage/cards/l/LingeringMirage.java
index 4ad16c9648..355951d169 100644
--- a/Mage.Sets/src/mage/cards/l/LingeringMirage.java
+++ b/Mage.Sets/src/mage/cards/l/LingeringMirage.java
@@ -39,7 +39,7 @@ public final class LingeringMirage extends CardImpl {
// Enchanted land is an Island.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesBasicLandEnchantedEffect(SubType.ISLAND)));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private LingeringMirage(final LingeringMirage card) {
diff --git a/Mage.Sets/src/mage/cards/l/LingeringPhantom.java b/Mage.Sets/src/mage/cards/l/LingeringPhantom.java
index e112fb3a0a..712efe6e29 100644
--- a/Mage.Sets/src/mage/cards/l/LingeringPhantom.java
+++ b/Mage.Sets/src/mage/cards/l/LingeringPhantom.java
@@ -37,7 +37,7 @@ public final class LingeringPhantom extends CardImpl {
this.addAbility(new SpellCastControllerTriggeredAbility(
Zone.GRAVEYARD, new DoIfCostPaid(new ReturnSourceFromGraveyardToHandEffect()
.setText("return {this} from your graveyard to your hand. (Artifacts, legendaries, and Sagas are historic.)"),
- new ManaCostsImpl("{B}")),
+ new ManaCostsImpl<>("{B}")),
filter, false, false
));
}
diff --git a/Mage.Sets/src/mage/cards/l/LingeringSouls.java b/Mage.Sets/src/mage/cards/l/LingeringSouls.java
index 109d50883a..80100d3515 100644
--- a/Mage.Sets/src/mage/cards/l/LingeringSouls.java
+++ b/Mage.Sets/src/mage/cards/l/LingeringSouls.java
@@ -23,7 +23,7 @@ public final class LingeringSouls extends CardImpl {
// Create two 1/1 white Spirit creature tokens with flying.
this.getSpellAbility().addEffect(new CreateTokenEffect(new SpiritWhiteToken(), 2));
// Flashback {1}{B}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{1}{B}")));
}
private LingeringSouls(final LingeringSouls card) {
diff --git a/Mage.Sets/src/mage/cards/l/LionheartMaverick.java b/Mage.Sets/src/mage/cards/l/LionheartMaverick.java
index c8026b9955..757ba184b4 100644
--- a/Mage.Sets/src/mage/cards/l/LionheartMaverick.java
+++ b/Mage.Sets/src/mage/cards/l/LionheartMaverick.java
@@ -28,7 +28,7 @@ public final class LionheartMaverick extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(VigilanceAbility.getInstance());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 2, Duration.EndOfTurn), new ManaCostsImpl("{4}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}")));
}
private LionheartMaverick(final LionheartMaverick card) {
diff --git a/Mage.Sets/src/mage/cards/l/LivingAirship.java b/Mage.Sets/src/mage/cards/l/LivingAirship.java
index 01c5e0a7b2..5a62add9ea 100644
--- a/Mage.Sets/src/mage/cards/l/LivingAirship.java
+++ b/Mage.Sets/src/mage/cards/l/LivingAirship.java
@@ -25,7 +25,7 @@ public final class LivingAirship extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(3);
this.addAbility(FlyingAbility.getInstance());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{2}{G}")));
}
private LivingAirship(final LivingAirship card) {
diff --git a/Mage.Sets/src/mage/cards/l/LivingEnd.java b/Mage.Sets/src/mage/cards/l/LivingEnd.java
index 2fe554d4d4..871e0a2b6d 100644
--- a/Mage.Sets/src/mage/cards/l/LivingEnd.java
+++ b/Mage.Sets/src/mage/cards/l/LivingEnd.java
@@ -20,7 +20,7 @@ public final class LivingEnd extends CardImpl {
this.color.setBlack(true);
// Suspend 3-{2}{B}{B}
- this.addAbility(new SuspendAbility(3, new ManaCostsImpl("{2}{B}{B}"), this));
+ this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{2}{B}{B}"), this));
// Each player exiles all creature cards from their graveyard, then sacrifices all creatures
// they control, then puts all cards they exiled this way onto the battlefield.
this.getSpellAbility().addEffect(new LivingDeathEffect());
diff --git a/Mage.Sets/src/mage/cards/l/LivingTwister.java b/Mage.Sets/src/mage/cards/l/LivingTwister.java
index 83779f7deb..2342366d31 100644
--- a/Mage.Sets/src/mage/cards/l/LivingTwister.java
+++ b/Mage.Sets/src/mage/cards/l/LivingTwister.java
@@ -41,7 +41,7 @@ public final class LivingTwister extends CardImpl {
// {1}{R}, Discard a land card: Living Twister deals 2 damage to any target.
Ability ability = new SimpleActivatedAbility(
- new DamageTargetEffect(2), new ManaCostsImpl("{1}{R}")
+ new DamageTargetEffect(2), new ManaCostsImpl<>("{1}{R}")
);
ability.addCost(new DiscardTargetCost(new TargetCardInHand(StaticFilters.FILTER_CARD_LAND_A)));
ability.addTarget(new TargetAnyTarget());
@@ -49,7 +49,7 @@ public final class LivingTwister extends CardImpl {
// {G}: Return a tapped land you control to its owner's hand.
this.addAbility(new SimpleActivatedAbility(
- new ReturnToHandChosenControlledPermanentEffect(filter), new ManaCostsImpl("{G}")
+ new ReturnToHandChosenControlledPermanentEffect(filter), new ManaCostsImpl<>("{G}")
));
}
diff --git a/Mage.Sets/src/mage/cards/l/LivingWall.java b/Mage.Sets/src/mage/cards/l/LivingWall.java
index cc1bdcc292..57c093ddce 100644
--- a/Mage.Sets/src/mage/cards/l/LivingWall.java
+++ b/Mage.Sets/src/mage/cards/l/LivingWall.java
@@ -29,7 +29,7 @@ public final class LivingWall extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
// {1}: Regenerate Living Wall.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}")));
}
diff --git a/Mage.Sets/src/mage/cards/l/LivioOathswornSentinel.java b/Mage.Sets/src/mage/cards/l/LivioOathswornSentinel.java
index e835b0a746..8aae31bc87 100644
--- a/Mage.Sets/src/mage/cards/l/LivioOathswornSentinel.java
+++ b/Mage.Sets/src/mage/cards/l/LivioOathswornSentinel.java
@@ -47,13 +47,13 @@ public final class LivioOathswornSentinel extends CardImpl {
// {1}{W}: Choose another target creature. Its controller may exile it with an aegis counter on it.
Ability ability = new SimpleActivatedAbility(
- new LivioOathswornSentinelExileEffect(), new ManaCostsImpl("{1}{W}")
+ new LivioOathswornSentinelExileEffect(), new ManaCostsImpl<>("{1}{W}")
);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
// {2}{W}, {T}: Return all exiled cards with aegis counters on them to the battlefield under their owners' control.
- ability = new SimpleActivatedAbility(new LivioOathswornSentinelReturnEffect(), new ManaCostsImpl("{2}{W}"));
+ ability = new SimpleActivatedAbility(new LivioOathswornSentinelReturnEffect(), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LlanowarCavalry.java b/Mage.Sets/src/mage/cards/l/LlanowarCavalry.java
index c0238b80d2..2f2c0c25c6 100644
--- a/Mage.Sets/src/mage/cards/l/LlanowarCavalry.java
+++ b/Mage.Sets/src/mage/cards/l/LlanowarCavalry.java
@@ -28,7 +28,7 @@ public final class LlanowarCavalry extends CardImpl {
this.toughness = new MageInt(4);
// {W}: Llanowar Cavalry gains vigilance until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{W}")));
}
private LlanowarCavalry(final LlanowarCavalry card) {
diff --git a/Mage.Sets/src/mage/cards/l/LlanowarEnvoy.java b/Mage.Sets/src/mage/cards/l/LlanowarEnvoy.java
index 48dc294d52..17613803ba 100644
--- a/Mage.Sets/src/mage/cards/l/LlanowarEnvoy.java
+++ b/Mage.Sets/src/mage/cards/l/LlanowarEnvoy.java
@@ -26,7 +26,7 @@ public final class LlanowarEnvoy extends CardImpl {
this.toughness = new MageInt(2);
// {1}{G}: Add one mana of any color.
- Ability ability = new AnyColorManaAbility(new ManaCostsImpl("{1}{G}"));
+ Ability ability = new AnyColorManaAbility(new ManaCostsImpl<>("{1}{G}"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LlanowarMentor.java b/Mage.Sets/src/mage/cards/l/LlanowarMentor.java
index f9338c3983..66989232c1 100644
--- a/Mage.Sets/src/mage/cards/l/LlanowarMentor.java
+++ b/Mage.Sets/src/mage/cards/l/LlanowarMentor.java
@@ -29,7 +29,7 @@ public final class LlanowarMentor extends CardImpl {
this.toughness = new MageInt(1);
// {G}, {T}, Discard a card: Create a 1/1 green Elf Druid creature token named Llanowar Elves. It has "{T}: Add {G}."
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LlanowarElvesToken()), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LlanowarElvesToken()), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LoathsomeCatoblepas.java b/Mage.Sets/src/mage/cards/l/LoathsomeCatoblepas.java
index 372d877381..9e314fe77d 100644
--- a/Mage.Sets/src/mage/cards/l/LoathsomeCatoblepas.java
+++ b/Mage.Sets/src/mage/cards/l/LoathsomeCatoblepas.java
@@ -33,7 +33,7 @@ public final class LoathsomeCatoblepas extends CardImpl {
this.toughness = new MageInt(3);
// {2}{G}: Loathsome Catoblepas must be blocked this turn if able.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByAtLeastOneSourceEffect(), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByAtLeastOneSourceEffect(), new ManaCostsImpl<>("{2}{G}")));
// When Loathsome Catoblepas dies, target creature an opponent controls gets -3/-3 until end of turn.
Ability ability = new DiesSourceTriggeredAbility(new BoostTargetEffect(-3,-3, Duration.EndOfTurn), false);
Target target = new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE);
diff --git a/Mage.Sets/src/mage/cards/l/LochKorrigan.java b/Mage.Sets/src/mage/cards/l/LochKorrigan.java
index f8bacd4091..a030f76204 100644
--- a/Mage.Sets/src/mage/cards/l/LochKorrigan.java
+++ b/Mage.Sets/src/mage/cards/l/LochKorrigan.java
@@ -26,7 +26,7 @@ public final class LochKorrigan extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{U/B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{U/B}")));
}
private LochKorrigan(final LochKorrigan card) {
diff --git a/Mage.Sets/src/mage/cards/l/LochmereSerpent.java b/Mage.Sets/src/mage/cards/l/LochmereSerpent.java
index 80d89e826f..0ca107fe5e 100644
--- a/Mage.Sets/src/mage/cards/l/LochmereSerpent.java
+++ b/Mage.Sets/src/mage/cards/l/LochmereSerpent.java
@@ -47,13 +47,13 @@ public final class LochmereSerpent extends CardImpl {
// {U}, Sacrifice an Island: Lochmere Serpent can't be blocked this turn.
Ability ability = new SimpleActivatedAbility(
- new CantBeBlockedSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{U}")
+ new CantBeBlockedSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{U}")
);
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter1)));
this.addAbility(ability);
// {B}, Sacrifice a Swamp: You gain 1 life and draw a card.
- ability = new SimpleActivatedAbility(new GainLifeEffect(1), new ManaCostsImpl("{B}"));
+ ability = new SimpleActivatedAbility(new GainLifeEffect(1), new ManaCostsImpl<>("{B}"));
ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy("and"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter2)));
this.addAbility(ability);
@@ -62,7 +62,7 @@ public final class LochmereSerpent extends CardImpl {
ability = new ActivateAsSorceryActivatedAbility(
Zone.GRAVEYARD,
new ExileTargetEffect().setText("Exile five target cards from an opponent's graveyard."),
- new ManaCostsImpl("{U}{B}")
+ new ManaCostsImpl<>("{U}{B}")
);
ability.addEffect(new ReturnSourceFromGraveyardToHandEffect());
ability.addTarget(new TargetCardInOpponentsGraveyard(
diff --git a/Mage.Sets/src/mage/cards/l/LocustSwarm.java b/Mage.Sets/src/mage/cards/l/LocustSwarm.java
index 74c81d9baa..ca51b3b527 100644
--- a/Mage.Sets/src/mage/cards/l/LocustSwarm.java
+++ b/Mage.Sets/src/mage/cards/l/LocustSwarm.java
@@ -31,10 +31,10 @@ public final class LocustSwarm extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {G}: Regenerate Locust Swarm.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{G}")));
// {G}: Untap Locust Swarm. Activate this ability only once each turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{G}")));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl<>("{G}")));
}
private LocustSwarm(final LocustSwarm card) {
diff --git a/Mage.Sets/src/mage/cards/l/LonelySandbar.java b/Mage.Sets/src/mage/cards/l/LonelySandbar.java
index 70a8c69ead..f525da35e9 100644
--- a/Mage.Sets/src/mage/cards/l/LonelySandbar.java
+++ b/Mage.Sets/src/mage/cards/l/LonelySandbar.java
@@ -24,7 +24,7 @@ public final class LonelySandbar extends CardImpl {
// {tap}: Add {U}.
this.addAbility(new BlueManaAbility());
// Cycling {U}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{U}")));
}
private LonelySandbar(final LonelySandbar card) {
diff --git a/Mage.Sets/src/mage/cards/l/LongshotSquad.java b/Mage.Sets/src/mage/cards/l/LongshotSquad.java
index 9c616c98e9..1b4c8a70e3 100644
--- a/Mage.Sets/src/mage/cards/l/LongshotSquad.java
+++ b/Mage.Sets/src/mage/cards/l/LongshotSquad.java
@@ -31,7 +31,7 @@ public final class LongshotSquad extends CardImpl {
this.toughness = new MageInt(3);
// Outlast 1G
- this.addAbility(new OutlastAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new OutlastAbility(new ManaCostsImpl<>("{1}{G}")));
// Each creature you control with a +1/+1 counter on it has reach.
this.addAbility(new SimpleStaticAbility(
Zone.BATTLEFIELD,
diff --git a/Mage.Sets/src/mage/cards/l/LoomingShade.java b/Mage.Sets/src/mage/cards/l/LoomingShade.java
index 1f7fa8c541..a60586c792 100644
--- a/Mage.Sets/src/mage/cards/l/LoomingShade.java
+++ b/Mage.Sets/src/mage/cards/l/LoomingShade.java
@@ -26,7 +26,7 @@ public final class LoomingShade extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
}
private LoomingShade(final LoomingShade card) {
diff --git a/Mage.Sets/src/mage/cards/l/LordOfShatterskullPass.java b/Mage.Sets/src/mage/cards/l/LordOfShatterskullPass.java
index 090eec0977..d4d855b530 100644
--- a/Mage.Sets/src/mage/cards/l/LordOfShatterskullPass.java
+++ b/Mage.Sets/src/mage/cards/l/LordOfShatterskullPass.java
@@ -38,7 +38,7 @@ public final class LordOfShatterskullPass extends LevelerCard {
this.toughness = new MageInt(3);
// Level up {1}{R}
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{1}{R}")));
// LEVEL 1-5
// 6/6
Abilities abilities1 = new AbilitiesImpl<>();
diff --git a/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java b/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java
index aeaecbd9c7..865c56683a 100644
--- a/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java
+++ b/Mage.Sets/src/mage/cards/l/LordOfTheAccursed.java
@@ -42,7 +42,7 @@ public final class LordOfTheAccursed extends CardImpl {
new MenaceAbility(),
Duration.EndOfTurn,
filter, "All Zombies gain menace until end of turn."),
- new ManaCostsImpl("{1}{B}"));
+ new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java b/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java
index c5826d22b6..89ff9082a8 100644
--- a/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java
+++ b/Mage.Sets/src/mage/cards/l/LordOfTresserhorn.java
@@ -45,7 +45,7 @@ public final class LordOfTresserhorn extends CardImpl {
this.addAbility(ability);
// {B}: Regenerate Lord of Tresserhorn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
}
private LordOfTresserhorn(final LordOfTresserhorn card) {
diff --git a/Mage.Sets/src/mage/cards/l/LoreWeaver.java b/Mage.Sets/src/mage/cards/l/LoreWeaver.java
index c1aa2fa579..c0369de242 100644
--- a/Mage.Sets/src/mage/cards/l/LoreWeaver.java
+++ b/Mage.Sets/src/mage/cards/l/LoreWeaver.java
@@ -32,7 +32,7 @@ public final class LoreWeaver extends CardImpl {
this.addAbility(new PartnerWithAbility("Ley Weaver"));
// {5}{U}{U}: Target player draws two cards.
- Ability ability = new SimpleActivatedAbility(new DrawCardTargetEffect(2), new ManaCostsImpl("{5}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(new DrawCardTargetEffect(2), new ManaCostsImpl<>("{5}{U}{U}"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LotlethTroll.java b/Mage.Sets/src/mage/cards/l/LotlethTroll.java
index a8c05bbbdb..21caf81580 100644
--- a/Mage.Sets/src/mage/cards/l/LotlethTroll.java
+++ b/Mage.Sets/src/mage/cards/l/LotlethTroll.java
@@ -41,7 +41,7 @@ public final class LotlethTroll extends CardImpl {
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new DiscardTargetCost(new TargetCardInHand(filter))));
// {B}: Regenerate Lotleth Troll.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
}
private LotlethTroll(final LotlethTroll card) {
diff --git a/Mage.Sets/src/mage/cards/l/LoxodonHierarch.java b/Mage.Sets/src/mage/cards/l/LoxodonHierarch.java
index 55b531e214..143c5da68d 100644
--- a/Mage.Sets/src/mage/cards/l/LoxodonHierarch.java
+++ b/Mage.Sets/src/mage/cards/l/LoxodonHierarch.java
@@ -36,7 +36,7 @@ public final class LoxodonHierarch extends CardImpl {
Ability etbAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(4));
this.addAbility(etbAbility);
// {G}{W}, Sacrifice Loxodon Hierarch: Regenerate each creature you control.
- Ability activated = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAllEffect(StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED), new ManaCostsImpl("{G}{W}"));
+ Ability activated = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAllEffect(StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED), new ManaCostsImpl<>("{G}{W}"));
activated.addCost(new SacrificeSourceCost());
this.addAbility(activated);
}
diff --git a/Mage.Sets/src/mage/cards/l/LoxodonLifechanter.java b/Mage.Sets/src/mage/cards/l/LoxodonLifechanter.java
index 239901d607..e7efea15bb 100644
--- a/Mage.Sets/src/mage/cards/l/LoxodonLifechanter.java
+++ b/Mage.Sets/src/mage/cards/l/LoxodonLifechanter.java
@@ -43,7 +43,7 @@ public final class LoxodonLifechanter extends CardImpl {
LoxodonLifechanterValue2.instance,
LoxodonLifechanterValue2.instance,
Duration.EndOfTurn, true
- ), new ManaCostsImpl("{5}{W}")));
+ ), new ManaCostsImpl<>("{5}{W}")));
}
private LoxodonLifechanter(final LoxodonLifechanter card) {
diff --git a/Mage.Sets/src/mage/cards/l/LoxodonStalwart.java b/Mage.Sets/src/mage/cards/l/LoxodonStalwart.java
index 81dbf50f7d..0cc203253e 100644
--- a/Mage.Sets/src/mage/cards/l/LoxodonStalwart.java
+++ b/Mage.Sets/src/mage/cards/l/LoxodonStalwart.java
@@ -31,7 +31,7 @@ public final class LoxodonStalwart extends CardImpl {
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// {W}: Loxodon Stalwart gets +0/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{W}")));
}
private LoxodonStalwart(final LoxodonStalwart card) {
diff --git a/Mage.Sets/src/mage/cards/l/LoyalTauntaun.java b/Mage.Sets/src/mage/cards/l/LoyalTauntaun.java
index 7a135dcbaf..34465a19bb 100644
--- a/Mage.Sets/src/mage/cards/l/LoyalTauntaun.java
+++ b/Mage.Sets/src/mage/cards/l/LoyalTauntaun.java
@@ -28,7 +28,7 @@ public final class LoyalTauntaun extends CardImpl {
this.toughness = new MageInt(3);
// {1}{G}, sacrifice Loyal Tauntaun: Regenerate target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{1}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{1}{G}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LudevicsTestSubject.java b/Mage.Sets/src/mage/cards/l/LudevicsTestSubject.java
index 509e225b80..a443019c75 100644
--- a/Mage.Sets/src/mage/cards/l/LudevicsTestSubject.java
+++ b/Mage.Sets/src/mage/cards/l/LudevicsTestSubject.java
@@ -39,7 +39,7 @@ public final class LudevicsTestSubject extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
// {1}{U}: Put a hatchling counter on Ludevic's Test Subject. Then if there are five or more hatchling counters on it, remove all of them and transform it.
this.addAbility(new TransformAbility());
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.HATCHLING.createInstance()), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.HATCHLING.createInstance()), new ManaCostsImpl<>("{1}{U}"));
ability.addEffect(new LudevicsTestSubjectEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/Lull.java b/Mage.Sets/src/mage/cards/l/Lull.java
index 55a2650e6d..cef3932702 100644
--- a/Mage.Sets/src/mage/cards/l/Lull.java
+++ b/Mage.Sets/src/mage/cards/l/Lull.java
@@ -23,7 +23,7 @@ public final class Lull extends CardImpl {
//Prevent all combat damage that would be dealt this turn.
this.getSpellAbility().addEffect(new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true));
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private Lull(final Lull card) {
diff --git a/Mage.Sets/src/mage/cards/l/LumberingFalls.java b/Mage.Sets/src/mage/cards/l/LumberingFalls.java
index c5cae875f4..20fdb4ef5f 100644
--- a/Mage.Sets/src/mage/cards/l/LumberingFalls.java
+++ b/Mage.Sets/src/mage/cards/l/LumberingFalls.java
@@ -35,7 +35,7 @@ public final class LumberingFalls extends CardImpl {
this.addAbility(new GreenManaAbility());
// {2}{G}{U}: Lumbering Falls becomes a 3/3 green and blue Elemental creature with hexproof until end of turn. It's still a land.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LumberingFallsToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{2}{G}{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new LumberingFallsToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{2}{G}{U}")));
}
private LumberingFalls(final LumberingFalls card) {
diff --git a/Mage.Sets/src/mage/cards/l/LuminousGuardian.java b/Mage.Sets/src/mage/cards/l/LuminousGuardian.java
index 2aceecc67f..ae11a79c4e 100644
--- a/Mage.Sets/src/mage/cards/l/LuminousGuardian.java
+++ b/Mage.Sets/src/mage/cards/l/LuminousGuardian.java
@@ -29,9 +29,9 @@ public final class LuminousGuardian extends CardImpl {
this.toughness = new MageInt(4);
// {W}: Luminous Guardian gets +0/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{W}")));
// {2}: Luminous Guardian can block an additional creature this turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(Duration.EndOfTurn, 1), new ManaCostsImpl("{2}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(Duration.EndOfTurn, 1), new ManaCostsImpl<>("{2}")));
}
private LuminousGuardian(final LuminousGuardian card) {
diff --git a/Mage.Sets/src/mage/cards/l/LumithreadField.java b/Mage.Sets/src/mage/cards/l/LumithreadField.java
index 9534763ff0..4df5634ea6 100644
--- a/Mage.Sets/src/mage/cards/l/LumithreadField.java
+++ b/Mage.Sets/src/mage/cards/l/LumithreadField.java
@@ -25,7 +25,7 @@ public final class LumithreadField extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield)));
// Morph {1}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{W}")));
}
private LumithreadField(final LumithreadField card) {
diff --git a/Mage.Sets/src/mage/cards/l/LunarchMantle.java b/Mage.Sets/src/mage/cards/l/LunarchMantle.java
index 7928e2095e..f443b6ac77 100644
--- a/Mage.Sets/src/mage/cards/l/LunarchMantle.java
+++ b/Mage.Sets/src/mage/cards/l/LunarchMantle.java
@@ -47,7 +47,7 @@ public final class LunarchMantle extends CardImpl {
// Enchanted creature gets +2/+2 and has "{1}, Sacrifice a permanent: This creature gains flying until end of turn."
SimpleStaticAbility ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}"));
+ new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}"));
abilityToGain.addCost(new SacrificeTargetCost(new TargetControlledPermanent()));
ability2.addEffect(new GainAbilityAttachedEffect(abilityToGain, AttachmentType.AURA, Duration.WhileOnBattlefield, rule));
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/l/LurchingRotbeast.java b/Mage.Sets/src/mage/cards/l/LurchingRotbeast.java
index 47a5d916ed..88c1f0f55d 100644
--- a/Mage.Sets/src/mage/cards/l/LurchingRotbeast.java
+++ b/Mage.Sets/src/mage/cards/l/LurchingRotbeast.java
@@ -25,7 +25,7 @@ public final class LurchingRotbeast extends CardImpl {
this.toughness = new MageInt(2);
// Cycling {B}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{B}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{B}")));
}
diff --git a/Mage.Sets/src/mage/cards/l/LurkingArynx.java b/Mage.Sets/src/mage/cards/l/LurkingArynx.java
index c4ec99597f..510b8d5c25 100644
--- a/Mage.Sets/src/mage/cards/l/LurkingArynx.java
+++ b/Mage.Sets/src/mage/cards/l/LurkingArynx.java
@@ -34,7 +34,7 @@ public final class LurkingArynx extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(
Zone.BATTLEFIELD,
new MustBeBlockedByTargetSourceEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{2}{G}"),
+ new ManaCostsImpl<>("{2}{G}"),
FormidableCondition.instance);
ability.setAbilityWord(AbilityWord.FORMIDABLE);
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java b/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java
index 2c05b67606..9f54bc2869 100644
--- a/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java
+++ b/Mage.Sets/src/mage/cards/l/LuxaRiverShrine.java
@@ -29,7 +29,7 @@ public final class LuxaRiverShrine extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
// {1}, {T}: You gain 1 life. Put a brick counter on Luxa River Shrine.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new AddCountersSourceEffect(CounterType.BRICK.createInstance()));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java b/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java
index 2b3d6af99d..77ae5e8194 100644
--- a/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java
+++ b/Mage.Sets/src/mage/cards/l/LyzoldaTheBloodWitch.java
@@ -56,7 +56,7 @@ public final class LyzoldaTheBloodWitch extends CardImpl {
new DamageTargetEffect(2),
new SacrificedWasCondition(redFilter),
"{this} deals 2 damage to any target if the sacrificed creature was red");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}"));
effect = new ConditionalOneShotEffect(
new DrawCardSourceControllerEffect(1),
new SacrificedWasCondition(blackFilter),
diff --git a/Mage.Sets/src/mage/cards/m/MaceWindu.java b/Mage.Sets/src/mage/cards/m/MaceWindu.java
index 6749bb9c43..b6ebd3b97d 100644
--- a/Mage.Sets/src/mage/cards/m/MaceWindu.java
+++ b/Mage.Sets/src/mage/cards/m/MaceWindu.java
@@ -47,7 +47,7 @@ public final class MaceWindu extends CardImpl {
this.addAbility(ability);
// Meditate {1}{U}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{U}")));
}
private MaceWindu(final MaceWindu card) {
diff --git a/Mage.Sets/src/mage/cards/m/MacetailHystrodon.java b/Mage.Sets/src/mage/cards/m/MacetailHystrodon.java
index 67d6e3c1d1..818f09ad42 100644
--- a/Mage.Sets/src/mage/cards/m/MacetailHystrodon.java
+++ b/Mage.Sets/src/mage/cards/m/MacetailHystrodon.java
@@ -30,7 +30,7 @@ public final class MacetailHystrodon extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
// Cycling {3}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{3}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{3}")));
}
private MacetailHystrodon(final MacetailHystrodon card) {
diff --git a/Mage.Sets/src/mage/cards/m/MadblindMountain.java b/Mage.Sets/src/mage/cards/m/MadblindMountain.java
index 63cd3c954c..f635a3fb40 100644
--- a/Mage.Sets/src/mage/cards/m/MadblindMountain.java
+++ b/Mage.Sets/src/mage/cards/m/MadblindMountain.java
@@ -45,7 +45,7 @@ public final class MadblindMountain extends CardImpl {
// {R}, {tap}: Shuffle your library. Activate this ability only if you control two or more red permanents.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new ShuffleLibrarySourceEffect(),
- new ManaCostsImpl("{R}"),
+ new ManaCostsImpl<>("{R}"),
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java b/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java
index a0998a4d4b..764d3f7406 100644
--- a/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java
+++ b/Mage.Sets/src/mage/cards/m/MaelstromDjinn.java
@@ -35,7 +35,7 @@ public final class MaelstromDjinn extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Morph {2}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{U}")));
// When Maelstrom Djinn is turned face up, put two time counters on it and it gains vanishing.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new AddCountersSourceEffect(CounterType.TIME.createInstance(2)));
Effect effect = new GainAbilitySourceEffect(new VanishingUpkeepAbility(0), Duration.WhileOnBattlefield);
diff --git a/Mage.Sets/src/mage/cards/m/MageRingNetwork.java b/Mage.Sets/src/mage/cards/m/MageRingNetwork.java
index 935e6f0fb9..6502283911 100644
--- a/Mage.Sets/src/mage/cards/m/MageRingNetwork.java
+++ b/Mage.Sets/src/mage/cards/m/MageRingNetwork.java
@@ -33,7 +33,7 @@ public final class MageRingNetwork extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {1}, {T}: Put a storage counter on Mage-Ring Network.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),
- new ManaCostsImpl("{1}"));
+ new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
// {T}, Remove any number of storage counters from Mage-Ring Network: Add {C} for each storage counter removed this way.
diff --git a/Mage.Sets/src/mage/cards/m/MageRingResponder.java b/Mage.Sets/src/mage/cards/m/MageRingResponder.java
index 1a328072b3..c38ba3acc3 100644
--- a/Mage.Sets/src/mage/cards/m/MageRingResponder.java
+++ b/Mage.Sets/src/mage/cards/m/MageRingResponder.java
@@ -38,7 +38,7 @@ public final class MageRingResponder extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// {7}: Untap Mage-Ring Responder.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{7}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl<>("{7}")));
// Whenever Mage-Ring Responder attacks, it deals 7 damage to target creature defending player controls.
this.addAbility(new MageRingResponderAbility());
diff --git a/Mage.Sets/src/mage/cards/m/MagesGuile.java b/Mage.Sets/src/mage/cards/m/MagesGuile.java
index ab505a3388..b2910fe42d 100644
--- a/Mage.Sets/src/mage/cards/m/MagesGuile.java
+++ b/Mage.Sets/src/mage/cards/m/MagesGuile.java
@@ -25,7 +25,7 @@ public final class MagesGuile extends CardImpl {
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ShroudAbility.getInstance(), Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Cycling {U}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{U}")));
}
private MagesGuile(final MagesGuile card) {
diff --git a/Mage.Sets/src/mage/cards/m/MagetaTheLion.java b/Mage.Sets/src/mage/cards/m/MagetaTheLion.java
index ac7e6ffb61..d70d61db82 100644
--- a/Mage.Sets/src/mage/cards/m/MagetaTheLion.java
+++ b/Mage.Sets/src/mage/cards/m/MagetaTheLion.java
@@ -42,7 +42,7 @@ public final class MagetaTheLion extends CardImpl {
this.toughness = new MageInt(3);
// {2}{W}{W}, {tap}, Discard two cards: Destroy all creatures except for Mageta the Lion. Those creatures can't be regenerated.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(filter, true), new ManaCostsImpl("{2}{W}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(filter, true), new ManaCostsImpl<>("{2}{W}{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2,2, new FilterCard("two cards"))));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MagewrightsStone.java b/Mage.Sets/src/mage/cards/m/MagewrightsStone.java
index fea2a0bcc7..4ba978a6bf 100644
--- a/Mage.Sets/src/mage/cards/m/MagewrightsStone.java
+++ b/Mage.Sets/src/mage/cards/m/MagewrightsStone.java
@@ -36,7 +36,7 @@ public final class MagewrightsStone extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// {1}, {T}: Untap target creature that has an activated ability with {T} in its cost.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MagmaOpus.java b/Mage.Sets/src/mage/cards/m/MagmaOpus.java
index 93f7c0d1d5..fc202b234d 100644
--- a/Mage.Sets/src/mage/cards/m/MagmaOpus.java
+++ b/Mage.Sets/src/mage/cards/m/MagmaOpus.java
@@ -39,7 +39,7 @@ public final class MagmaOpus extends CardImpl {
// {U/R}{U/R}, Discard Magma Opus: Create a Treasure token.
Ability ability = new SimpleActivatedAbility(
- Zone.HAND, new CreateTokenEffect(new TreasureToken()), new ManaCostsImpl("{U/R}{U/R}")
+ Zone.HAND, new CreateTokenEffect(new TreasureToken()), new ManaCostsImpl<>("{U/R}{U/R}")
);
ability.addCost(new DiscardSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MagmaPhoenix.java b/Mage.Sets/src/mage/cards/m/MagmaPhoenix.java
index 3543d76cf8..7011e599ee 100644
--- a/Mage.Sets/src/mage/cards/m/MagmaPhoenix.java
+++ b/Mage.Sets/src/mage/cards/m/MagmaPhoenix.java
@@ -31,7 +31,7 @@ public final class MagmaPhoenix extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new DiesSourceTriggeredAbility(new DamageEverythingEffect(3, "it"), false));
- this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl("{3}{R}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl<>("{3}{R}{R}")));
}
private MagmaPhoenix(final MagmaPhoenix card) {
diff --git a/Mage.Sets/src/mage/cards/m/MagmaVein.java b/Mage.Sets/src/mage/cards/m/MagmaVein.java
index d2af5b96b0..eff727e422 100644
--- a/Mage.Sets/src/mage/cards/m/MagmaVein.java
+++ b/Mage.Sets/src/mage/cards/m/MagmaVein.java
@@ -37,7 +37,7 @@ public final class MagmaVein extends CardImpl {
// {R}, Sacrifice a land: Magma Vein deals 1 damage to each creature without flying.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter1), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(1, filter1), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter2)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MagmaticCore.java b/Mage.Sets/src/mage/cards/m/MagmaticCore.java
index 297441d2c0..d133c811e9 100644
--- a/Mage.Sets/src/mage/cards/m/MagmaticCore.java
+++ b/Mage.Sets/src/mage/cards/m/MagmaticCore.java
@@ -26,7 +26,7 @@ public final class MagmaticCore extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}{R}");
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// At the beginning of your end step, Magmatic Core deals X damage divided as you choose among any number of target creatures, where X is the number of age counters on it.
DynamicValue value = new CountersSourceCount(CounterType.AGE);
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheBalance.java b/Mage.Sets/src/mage/cards/m/MagusOfTheBalance.java
index bea1648029..54a3344278 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheBalance.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheBalance.java
@@ -30,7 +30,7 @@ public final class MagusOfTheBalance extends CardImpl {
// {4}{W}, {T}, Sacrifice Magus of the Balance: Each player chooses a number of lands they control equal to the number of lands controlled by the player who controls the fewest, then sacrifices the rest. Players discard cards and sacrifice creatures the same way.
Ability ability = new SimpleActivatedAbility(
new BalanceEffect(),
- new ManaCostsImpl("{4}{W}")
+ new ManaCostsImpl<>("{4}{W}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheCandelabra.java b/Mage.Sets/src/mage/cards/m/MagusOfTheCandelabra.java
index a8d48272ea..04c5f32b78 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheCandelabra.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheCandelabra.java
@@ -33,7 +33,7 @@ public final class MagusOfTheCandelabra extends CardImpl {
// {X}, {T}: Untap X target lands.
Effect effect = new UntapTargetEffect();
effect.setText("untap X target lands");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_LANDS));
ability.setTargetAdjuster(XTargetsAdjuster.instance);
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheDisk.java b/Mage.Sets/src/mage/cards/m/MagusOfTheDisk.java
index e6acacc43e..8f51289950 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheDisk.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheDisk.java
@@ -43,7 +43,7 @@ public final class MagusOfTheDisk extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// {1}, {tap}: Destroy all artifacts, creatures, and enchantments.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(filter, false), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(filter, false), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheMind.java b/Mage.Sets/src/mage/cards/m/MagusOfTheMind.java
index d008b35c54..0a7fb02c58 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheMind.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheMind.java
@@ -34,7 +34,7 @@ public final class MagusOfTheMind extends CardImpl {
this.toughness = new MageInt(5);
// U, T, Sacrifice Magus of the Mind: Shuffle your library, then exile the top X cards, where X is one plus the number of spells cast this turn. Until end of turn, you may play cards exiled this way without paying their mana costs.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MagusOfTheMindEffect(), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MagusOfTheMindEffect(), new ManaCostsImpl<>("{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability, new CastSpellLastTurnWatcher());
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheOrder.java b/Mage.Sets/src/mage/cards/m/MagusOfTheOrder.java
index f343367e79..d06cbef5ee 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheOrder.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheOrder.java
@@ -51,7 +51,7 @@ public final class MagusOfTheOrder extends CardImpl {
// {G}, {T}, Sacrifice Magus of the Order and another green creature: Search your library for a green creature card and put it onto the battlefield. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(1, filter), false, true
- ), new ManaCostsImpl("{G}"));
+ ), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new CompositeCost(
new SacrificeSourceCost(), new SacrificeTargetCost(new TargetControlledPermanent(filter2)),
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheScroll.java b/Mage.Sets/src/mage/cards/m/MagusOfTheScroll.java
index 1900ddc961..4f15f1cad4 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheScroll.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheScroll.java
@@ -34,7 +34,7 @@ public final class MagusOfTheScroll extends CardImpl {
this.toughness = new MageInt(1);
// {3}, {tap}: Name a card. Reveal a card at random from your hand. If it's the named card, Magus of the Scroll deals 2 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.ALL), new ManaCostsImpl("{3}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.ALL), new ManaCostsImpl<>("{3}"));
ability.addEffect(new MagusOfTheScrollEffect());
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheWheel.java b/Mage.Sets/src/mage/cards/m/MagusOfTheWheel.java
index 9c5a46b79d..a1d6411b90 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheWheel.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheWheel.java
@@ -33,7 +33,7 @@ public final class MagusOfTheWheel extends CardImpl {
// {1}{R}, {T}, Sacrifice Magus of the Wheel: Each player discards their hand, then draws seven cards.
Effect effect = new DrawCardAllEffect(7);
effect.setText(", then draws seven cards");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardHandAllEffect(), new ManaCostsImpl("{1}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardHandAllEffect(), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/m/MagusOfTheWill.java b/Mage.Sets/src/mage/cards/m/MagusOfTheWill.java
index 149dc7d59a..ef2df53ac7 100644
--- a/Mage.Sets/src/mage/cards/m/MagusOfTheWill.java
+++ b/Mage.Sets/src/mage/cards/m/MagusOfTheWill.java
@@ -43,7 +43,7 @@ public final class MagusOfTheWill extends CardImpl {
// {2}{B}, {T}, Exile Magus of the Will: Until end of turn, you may play cards from your graveyard.
// If a card would be put into your graveyard from anywhere else this turn, exile that card instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanPlayCardsFromGraveyardEffect(), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanPlayCardsFromGraveyardEffect(), new ManaCostsImpl<>("{2}{B}"));
ability.addEffect(new MagusOfTheWillReplacementEffect());
ability.addCost(new TapSourceCost());
ability.addCost(new ExileSourceCost());
diff --git a/Mage.Sets/src/mage/cards/m/MajorTeroh.java b/Mage.Sets/src/mage/cards/m/MajorTeroh.java
index 7b4481f982..de2e4ad437 100644
--- a/Mage.Sets/src/mage/cards/m/MajorTeroh.java
+++ b/Mage.Sets/src/mage/cards/m/MajorTeroh.java
@@ -42,7 +42,7 @@ public final class MajorTeroh extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {3}{W}{W}, Sacrifice Major Teroh: Exile all black creatures.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileAllEffect(filter),new ManaCostsImpl("{3}{W}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileAllEffect(filter),new ManaCostsImpl<>("{3}{W}{W}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MalachOfTheDawn.java b/Mage.Sets/src/mage/cards/m/MalachOfTheDawn.java
index 3724d911bd..d5ad355b87 100644
--- a/Mage.Sets/src/mage/cards/m/MalachOfTheDawn.java
+++ b/Mage.Sets/src/mage/cards/m/MalachOfTheDawn.java
@@ -28,7 +28,7 @@ public final class MalachOfTheDawn extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {W}{W}{W}: Regenerate Malach of the Dawn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{W}{W}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{W}{W}{W}")));
}
private MalachOfTheDawn(final MalachOfTheDawn card) {
diff --git a/Mage.Sets/src/mage/cards/m/MalachiteGolem.java b/Mage.Sets/src/mage/cards/m/MalachiteGolem.java
index 498e569af5..31b004f8ac 100644
--- a/Mage.Sets/src/mage/cards/m/MalachiteGolem.java
+++ b/Mage.Sets/src/mage/cards/m/MalachiteGolem.java
@@ -25,7 +25,7 @@ public final class MalachiteGolem extends CardImpl {
this.subtype.add(SubType.GOLEM);
this.power = new MageInt(5);
this.toughness = new MageInt(3);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}")));
}
private MalachiteGolem(final MalachiteGolem card) {
diff --git a/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java b/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java
index 425d5930be..a768674254 100644
--- a/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java
+++ b/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java
@@ -30,7 +30,7 @@ public final class MalachiteTalisman extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// Whenever a player casts a green spell, you may pay {3}. If you do, untap target permanent.
- Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl("{3}")), filter, false);
+ Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl<>("{3}")), filter, false);
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MalevolentAwakening.java b/Mage.Sets/src/mage/cards/m/MalevolentAwakening.java
index e227e09d10..222e7cdf94 100644
--- a/Mage.Sets/src/mage/cards/m/MalevolentAwakening.java
+++ b/Mage.Sets/src/mage/cards/m/MalevolentAwakening.java
@@ -33,7 +33,7 @@ public final class MalevolentAwakening extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}{B}");
// {1}{B}{B}, Sacrifice a creature: Return target creature card from your graveyard to your hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{1}{B}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl<>("{1}{B}{B}"));
ability.addTarget(new TargetCardInYourGraveyard(filter));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MalevolentWhispers.java b/Mage.Sets/src/mage/cards/m/MalevolentWhispers.java
index 2a1eae5a81..c7fd49787a 100644
--- a/Mage.Sets/src/mage/cards/m/MalevolentWhispers.java
+++ b/Mage.Sets/src/mage/cards/m/MalevolentWhispers.java
@@ -40,7 +40,7 @@ public final class MalevolentWhispers extends CardImpl {
this.getSpellAbility().addEffect(effect);
// Madness {3}{R}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{3}{R}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{3}{R}")));
}
private MalevolentWhispers(final MalevolentWhispers card) {
diff --git a/Mage.Sets/src/mage/cards/m/MalignantGrowth.java b/Mage.Sets/src/mage/cards/m/MalignantGrowth.java
index 54e8f93beb..2a1f651340 100644
--- a/Mage.Sets/src/mage/cards/m/MalignantGrowth.java
+++ b/Mage.Sets/src/mage/cards/m/MalignantGrowth.java
@@ -28,7 +28,7 @@ public final class MalignantGrowth extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}{U}");
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// At the beginning of your upkeep, put a growth counter on Malignant Growth.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/m/ManaChains.java b/Mage.Sets/src/mage/cards/m/ManaChains.java
index 670d44c572..14ebe31340 100644
--- a/Mage.Sets/src/mage/cards/m/ManaChains.java
+++ b/Mage.Sets/src/mage/cards/m/ManaChains.java
@@ -37,7 +37,7 @@ public final class ManaChains extends CardImpl {
this.addAbility(ability);
// Enchanted creature has "Cumulative upkeep {1}."
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(
- new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")), AttachmentType.AURA)));
+ new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")), AttachmentType.AURA)));
}
private ManaChains(final ManaChains card) {
diff --git a/Mage.Sets/src/mage/cards/m/ManaforgeCinder.java b/Mage.Sets/src/mage/cards/m/ManaforgeCinder.java
index c57c5b2528..ecb53d1174 100644
--- a/Mage.Sets/src/mage/cards/m/ManaforgeCinder.java
+++ b/Mage.Sets/src/mage/cards/m/ManaforgeCinder.java
@@ -35,7 +35,7 @@ public final class ManaforgeCinder extends CardImpl {
this.toughness = new MageInt(1);
// {1}: Add {B} or {R}. Activate this ability no more than three times each turn.
- this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new ManaforgeCinderManaEffect(), new ManaCostsImpl("{1}"), 3));
+ this.addAbility(new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new ManaforgeCinderManaEffect(), new ManaCostsImpl<>("{1}"), 3));
}
diff --git a/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java b/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java
index 0967c4f0e4..9ae797f1cf 100644
--- a/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java
+++ b/Mage.Sets/src/mage/cards/m/MannichiTheFeveredDream.java
@@ -29,7 +29,7 @@ public final class MannichiTheFeveredDream extends CardImpl {
this.toughness = new MageInt(2);
// {1}{R}: Switch each creature's power and toughness until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SwitchPowerToughnessAllEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SwitchPowerToughnessAllEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")));
}
private MannichiTheFeveredDream(final MannichiTheFeveredDream card) {
diff --git a/Mage.Sets/src/mage/cards/m/ManorGargoyle.java b/Mage.Sets/src/mage/cards/m/ManorGargoyle.java
index 03efbb6aeb..f95a0cc1c7 100644
--- a/Mage.Sets/src/mage/cards/m/ManorGargoyle.java
+++ b/Mage.Sets/src/mage/cards/m/ManorGargoyle.java
@@ -70,7 +70,7 @@ public final class ManorGargoyle extends CardImpl {
ContinuousEffect effect2 = new LoseAbilitySourceEffect(DefenderAbility.getInstance(), Duration.EndOfTurn);
effect2.addDependencyType(DependencyType.LooseDefenderEffect);
effect2.setText("Until end of turn, {this} loses defender");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect2, new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect2, new ManaCostsImpl<>("{1}"));
effect2 = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect2.setText("and gains flying");
ability.addEffect(effect2);
diff --git a/Mage.Sets/src/mage/cards/m/ManorSkeleton.java b/Mage.Sets/src/mage/cards/m/ManorSkeleton.java
index 7ea9d64f3b..cbc1c0438c 100644
--- a/Mage.Sets/src/mage/cards/m/ManorSkeleton.java
+++ b/Mage.Sets/src/mage/cards/m/ManorSkeleton.java
@@ -28,7 +28,7 @@ public final class ManorSkeleton extends CardImpl {
this.addAbility(HasteAbility.getInstance());
// {1}{B}: Regenerate Manor Skeleton.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private ManorSkeleton(final ManorSkeleton card) {
diff --git a/Mage.Sets/src/mage/cards/m/MarangRiverSkeleton.java b/Mage.Sets/src/mage/cards/m/MarangRiverSkeleton.java
index 9adbddd484..e6eb6efd95 100644
--- a/Mage.Sets/src/mage/cards/m/MarangRiverSkeleton.java
+++ b/Mage.Sets/src/mage/cards/m/MarangRiverSkeleton.java
@@ -26,10 +26,10 @@ public final class MarangRiverSkeleton extends CardImpl {
this.toughness = new MageInt(1);
// {B}: Regenerate Marang River Skeleton.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
// Megamorph {3}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{B}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{B}"), true));
}
private MarangRiverSkeleton(final MarangRiverSkeleton card) {
diff --git a/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java b/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java
index ecee5ad42f..5ef17bfdb2 100644
--- a/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java
+++ b/Mage.Sets/src/mage/cards/m/MarathWillOfTheWild.java
@@ -57,7 +57,7 @@ public final class MarathWillOfTheWild extends CardImpl {
// {X}, Remove X +1/+1 counters from Marath: Choose one - Put X +1/+1 counters on target creature;
effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), ManacostVariableValue.REGULAR);
effect.setText("Put X +1/+1 counters on target creature");
- Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{X}"));
ability.addCost(new MarathWillOfTheWildRemoveCountersCost());
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/m/MarchesasSmuggler.java b/Mage.Sets/src/mage/cards/m/MarchesasSmuggler.java
index be6270f346..4427593d91 100644
--- a/Mage.Sets/src/mage/cards/m/MarchesasSmuggler.java
+++ b/Mage.Sets/src/mage/cards/m/MarchesasSmuggler.java
@@ -36,7 +36,7 @@ public final class MarchesasSmuggler extends CardImpl {
// Dethrone
this.addAbility(new DethroneAbility());
// {1}{U}{R}: Target creature you control gains haste until end of turn and can't be blocked this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{U}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}{R}"));
ability.addTarget(new TargetControlledCreaturePermanent());
Effect effect = new CantBeBlockedTargetEffect(Duration.EndOfTurn);
effect.setText("and can't be blocked this turn");
diff --git a/Mage.Sets/src/mage/cards/m/MarduBanner.java b/Mage.Sets/src/mage/cards/m/MarduBanner.java
index e701b1c741..d9ee6142c4 100644
--- a/Mage.Sets/src/mage/cards/m/MarduBanner.java
+++ b/Mage.Sets/src/mage/cards/m/MarduBanner.java
@@ -31,7 +31,7 @@ public final class MarduBanner extends CardImpl {
this.addAbility(new BlackManaAbility());
// {R}{W}{B}, {T}, Sacrifice Mardu Banner: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{R}{W}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{R}{W}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/Marjhan.java b/Mage.Sets/src/mage/cards/m/Marjhan.java
index b3b46622b2..ae853b9e34 100644
--- a/Mage.Sets/src/mage/cards/m/Marjhan.java
+++ b/Mage.Sets/src/mage/cards/m/Marjhan.java
@@ -53,7 +53,7 @@ public final class Marjhan extends CardImpl {
// {U}{U}, Sacrifice a creature: Untap Marjhan. Activate this ability only during your upkeep.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
- new UntapSourceEffect(), new ManaCostsImpl("{U}{U}"), new IsStepCondition(PhaseStep.UPKEEP), null);
+ new UntapSourceEffect(), new ManaCostsImpl<>("{U}{U}"), new IsStepCondition(PhaseStep.UPKEEP), null);
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
this.addAbility(ability);
@@ -61,7 +61,7 @@ public final class Marjhan extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
// {U}{U}: Marjhan gets -1/-0 until end of turn and deals 1 damage to target attacking creature without flying.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(-1, 0, Duration.EndOfTurn), new ManaCostsImpl("{U}{U}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(-1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{U}{U}"));
ability.addEffect(new DamageTargetEffect(1, "and"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MarkerBeetles.java b/Mage.Sets/src/mage/cards/m/MarkerBeetles.java
index 52263eb225..3d318103d4 100644
--- a/Mage.Sets/src/mage/cards/m/MarkerBeetles.java
+++ b/Mage.Sets/src/mage/cards/m/MarkerBeetles.java
@@ -35,7 +35,7 @@ public final class MarkerBeetles extends CardImpl {
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// {2}, Sacrifice Marker Beetles: Draw a card.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{2}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MarkovDreadknight.java b/Mage.Sets/src/mage/cards/m/MarkovDreadknight.java
index a27e54b927..69152e81a5 100644
--- a/Mage.Sets/src/mage/cards/m/MarkovDreadknight.java
+++ b/Mage.Sets/src/mage/cards/m/MarkovDreadknight.java
@@ -33,7 +33,7 @@ public final class MarkovDreadknight extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {2}{B}, Discard a card: Put two +1/+1 counters on Markhov Dreadknight.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MarshHulk.java b/Mage.Sets/src/mage/cards/m/MarshHulk.java
index 61d8410a64..e9cd2f3244 100644
--- a/Mage.Sets/src/mage/cards/m/MarshHulk.java
+++ b/Mage.Sets/src/mage/cards/m/MarshHulk.java
@@ -24,7 +24,7 @@ public final class MarshHulk extends CardImpl {
this.toughness = new MageInt(6);
// Megamorph {6}{B}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{6}{B}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{6}{B}"), true));
}
private MarshHulk(final MarshHulk card) {
diff --git a/Mage.Sets/src/mage/cards/m/MarshalingCry.java b/Mage.Sets/src/mage/cards/m/MarshalingCry.java
index 09d9d3de59..c14830c7ee 100644
--- a/Mage.Sets/src/mage/cards/m/MarshalingCry.java
+++ b/Mage.Sets/src/mage/cards/m/MarshalingCry.java
@@ -33,10 +33,10 @@ public final class MarshalingCry extends CardImpl {
this.getSpellAbility().addEffect(effect);
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
// Flashback {3}{W}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{3}{W}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{3}{W}")));
}
private MarshalingCry(final MarshalingCry card) {
diff --git a/Mage.Sets/src/mage/cards/m/MartyrOfSands.java b/Mage.Sets/src/mage/cards/m/MartyrOfSands.java
index de7ad50c84..c035d63a6b 100644
--- a/Mage.Sets/src/mage/cards/m/MartyrOfSands.java
+++ b/Mage.Sets/src/mage/cards/m/MartyrOfSands.java
@@ -45,7 +45,7 @@ public final class MartyrOfSands extends CardImpl {
// {1}, Reveal X white cards from your hand, Sacrifice Martyr of Sands: You gain three times X life.
Effect effect = new GainLifeEffect(new MultipliedValue(RevealTargetFromHandCostCount.instance, 3));
effect.setText("You gain three times X life.");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}"));
ability.addCost(new RevealTargetFromHandCost(new TargetCardInHand(0, Integer.MAX_VALUE, filter)));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MartyredRusalka.java b/Mage.Sets/src/mage/cards/m/MartyredRusalka.java
index 180e207a06..6be023f56b 100644
--- a/Mage.Sets/src/mage/cards/m/MartyredRusalka.java
+++ b/Mage.Sets/src/mage/cards/m/MartyredRusalka.java
@@ -31,7 +31,7 @@ public final class MartyredRusalka extends CardImpl {
this.toughness = new MageInt(1);
// {W}, Sacrifice a creature: Target creature can't attack this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantAttackTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantAttackTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{W}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MaskedAdmirers.java b/Mage.Sets/src/mage/cards/m/MaskedAdmirers.java
index c521ee441b..8c61abc9ab 100644
--- a/Mage.Sets/src/mage/cards/m/MaskedAdmirers.java
+++ b/Mage.Sets/src/mage/cards/m/MaskedAdmirers.java
@@ -37,7 +37,7 @@ public final class MaskedAdmirers extends CardImpl {
OneShotEffect effect = new ReturnToHandSourceEffect();
effect.setText("return {this} from your graveyard to your hand");
this.addAbility(new SpellCastControllerTriggeredAbility(
- Zone.GRAVEYARD, new DoIfCostPaid(effect, new ManaCostsImpl("{G}{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false, false));
+ Zone.GRAVEYARD, new DoIfCostPaid(effect, new ManaCostsImpl<>("{G}{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false, false));
}
private MaskedAdmirers(final MaskedAdmirers card) {
diff --git a/Mage.Sets/src/mage/cards/m/MaskedBlackguard.java b/Mage.Sets/src/mage/cards/m/MaskedBlackguard.java
index 345956e6ce..436ffdc2e6 100644
--- a/Mage.Sets/src/mage/cards/m/MaskedBlackguard.java
+++ b/Mage.Sets/src/mage/cards/m/MaskedBlackguard.java
@@ -31,7 +31,7 @@ public final class MaskedBlackguard extends CardImpl {
// {2}{B}: Masked Blackguard gets +1/+1 until end of turn.
this.addAbility(new SimpleActivatedAbility(
- new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{2}{B}")
+ new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{B}")
));
}
diff --git a/Mage.Sets/src/mage/cards/m/MassDiminish.java b/Mage.Sets/src/mage/cards/m/MassDiminish.java
index 4cc90e77d0..a040e79260 100644
--- a/Mage.Sets/src/mage/cards/m/MassDiminish.java
+++ b/Mage.Sets/src/mage/cards/m/MassDiminish.java
@@ -31,7 +31,7 @@ public final class MassDiminish extends CardImpl {
this.getSpellAbility().addTarget(new TargetPlayer());
// Flashback {3}{U}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{3}{U}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{3}{U}")));
}
private MassDiminish(final MassDiminish card) {
diff --git a/Mage.Sets/src/mage/cards/m/MasterOfPearls.java b/Mage.Sets/src/mage/cards/m/MasterOfPearls.java
index e0733f7146..113b096b3a 100644
--- a/Mage.Sets/src/mage/cards/m/MasterOfPearls.java
+++ b/Mage.Sets/src/mage/cards/m/MasterOfPearls.java
@@ -29,7 +29,7 @@ public final class MasterOfPearls extends CardImpl {
this.toughness = new MageInt(2);
// Morph {3}{W}{W}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{W}{W}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{W}{W}")));
// When Master of Pearls is turned face up, creatures you control get +2/+2 until end of turn.
this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new BoostControlledEffect(2, 2, Duration.EndOfTurn, FILTER_PERMANENT_CREATURES)));
}
diff --git a/Mage.Sets/src/mage/cards/m/MasterOfTheVeil.java b/Mage.Sets/src/mage/cards/m/MasterOfTheVeil.java
index 8bae3f7511..3589a56d40 100644
--- a/Mage.Sets/src/mage/cards/m/MasterOfTheVeil.java
+++ b/Mage.Sets/src/mage/cards/m/MasterOfTheVeil.java
@@ -44,7 +44,7 @@ public final class MasterOfTheVeil extends CardImpl {
this.toughness = new MageInt(3);
// Morph {2}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{U}")));
// When Master of the Veil is turned face up, you may turn target creature with a morph ability face down.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new MasterOfTheVeilEffect(), false, true);
diff --git a/Mage.Sets/src/mage/cards/m/MasterTransmuter.java b/Mage.Sets/src/mage/cards/m/MasterTransmuter.java
index c1feebee40..bec9232f74 100644
--- a/Mage.Sets/src/mage/cards/m/MasterTransmuter.java
+++ b/Mage.Sets/src/mage/cards/m/MasterTransmuter.java
@@ -33,7 +33,7 @@ public final class MasterTransmuter extends CardImpl {
this.toughness = new MageInt(2);
// {U}, {tap}, Return an artifact you control to its owner's hand: You may put an artifact card from your hand onto the battlefield.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(new FilterArtifactCard("an artifact card")), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(new FilterArtifactCard("an artifact card")), new ManaCostsImpl<>("{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(new FilterControlledArtifactPermanent("an artifact"))));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MasteryOfTheUnseen.java b/Mage.Sets/src/mage/cards/m/MasteryOfTheUnseen.java
index 78cc7c7e03..7fb14846a2 100644
--- a/Mage.Sets/src/mage/cards/m/MasteryOfTheUnseen.java
+++ b/Mage.Sets/src/mage/cards/m/MasteryOfTheUnseen.java
@@ -29,7 +29,7 @@ public final class MasteryOfTheUnseen extends CardImpl {
new FilterControlledPermanent("a permanent you control")));
// {3}{W}: Manifest the top card of your library.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ManifestEffect(1), new ManaCostsImpl("{3}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ManifestEffect(1), new ManaCostsImpl<>("{3}{W}")));
}
private MasteryOfTheUnseen(final MasteryOfTheUnseen card) {
diff --git a/Mage.Sets/src/mage/cards/m/MatsuTribeBirdstalker.java b/Mage.Sets/src/mage/cards/m/MatsuTribeBirdstalker.java
index c3a40ffd2b..b096810cde 100644
--- a/Mage.Sets/src/mage/cards/m/MatsuTribeBirdstalker.java
+++ b/Mage.Sets/src/mage/cards/m/MatsuTribeBirdstalker.java
@@ -42,7 +42,7 @@ public final class MatsuTribeBirdstalker extends CardImpl {
// {G}: Matsu-Tribe Birdstalker gains reach until end of turn. (It can block creatures with flying.)
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GainAbilitySourceEffect(ReachAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{G}")));
+ new ManaCostsImpl<>("{G}")));
}
private MatsuTribeBirdstalker(final MatsuTribeBirdstalker card) {
diff --git a/Mage.Sets/src/mage/cards/m/MatsuTribeDecoy.java b/Mage.Sets/src/mage/cards/m/MatsuTribeDecoy.java
index 59f568b1f2..9fd0cd665b 100644
--- a/Mage.Sets/src/mage/cards/m/MatsuTribeDecoy.java
+++ b/Mage.Sets/src/mage/cards/m/MatsuTribeDecoy.java
@@ -32,7 +32,7 @@ public final class MatsuTribeDecoy extends CardImpl {
this.toughness = new MageInt(3);
// {2}{G}: Target creature blocks Matsu-Tribe Decoy this turn if able.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByTargetSourceEffect(), new ManaCostsImpl("{2}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByTargetSourceEffect(), new ManaCostsImpl<>("{2}{G}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// Whenever Kashi-Tribe Reaver deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step.
diff --git a/Mage.Sets/src/mage/cards/m/MawOfKozilek.java b/Mage.Sets/src/mage/cards/m/MawOfKozilek.java
index a7abe78f23..b303f760fa 100644
--- a/Mage.Sets/src/mage/cards/m/MawOfKozilek.java
+++ b/Mage.Sets/src/mage/cards/m/MawOfKozilek.java
@@ -31,7 +31,7 @@ public final class MawOfKozilek extends CardImpl {
this.addAbility(new DevoidAbility(this.color));
// {C}: Maw of Kozilek gets +2/-2 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, -2, Duration.EndOfTurn), new ManaCostsImpl("{C}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, -2, Duration.EndOfTurn), new ManaCostsImpl<>("{C}")));
}
private MawOfKozilek(final MawOfKozilek card) {
diff --git a/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java b/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java
index 65806b51bb..048e4533e7 100644
--- a/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java
+++ b/Mage.Sets/src/mage/cards/m/MayaelTheAnima.java
@@ -43,7 +43,7 @@ public final class MayaelTheAnima extends CardImpl {
// Put the rest on the bottom of your library in any order.
SimpleActivatedAbility ability = new SimpleActivatedAbility(
new LookLibraryAndPickControllerEffect(5, 1, filter, PutCards.BATTLEFIELD, PutCards.BOTTOM_ANY),
- new ManaCostsImpl("{3}{R}{G}{W}"));
+ new ManaCostsImpl<>("{3}{R}{G}{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MedicineBag.java b/Mage.Sets/src/mage/cards/m/MedicineBag.java
index e926be1767..c5a4edde6e 100644
--- a/Mage.Sets/src/mage/cards/m/MedicineBag.java
+++ b/Mage.Sets/src/mage/cards/m/MedicineBag.java
@@ -24,7 +24,7 @@ public final class MedicineBag extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
// {1}, {tap}, Discard a card: Regenerate target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/m/Melancholy.java b/Mage.Sets/src/mage/cards/m/Melancholy.java
index e9cef9ae83..47207107a7 100644
--- a/Mage.Sets/src/mage/cards/m/Melancholy.java
+++ b/Mage.Sets/src/mage/cards/m/Melancholy.java
@@ -40,7 +40,7 @@ public final class Melancholy extends CardImpl {
// Enchanted creature doesn't untap during its controller's untap step.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepEnchantedEffect()));
// At the beginning of your upkeep, sacrifice Melancholy unless you pay {B}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{B}")),
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{B}")),
TargetController.YOU, false));
}
diff --git a/Mage.Sets/src/mage/cards/m/MeletisCharlatan.java b/Mage.Sets/src/mage/cards/m/MeletisCharlatan.java
index 087a58de3b..c6e9e75efc 100644
--- a/Mage.Sets/src/mage/cards/m/MeletisCharlatan.java
+++ b/Mage.Sets/src/mage/cards/m/MeletisCharlatan.java
@@ -35,7 +35,7 @@ public final class MeletisCharlatan extends CardImpl {
this.toughness = new MageInt(3);
// {2}{U}, {T}: The controller of target instant or sorcery spell copies it. That player may choose new targets for the copy.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MeletisCharlatanCopyTargetSpellEffect(), new ManaCostsImpl("{2}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MeletisCharlatanCopyTargetSpellEffect(), new ManaCostsImpl<>("{2}{U}"));
ability.addCost(new TapSourceCost());
Target target = new TargetSpell(StaticFilters.FILTER_SPELL_INSTANT_OR_SORCERY);
ability.addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/m/Memnarch.java b/Mage.Sets/src/mage/cards/m/Memnarch.java
index 5f960db1c8..40b3c371d0 100644
--- a/Mage.Sets/src/mage/cards/m/Memnarch.java
+++ b/Mage.Sets/src/mage/cards/m/Memnarch.java
@@ -35,12 +35,12 @@ public final class Memnarch extends CardImpl {
// {1}{U}{U}: Target permanent becomes an artifact in addition to its other types.
Effect effect = new AddCardTypeTargetEffect(Duration.Custom, CardType.ARTIFACT);
effect.setText("Target permanent becomes an artifact in addition to its other types");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{U}{U}"));
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
// {3}{U}: Gain control of target artifact.
- Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainControlTargetEffect(Duration.WhileOnBattlefield), new ManaCostsImpl("{3}{U}"));
+ Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainControlTargetEffect(Duration.WhileOnBattlefield), new ManaCostsImpl<>("{3}{U}"));
ability2.addTarget(new TargetArtifactPermanent());
this.addAbility(ability2);
}
diff --git a/Mage.Sets/src/mage/cards/m/MemorialToFolly.java b/Mage.Sets/src/mage/cards/m/MemorialToFolly.java
index 137e3a6b97..0daf62f10f 100644
--- a/Mage.Sets/src/mage/cards/m/MemorialToFolly.java
+++ b/Mage.Sets/src/mage/cards/m/MemorialToFolly.java
@@ -33,7 +33,7 @@ public final class MemorialToFolly extends CardImpl {
// {2}{B}, {T}, Sacrifice Memorial to Folly: Return target creature card from your graveyard to your hand.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect()
.setText("Return target creature card from your graveyard to your hand"),
- new ManaCostsImpl("{2}{B}"));
+ new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
diff --git a/Mage.Sets/src/mage/cards/m/MemorialToGenius.java b/Mage.Sets/src/mage/cards/m/MemorialToGenius.java
index 4872d6691b..b47c23538b 100644
--- a/Mage.Sets/src/mage/cards/m/MemorialToGenius.java
+++ b/Mage.Sets/src/mage/cards/m/MemorialToGenius.java
@@ -30,7 +30,7 @@ public final class MemorialToGenius extends CardImpl {
this.addAbility(new BlueManaAbility());
// {4}{U}, {T}, Sacrifice Memorial to Genius: Draw two cards.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(2), new ManaCostsImpl("{4}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(2), new ManaCostsImpl<>("{4}{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MemorialToGlory.java b/Mage.Sets/src/mage/cards/m/MemorialToGlory.java
index 5b17fef0fd..3cbdc35c92 100644
--- a/Mage.Sets/src/mage/cards/m/MemorialToGlory.java
+++ b/Mage.Sets/src/mage/cards/m/MemorialToGlory.java
@@ -31,7 +31,7 @@ public final class MemorialToGlory extends CardImpl {
this.addAbility(new WhiteManaAbility());
// {3}{W}, {T}, Sacrifice Memorial to Glory: Creature two 1/1 white Soldier creature tokens.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierToken(), 2), new ManaCostsImpl("{3}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierToken(), 2), new ManaCostsImpl<>("{3}{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MemorialToUnity.java b/Mage.Sets/src/mage/cards/m/MemorialToUnity.java
index 40ee1b646e..3303eb95e1 100644
--- a/Mage.Sets/src/mage/cards/m/MemorialToUnity.java
+++ b/Mage.Sets/src/mage/cards/m/MemorialToUnity.java
@@ -34,7 +34,7 @@ public final class MemorialToUnity extends CardImpl {
// Then put the rest on the bottom of your library in a random order.
Ability ability = new SimpleActivatedAbility(
new LookLibraryAndPickControllerEffect(5, 1, StaticFilters.FILTER_CARD_CREATURE_A, PutCards.HAND, PutCards.BOTTOM_RANDOM),
- new ManaCostsImpl("{2}{G}"));
+ new ManaCostsImpl<>("{2}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MemorialToWar.java b/Mage.Sets/src/mage/cards/m/MemorialToWar.java
index 951bbaf54c..c24fc1a1fc 100644
--- a/Mage.Sets/src/mage/cards/m/MemorialToWar.java
+++ b/Mage.Sets/src/mage/cards/m/MemorialToWar.java
@@ -31,7 +31,7 @@ public final class MemorialToWar extends CardImpl {
this.addAbility(new RedManaAbility());
// {4}{R}, {T}, Sacrifice Memorial to War: Destroy target land.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{4}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{4}{R}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetLandPermanent());
diff --git a/Mage.Sets/src/mage/cards/m/MemoryLeak.java b/Mage.Sets/src/mage/cards/m/MemoryLeak.java
index 39e326ead0..f8bc683397 100644
--- a/Mage.Sets/src/mage/cards/m/MemoryLeak.java
+++ b/Mage.Sets/src/mage/cards/m/MemoryLeak.java
@@ -33,7 +33,7 @@ public final class MemoryLeak extends CardImpl {
this.getSpellAbility().addTarget(new TargetOpponent());
// Cycling {1}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{1}")));
}
private MemoryLeak(final MemoryLeak card) {
diff --git a/Mage.Sets/src/mage/cards/m/MemorysJourney.java b/Mage.Sets/src/mage/cards/m/MemorysJourney.java
index 9ed78043b0..b7b0c7d320 100644
--- a/Mage.Sets/src/mage/cards/m/MemorysJourney.java
+++ b/Mage.Sets/src/mage/cards/m/MemorysJourney.java
@@ -26,7 +26,7 @@ public final class MemorysJourney extends CardImpl {
this.getSpellAbility().addTarget(new TargetCardInTargetPlayersGraveyard(3));
// Flashback {G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{G}")));
}
private MemorysJourney(final MemorysJourney card) {
diff --git a/Mage.Sets/src/mage/cards/m/MentalDiscipline.java b/Mage.Sets/src/mage/cards/m/MentalDiscipline.java
index a183fd621d..eaaf6126de 100644
--- a/Mage.Sets/src/mage/cards/m/MentalDiscipline.java
+++ b/Mage.Sets/src/mage/cards/m/MentalDiscipline.java
@@ -22,7 +22,7 @@ public final class MentalDiscipline extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}{U}");
// {1}{U}, Discard a card: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{1}{U}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java b/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java
index 9eedbac13a..5fd60fa469 100644
--- a/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java
+++ b/Mage.Sets/src/mage/cards/m/MentorOfTheMeek.java
@@ -41,7 +41,7 @@ public final class MentorOfTheMeek extends CardImpl {
this.toughness = new MageInt(2);
//Whenever another creature with power 2 or less enters the battlefield under your control, you may pay 1. If you do, draw a card.
- Effect effect = new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}"));
+ Effect effect = new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{1}"));
Ability ability = new EntersBattlefieldControlledTriggeredAbility(
Zone.BATTLEFIELD, effect, filter, false);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MercadianLift.java b/Mage.Sets/src/mage/cards/m/MercadianLift.java
index 2820d04314..9db546bd2c 100644
--- a/Mage.Sets/src/mage/cards/m/MercadianLift.java
+++ b/Mage.Sets/src/mage/cards/m/MercadianLift.java
@@ -33,7 +33,7 @@ public final class MercadianLift extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// {1}, {tap}: Put a winch counter on Mercadian Lift.
- Ability ability = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.WINCH.createInstance()), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(new AddCountersSourceEffect(CounterType.WINCH.createInstance()), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MercenaryInformer.java b/Mage.Sets/src/mage/cards/m/MercenaryInformer.java
index eac785c0a9..bcdc06f553 100644
--- a/Mage.Sets/src/mage/cards/m/MercenaryInformer.java
+++ b/Mage.Sets/src/mage/cards/m/MercenaryInformer.java
@@ -50,7 +50,7 @@ public final class MercenaryInformer extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeTargetedSourceEffect(filterBlack, Duration.WhileOnBattlefield)));
// {2}{W}: Put target nontoken Mercenary on the bottom of its owner's library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(false), new ManaCostsImpl("{2}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(false), new ManaCostsImpl<>("{2}{W}"));
ability.addTarget(new TargetPermanent(filterMercenary));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MerchantOfTheVale.java b/Mage.Sets/src/mage/cards/m/MerchantOfTheVale.java
index be27716805..0a82b50f9c 100644
--- a/Mage.Sets/src/mage/cards/m/MerchantOfTheVale.java
+++ b/Mage.Sets/src/mage/cards/m/MerchantOfTheVale.java
@@ -29,7 +29,7 @@ public final class MerchantOfTheVale extends AdventureCard {
// {2}{R}, Discard a card: Draw a card.
Ability ability = new SimpleActivatedAbility(
- new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{R}")
+ new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{2}{R}")
);
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MercilessEternal.java b/Mage.Sets/src/mage/cards/m/MercilessEternal.java
index 04a972a382..fef37e1bf3 100644
--- a/Mage.Sets/src/mage/cards/m/MercilessEternal.java
+++ b/Mage.Sets/src/mage/cards/m/MercilessEternal.java
@@ -34,7 +34,7 @@ public final class MercilessEternal extends CardImpl {
this.addAbility(new AfflictAbility(2));
// {2}{B}, Discard a card: Merciless Eternal gets +2/+2 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new DiscardCardCost(false));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java b/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java
index ec098724a6..454554d5d8 100644
--- a/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java
+++ b/Mage.Sets/src/mage/cards/m/MercilessJavelineer.java
@@ -42,7 +42,7 @@ public final class MercilessJavelineer extends CardImpl {
CounterType.M1M1.createInstance(),
StaticValue.get(1),
Outcome.Removal),
- new ManaCostsImpl("{2}"));
+ new ManaCostsImpl<>("{2}"));
ability.addEffect(
new CantBlockTargetEffect(Duration.EndOfTurn)
.setText("That creature can't block this turn."));
diff --git a/Mage.Sets/src/mage/cards/m/MercurialChemister.java b/Mage.Sets/src/mage/cards/m/MercurialChemister.java
index 22ad034d01..6c9e04300d 100644
--- a/Mage.Sets/src/mage/cards/m/MercurialChemister.java
+++ b/Mage.Sets/src/mage/cards/m/MercurialChemister.java
@@ -34,12 +34,12 @@ public final class MercurialChemister extends CardImpl {
this.toughness = new MageInt(3);
// {U}, {T}: Draw two cards.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(2), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(2), new ManaCostsImpl<>("{U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
// {R}, {T}, Discard a card: Mercurial Chemister deals damage to target creature equal to the discarded card's converted mana cost.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(DiscardCostCardManaValue.instance), new ManaCostsImpl("{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(DiscardCostCardManaValue.instance), new ManaCostsImpl<>("{R}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
diff --git a/Mage.Sets/src/mage/cards/m/MercurialPretender.java b/Mage.Sets/src/mage/cards/m/MercurialPretender.java
index dbe837064e..561928355c 100644
--- a/Mage.Sets/src/mage/cards/m/MercurialPretender.java
+++ b/Mage.Sets/src/mage/cards/m/MercurialPretender.java
@@ -35,7 +35,7 @@ public final class MercurialPretender extends CardImpl {
// You may have Mercurial Pretender enter the battlefield as a copy of any creature you control,
// except it has "{2}{U}{U}: Return this creature to its owner's hand."
Effect effect = new CopyPermanentEffect(new FilterControlledCreaturePermanent(),
- new AbilityCopyApplier(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{2}{U}{U}"))));
+ new AbilityCopyApplier(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl<>("{2}{U}{U}"))));
effect.setText(effectText);
this.addAbility(new EntersBattlefieldAbility(effect, true));
}
diff --git a/Mage.Sets/src/mage/cards/m/MerfolkSeastalkers.java b/Mage.Sets/src/mage/cards/m/MerfolkSeastalkers.java
index 8f10a397ca..e7da36c8a0 100644
--- a/Mage.Sets/src/mage/cards/m/MerfolkSeastalkers.java
+++ b/Mage.Sets/src/mage/cards/m/MerfolkSeastalkers.java
@@ -39,7 +39,7 @@ public final class MerfolkSeastalkers extends CardImpl {
this.toughness = new MageInt(3);
this.addAbility(new IslandwalkAbility());
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{2}{U}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{2}{U}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MerfolkSeer.java b/Mage.Sets/src/mage/cards/m/MerfolkSeer.java
index 9babd9e716..e8676f0206 100644
--- a/Mage.Sets/src/mage/cards/m/MerfolkSeer.java
+++ b/Mage.Sets/src/mage/cards/m/MerfolkSeer.java
@@ -26,7 +26,7 @@ public final class MerfolkSeer extends CardImpl {
this.toughness = new MageInt(2);
// When Merfolk Seer dies, you may pay {1}{U}. If you do, draw a card.
- this.addAbility(new DiesSourceTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}{U}"))));
+ this.addAbility(new DiesSourceTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{1}{U}"))));
}
private MerfolkSeer(final MerfolkSeer card) {
diff --git a/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java b/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java
index cd2952e5a4..5427f6a40a 100644
--- a/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java
+++ b/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java
@@ -41,7 +41,7 @@ public final class MerfolkSkydiver extends CardImpl {
this.addAbility(ability);
// {3}{G}{U}: Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.)
- this.addAbility(new SimpleActivatedAbility(new ProliferateEffect(), new ManaCostsImpl("{3}{G}{U}")));
+ this.addAbility(new SimpleActivatedAbility(new ProliferateEffect(), new ManaCostsImpl<>("{3}{G}{U}")));
}
private MerfolkSkydiver(final MerfolkSkydiver card) {
diff --git a/Mage.Sets/src/mage/cards/m/MerrowGrimeblotter.java b/Mage.Sets/src/mage/cards/m/MerrowGrimeblotter.java
index 338255e688..77129af7ce 100644
--- a/Mage.Sets/src/mage/cards/m/MerrowGrimeblotter.java
+++ b/Mage.Sets/src/mage/cards/m/MerrowGrimeblotter.java
@@ -31,7 +31,7 @@ public final class MerrowGrimeblotter extends CardImpl {
this.toughness = new MageInt(2);
// {1}{UB}, {untap}: Target creature gets -2/-0 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{U/B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-2, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U/B}"));
ability.addCost(new UntapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MerrowWavebreakers.java b/Mage.Sets/src/mage/cards/m/MerrowWavebreakers.java
index a91436e3d5..d0e033f7a5 100644
--- a/Mage.Sets/src/mage/cards/m/MerrowWavebreakers.java
+++ b/Mage.Sets/src/mage/cards/m/MerrowWavebreakers.java
@@ -32,7 +32,7 @@ public final class MerrowWavebreakers extends CardImpl {
this.toughness = new MageInt(3);
// {1}{U}, {untap}: Merrow Wavebreakers gains flying until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}"));
ability.addCost(new UntapSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MesaFalcon.java b/Mage.Sets/src/mage/cards/m/MesaFalcon.java
index 00b6be5deb..abfdd1bb3e 100644
--- a/Mage.Sets/src/mage/cards/m/MesaFalcon.java
+++ b/Mage.Sets/src/mage/cards/m/MesaFalcon.java
@@ -30,7 +30,7 @@ public final class MesaFalcon extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {1}{W}: Mesa Falcon gets +0/+1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}")));
}
private MesaFalcon(final MesaFalcon card) {
diff --git a/Mage.Sets/src/mage/cards/m/MesmericTrance.java b/Mage.Sets/src/mage/cards/m/MesmericTrance.java
index 2ce12de039..271ac4e655 100644
--- a/Mage.Sets/src/mage/cards/m/MesmericTrance.java
+++ b/Mage.Sets/src/mage/cards/m/MesmericTrance.java
@@ -23,9 +23,9 @@ public final class MesmericTrance extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}{U}");
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// {U}, Discard a card: Draw a card.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{U}"));
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/Metallurgeon.java b/Mage.Sets/src/mage/cards/m/Metallurgeon.java
index 955f1c613c..6030423462 100644
--- a/Mage.Sets/src/mage/cards/m/Metallurgeon.java
+++ b/Mage.Sets/src/mage/cards/m/Metallurgeon.java
@@ -28,7 +28,7 @@ public final class Metallurgeon extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(2);
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{W}"));
+ SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java b/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java
index cc1da00503..1c460b8baa 100644
--- a/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java
+++ b/Mage.Sets/src/mage/cards/m/MetallurgicSummonings.java
@@ -47,7 +47,7 @@ public final class MetallurgicSummonings extends CardImpl {
// {3}{U}{U}, Exile Metallurgic Summons: Return all instant and sorcery cards from your graveyard to your hand. Activate this ability only if you control six or more artifacts.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
- new MetallurgicSummoningsReturnEffect(), new ManaCostsImpl("{3}{U}{U}"),
+ new MetallurgicSummoningsReturnEffect(), new ManaCostsImpl<>("{3}{U}{U}"),
new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.MORE_THAN, 5),
"{3}{U}{U}, Exile {this}: Return all instant and sorcery cards from your graveyard to your hand."
+ " Activate only if you control six or more artifacts.");
diff --git a/Mage.Sets/src/mage/cards/m/MetathranAerostat.java b/Mage.Sets/src/mage/cards/m/MetathranAerostat.java
index 8ad43b8513..cf809ac0c0 100644
--- a/Mage.Sets/src/mage/cards/m/MetathranAerostat.java
+++ b/Mage.Sets/src/mage/cards/m/MetathranAerostat.java
@@ -37,7 +37,7 @@ public final class MetathranAerostat extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {X}{U}: You may put a creature card with converted mana cost X from your hand onto the battlefield. If you do, return Metathran Aerostat to its owner's hand.
- this.addAbility(new SimpleActivatedAbility(new MetathranAerostatEffect(), new ManaCostsImpl("{X}{U}")));
+ this.addAbility(new SimpleActivatedAbility(new MetathranAerostatEffect(), new ManaCostsImpl<>("{X}{U}")));
}
private MetathranAerostat(final MetathranAerostat card) {
diff --git a/Mage.Sets/src/mage/cards/m/MetathranTransport.java b/Mage.Sets/src/mage/cards/m/MetathranTransport.java
index 565d3d35ed..41f91e5440 100644
--- a/Mage.Sets/src/mage/cards/m/MetathranTransport.java
+++ b/Mage.Sets/src/mage/cards/m/MetathranTransport.java
@@ -45,7 +45,7 @@ public final class MetathranTransport extends CardImpl {
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
// {U}: Target creature becomes blue until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesColorTargetEffect(ObjectColor.BLUE,
- Duration.EndOfTurn), new ManaCostsImpl("{U}"));
+ Duration.EndOfTurn), new ManaCostsImpl<>("{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MetathranZombie.java b/Mage.Sets/src/mage/cards/m/MetathranZombie.java
index 4dffa2fbb6..35300f37bc 100644
--- a/Mage.Sets/src/mage/cards/m/MetathranZombie.java
+++ b/Mage.Sets/src/mage/cards/m/MetathranZombie.java
@@ -27,7 +27,7 @@ public final class MetathranZombie extends CardImpl {
this.toughness = new MageInt(1);
// {B}: Regenerate Metathran Zombie.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
}
private MetathranZombie(final MetathranZombie card) {
diff --git a/Mage.Sets/src/mage/cards/m/MeteorStorm.java b/Mage.Sets/src/mage/cards/m/MeteorStorm.java
index 55cbb4909a..dc15608af7 100644
--- a/Mage.Sets/src/mage/cards/m/MeteorStorm.java
+++ b/Mage.Sets/src/mage/cards/m/MeteorStorm.java
@@ -26,7 +26,7 @@ public final class MeteorStorm extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{R}{G}");
// {2}{R}{G}, Discard two cards at random: Meteor Storm deals 4 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl("{2}{R}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl<>("{2}{R}{G}"));
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, new FilterCard("two cards at random")), true));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/Metrognome.java b/Mage.Sets/src/mage/cards/m/Metrognome.java
index 9041536031..39eec3d66b 100644
--- a/Mage.Sets/src/mage/cards/m/Metrognome.java
+++ b/Mage.Sets/src/mage/cards/m/Metrognome.java
@@ -27,7 +27,7 @@ public final class Metrognome extends CardImpl {
this.addAbility(new DiscardedByOpponentTriggeredAbility(new CreateTokenEffect(new GnomeToken(), 4)));
// {4}, {tap}: Create a 1/1 colorless Gnome artifact creature token.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GnomeToken()), new ManaCostsImpl("{4}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GnomeToken()), new ManaCostsImpl<>("{4}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MetropolisSprite.java b/Mage.Sets/src/mage/cards/m/MetropolisSprite.java
index 9735846db8..c8fc2adce2 100644
--- a/Mage.Sets/src/mage/cards/m/MetropolisSprite.java
+++ b/Mage.Sets/src/mage/cards/m/MetropolisSprite.java
@@ -31,7 +31,7 @@ public final class MetropolisSprite extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// {U}: Metropolis Sprite gets +1/-1 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, -1, Duration.EndOfTurn), new ManaCostsImpl("{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{U}")));
}
private MetropolisSprite(final MetropolisSprite card) {
diff --git a/Mage.Sets/src/mage/cards/m/MetzaliTowerOfTriumph.java b/Mage.Sets/src/mage/cards/m/MetzaliTowerOfTriumph.java
index 82690f4422..c5cb8feb9e 100644
--- a/Mage.Sets/src/mage/cards/m/MetzaliTowerOfTriumph.java
+++ b/Mage.Sets/src/mage/cards/m/MetzaliTowerOfTriumph.java
@@ -49,12 +49,12 @@ public final class MetzaliTowerOfTriumph extends CardImpl {
this.addAbility(new AnyColorManaAbility());
// {1}{R}, {T}: Metzali, Tower of Triumph deals 2 damage to each opponent.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(2, TargetController.OPPONENT), new ManaCostsImpl("{1}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(2, TargetController.OPPONENT), new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
// {2}{W}, {T}: Choose a creature at random that attacked this turn. Destroy that creature.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MetzaliTowerOfTriumphEffect(), new ManaCostsImpl("{2}{W}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MetzaliTowerOfTriumphEffect(), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new TapSourceCost());
ability.addWatcher(new AttackedThisTurnWatcher());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MidnightClock.java b/Mage.Sets/src/mage/cards/m/MidnightClock.java
index 46201106b1..58cc720d89 100644
--- a/Mage.Sets/src/mage/cards/m/MidnightClock.java
+++ b/Mage.Sets/src/mage/cards/m/MidnightClock.java
@@ -39,7 +39,7 @@ public final class MidnightClock extends CardImpl {
// {2}{U}: Put an hour counter on Midnight Clock.
this.addAbility(new SimpleActivatedAbility(
- new AddCountersSourceEffect(CounterType.HOUR.createInstance()), new ManaCostsImpl("{2}{U}")
+ new AddCountersSourceEffect(CounterType.HOUR.createInstance()), new ManaCostsImpl<>("{2}{U}")
));
// At the beginning of each upkeep, put an hour counter on Midnight Clock.
diff --git a/Mage.Sets/src/mage/cards/m/MidsummerRevel.java b/Mage.Sets/src/mage/cards/m/MidsummerRevel.java
index 1a84511f8a..3a4bd3b54e 100644
--- a/Mage.Sets/src/mage/cards/m/MidsummerRevel.java
+++ b/Mage.Sets/src/mage/cards/m/MidsummerRevel.java
@@ -32,7 +32,7 @@ public final class MidsummerRevel extends CardImpl {
new AddCountersSourceEffect(CounterType.VERSE.createInstance(), true), TargetController.YOU, true));
// {G}, Sacrifice Midsummer Revel: create X 3/3 green Beast creature tokens, where X is the number of verse counters on Midsummer Revel.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new BeastToken(),
- new CountersSourceCount(CounterType.VERSE)), new ManaCostsImpl("{G}"));
+ new CountersSourceCount(CounterType.VERSE)), new ManaCostsImpl<>("{G}"));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MightyServantOfLeukO.java b/Mage.Sets/src/mage/cards/m/MightyServantOfLeukO.java
new file mode 100644
index 0000000000..c94e0723a9
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/m/MightyServantOfLeukO.java
@@ -0,0 +1,152 @@
+package mage.cards.m;
+
+import mage.MageInt;
+import mage.MageObjectReference;
+import mage.abilities.Ability;
+import mage.abilities.TriggeredAbilityImpl;
+import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
+import mage.abilities.costs.common.DiscardCardCost;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.keyword.CrewAbility;
+import mage.abilities.keyword.TrampleAbility;
+import mage.abilities.keyword.WardAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.*;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+import mage.game.permanent.Permanent;
+import mage.util.CardUtil;
+import mage.watchers.Watcher;
+
+import java.util.*;
+
+/**
+ * @author TheElk801
+ */
+public final class MightyServantOfLeukO extends CardImpl {
+
+ public MightyServantOfLeukO(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
+
+ this.subtype.add(SubType.VEHICLE);
+ this.power = new MageInt(6);
+ this.toughness = new MageInt(6);
+
+ // Trample
+ this.addAbility(TrampleAbility.getInstance());
+
+ // Ward—Discard a card.
+ this.addAbility(new WardAbility(new DiscardCardCost(), false));
+
+ // Whenever Mighty Servant of Leuk-o becomes crewed for the first time each turn, if it was crewed by exactly two creatures, it gains "Whenever this creature deals combat damage to a player, draw two cards" until end of turn.
+ this.addAbility(new MightyServantOfLeukOTriggeredAbility());
+
+ // Crew 4
+ this.addAbility(new CrewAbility(4));
+ }
+
+ private MightyServantOfLeukO(final MightyServantOfLeukO card) {
+ super(card);
+ }
+
+ @Override
+ public MightyServantOfLeukO copy() {
+ return new MightyServantOfLeukO(this);
+ }
+}
+
+class MightyServantOfLeukOTriggeredAbility extends TriggeredAbilityImpl {
+
+ MightyServantOfLeukOTriggeredAbility() {
+ super(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new DealsCombatDamageToAPlayerTriggeredAbility(
+ new DrawCardSourceControllerEffect(2), false
+ ).setTriggerPhrase("Whenever this creature deals combat damage to a player, "), Duration.EndOfTurn));
+ this.addWatcher(new MightyServantOfLeukOWatcher());
+ }
+
+ private MightyServantOfLeukOTriggeredAbility(final MightyServantOfLeukOTriggeredAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public MightyServantOfLeukOTriggeredAbility copy() {
+ return new MightyServantOfLeukOTriggeredAbility(this);
+ }
+
+ @Override
+ public boolean checkEventType(GameEvent event, Game game) {
+ return event.getType() == GameEvent.EventType.VEHICLE_CREWED;
+ }
+
+ @Override
+ public boolean checkTrigger(GameEvent event, Game game) {
+ return event.getSourceId().equals(getSourceId())
+ && MightyServantOfLeukOWatcher.checkVehicle(this, game);
+ }
+
+ @Override
+ public String getRule() {
+ return "Whenever {this} becomes crewed for the first time each turn, if it was crewed by exactly two creatures, it gains \"Whenever this creature deals combat damage to a player, draw two cards\" until end of turn.";
+ }
+}
+
+class MightyServantOfLeukOWatcher extends Watcher {
+
+ private final Map crewCount = new HashMap<>();
+ private final Map> crewMap = new HashMap<>();
+
+ MightyServantOfLeukOWatcher() {
+ super(WatcherScope.GAME);
+ }
+
+ @Override
+ public void watch(GameEvent event, Game game) {
+ Permanent vehicle;
+ Permanent crewer;
+ switch (event.getType()) {
+ case VEHICLE_CREWED:
+ vehicle = game.getPermanent(event.getTargetId());
+ crewer = null;
+ break;
+ case CREWED_VEHICLE:
+ vehicle = game.getPermanent(event.getSourceId());
+ crewer = game.getPermanent(event.getTargetId());
+ break;
+ default:
+ return;
+ }
+ if (vehicle == null) {
+ return;
+ }
+ if (crewer == null) {
+ crewCount.compute(new MageObjectReference(vehicle, game), CardUtil::setOrIncrementValue);
+ return;
+ }
+ crewMap.computeIfAbsent(
+ new MageObjectReference(vehicle, game), x -> new HashSet<>()
+ ).add(new MageObjectReference(crewer, game));
+ }
+
+ @Override
+ public void reset() {
+ super.reset();
+ crewCount.clear();
+ crewMap.clear();
+ }
+
+ public static boolean checkVehicle(Ability source, Game game) {
+ MightyServantOfLeukOWatcher watcher = game
+ .getState()
+ .getWatcher(MightyServantOfLeukOWatcher.class);
+ MageObjectReference mor = new MageObjectReference(source);
+ return watcher
+ .crewCount
+ .getOrDefault(mor, 0) < 2
+ && watcher
+ .crewMap
+ .getOrDefault(mor, Collections.emptySet())
+ .size() == 2;
+ }
+}
diff --git a/Mage.Sets/src/mage/cards/m/MigrationPath.java b/Mage.Sets/src/mage/cards/m/MigrationPath.java
index 65ab7d7b20..88c4442a24 100644
--- a/Mage.Sets/src/mage/cards/m/MigrationPath.java
+++ b/Mage.Sets/src/mage/cards/m/MigrationPath.java
@@ -28,7 +28,7 @@ public final class MigrationPath extends CardImpl {
));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private MigrationPath(final MigrationPath card) {
diff --git a/Mage.Sets/src/mage/cards/m/MigratoryRoute.java b/Mage.Sets/src/mage/cards/m/MigratoryRoute.java
index df4b8ca15f..79fe408afc 100644
--- a/Mage.Sets/src/mage/cards/m/MigratoryRoute.java
+++ b/Mage.Sets/src/mage/cards/m/MigratoryRoute.java
@@ -24,7 +24,7 @@ public final class MigratoryRoute extends CardImpl {
getSpellAbility().addEffect(new CreateTokenEffect(new BirdToken(), 4));
// Basic landcycling {2}
- this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new BasicLandcyclingAbility(new ManaCostsImpl<>("{2}")));
}
private MigratoryRoute(final MigratoryRoute card) {
diff --git a/Mage.Sets/src/mage/cards/m/MilitiasPride.java b/Mage.Sets/src/mage/cards/m/MilitiasPride.java
index 0fddaca3ee..facd5fa288 100644
--- a/Mage.Sets/src/mage/cards/m/MilitiasPride.java
+++ b/Mage.Sets/src/mage/cards/m/MilitiasPride.java
@@ -45,7 +45,7 @@ public final class MilitiasPride extends CardImpl {
class MilitiasPrideTriggerAbility extends TriggeredAbilityImpl {
public MilitiasPrideTriggerAbility() {
- super(Zone.BATTLEFIELD, new DoIfCostPaid(new CreateTokenEffect(new KithkinSoldierToken(), 1, true, true), new ManaCostsImpl("{W}")));
+ super(Zone.BATTLEFIELD, new DoIfCostPaid(new CreateTokenEffect(new KithkinSoldierToken(), 1, true, true), new ManaCostsImpl<>("{W}")));
}
public MilitiasPrideTriggerAbility(final MilitiasPrideTriggerAbility ability) {
diff --git a/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java b/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java
index e14fbf4423..eb0f6fd37e 100644
--- a/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java
+++ b/Mage.Sets/src/mage/cards/m/MinaAndDennWildborn.java
@@ -42,7 +42,7 @@ public final class MinaAndDennWildborn extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PlayAdditionalLandsControllerEffect(1, Duration.WhileOnBattlefield)));
// {R}{G}, Return a land you control to its owner's hand: Target creature gains trample until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{R}{G}"));
ability.addCost(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MinamoSightbender.java b/Mage.Sets/src/mage/cards/m/MinamoSightbender.java
index 39fd259934..5c4a8ecb38 100644
--- a/Mage.Sets/src/mage/cards/m/MinamoSightbender.java
+++ b/Mage.Sets/src/mage/cards/m/MinamoSightbender.java
@@ -42,7 +42,7 @@ public final class MinamoSightbender extends CardImpl {
this.toughness = new MageInt(2);
// {X}, {T}: Target creature with power X or less can't be blocked this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new ManaCostsImpl<>("{X}"));
Target target = new TargetPermanent(filter);
ability.setTargetAdjuster(MinamoSightbenderAdjuster.instance);
ability.addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/m/MindHarness.java b/Mage.Sets/src/mage/cards/m/MindHarness.java
index 6fa8aa6bce..44346bbd58 100644
--- a/Mage.Sets/src/mage/cards/m/MindHarness.java
+++ b/Mage.Sets/src/mage/cards/m/MindHarness.java
@@ -46,7 +46,7 @@ public final class MindHarness extends CardImpl {
this.addAbility(ability);
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// You control enchanted creature.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect()));
diff --git a/Mage.Sets/src/mage/cards/m/MindRake.java b/Mage.Sets/src/mage/cards/m/MindRake.java
index e6cebfe0c6..c5b8c518e3 100644
--- a/Mage.Sets/src/mage/cards/m/MindRake.java
+++ b/Mage.Sets/src/mage/cards/m/MindRake.java
@@ -26,7 +26,7 @@ public final class MindRake extends CardImpl {
// Overload {1}{B}
this.addAbility(new OverloadAbility(this, new DiscardEachPlayerEffect(
2, false
- ), new ManaCostsImpl("{1}{B}")));
+ ), new ManaCostsImpl<>("{1}{B}")));
}
private MindRake(final MindRake card) {
diff --git a/Mage.Sets/src/mage/cards/m/MindSlash.java b/Mage.Sets/src/mage/cards/m/MindSlash.java
index 769d491fb9..59f7de3963 100644
--- a/Mage.Sets/src/mage/cards/m/MindSlash.java
+++ b/Mage.Sets/src/mage/cards/m/MindSlash.java
@@ -26,7 +26,7 @@ public final class MindSlash extends CardImpl {
// {B}, Sacrifice a creature: Target opponent reveals their hand. You choose a card from it.
// That player discards that card. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardCardYouChooseTargetEffect(), new ManaCostsImpl("{B}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardCardYouChooseTargetEffect(), new ManaCostsImpl<>("{B}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MindWhip.java b/Mage.Sets/src/mage/cards/m/MindWhip.java
index 12a21330dc..efc986d477 100644
--- a/Mage.Sets/src/mage/cards/m/MindWhip.java
+++ b/Mage.Sets/src/mage/cards/m/MindWhip.java
@@ -43,7 +43,7 @@ public final class MindWhip extends CardImpl {
// At the beginning of the upkeep of enchanted creature's controller, that player may pay {3}. If they don't, Mind Whip deals 2 damage to that player and you tap that creature.
Effect effect = new DoUnlessTargetPlayerOrTargetsControllerPaysEffect(new MindWhipEffect(),
- new ManaCostsImpl("{3}"),
+ new ManaCostsImpl<>("{3}"),
"");
effect.setText("that player may pay {3}. If they don't, {this} deals 2 damage to that player and you tap that creature.");
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/m/Mindmelter.java b/Mage.Sets/src/mage/cards/m/Mindmelter.java
index a964a6d771..b03d1c8f4d 100644
--- a/Mage.Sets/src/mage/cards/m/Mindmelter.java
+++ b/Mage.Sets/src/mage/cards/m/Mindmelter.java
@@ -36,7 +36,7 @@ public final class Mindmelter extends CardImpl {
// {3}{C}: Target opponent exiles a card from their hand. Activate this ability only any time you could cast a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(
- Zone.BATTLEFIELD, new ExileFromZoneTargetEffect(Zone.HAND, false), new ManaCostsImpl("{3}{C}")
+ Zone.BATTLEFIELD, new ExileFromZoneTargetEffect(Zone.HAND, false), new ManaCostsImpl<>("{3}{C}")
);
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/Mindreaver.java b/Mage.Sets/src/mage/cards/m/Mindreaver.java
index ad7febd5e5..9342a37938 100644
--- a/Mage.Sets/src/mage/cards/m/Mindreaver.java
+++ b/Mage.Sets/src/mage/cards/m/Mindreaver.java
@@ -46,7 +46,7 @@ public final class Mindreaver extends CardImpl {
this.addAbility(ability);
// {U}{U}, Sacrifice Mindreaver: Counter target spell with the same name as a card exiled with Mindreaver.
- ability = new SimpleActivatedAbility(new CounterTargetEffect(), new ManaCostsImpl("{U}{U}"));
+ ability = new SimpleActivatedAbility(new CounterTargetEffect(), new ManaCostsImpl<>("{U}{U}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new MindreaverTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/Mindstab.java b/Mage.Sets/src/mage/cards/m/Mindstab.java
index fff8f7088c..da42223097 100644
--- a/Mage.Sets/src/mage/cards/m/Mindstab.java
+++ b/Mage.Sets/src/mage/cards/m/Mindstab.java
@@ -25,7 +25,7 @@ public final class Mindstab extends CardImpl {
this.getSpellAbility().addTarget(new TargetPlayer());
// Suspend 4—{B} (Rather than cast this card from your hand, you may pay {B} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)
- this.addAbility(new SuspendAbility(4, new ManaCostsImpl("{B}"), this));
+ this.addAbility(new SuspendAbility(4, new ManaCostsImpl<>("{B}"), this));
}
private Mindstab(final Mindstab card) {
diff --git a/Mage.Sets/src/mage/cards/m/Mindwarper.java b/Mage.Sets/src/mage/cards/m/Mindwarper.java
index 0d05037d5c..ad8ebb73b7 100644
--- a/Mage.Sets/src/mage/cards/m/Mindwarper.java
+++ b/Mage.Sets/src/mage/cards/m/Mindwarper.java
@@ -33,7 +33,7 @@ public final class Mindwarper extends CardImpl {
// 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"));
// {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 ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance()));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MindwrackLiege.java b/Mage.Sets/src/mage/cards/m/MindwrackLiege.java
index e564db981e..3dcdb086a4 100644
--- a/Mage.Sets/src/mage/cards/m/MindwrackLiege.java
+++ b/Mage.Sets/src/mage/cards/m/MindwrackLiege.java
@@ -54,7 +54,7 @@ public final class MindwrackLiege extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter2, true)));
// {UR}{UR}{UR}{UR}: You may put a blue or red creature card from your hand onto the battlefield.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(filter3), new ManaCostsImpl("{U/R}{U/R}{U/R}{U/R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(filter3), new ManaCostsImpl<>("{U/R}{U/R}{U/R}{U/R}")));
}
private MindwrackLiege(final MindwrackLiege card) {
diff --git a/Mage.Sets/src/mage/cards/m/MineLayer.java b/Mage.Sets/src/mage/cards/m/MineLayer.java
index 29241524a1..e66e526bca 100644
--- a/Mage.Sets/src/mage/cards/m/MineLayer.java
+++ b/Mage.Sets/src/mage/cards/m/MineLayer.java
@@ -44,7 +44,7 @@ public final class MineLayer extends CardImpl {
// {1}{R}, {tap}: Put a mine counter on target land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.MINE.createInstance()), new TapSourceCost());
- ability.addCost(new ManaCostsImpl("{1}{R}"));
+ ability.addCost(new ManaCostsImpl<>("{1}{R}"));
ability.addTarget(new TargetLandPermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MinersBane.java b/Mage.Sets/src/mage/cards/m/MinersBane.java
index 76661d2fcd..fb8d152463 100644
--- a/Mage.Sets/src/mage/cards/m/MinersBane.java
+++ b/Mage.Sets/src/mage/cards/m/MinersBane.java
@@ -33,7 +33,7 @@ public final class MinersBane extends CardImpl {
// {2}{R}: Miner's Bane gets +1/+0 and gains trample until end of turn.
Effect effect = new BoostSourceEffect(1, 0, Duration.EndOfTurn);
effect.setText("{this} gets +1/+0");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}"));
effect = new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains trample until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/m/MinionOfTeveshSzat.java b/Mage.Sets/src/mage/cards/m/MinionOfTeveshSzat.java
index 35afb89ca4..956c023c8a 100644
--- a/Mage.Sets/src/mage/cards/m/MinionOfTeveshSzat.java
+++ b/Mage.Sets/src/mage/cards/m/MinionOfTeveshSzat.java
@@ -37,7 +37,7 @@ public final class MinionOfTeveshSzat extends CardImpl {
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
new DoUnlessControllerPaysEffect(
new DamageControllerEffect(2),
- new ManaCostsImpl("{B}{B}")
+ new ManaCostsImpl<>("{B}{B}")
),
TargetController.YOU, false
));
diff --git a/Mage.Sets/src/mage/cards/m/MinotaurIllusionist.java b/Mage.Sets/src/mage/cards/m/MinotaurIllusionist.java
index d182162f90..dc65f3d3ba 100644
--- a/Mage.Sets/src/mage/cards/m/MinotaurIllusionist.java
+++ b/Mage.Sets/src/mage/cards/m/MinotaurIllusionist.java
@@ -36,11 +36,11 @@ public final class MinotaurIllusionist extends CardImpl {
// {1}{U}: Minotaur Illusionist gains shroud until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(ShroudAbility.getInstance(),
- Duration.EndOfTurn), new ManaCostsImpl("{1}{U}")));
+ Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")));
// {R}, Sacrifice Minotaur Illusionist: Minotaur Illusionist deals damage equal to its power to target creature.
Effect effect = new DamageTargetEffect(new SourcePermanentPowerCount());
effect.setText("{this} deals damage equal to its power to target creature.");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java b/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java
index 316e62b93b..e8b6d274df 100644
--- a/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java
+++ b/Mage.Sets/src/mage/cards/m/MinotaurSureshot.java
@@ -32,7 +32,7 @@ public final class MinotaurSureshot extends CardImpl {
this.addAbility(ReachAbility.getInstance());
// {1}{R}: Minotaur Sureshot gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")));
}
private MinotaurSureshot(final MinotaurSureshot card) {
diff --git a/Mage.Sets/src/mage/cards/m/MirageMirror.java b/Mage.Sets/src/mage/cards/m/MirageMirror.java
index c673823a6a..a5d3bf92ba 100644
--- a/Mage.Sets/src/mage/cards/m/MirageMirror.java
+++ b/Mage.Sets/src/mage/cards/m/MirageMirror.java
@@ -30,7 +30,7 @@ public final class MirageMirror extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
// {2}: Mirage Mirror becomes a copy of target artifact, creature, enchantment, or land until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirageMirrorCopyEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirageMirrorCopyEffect(), new ManaCostsImpl<>("{2}"));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE_ENCHANTMENT_OR_LAND));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MireBoa.java b/Mage.Sets/src/mage/cards/m/MireBoa.java
index 3e0be68a01..35e279a794 100644
--- a/Mage.Sets/src/mage/cards/m/MireBoa.java
+++ b/Mage.Sets/src/mage/cards/m/MireBoa.java
@@ -29,7 +29,7 @@ public final class MireBoa extends CardImpl {
this.addAbility(new SwampwalkAbility());
// {G}: Regenerate Mire Boa.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{G}")));
}
private MireBoa(final MireBoa card) {
diff --git a/Mage.Sets/src/mage/cards/m/MireShade.java b/Mage.Sets/src/mage/cards/m/MireShade.java
index a5261c2b23..139429636e 100644
--- a/Mage.Sets/src/mage/cards/m/MireShade.java
+++ b/Mage.Sets/src/mage/cards/m/MireShade.java
@@ -37,7 +37,7 @@ public final class MireShade extends CardImpl {
this.toughness = new MageInt(1);
// {B}, Sacrifice a Swamp: Put a +1/+1 counter on Mire Shade. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{B}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl<>("{B}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MirrorMadPhantasm.java b/Mage.Sets/src/mage/cards/m/MirrorMadPhantasm.java
index 9d1ca6e6f3..76fb147a41 100644
--- a/Mage.Sets/src/mage/cards/m/MirrorMadPhantasm.java
+++ b/Mage.Sets/src/mage/cards/m/MirrorMadPhantasm.java
@@ -36,7 +36,7 @@ public final class MirrorMadPhantasm extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {1}{U}: Mirror-Mad Phantasm's owner shuffles it into their library. If that player does, they reveal cards from the top of that library until a card named Mirror-Mad Phantasm is revealed. That player puts that card onto the battlefield and all other cards revealed this way into their graveyard.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirrorMadPhantasmEffect(), new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirrorMadPhantasmEffect(), new ManaCostsImpl<>("{1}{U}")));
}
diff --git a/Mage.Sets/src/mage/cards/m/MirrorSheen.java b/Mage.Sets/src/mage/cards/m/MirrorSheen.java
index c77f0049e6..9e8fe6f725 100644
--- a/Mage.Sets/src/mage/cards/m/MirrorSheen.java
+++ b/Mage.Sets/src/mage/cards/m/MirrorSheen.java
@@ -37,7 +37,7 @@ public final class MirrorSheen extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U/R}{U/R}");
// {1}{UR}{UR}: Copy target instant or sorcery spell that targets you. You may choose new targets for the copy.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl("{1}{U/R}{U/R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl<>("{1}{U/R}{U/R}"));
ability.addTarget(new TargetSpell(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MirrorWall.java b/Mage.Sets/src/mage/cards/m/MirrorWall.java
index b62f3519ef..80d634852b 100644
--- a/Mage.Sets/src/mage/cards/m/MirrorWall.java
+++ b/Mage.Sets/src/mage/cards/m/MirrorWall.java
@@ -32,7 +32,7 @@ public final class MirrorWall extends CardImpl {
// {W}: Mirror Wall can attack this turn as though it didn't have defender.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new CanAttackAsThoughItDidntHaveDefenderSourceEffect(Duration.EndOfTurn),
- new ManaCostsImpl("{W}")));
+ new ManaCostsImpl<>("{W}")));
}
private MirrorWall(final MirrorWall card) {
diff --git a/Mage.Sets/src/mage/cards/m/Mirrorpool.java b/Mage.Sets/src/mage/cards/m/Mirrorpool.java
index d162796dcb..9336d55b42 100644
--- a/Mage.Sets/src/mage/cards/m/Mirrorpool.java
+++ b/Mage.Sets/src/mage/cards/m/Mirrorpool.java
@@ -47,14 +47,14 @@ public final class Mirrorpool extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {2}{C}, {T}, Sacrifice Mirrorpool: Copy target instant or sorcery spell you control. You may choose new targets for the copy.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl("{2}{C}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl<>("{2}{C}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetSpell(filter));
this.addAbility(ability);
// {4}{C}, {T}, Sacrifice Mirrorpool: Create a token that's a copy of target creature you control.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenCopyTargetEffect(), new ManaCostsImpl("{4}{C}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenCopyTargetEffect(), new ManaCostsImpl<>("{4}{C}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetControlledCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/m/MirrorwoodTreefolk.java b/Mage.Sets/src/mage/cards/m/MirrorwoodTreefolk.java
index 906b070e4c..c7fee30459 100644
--- a/Mage.Sets/src/mage/cards/m/MirrorwoodTreefolk.java
+++ b/Mage.Sets/src/mage/cards/m/MirrorwoodTreefolk.java
@@ -31,7 +31,7 @@ public final class MirrorwoodTreefolk extends CardImpl {
this.toughness = new MageInt(4);
// {2}{R}{W}: The next time damage would be dealt to Mirrorwood Treefolk this turn, that damage is dealt to any target instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirrorwoodTreefolkEffect(), new ManaCostsImpl("{2}{R}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirrorwoodTreefolkEffect(), new ManaCostsImpl<>("{2}{R}{W}"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/Mirrorworks.java b/Mage.Sets/src/mage/cards/m/Mirrorworks.java
index 5744bc0907..c24e7df320 100644
--- a/Mage.Sets/src/mage/cards/m/Mirrorworks.java
+++ b/Mage.Sets/src/mage/cards/m/Mirrorworks.java
@@ -35,7 +35,7 @@ public final class Mirrorworks extends CardImpl {
// Whenever another nontoken artifact enters the battlefield under your control, you may pay {2}.
// If you do, create a token that's a copy of that artifact.
Effect effect = new DoIfCostPaid(new CreateTokenCopyTargetEffect(true),
- new ManaCostsImpl("{2}"), "Create a token that's a copy of that artifact?");
+ new ManaCostsImpl<>("{2}"), "Create a token that's a copy of that artifact?");
effect.setText("you may pay {2}. If you do, create a token that's a copy of that artifact");
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, effect, filter, false, SetTargetPointer.PERMANENT, null));
}
diff --git a/Mage.Sets/src/mage/cards/m/Miscalculation.java b/Mage.Sets/src/mage/cards/m/Miscalculation.java
index 40b7abb459..949823d78f 100644
--- a/Mage.Sets/src/mage/cards/m/Miscalculation.java
+++ b/Mage.Sets/src/mage/cards/m/Miscalculation.java
@@ -25,7 +25,7 @@ public final class Miscalculation extends CardImpl {
this.getSpellAbility().addTarget(new TargetSpell());
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(2)));
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private Miscalculation(final Miscalculation card) {
diff --git a/Mage.Sets/src/mage/cards/m/MischievousQuanar.java b/Mage.Sets/src/mage/cards/m/MischievousQuanar.java
index 25d1c41090..1d8ffccb77 100644
--- a/Mage.Sets/src/mage/cards/m/MischievousQuanar.java
+++ b/Mage.Sets/src/mage/cards/m/MischievousQuanar.java
@@ -35,10 +35,10 @@ public final class MischievousQuanar extends CardImpl {
// {3}{U}{U}: Turn Mischievous Quanar face down.
Effect effect = new BecomesFaceDownCreatureEffect(Duration.Custom, BecomesFaceDownCreatureEffect.FaceDownType.MANUAL);
effect.setText("Turn {this} face down. (It becomes a 2/2 creature.)");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{3}{U}{U}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{3}{U}{U}")));
// Morph {1}{U}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{U}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{U}{U}")));
// When Mischievous Quanar is turned face up, copy target instant or sorcery spell. You may choose new targets for that copy.
Effect effect2 = new CopyTargetSpellEffect();
diff --git a/Mage.Sets/src/mage/cards/m/MishrasHelix.java b/Mage.Sets/src/mage/cards/m/MishrasHelix.java
index 6628f58327..b90bbac7c0 100644
--- a/Mage.Sets/src/mage/cards/m/MishrasHelix.java
+++ b/Mage.Sets/src/mage/cards/m/MishrasHelix.java
@@ -26,7 +26,7 @@ public final class MishrasHelix extends CardImpl {
// {X}, {tap}: Tap X target lands.
Effect effect = new TapTargetEffect("tap X target lands");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{X}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{X}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_LANDS));
ability.setTargetAdjuster(XTargetsAdjuster.instance);
diff --git a/Mage.Sets/src/mage/cards/m/MishrasSelfReplicator.java b/Mage.Sets/src/mage/cards/m/MishrasSelfReplicator.java
index a7c7bcca33..bd672bdcb9 100644
--- a/Mage.Sets/src/mage/cards/m/MishrasSelfReplicator.java
+++ b/Mage.Sets/src/mage/cards/m/MishrasSelfReplicator.java
@@ -37,7 +37,7 @@ public final class MishrasSelfReplicator extends CardImpl {
this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(
new CreateTokenCopySourceEffect()
.setText("create a token that's a copy of {this}. (Artifacts, legendaries, and Sagas are historic.)"),
- new ManaCostsImpl("{1}")), filter, false));
+ new ManaCostsImpl<>("{1}")), filter, false));
}
diff --git a/Mage.Sets/src/mage/cards/m/MistDragon.java b/Mage.Sets/src/mage/cards/m/MistDragon.java
index fbea53b47d..c57cf4abf4 100644
--- a/Mage.Sets/src/mage/cards/m/MistDragon.java
+++ b/Mage.Sets/src/mage/cards/m/MistDragon.java
@@ -39,7 +39,7 @@ public final class MistDragon extends CardImpl {
// {3}{U}{U}: Mist Dragon phases out.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new PhaseOutSourceEffect(), new ManaCostsImpl("{3}{U}{U}")));
+ new PhaseOutSourceEffect(), new ManaCostsImpl<>("{3}{U}{U}")));
}
private MistDragon(final MistDragon card) {
diff --git a/Mage.Sets/src/mage/cards/m/MistfireWeaver.java b/Mage.Sets/src/mage/cards/m/MistfireWeaver.java
index 9357ac73cd..fc32d61d87 100644
--- a/Mage.Sets/src/mage/cards/m/MistfireWeaver.java
+++ b/Mage.Sets/src/mage/cards/m/MistfireWeaver.java
@@ -35,7 +35,7 @@ public final class MistfireWeaver extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Morph {2}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{U}")));
// When Misfire Weaver is turned face up, target creature you control gains hexproof until end of turn
Effect effect = new GainAbilityTargetEffect(HexproofAbility.getInstance(), Duration.EndOfTurn);
Ability ability = new TurnedFaceUpSourceTriggeredAbility(effect);
diff --git a/Mage.Sets/src/mage/cards/m/Mistfolk.java b/Mage.Sets/src/mage/cards/m/Mistfolk.java
index 9d7ad8921d..60ba8fc162 100644
--- a/Mage.Sets/src/mage/cards/m/Mistfolk.java
+++ b/Mage.Sets/src/mage/cards/m/Mistfolk.java
@@ -44,7 +44,7 @@ public final class Mistfolk extends CardImpl {
Ability ability = new SimpleActivatedAbility(
new CounterTargetEffect()
.setText("counter target spell that targets {this}"),
- new ManaCostsImpl("{U}")
+ new ManaCostsImpl<>("{U}")
);
ability.addTarget(new TargetSpell(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MistformSeaswift.java b/Mage.Sets/src/mage/cards/m/MistformSeaswift.java
index 1715a6dc12..59f183f4eb 100644
--- a/Mage.Sets/src/mage/cards/m/MistformSeaswift.java
+++ b/Mage.Sets/src/mage/cards/m/MistformSeaswift.java
@@ -34,7 +34,7 @@ public final class MistformSeaswift extends CardImpl {
this.addAbility(new SimpleActivatedAbility(new BecomesChosenCreatureTypeSourceEffect(), new GenericManaCost(1)));
// Morph {1}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{U}")));
}
diff --git a/Mage.Sets/src/mage/cards/m/MistformShrieker.java b/Mage.Sets/src/mage/cards/m/MistformShrieker.java
index cbcb87b542..aa259907fb 100644
--- a/Mage.Sets/src/mage/cards/m/MistformShrieker.java
+++ b/Mage.Sets/src/mage/cards/m/MistformShrieker.java
@@ -35,7 +35,7 @@ public final class MistformShrieker extends CardImpl {
this.addAbility(new SimpleActivatedAbility(new BecomesChosenCreatureTypeSourceEffect(), new GenericManaCost(1)));
// Morph {3}{U}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{3}{U}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{3}{U}{U}")));
}
diff --git a/Mage.Sets/src/mage/cards/m/MistformStalker.java b/Mage.Sets/src/mage/cards/m/MistformStalker.java
index 0069d21df9..9737dbdac0 100644
--- a/Mage.Sets/src/mage/cards/m/MistformStalker.java
+++ b/Mage.Sets/src/mage/cards/m/MistformStalker.java
@@ -38,7 +38,7 @@ public final class MistformStalker extends CardImpl {
// {2}{U}{U}: Mistform Stalker gets +2/+2 and gains flying until end of turn.
Effect effect = new BoostSourceEffect(2, 2, Duration.EndOfTurn);
effect.setText("{this} gets +2/+2");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{U}{U}"));
effect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
effect.setText("and gains flying until end of turn");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/m/MistformWakecaster.java b/Mage.Sets/src/mage/cards/m/MistformWakecaster.java
index 63a2bacf21..1f9a5b309f 100644
--- a/Mage.Sets/src/mage/cards/m/MistformWakecaster.java
+++ b/Mage.Sets/src/mage/cards/m/MistformWakecaster.java
@@ -44,10 +44,10 @@ public final class MistformWakecaster extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {1}: Mistform Wakecaster becomes the creature type of your choice until end of turn.
- this.addAbility(new SimpleActivatedAbility(new BecomesChosenCreatureTypeSourceEffect(), new ManaCostsImpl("{1}")));
+ this.addAbility(new SimpleActivatedAbility(new BecomesChosenCreatureTypeSourceEffect(), new ManaCostsImpl<>("{1}")));
// {2}{U}{U}, {T}: Choose a creature type. Each creature you control becomes that type until end of turn.
- Ability ability = new SimpleActivatedAbility(new BecomesChosenCreatureTypeControlledEffect(), new ManaCostsImpl("{2}{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(new BecomesChosenCreatureTypeControlledEffect(), new ManaCostsImpl<>("{2}{U}{U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MisthoofKirin.java b/Mage.Sets/src/mage/cards/m/MisthoofKirin.java
index ab3f2edec8..ca20a2e8a3 100644
--- a/Mage.Sets/src/mage/cards/m/MisthoofKirin.java
+++ b/Mage.Sets/src/mage/cards/m/MisthoofKirin.java
@@ -31,7 +31,7 @@ public final class MisthoofKirin extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Megamorph {1}{W} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its megamorph cost and put a +1/+1 counter on it.)
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{W}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{W}"), true));
}
private MisthoofKirin(final MisthoofKirin card) {
diff --git a/Mage.Sets/src/mage/cards/m/MistmeadowWitch.java b/Mage.Sets/src/mage/cards/m/MistmeadowWitch.java
index c462a3ab2c..33c2a0c3a2 100644
--- a/Mage.Sets/src/mage/cards/m/MistmeadowWitch.java
+++ b/Mage.Sets/src/mage/cards/m/MistmeadowWitch.java
@@ -29,7 +29,7 @@ public final class MistmeadowWitch extends CardImpl {
this.toughness = new MageInt(1);
// {2}{W}{U}: Exile target creature. Return that card to the battlefield under its owner's control at the beginning of the next end step.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MistmeadowWitchEffect(), new ManaCostsImpl("{2}{W}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MistmeadowWitchEffect(), new ManaCostsImpl<>("{2}{W}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MistveilPlains.java b/Mage.Sets/src/mage/cards/m/MistveilPlains.java
index 1bf754c559..941cc31a78 100644
--- a/Mage.Sets/src/mage/cards/m/MistveilPlains.java
+++ b/Mage.Sets/src/mage/cards/m/MistveilPlains.java
@@ -45,7 +45,7 @@ public final class MistveilPlains extends CardImpl {
Ability ability = new ActivateIfConditionActivatedAbility(
Zone.BATTLEFIELD,
new MistveilPlainsGraveyardToLibraryEffect(),
- new ManaCostsImpl("{W}"),
+ new ManaCostsImpl<>("{W}"),
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1)
);
ability.addTarget(new TargetCardInYourGraveyard());
diff --git a/Mage.Sets/src/mage/cards/m/Mistwalker.java b/Mage.Sets/src/mage/cards/m/Mistwalker.java
index ec12dc2251..a20f1365f6 100644
--- a/Mage.Sets/src/mage/cards/m/Mistwalker.java
+++ b/Mage.Sets/src/mage/cards/m/Mistwalker.java
@@ -34,7 +34,7 @@ public final class Mistwalker extends CardImpl {
// {1}{U}: Mistwalker gets +1/-1 until end of turn.
this.addAbility(new SimpleActivatedAbility(
- new BoostSourceEffect(1, -1, Duration.EndOfTurn), new ManaCostsImpl("{1}{U}")
+ new BoostSourceEffect(1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")
));
}
diff --git a/Mage.Sets/src/mage/cards/m/MizziumMortars.java b/Mage.Sets/src/mage/cards/m/MizziumMortars.java
index de61755de3..af8e09f6bf 100644
--- a/Mage.Sets/src/mage/cards/m/MizziumMortars.java
+++ b/Mage.Sets/src/mage/cards/m/MizziumMortars.java
@@ -25,7 +25,7 @@ public final class MizziumMortars extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(4));
// Overload {3}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")
- this.addAbility(new OverloadAbility(this, new DamageAllEffect(4, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL), new ManaCostsImpl("{3}{R}{R}{R}")));
+ this.addAbility(new OverloadAbility(this, new DamageAllEffect(4, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL), new ManaCostsImpl<>("{3}{R}{R}{R}")));
}
private MizziumMortars(final MizziumMortars card) {
diff --git a/Mage.Sets/src/mage/cards/m/MizziumSkin.java b/Mage.Sets/src/mage/cards/m/MizziumSkin.java
index f466540e61..0820739d3b 100644
--- a/Mage.Sets/src/mage/cards/m/MizziumSkin.java
+++ b/Mage.Sets/src/mage/cards/m/MizziumSkin.java
@@ -35,7 +35,7 @@ public final class MizziumSkin extends CardImpl {
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HexproofAbility.getInstance(), Duration.EndOfTurn));
// Overload {1}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")
- OverloadAbility ability = new OverloadAbility(this, new BoostAllEffect(0,1, Duration.EndOfTurn,StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED,false), new ManaCostsImpl("{1}{U}"));
+ OverloadAbility ability = new OverloadAbility(this, new BoostAllEffect(0,1, Duration.EndOfTurn,StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED,false), new ManaCostsImpl<>("{1}{U}"));
ability.addEffect(new GainAbilityAllEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MizziumTransreliquat.java b/Mage.Sets/src/mage/cards/m/MizziumTransreliquat.java
index 62843afff8..036e3252ed 100644
--- a/Mage.Sets/src/mage/cards/m/MizziumTransreliquat.java
+++ b/Mage.Sets/src/mage/cards/m/MizziumTransreliquat.java
@@ -27,12 +27,12 @@ public final class MizziumTransreliquat extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
// {3}: Mizzium Transreliquat becomes a copy of target artifact until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyEffect(), new ManaCostsImpl("{3}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyEffect(), new ManaCostsImpl<>("{3}"));
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
// {1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact, except it has this ability.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl("{1}{U}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl<>("{1}{U}{R}"));
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
}
@@ -97,7 +97,7 @@ class MizziumTransreliquatCopyAndGainAbilityEffect extends OneShotEffect {
Permanent copyFromPermanent = game.getPermanent(getTargetPointer().getFirst(game, source));
if (sourcePermanent != null && copyFromPermanent != null) {
Permanent newPermanent = game.copyPermanent(copyFromPermanent, sourcePermanent.getId(), source, new EmptyCopyApplier());
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl("{1}{U}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl<>("{1}{U}{R}"));
ability.addTarget(new TargetArtifactPermanent());
newPermanent.addAbility(ability, source.getSourceId(), game);
return true;
diff --git a/Mage.Sets/src/mage/cards/m/MizzixsMastery.java b/Mage.Sets/src/mage/cards/m/MizzixsMastery.java
index 91855af4a0..89ec5c8073 100644
--- a/Mage.Sets/src/mage/cards/m/MizzixsMastery.java
+++ b/Mage.Sets/src/mage/cards/m/MizzixsMastery.java
@@ -38,7 +38,7 @@ public final class MizzixsMastery extends CardImpl {
// Overload {5}{R}{R}{R}
Ability ability = new OverloadAbility(this, new MizzixsMasteryOverloadEffect(),
- new ManaCostsImpl("{5}{R}{R}{R}"));
+ new ManaCostsImpl<>("{5}{R}{R}{R}"));
ability.addEffect(new ExileSpellEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MoanOfTheUnhallowed.java b/Mage.Sets/src/mage/cards/m/MoanOfTheUnhallowed.java
index 4b3ccb090c..7999822b6d 100644
--- a/Mage.Sets/src/mage/cards/m/MoanOfTheUnhallowed.java
+++ b/Mage.Sets/src/mage/cards/m/MoanOfTheUnhallowed.java
@@ -24,7 +24,7 @@ public final class MoanOfTheUnhallowed extends CardImpl {
this.getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken(), 2));
// Flashback {5}{B}{B}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{5}{B}{B}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{B}{B}")));
}
private MoanOfTheUnhallowed(final MoanOfTheUnhallowed card) {
diff --git a/Mage.Sets/src/mage/cards/m/Mobilization.java b/Mage.Sets/src/mage/cards/m/Mobilization.java
index f6d758f84e..65774b02ed 100644
--- a/Mage.Sets/src/mage/cards/m/Mobilization.java
+++ b/Mage.Sets/src/mage/cards/m/Mobilization.java
@@ -33,7 +33,7 @@ public final class Mobilization extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, filter, false)));
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierToken(), 1), new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SoldierToken(), 1), new ManaCostsImpl<>("{2}{W}")));
}
private Mobilization(final Mobilization card) {
diff --git a/Mage.Sets/src/mage/cards/m/MoltenFirebird.java b/Mage.Sets/src/mage/cards/m/MoltenFirebird.java
index 9b4934198a..9fcf380de7 100644
--- a/Mage.Sets/src/mage/cards/m/MoltenFirebird.java
+++ b/Mage.Sets/src/mage/cards/m/MoltenFirebird.java
@@ -37,7 +37,7 @@ public final class MoltenFirebird extends CardImpl {
this.addAbility(ability);
// {4}{R}: Exile Molten Firebird.
- this.addAbility(new SimpleActivatedAbility(new ExileSourceEffect(), new ManaCostsImpl("{4}{R}")));
+ this.addAbility(new SimpleActivatedAbility(new ExileSourceEffect(), new ManaCostsImpl<>("{4}{R}")));
}
private MoltenFirebird(final MoltenFirebird card) {
diff --git a/Mage.Sets/src/mage/cards/m/MoltenFrame.java b/Mage.Sets/src/mage/cards/m/MoltenFrame.java
index a88fb4e0ca..90e7ed2ef4 100644
--- a/Mage.Sets/src/mage/cards/m/MoltenFrame.java
+++ b/Mage.Sets/src/mage/cards/m/MoltenFrame.java
@@ -29,7 +29,7 @@ public final class MoltenFrame extends CardImpl {
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
public MoltenFrame (final MoltenFrame card) {
diff --git a/Mage.Sets/src/mage/cards/m/MoltenRavager.java b/Mage.Sets/src/mage/cards/m/MoltenRavager.java
index 61d685d67b..8a7ba5d2bb 100644
--- a/Mage.Sets/src/mage/cards/m/MoltenRavager.java
+++ b/Mage.Sets/src/mage/cards/m/MoltenRavager.java
@@ -26,7 +26,7 @@ public final class MoltenRavager extends CardImpl {
this.power = new MageInt(0);
this.toughness = new MageInt(4);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")));
}
private MoltenRavager(final MoltenRavager card) {
diff --git a/Mage.Sets/src/mage/cards/m/MoltenVortex.java b/Mage.Sets/src/mage/cards/m/MoltenVortex.java
index 59641521c0..c6565c1230 100644
--- a/Mage.Sets/src/mage/cards/m/MoltenVortex.java
+++ b/Mage.Sets/src/mage/cards/m/MoltenVortex.java
@@ -25,7 +25,7 @@ public final class MoltenVortex extends CardImpl {
// {R}, Discard a land card: Molten Vortex deals 2 damage to any target.
Ability ability = new SimpleActivatedAbility(
- new DamageTargetEffect(2), new ManaCostsImpl("{R}")
+ new DamageTargetEffect(2), new ManaCostsImpl<>("{R}")
);
ability.addCost(new DiscardTargetCost(new TargetCardInHand(StaticFilters.FILTER_CARD_LAND_A)));
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/m/MoltingHarpy.java b/Mage.Sets/src/mage/cards/m/MoltingHarpy.java
index eb6a24787e..3f167bfbda 100644
--- a/Mage.Sets/src/mage/cards/m/MoltingHarpy.java
+++ b/Mage.Sets/src/mage/cards/m/MoltingHarpy.java
@@ -32,7 +32,7 @@ public final class MoltingHarpy extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// At the beginning of your upkeep, sacrifice Molting Harpy unless you pay {2}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{2}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{2}")), TargetController.YOU, false));
}
private MoltingHarpy(final MoltingHarpy card) {
diff --git a/Mage.Sets/src/mage/cards/m/MomentaryBlink.java b/Mage.Sets/src/mage/cards/m/MomentaryBlink.java
index 16da351539..e8def286cd 100644
--- a/Mage.Sets/src/mage/cards/m/MomentaryBlink.java
+++ b/Mage.Sets/src/mage/cards/m/MomentaryBlink.java
@@ -26,7 +26,7 @@ public final class MomentaryBlink extends CardImpl {
this.getSpellAbility().addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false));
// Flashback {3}{U}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{3}{U}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{3}{U}")));
}
private MomentaryBlink(final MomentaryBlink card) {
diff --git a/Mage.Sets/src/mage/cards/m/MomentsPeace.java b/Mage.Sets/src/mage/cards/m/MomentsPeace.java
index 6fa6f598d5..e96da7b452 100644
--- a/Mage.Sets/src/mage/cards/m/MomentsPeace.java
+++ b/Mage.Sets/src/mage/cards/m/MomentsPeace.java
@@ -24,7 +24,7 @@ public final class MomentsPeace extends CardImpl {
this.getSpellAbility().addEffect(new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true));
// Flashback {2}{G}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{2}{G}")));
}
private MomentsPeace(final MomentsPeace card) {
diff --git a/Mage.Sets/src/mage/cards/m/MonCalamariInitiate.java b/Mage.Sets/src/mage/cards/m/MonCalamariInitiate.java
index 82c0a14e61..d12b7c2109 100644
--- a/Mage.Sets/src/mage/cards/m/MonCalamariInitiate.java
+++ b/Mage.Sets/src/mage/cards/m/MonCalamariInitiate.java
@@ -29,7 +29,7 @@ public final class MonCalamariInitiate extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)));
// Meditate {1}{U}
- this.addAbility(new MeditateAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new MeditateAbility(new ManaCostsImpl<>("{1}{U}")));
}
private MonCalamariInitiate(final MonCalamariInitiate card) {
diff --git a/Mage.Sets/src/mage/cards/m/MonasteryFlock.java b/Mage.Sets/src/mage/cards/m/MonasteryFlock.java
index cea30ee5b4..a69d584880 100644
--- a/Mage.Sets/src/mage/cards/m/MonasteryFlock.java
+++ b/Mage.Sets/src/mage/cards/m/MonasteryFlock.java
@@ -30,7 +30,7 @@ public final class MonasteryFlock extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// Morph {U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{U}")));
}
private MonasteryFlock(final MonasteryFlock card) {
diff --git a/Mage.Sets/src/mage/cards/m/MonasteryLoremaster.java b/Mage.Sets/src/mage/cards/m/MonasteryLoremaster.java
index d5a352d2ef..ddcc26bab0 100644
--- a/Mage.Sets/src/mage/cards/m/MonasteryLoremaster.java
+++ b/Mage.Sets/src/mage/cards/m/MonasteryLoremaster.java
@@ -37,7 +37,7 @@ public final class MonasteryLoremaster extends CardImpl {
this.toughness = new MageInt(2);
// Megamorph {5}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{5}{U}"), true));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{5}{U}"), true));
// When Monastery Loremaster is turned face up, return target noncreature, nonland card from your graveyard to your hand.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect());
diff --git a/Mage.Sets/src/mage/cards/m/MonstrousCarabid.java b/Mage.Sets/src/mage/cards/m/MonstrousCarabid.java
index 66df095ccf..9d49c04c12 100644
--- a/Mage.Sets/src/mage/cards/m/MonstrousCarabid.java
+++ b/Mage.Sets/src/mage/cards/m/MonstrousCarabid.java
@@ -29,7 +29,7 @@ public final class MonstrousCarabid extends CardImpl {
// Monstrous Carabid attacks each turn if able.
this.addAbility(new AttacksEachCombatStaticAbility());
// Cycling {BR}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{B/R}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{B/R}")));
}
private MonstrousCarabid(final MonstrousCarabid card) {
diff --git a/Mage.Sets/src/mage/cards/m/MonstrousStep.java b/Mage.Sets/src/mage/cards/m/MonstrousStep.java
index e873e8e3f9..dde0308f40 100644
--- a/Mage.Sets/src/mage/cards/m/MonstrousStep.java
+++ b/Mage.Sets/src/mage/cards/m/MonstrousStep.java
@@ -48,7 +48,7 @@ public final class MonstrousStep extends CardImpl {
this.getSpellAbility().addTarget(target);
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private MonstrousStep(final MonstrousStep card) {
diff --git a/Mage.Sets/src/mage/cards/m/MoonlightGeist.java b/Mage.Sets/src/mage/cards/m/MoonlightGeist.java
index b8a71f30c9..e49deb6dcc 100644
--- a/Mage.Sets/src/mage/cards/m/MoonlightGeist.java
+++ b/Mage.Sets/src/mage/cards/m/MoonlightGeist.java
@@ -33,7 +33,7 @@ public final class MoonlightGeist extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {3}{W}: Prevent all combat damage that would be dealt to and dealt by Moonlight Geist this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventCombatDamageToSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{3}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventCombatDamageToSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{3}{W}"));
ability.addEffect(new PreventCombatDamageBySourceEffect(Duration.EndOfTurn));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MoonringIsland.java b/Mage.Sets/src/mage/cards/m/MoonringIsland.java
index 60d7fd02e0..2af09f8d93 100644
--- a/Mage.Sets/src/mage/cards/m/MoonringIsland.java
+++ b/Mage.Sets/src/mage/cards/m/MoonringIsland.java
@@ -46,7 +46,7 @@ public final class MoonringIsland extends CardImpl {
// {U}, {tap}: Look at the top card of target player's library. Activate this ability only if you control two or more blue permanents.
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new LookLibraryTopCardTargetPlayerEffect(),
- new ManaCostsImpl("{U}"),
+ new ManaCostsImpl<>("{U}"),
new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 1));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
diff --git a/Mage.Sets/src/mage/cards/m/MoorlandHaunt.java b/Mage.Sets/src/mage/cards/m/MoorlandHaunt.java
index 44a8d8e8d8..f6fcff3f60 100644
--- a/Mage.Sets/src/mage/cards/m/MoorlandHaunt.java
+++ b/Mage.Sets/src/mage/cards/m/MoorlandHaunt.java
@@ -32,7 +32,7 @@ public final class MoorlandHaunt extends CardImpl {
// {W}{U}, {tap}, Exile a creature card from your graveyard: Create a 1/1 white Spirit creature token with flying.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new CreateTokenEffect(new SpiritWhiteToken()),
- new ManaCostsImpl("{W}{U}"));
+ new ManaCostsImpl<>("{W}{U}"));
ability.addCost(new TapSourceCost());
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filter)));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MoorlandInquisitor.java b/Mage.Sets/src/mage/cards/m/MoorlandInquisitor.java
index ec2070eb0f..109aba0464 100644
--- a/Mage.Sets/src/mage/cards/m/MoorlandInquisitor.java
+++ b/Mage.Sets/src/mage/cards/m/MoorlandInquisitor.java
@@ -30,7 +30,7 @@ public final class MoorlandInquisitor extends CardImpl {
// {2}{W}: Moorland Inquisitor gains first strike until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{2}{W}")));
+ new ManaCostsImpl<>("{2}{W}")));
}
private MoorlandInquisitor(final MoorlandInquisitor card) {
diff --git a/Mage.Sets/src/mage/cards/m/MoratoriumStone.java b/Mage.Sets/src/mage/cards/m/MoratoriumStone.java
index 9bd2aed609..860ac6bd8c 100644
--- a/Mage.Sets/src/mage/cards/m/MoratoriumStone.java
+++ b/Mage.Sets/src/mage/cards/m/MoratoriumStone.java
@@ -46,7 +46,7 @@ public final class MoratoriumStone extends CardImpl {
this.addAbility(ability);
// {2}{W}{B}, {tap}, Sacrifice Moratorium Stone: Exile target nonland card from a graveyard, all other cards from graveyards with the same name as that card, and all permanents with that name.
- ability = new SimpleActivatedAbility(new MoratoriumStoneEffect(), new ManaCostsImpl("{2}{W}{B}"));
+ ability = new SimpleActivatedAbility(new MoratoriumStoneEffect(), new ManaCostsImpl<>("{2}{W}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInGraveyard(filter));
diff --git a/Mage.Sets/src/mage/cards/m/MorbidHunger.java b/Mage.Sets/src/mage/cards/m/MorbidHunger.java
index 60453a85ee..ec8049b31a 100644
--- a/Mage.Sets/src/mage/cards/m/MorbidHunger.java
+++ b/Mage.Sets/src/mage/cards/m/MorbidHunger.java
@@ -27,7 +27,7 @@ public final class MorbidHunger extends CardImpl {
this.getSpellAbility().addTarget(new TargetAnyTarget());
this.getSpellAbility().addEffect(new GainLifeEffect(3));
// Flashback {7}{B}{B}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{7}{B}{B}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{7}{B}{B}")));
}
diff --git a/Mage.Sets/src/mage/cards/m/MordantDragon.java b/Mage.Sets/src/mage/cards/m/MordantDragon.java
index e1cee27106..7b76d722d7 100644
--- a/Mage.Sets/src/mage/cards/m/MordantDragon.java
+++ b/Mage.Sets/src/mage/cards/m/MordantDragon.java
@@ -40,7 +40,7 @@ public final class MordantDragon extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {1}{R}: Mordant Dragon gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{R}")));
// Whenever Mordant Dragon deals combat damage to a player, you may have it deal that much damage to target creature that player controls.
this.addAbility(new MordantDragonTriggeredAbility());
diff --git a/Mage.Sets/src/mage/cards/m/MorgueTheft.java b/Mage.Sets/src/mage/cards/m/MorgueTheft.java
index c2046bc60c..a18c293602 100644
--- a/Mage.Sets/src/mage/cards/m/MorgueTheft.java
+++ b/Mage.Sets/src/mage/cards/m/MorgueTheft.java
@@ -24,7 +24,7 @@ public final class MorgueTheft extends CardImpl {
this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE));
// Flashback {4}{B}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{4}{B}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{4}{B}")));
}
diff --git a/Mage.Sets/src/mage/cards/m/MoriokReplica.java b/Mage.Sets/src/mage/cards/m/MoriokReplica.java
index e389ff186e..b229a670c2 100644
--- a/Mage.Sets/src/mage/cards/m/MoriokReplica.java
+++ b/Mage.Sets/src/mage/cards/m/MoriokReplica.java
@@ -32,7 +32,7 @@ public final class MoriokReplica extends CardImpl {
// {1}{B}, Sacrifice Moriok Replica: You draw two cards and you lose 2 life.
Effect effect = new DrawCardSourceControllerEffect(2);
effect.setText("You draw two cards");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}"));
effect = new LoseLifeSourceControllerEffect(2);
effect.setText("and you lose 2 life");
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/m/MorophonTheBoundless.java b/Mage.Sets/src/mage/cards/m/MorophonTheBoundless.java
index fd2be913ab..e33112ea6a 100644
--- a/Mage.Sets/src/mage/cards/m/MorophonTheBoundless.java
+++ b/Mage.Sets/src/mage/cards/m/MorophonTheBoundless.java
@@ -47,7 +47,7 @@ public final class MorophonTheBoundless extends CardImpl {
// Spells of the chosen type you cast cost {W}{U}{B}{R}{G} less to cast. This effect reduces only the amount of colored mana you pay.
this.addAbility(new SimpleStaticAbility(new SpellsCostReductionControllerEffect(
- filter, new ManaCostsImpl("{W}{U}{B}{R}{G}")
+ filter, new ManaCostsImpl<>("{W}{U}{B}{R}{G}")
)));
// Other creatures you control of the chosen type get +1/+1.
diff --git a/Mage.Sets/src/mage/cards/m/Mortipede.java b/Mage.Sets/src/mage/cards/m/Mortipede.java
index 35c1ddfa12..19f498659b 100644
--- a/Mage.Sets/src/mage/cards/m/Mortipede.java
+++ b/Mage.Sets/src/mage/cards/m/Mortipede.java
@@ -26,7 +26,7 @@ public final class Mortipede extends CardImpl {
this.toughness = new MageInt(1);
// {2}{G}: All creatures able to block Mortipede this turn do so.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{2}{G}")));
}
private Mortipede(final Mortipede card) {
diff --git a/Mage.Sets/src/mage/cards/m/Mortiphobia.java b/Mage.Sets/src/mage/cards/m/Mortiphobia.java
index f2b62bfb7d..aafcd5aab8 100644
--- a/Mage.Sets/src/mage/cards/m/Mortiphobia.java
+++ b/Mage.Sets/src/mage/cards/m/Mortiphobia.java
@@ -24,12 +24,12 @@ public final class Mortiphobia extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}{B}");
// {1}{B}, Discard a card: Exile target card from a graveyard.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetCardInGraveyard());
this.addAbility(ability);
// {1}{B}, Sacrifice Mortiphobia: Exile target card from a graveyard.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{B}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInGraveyard());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MosquitoGuard.java b/Mage.Sets/src/mage/cards/m/MosquitoGuard.java
index 71951ec5ed..0f90614025 100644
--- a/Mage.Sets/src/mage/cards/m/MosquitoGuard.java
+++ b/Mage.Sets/src/mage/cards/m/MosquitoGuard.java
@@ -26,7 +26,7 @@ public final class MosquitoGuard extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(FirstStrikeAbility.getInstance());
- this.addAbility(new ReinforceAbility(1, new ManaCostsImpl("{1}{W}")));
+ this.addAbility(new ReinforceAbility(1, new ManaCostsImpl<>("{1}{W}")));
}
public MosquitoGuard (final MosquitoGuard card) {
diff --git a/Mage.Sets/src/mage/cards/m/MossfireEgg.java b/Mage.Sets/src/mage/cards/m/MossfireEgg.java
index 5714eb2ef1..25ab3d1b63 100644
--- a/Mage.Sets/src/mage/cards/m/MossfireEgg.java
+++ b/Mage.Sets/src/mage/cards/m/MossfireEgg.java
@@ -24,7 +24,7 @@ public final class MossfireEgg extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
// {2}, {tap}, Sacrifice Mossfire Egg: Add {R}{G}. Draw a card.
- ActivatedManaAbilityImpl ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl("{2}"));
+ ActivatedManaAbilityImpl ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/cards/m/MossfireValley.java b/Mage.Sets/src/mage/cards/m/MossfireValley.java
index 651f77047b..b759ee1510 100644
--- a/Mage.Sets/src/mage/cards/m/MossfireValley.java
+++ b/Mage.Sets/src/mage/cards/m/MossfireValley.java
@@ -22,7 +22,7 @@ public final class MossfireValley extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// {1}, {tap}: Add {R}{G}.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0, 0), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/Mosstodon.java b/Mage.Sets/src/mage/cards/m/Mosstodon.java
index 11a9d6f2ff..d4f27ba0b3 100644
--- a/Mage.Sets/src/mage/cards/m/Mosstodon.java
+++ b/Mage.Sets/src/mage/cards/m/Mosstodon.java
@@ -40,7 +40,7 @@ public final class Mosstodon extends CardImpl {
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{1}"));
+ new ManaCostsImpl<>("{1}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MosswortBridge.java b/Mage.Sets/src/mage/cards/m/MosswortBridge.java
index 1e1344c9c8..1a24640b7f 100644
--- a/Mage.Sets/src/mage/cards/m/MosswortBridge.java
+++ b/Mage.Sets/src/mage/cards/m/MosswortBridge.java
@@ -39,7 +39,7 @@ public final class MosswortBridge extends CardImpl {
new HideawayPlayEffect(), MosswortBridgeTotalPowerCondition.instance,
"you may play the exiled card without paying its mana cost " +
"if creatures you control have total power 10 or greater"
- ), new ManaCostsImpl("{G}"));
+ ), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MotherBear.java b/Mage.Sets/src/mage/cards/m/MotherBear.java
index 80f6ce6dc3..09774e5c79 100644
--- a/Mage.Sets/src/mage/cards/m/MotherBear.java
+++ b/Mage.Sets/src/mage/cards/m/MotherBear.java
@@ -29,7 +29,7 @@ public final class MotherBear extends CardImpl {
// {3}{G}{G}, Exile Mother Bear from your graveyard: Create two 2/2 green Bear creature tokens. Activate this ability only any time you could cast a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(
- Zone.GRAVEYARD, new CreateTokenEffect(new BearToken(), 2), new ManaCostsImpl("{3}{G}{G}")
+ Zone.GRAVEYARD, new CreateTokenEffect(new BearToken(), 2), new ManaCostsImpl<>("{3}{G}{G}")
);
ability.addCost(new ExileSourceFromGraveCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MountainTitan.java b/Mage.Sets/src/mage/cards/m/MountainTitan.java
index d736f9c460..5882adbc8b 100644
--- a/Mage.Sets/src/mage/cards/m/MountainTitan.java
+++ b/Mage.Sets/src/mage/cards/m/MountainTitan.java
@@ -35,7 +35,7 @@ public final class MountainTitan extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
new CreateDelayedTriggeredAbilityEffect(new MountainTitanDelayedTriggeredAbility())
.setText("until end of turn, whenever you cast a black spell, put a +1/+1 counter on {this}"),
- new ManaCostsImpl("{1}{R}{R}")
+ new ManaCostsImpl<>("{1}{R}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/m/MountedArchers.java b/Mage.Sets/src/mage/cards/m/MountedArchers.java
index 26a5b9a63b..7acd69ab75 100644
--- a/Mage.Sets/src/mage/cards/m/MountedArchers.java
+++ b/Mage.Sets/src/mage/cards/m/MountedArchers.java
@@ -32,7 +32,7 @@ public final class MountedArchers extends CardImpl {
this.addAbility(ReachAbility.getInstance());
// {W}: Mounted Archers can block an additional creature this turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(Duration.EndOfTurn, 1), new ManaCostsImpl("{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(Duration.EndOfTurn, 1), new ManaCostsImpl<>("{W}")));
}
private MountedArchers(final MountedArchers card) {
diff --git a/Mage.Sets/src/mage/cards/m/Mourning.java b/Mage.Sets/src/mage/cards/m/Mourning.java
index b90b27eeff..e7746b19a4 100644
--- a/Mage.Sets/src/mage/cards/m/Mourning.java
+++ b/Mage.Sets/src/mage/cards/m/Mourning.java
@@ -37,7 +37,7 @@ public final class Mourning extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(-2, 0)));
// {B}: Return Mourning to its owner's hand.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl<>("{B}")));
}
private Mourning(final Mourning card) {
diff --git a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java
index 5c103cb665..b2f4fa7992 100644
--- a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java
+++ b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java
@@ -29,7 +29,7 @@ public final class MouthOfRonom extends CardImpl {
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {4}{S}, {T}, Sacrifice Mouth of Ronom: Mouth of Ronom deals 4 damage to target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl("{4}{S}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl<>("{4}{S}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/m/MoxLotus.java b/Mage.Sets/src/mage/cards/m/MoxLotus.java
index 910b50181d..e148efcc86 100644
--- a/Mage.Sets/src/mage/cards/m/MoxLotus.java
+++ b/Mage.Sets/src/mage/cards/m/MoxLotus.java
@@ -26,7 +26,7 @@ public final class MoxLotus extends CardImpl {
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1000000000), new TapSourceCost()));
// {100}: Add one mana of any color.
- Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(1), new ManaCostsImpl("{100}"));
+ Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(1), new ManaCostsImpl<>("{100}"));
this.addAbility(ability);
// You don't lose life due to mana burn.
diff --git a/Mage.Sets/src/mage/cards/m/MtendaGriffin.java b/Mage.Sets/src/mage/cards/m/MtendaGriffin.java
index c1b4475348..d79901ea18 100644
--- a/Mage.Sets/src/mage/cards/m/MtendaGriffin.java
+++ b/Mage.Sets/src/mage/cards/m/MtendaGriffin.java
@@ -47,7 +47,7 @@ public final class MtendaGriffin extends CardImpl {
Effect effect = new ReturnToHandSourceEffect(true);
effect.setText("Return Mtenda Griffin to its owner's hand");
Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD,
- effect, new ManaCostsImpl("{W}"), new IsStepCondition(PhaseStep.UPKEEP));
+ effect, new ManaCostsImpl<>("{W}"), new IsStepCondition(PhaseStep.UPKEEP));
effect = new ReturnToHandTargetEffect();
ability.addCost(new TapSourceCost());
effect.setText("and return target Griffin card from your graveyard to your hand");
diff --git a/Mage.Sets/src/mage/cards/m/MtendaLion.java b/Mage.Sets/src/mage/cards/m/MtendaLion.java
index 0135a20769..641406e9d5 100644
--- a/Mage.Sets/src/mage/cards/m/MtendaLion.java
+++ b/Mage.Sets/src/mage/cards/m/MtendaLion.java
@@ -67,7 +67,7 @@ class MtendaLionEffect extends OneShotEffect {
if (player == null) {
return false;
}
- Cost cost = new ManaCostsImpl("{U}");
+ Cost cost = new ManaCostsImpl<>("{U}");
if (!player.chooseUse(outcome, "Pay {U} to prevent damage?", source, game)
|| !cost.pay(source, game, source, player.getId(), false)) {
return false;
diff --git a/Mage.Sets/src/mage/cards/m/MuckDrubb.java b/Mage.Sets/src/mage/cards/m/MuckDrubb.java
index 462f2c62c0..4cddfdb676 100644
--- a/Mage.Sets/src/mage/cards/m/MuckDrubb.java
+++ b/Mage.Sets/src/mage/cards/m/MuckDrubb.java
@@ -56,7 +56,7 @@ public final class MuckDrubb extends CardImpl {
this.addAbility(ability);
// Madness {2}{B}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{2}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{2}{B}")));
}
private MuckDrubb(final MuckDrubb card) {
diff --git a/Mage.Sets/src/mage/cards/m/MurasaRanger.java b/Mage.Sets/src/mage/cards/m/MurasaRanger.java
index 48b359232f..09e446ebb8 100644
--- a/Mage.Sets/src/mage/cards/m/MurasaRanger.java
+++ b/Mage.Sets/src/mage/cards/m/MurasaRanger.java
@@ -28,7 +28,7 @@ public final class MurasaRanger extends CardImpl {
this.toughness = new MageInt(3);
// Landfall — Whenever a land enters the battlefield under your control, you may pay {3}{G}. IF you do, put two +1/+1 counters on Murasa Ranger.
- this.addAbility(new LandfallAbility(new DoIfCostPaid(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl("{3}{G}")), false));
+ this.addAbility(new LandfallAbility(new DoIfCostPaid(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl<>("{3}{G}")), false));
}
private MurasaRanger(final MurasaRanger card) {
diff --git a/Mage.Sets/src/mage/cards/m/MurderousBetrayal.java b/Mage.Sets/src/mage/cards/m/MurderousBetrayal.java
index 8f59992271..3792e03e7f 100644
--- a/Mage.Sets/src/mage/cards/m/MurderousBetrayal.java
+++ b/Mage.Sets/src/mage/cards/m/MurderousBetrayal.java
@@ -30,7 +30,7 @@ public final class MurderousBetrayal extends CardImpl {
// {B}{B}, Pay half your life, rounded up: Destroy target nonblack creature. It can't be regenerated.
Effect effect = new DestroyTargetEffect(true);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new MurderousBetrayalCost());
- ability.addCost(new ManaCostsImpl("{B}{B}"));
+ ability.addCost(new ManaCostsImpl<>("{B}{B}"));
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_PERMANENT_CREATURE_NON_BLACK));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java b/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java
index f261e7951b..0ceae7d243 100644
--- a/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java
+++ b/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java
@@ -32,7 +32,7 @@ public final class MurderousCompulsion extends CardImpl {
getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// Madness {1}{B} (If you discard card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.)
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{1}{B}")));
}
private MurderousCompulsion(final MurderousCompulsion card) {
diff --git a/Mage.Sets/src/mage/cards/m/MuseVessel.java b/Mage.Sets/src/mage/cards/m/MuseVessel.java
index ce7cbfb70f..f4249278bc 100644
--- a/Mage.Sets/src/mage/cards/m/MuseVessel.java
+++ b/Mage.Sets/src/mage/cards/m/MuseVessel.java
@@ -38,12 +38,12 @@ public final class MuseVessel extends CardImpl {
// {3}, {tap}: Target player exiles a card from their hand. Activate this ability only any time you could cast a sorcery.
ActivateAsSorceryActivatedAbility tapAbility = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new MuseVesselExileEffect(), new TapSourceCost());
- tapAbility.addCost(new ManaCostsImpl("{3}"));
+ tapAbility.addCost(new ManaCostsImpl<>("{3}"));
tapAbility.addTarget(new TargetPlayer());
this.addAbility(tapAbility);
// {1}: Choose a card exiled with Muse Vessel. You may play that card this turn.
- SimpleActivatedAbility playAbility = new SimpleActivatedAbility(new MuseVesselMayPlayExiledEffect(), new ManaCostsImpl("{1}"));
+ SimpleActivatedAbility playAbility = new SimpleActivatedAbility(new MuseVesselMayPlayExiledEffect(), new ManaCostsImpl<>("{1}"));
playAbility.addTarget(new TargetCardInMuseVesselExile());
this.addAbility(playAbility);
}
diff --git a/Mage.Sets/src/mage/cards/m/Musician.java b/Mage.Sets/src/mage/cards/m/Musician.java
index b937ba9ff4..0da0ef2a41 100644
--- a/Mage.Sets/src/mage/cards/m/Musician.java
+++ b/Mage.Sets/src/mage/cards/m/Musician.java
@@ -36,7 +36,7 @@ public final class Musician extends CardImpl {
this.toughness = new MageInt(3);
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// {tap}: Put a music counter on target creature. If it doesn't have "At the beginning of your upkeep, destroy this creature unless you pay {1} for each music counter on it," it gains that ability.
Effect effect = new DoUnlessControllerPaysEffect(
diff --git a/Mage.Sets/src/mage/cards/m/Mutavault.java b/Mage.Sets/src/mage/cards/m/Mutavault.java
index 5e5ca80dd8..63d33b7c7a 100644
--- a/Mage.Sets/src/mage/cards/m/Mutavault.java
+++ b/Mage.Sets/src/mage/cards/m/Mutavault.java
@@ -28,7 +28,7 @@ public final class Mutavault extends CardImpl {
// {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BecomesCreatureSourceEffect(new MutavaultToken(), "land", Duration.EndOfTurn),
- new ManaCostsImpl("{1}")));
+ new ManaCostsImpl<>("{1}")));
}
private Mutavault(final Mutavault card) {
diff --git a/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java b/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java
index 9f89f265a2..ca8fe547ce 100644
--- a/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java
+++ b/Mage.Sets/src/mage/cards/m/MuzzioVisionaryArchitect.java
@@ -37,7 +37,7 @@ public final class MuzzioVisionaryArchitect extends CardImpl {
this.toughness = new MageInt(3);
// {3}{U}, {tap}: Look at the top X cards of your library, where X is the highest converted mana cost among artifacts you control. You may reveal an artifact card from among them and put it onto the battlefield. Put the rest on the bottom of your library in any order.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MuzzioVisionaryArchitectEffect(), new ManaCostsImpl("{3}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MuzzioVisionaryArchitectEffect(), new ManaCostsImpl<>("{3}{U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MwonvuliOoze.java b/Mage.Sets/src/mage/cards/m/MwonvuliOoze.java
index 9b3408de9b..959c124bae 100644
--- a/Mage.Sets/src/mage/cards/m/MwonvuliOoze.java
+++ b/Mage.Sets/src/mage/cards/m/MwonvuliOoze.java
@@ -32,7 +32,7 @@ public final class MwonvuliOoze extends CardImpl {
this.toughness = new MageInt(1);
// Cumulative upkeep {2}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{2}")));
// Mwonvuli Ooze's power and toughness are each equal to 1 plus twice the number of age counters on it.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new MwonvuliOozePTValue(), Duration.EndOfGame)));
}
diff --git a/Mage.Sets/src/mage/cards/m/MyrIncubator.java b/Mage.Sets/src/mage/cards/m/MyrIncubator.java
index 1e6f2b81ef..a06f69a3fb 100644
--- a/Mage.Sets/src/mage/cards/m/MyrIncubator.java
+++ b/Mage.Sets/src/mage/cards/m/MyrIncubator.java
@@ -31,7 +31,7 @@ public final class MyrIncubator extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}");
// {6}, {tap}, Sacrifice Myr Incubator: Search your library for any number of artifact cards, exile them, then put that many 1/1 colorless Myr artifact creature tokens onto the battlefield. Then shuffle your library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MyrIncubatorEffect(), new ManaCostsImpl("{6}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MyrIncubatorEffect(), new ManaCostsImpl<>("{6}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MyrMindservant.java b/Mage.Sets/src/mage/cards/m/MyrMindservant.java
index f1c1a25030..c91a7b67c8 100644
--- a/Mage.Sets/src/mage/cards/m/MyrMindservant.java
+++ b/Mage.Sets/src/mage/cards/m/MyrMindservant.java
@@ -27,7 +27,7 @@ public final class MyrMindservant extends CardImpl {
this.toughness = new MageInt(1);
// {2}, {tap}: Shuffle your library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ShuffleLibrarySourceEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ShuffleLibrarySourceEffect(), new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MyrPrototype.java b/Mage.Sets/src/mage/cards/m/MyrPrototype.java
index ad87287427..d22b3f4041 100644
--- a/Mage.Sets/src/mage/cards/m/MyrPrototype.java
+++ b/Mage.Sets/src/mage/cards/m/MyrPrototype.java
@@ -53,7 +53,7 @@ public final class MyrPrototype extends CardImpl {
class MyrPrototypeCantAttackUnlessYouPayEffect extends CantAttackBlockUnlessPaysSourceEffect {
MyrPrototypeCantAttackUnlessYouPayEffect() {
- super(new ManaCostsImpl("{0}"), RestrictType.ATTACK_AND_BLOCK);
+ super(new ManaCostsImpl<>("{0}"), RestrictType.ATTACK_AND_BLOCK);
staticText = "{this} can't attack or block unless you pay {1} for each +1/+1 counter on it";
}
diff --git a/Mage.Sets/src/mage/cards/m/MyrQuadropod.java b/Mage.Sets/src/mage/cards/m/MyrQuadropod.java
index fcd2d7dd3b..3703910066 100644
--- a/Mage.Sets/src/mage/cards/m/MyrQuadropod.java
+++ b/Mage.Sets/src/mage/cards/m/MyrQuadropod.java
@@ -27,7 +27,7 @@ public final class MyrQuadropod extends CardImpl {
this.toughness = new MageInt(4);
// {3}: Switch Myr Quadropod's power and toughness until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SwitchPowerToughnessSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{3}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SwitchPowerToughnessSourceEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{3}")));
}
private MyrQuadropod(final MyrQuadropod card) {
diff --git a/Mage.Sets/src/mage/cards/m/MysticArchaeologist.java b/Mage.Sets/src/mage/cards/m/MysticArchaeologist.java
index 2eb564debe..b55c7a0086 100644
--- a/Mage.Sets/src/mage/cards/m/MysticArchaeologist.java
+++ b/Mage.Sets/src/mage/cards/m/MysticArchaeologist.java
@@ -29,7 +29,7 @@ public final class MysticArchaeologist extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new DrawCardSourceControllerEffect(2),
- new ManaCostsImpl("{3}{U}{U}")
+ new ManaCostsImpl<>("{3}{U}{U}")
));
}
diff --git a/Mage.Sets/src/mage/cards/m/MysticCompass.java b/Mage.Sets/src/mage/cards/m/MysticCompass.java
index 9191e9a0ef..06b4331da8 100644
--- a/Mage.Sets/src/mage/cards/m/MysticCompass.java
+++ b/Mage.Sets/src/mage/cards/m/MysticCompass.java
@@ -25,7 +25,7 @@ public final class MysticCompass extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
// {1}, {tap}: Target land becomes the basic land type of your choice until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
Target target = new TargetLandPermanent();
ability.addTarget(target);
diff --git a/Mage.Sets/src/mage/cards/m/MysticGate.java b/Mage.Sets/src/mage/cards/m/MysticGate.java
index c4e6068b65..4aa0c03d57 100644
--- a/Mage.Sets/src/mage/cards/m/MysticGate.java
+++ b/Mage.Sets/src/mage/cards/m/MysticGate.java
@@ -24,15 +24,15 @@ public final class MysticGate extends CardImpl {
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {WU}, {tap}: Add {W}{W}, {W}{U}, or {U}{U}.
- SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl("{W/U}"));
+ SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl<>("{W/U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new ManaCostsImpl("{W/U}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 0, 0, 0, 0, 0, 0), new ManaCostsImpl<>("{W/U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
- ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl("{W/U}"));
+ ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl<>("{W/U}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MysticMight.java b/Mage.Sets/src/mage/cards/m/MysticMight.java
index a481811f37..0860d2446b 100644
--- a/Mage.Sets/src/mage/cards/m/MysticMight.java
+++ b/Mage.Sets/src/mage/cards/m/MysticMight.java
@@ -41,7 +41,7 @@ public final class MysticMight extends CardImpl {
Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability);
// Cumulative upkeep {1}{U}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}{U}")));
// Enchanted land has "{tap}: Target creature gets +2/+2 until end of turn."
Ability gainAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new TapSourceCost());
gainAbility.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/m/MysticOfTheHiddenWay.java b/Mage.Sets/src/mage/cards/m/MysticOfTheHiddenWay.java
index 02054232f2..8f3ef96ffd 100644
--- a/Mage.Sets/src/mage/cards/m/MysticOfTheHiddenWay.java
+++ b/Mage.Sets/src/mage/cards/m/MysticOfTheHiddenWay.java
@@ -28,7 +28,7 @@ public final class MysticOfTheHiddenWay extends CardImpl {
// Mystic of the Hidden Way can't be blocked.
this.addAbility(new CantBeBlockedSourceAbility());
// Morph {2}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{U}")));
}
private MysticOfTheHiddenWay(final MysticOfTheHiddenWay card) {
diff --git a/Mage.Sets/src/mage/cards/m/MysticRemora.java b/Mage.Sets/src/mage/cards/m/MysticRemora.java
index 235e9cf1bb..67c73e0732 100644
--- a/Mage.Sets/src/mage/cards/m/MysticRemora.java
+++ b/Mage.Sets/src/mage/cards/m/MysticRemora.java
@@ -32,7 +32,7 @@ public final class MysticRemora extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}");
// Cumulative upkeep {1}
- this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl("{1}")));
+ this.addAbility(new CumulativeUpkeepAbility(new ManaCostsImpl<>("{1}")));
// Whenever an opponent casts a noncreature spell, you may draw a card unless that player pays {4}.
this.addAbility(new MysticRemoraTriggeredAbility());
diff --git a/Mage.Sets/src/mage/cards/m/MysticalTeachings.java b/Mage.Sets/src/mage/cards/m/MysticalTeachings.java
index 3678e99a79..12519821cb 100644
--- a/Mage.Sets/src/mage/cards/m/MysticalTeachings.java
+++ b/Mage.Sets/src/mage/cards/m/MysticalTeachings.java
@@ -37,7 +37,7 @@ public final class MysticalTeachings extends CardImpl {
// Search your library for an instant card or a card with flash, reveal it, and put it into your hand. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true));
// Flashback {5}{B}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{5}{B}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{5}{B}")));
}
private MysticalTeachings(final MysticalTeachings card) {
diff --git a/Mage.Sets/src/mage/cards/m/MystifyingMaze.java b/Mage.Sets/src/mage/cards/m/MystifyingMaze.java
index 73acad7733..574f0bff4c 100644
--- a/Mage.Sets/src/mage/cards/m/MystifyingMaze.java
+++ b/Mage.Sets/src/mage/cards/m/MystifyingMaze.java
@@ -42,7 +42,7 @@ public final class MystifyingMaze extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {4}, {T}: Exile target attacking creature an opponent controls. At the beginning of the next end step, return it to the battlefield tapped under its owner's control.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MystifyingMazeEffect(), new ManaCostsImpl("{4}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MystifyingMazeEffect(), new ManaCostsImpl<>("{4}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MythRealized.java b/Mage.Sets/src/mage/cards/m/MythRealized.java
index 263ae1c3b1..9450d013f0 100644
--- a/Mage.Sets/src/mage/cards/m/MythRealized.java
+++ b/Mage.Sets/src/mage/cards/m/MythRealized.java
@@ -48,12 +48,12 @@ public final class MythRealized extends CardImpl {
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.LORE.createInstance()), filterNonCreature, false));
// {2}{W}: Put a lore counter on Myth Realized.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.LORE.createInstance()), new ManaCostsImpl("{2}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.LORE.createInstance()), new ManaCostsImpl<>("{2}{W}")));
// {W}: Until end of turn, Myth Realized becomes a Monk Avatar creature in addition to its other types and gains "This creature's power and toughness are each equal to the number of lore counters on it."
Effect effect = new BecomesCreatureSourceEffect(new MythRealizedToken(), null, Duration.EndOfTurn);
effect.setText("Until end of turn, {this} becomes a Monk Avatar creature in addition to its other types");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{W}"));
ability.addEffect(new MythRealizedSetPTEffect(Duration.EndOfTurn));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NacatlHuntPride.java b/Mage.Sets/src/mage/cards/n/NacatlHuntPride.java
index 80a903647f..0064767fb7 100644
--- a/Mage.Sets/src/mage/cards/n/NacatlHuntPride.java
+++ b/Mage.Sets/src/mage/cards/n/NacatlHuntPride.java
@@ -36,13 +36,13 @@ public final class NacatlHuntPride extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// {R}, {tap}: Target creature can't block this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// {G}, {tap}: Target creature blocks this turn if able.
- Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BlocksIfAbleTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BlocksIfAbleTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
ability2.addCost(new TapSourceCost());
ability2.addTarget(new TargetCreaturePermanent());
this.addAbility(ability2);
diff --git a/Mage.Sets/src/mage/cards/n/NacreTalisman.java b/Mage.Sets/src/mage/cards/n/NacreTalisman.java
index 7a2039a805..d421e9e234 100644
--- a/Mage.Sets/src/mage/cards/n/NacreTalisman.java
+++ b/Mage.Sets/src/mage/cards/n/NacreTalisman.java
@@ -30,7 +30,7 @@ public final class NacreTalisman extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// Whenever a player casts a white spell, you may pay {3}. If you do, untap target permanent.
- Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl("{3}")), filter, false);
+ Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new UntapTargetEffect(), new ManaCostsImpl<>("{3}")), filter, false);
ability.addTarget(new TargetPermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NafsAsp.java b/Mage.Sets/src/mage/cards/n/NafsAsp.java
index 4fe0fc6461..31946a8ba5 100644
--- a/Mage.Sets/src/mage/cards/n/NafsAsp.java
+++ b/Mage.Sets/src/mage/cards/n/NafsAsp.java
@@ -27,7 +27,7 @@ public final class NafsAsp extends CardImpl {
// Whenever Nafs Asp deals damage to a player, that player loses 1 life at the beginning of their next draw step unless they pay {1} before that draw step.
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new UnlessPaysDelayedEffect(
- new ManaCostsImpl("{1}"), new LoseLifeTargetEffect(1), PhaseStep.DRAW, true,
+ new ManaCostsImpl<>("{1}"), new LoseLifeTargetEffect(1), PhaseStep.DRAW, true,
"that player loses 1 life at the beginning of their next draw step unless they pay {1} before that draw step."),
false, true));
}
diff --git a/Mage.Sets/src/mage/cards/n/NaggingThoughts.java b/Mage.Sets/src/mage/cards/n/NaggingThoughts.java
index c7d95dac3a..1d8fa65620 100644
--- a/Mage.Sets/src/mage/cards/n/NaggingThoughts.java
+++ b/Mage.Sets/src/mage/cards/n/NaggingThoughts.java
@@ -22,7 +22,7 @@ public final class NaggingThoughts extends CardImpl {
this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect(2, 1, PutCards.HAND, PutCards.GRAVEYARD));
// Madness {1}{U}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{1}{U}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{1}{U}")));
}
private NaggingThoughts(final NaggingThoughts card) {
diff --git a/Mage.Sets/src/mage/cards/n/NahirisMachinations.java b/Mage.Sets/src/mage/cards/n/NahirisMachinations.java
index 9b3ffb62df..aefb05c084 100644
--- a/Mage.Sets/src/mage/cards/n/NahirisMachinations.java
+++ b/Mage.Sets/src/mage/cards/n/NahirisMachinations.java
@@ -34,7 +34,7 @@ public final class NahirisMachinations extends CardImpl {
this.addAbility(ability);
// {1}{R}: Nahiri's Machinations deals 1 damage to target blocking creature.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{1}{R}"));
ability.addTarget(new TargetCreaturePermanent(new FilterBlockingCreature("blocking creature")));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NajeelaTheBladeBlossom.java b/Mage.Sets/src/mage/cards/n/NajeelaTheBladeBlossom.java
index 881e71cbf2..375f2c9e51 100644
--- a/Mage.Sets/src/mage/cards/n/NajeelaTheBladeBlossom.java
+++ b/Mage.Sets/src/mage/cards/n/NajeelaTheBladeBlossom.java
@@ -57,7 +57,7 @@ public final class NajeelaTheBladeBlossom extends CardImpl {
Ability ability = new ConditionalActivatedAbility(
Zone.BATTLEFIELD,
new UntapAllEffect(StaticFilters.FILTER_ATTACKING_CREATURES),
- new ManaCostsImpl("{W}{U}{B}{R}{G}"),
+ new ManaCostsImpl<>("{W}{U}{B}{R}{G}"),
new IsPhaseCondition(TurnPhase.COMBAT)
);
ability.addEffect(new GainAbilityAllEffect(
diff --git a/Mage.Sets/src/mage/cards/n/NakayaShade.java b/Mage.Sets/src/mage/cards/n/NakayaShade.java
index fd368ab7a2..58ab824fa1 100644
--- a/Mage.Sets/src/mage/cards/n/NakayaShade.java
+++ b/Mage.Sets/src/mage/cards/n/NakayaShade.java
@@ -31,7 +31,7 @@ public final class NakayaShade extends CardImpl {
// {B}: Nakaya Shade gets +1/+1 until end of turn unless any player pays {2}.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
new DoUnlessAnyPlayerPaysEffect(new BoostSourceEffect(1,1, Duration.EndOfTurn),new GenericManaCost(2)),
- new ManaCostsImpl("{B}")));
+ new ManaCostsImpl<>("{B}")));
}
private NakayaShade(final NakayaShade card) {
diff --git a/Mage.Sets/src/mage/cards/n/NalathniDragon.java b/Mage.Sets/src/mage/cards/n/NalathniDragon.java
index 21a24a2bb1..acf8a73564 100644
--- a/Mage.Sets/src/mage/cards/n/NalathniDragon.java
+++ b/Mage.Sets/src/mage/cards/n/NalathniDragon.java
@@ -45,7 +45,7 @@ public final class NalathniDragon extends CardImpl {
// {R}: Nalathni Dragon gets +1/+0 until end of turn. If this ability has been activated four or more times this turn, sacrifice Nalathni Dragon at the beginning of the next end step.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostSourceEffect(1, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{R}"));
+ new ManaCostsImpl<>("{R}"));
ability.addEffect(new NalathniDragonEffect());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NamelessOne.java b/Mage.Sets/src/mage/cards/n/NamelessOne.java
index bcb025383a..79646b98eb 100644
--- a/Mage.Sets/src/mage/cards/n/NamelessOne.java
+++ b/Mage.Sets/src/mage/cards/n/NamelessOne.java
@@ -38,7 +38,7 @@ public final class NamelessOne extends CardImpl {
// Nameless One's power and toughness are each equal to the number of Wizards on the battlefield.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
// Morph {2}{U}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{2}{U}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{2}{U}")));
}
private NamelessOne(final NamelessOne card) {
diff --git a/Mage.Sets/src/mage/cards/n/NantukoCalmer.java b/Mage.Sets/src/mage/cards/n/NantukoCalmer.java
index 9a99a4a3c2..5a00a017a1 100644
--- a/Mage.Sets/src/mage/cards/n/NantukoCalmer.java
+++ b/Mage.Sets/src/mage/cards/n/NantukoCalmer.java
@@ -36,7 +36,7 @@ public final class NantukoCalmer extends CardImpl {
this.toughness = new MageInt(3);
// {G}, {tap}, Sacrifice Nantuko Calmer: Destroy target enchantment.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetEnchantmentPermanent());
diff --git a/Mage.Sets/src/mage/cards/n/NantukoDisciple.java b/Mage.Sets/src/mage/cards/n/NantukoDisciple.java
index 0f9f7b9880..8324cbae1e 100644
--- a/Mage.Sets/src/mage/cards/n/NantukoDisciple.java
+++ b/Mage.Sets/src/mage/cards/n/NantukoDisciple.java
@@ -31,7 +31,7 @@ public final class NantukoDisciple extends CardImpl {
this.toughness = new MageInt(2);
// {G}, {tap}: Target creature gets +2/+2 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NantukoMentor.java b/Mage.Sets/src/mage/cards/n/NantukoMentor.java
index 864284240c..2cd294a605 100644
--- a/Mage.Sets/src/mage/cards/n/NantukoMentor.java
+++ b/Mage.Sets/src/mage/cards/n/NantukoMentor.java
@@ -37,7 +37,7 @@ public final class NantukoMentor extends CardImpl {
this.toughness = new MageInt(1);
// {2}{G}, {tap}: Target creature gets +X/+X until end of turn, where X is that creature's power.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NantukoMentorEffect(), new ManaCostsImpl("{2}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NantukoMentorEffect(), new ManaCostsImpl<>("{2}{G}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NantukoShade.java b/Mage.Sets/src/mage/cards/n/NantukoShade.java
index b27936044b..106976e1a9 100644
--- a/Mage.Sets/src/mage/cards/n/NantukoShade.java
+++ b/Mage.Sets/src/mage/cards/n/NantukoShade.java
@@ -28,7 +28,7 @@ public final class NantukoShade extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(1);
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
}
private NantukoShade(final NantukoShade card) {
diff --git a/Mage.Sets/src/mage/cards/n/NantukoShaman.java b/Mage.Sets/src/mage/cards/n/NantukoShaman.java
index b250f5bbc6..acb4307a9f 100644
--- a/Mage.Sets/src/mage/cards/n/NantukoShaman.java
+++ b/Mage.Sets/src/mage/cards/n/NantukoShaman.java
@@ -45,7 +45,7 @@ public final class NantukoShaman extends CardImpl {
this.addAbility(ability);
// Suspend 1-{2}{G}{G}
- this.addAbility(new SuspendAbility(1, new ManaCostsImpl("{2}{G}{G}"), this));
+ this.addAbility(new SuspendAbility(1, new ManaCostsImpl<>("{2}{G}{G}"), this));
}
private NantukoShaman(final NantukoShaman card) {
diff --git a/Mage.Sets/src/mage/cards/n/NantukoVigilante.java b/Mage.Sets/src/mage/cards/n/NantukoVigilante.java
index 9a0eced886..3bf4b4da79 100644
--- a/Mage.Sets/src/mage/cards/n/NantukoVigilante.java
+++ b/Mage.Sets/src/mage/cards/n/NantukoVigilante.java
@@ -32,7 +32,7 @@ public final class NantukoVigilante extends CardImpl {
this.toughness = new MageInt(2);
// Morph {1}{G}
- this.addAbility(new MorphAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new MorphAbility(new ManaCostsImpl<>("{1}{G}")));
// When Nantuko Vigilante is turned face up, destroy target artifact or enchantment.
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new DestroyTargetEffect());
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
diff --git a/Mage.Sets/src/mage/cards/n/Narcissism.java b/Mage.Sets/src/mage/cards/n/Narcissism.java
index 514510db16..de4002f48a 100644
--- a/Mage.Sets/src/mage/cards/n/Narcissism.java
+++ b/Mage.Sets/src/mage/cards/n/Narcissism.java
@@ -25,12 +25,12 @@ public final class Narcissism extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{G}");
// {G}, Discard a card: Target creature gets +2/+2 until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// {G}, Sacrifice Narcissism: Target creature gets +2/+2 until end of turn.
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{G}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{G}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NarfiBetrayerKing.java b/Mage.Sets/src/mage/cards/n/NarfiBetrayerKing.java
index ec4992aa4d..75f816c370 100644
--- a/Mage.Sets/src/mage/cards/n/NarfiBetrayerKing.java
+++ b/Mage.Sets/src/mage/cards/n/NarfiBetrayerKing.java
@@ -48,7 +48,7 @@ public final class NarfiBetrayerKing extends CardImpl {
this.addAbility(new SimpleActivatedAbility(
Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToBattlefieldEffect(true, false),
- new ManaCostsImpl("{S}{S}{S}")
+ new ManaCostsImpl<>("{S}{S}{S}")
));
}
diff --git a/Mage.Sets/src/mage/cards/n/NaturesBlessing.java b/Mage.Sets/src/mage/cards/n/NaturesBlessing.java
index 75ac616fd7..23c91547dc 100644
--- a/Mage.Sets/src/mage/cards/n/NaturesBlessing.java
+++ b/Mage.Sets/src/mage/cards/n/NaturesBlessing.java
@@ -36,7 +36,7 @@ public final class NaturesBlessing extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{W}");
// {G}{W}, Discard a card: Put a +1/+1 counter on target creature or that creature gains banding, first strike, or trample.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NaturesBlessingEffect(), new ManaCostsImpl("{G}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NaturesBlessingEffect(), new ManaCostsImpl<>("{G}{W}"));
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NaturesWrath.java b/Mage.Sets/src/mage/cards/n/NaturesWrath.java
index e7dfcb59d9..a7f8372299 100644
--- a/Mage.Sets/src/mage/cards/n/NaturesWrath.java
+++ b/Mage.Sets/src/mage/cards/n/NaturesWrath.java
@@ -38,7 +38,7 @@ public final class NaturesWrath extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{G}{G}");
// At the beginning of your upkeep, sacrifice Nature's Wrath unless you pay {G}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{G}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{G}")), TargetController.YOU, false));
// Whenever a player puts an Island or blue permanent onto the battlefield, they sacrifice an Island or blue permanent.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/n/NayaBattlemage.java b/Mage.Sets/src/mage/cards/n/NayaBattlemage.java
index 8162a66aa5..2ac96b9c15 100644
--- a/Mage.Sets/src/mage/cards/n/NayaBattlemage.java
+++ b/Mage.Sets/src/mage/cards/n/NayaBattlemage.java
@@ -31,11 +31,11 @@ public final class NayaBattlemage extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{W}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NearheathChaplain.java b/Mage.Sets/src/mage/cards/n/NearheathChaplain.java
index 00d42ae1b3..3558ea543e 100644
--- a/Mage.Sets/src/mage/cards/n/NearheathChaplain.java
+++ b/Mage.Sets/src/mage/cards/n/NearheathChaplain.java
@@ -33,7 +33,7 @@ public final class NearheathChaplain extends CardImpl {
this.addAbility(LifelinkAbility.getInstance());
// {2}{W}, Exile Neaheath Chaplain from your graveyard: Create two 1/1 white Spirit creature tokens with flying. Activate this ability only any time you could cast a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new CreateTokenEffect(new SpiritWhiteToken(), 2), new ManaCostsImpl("{2}{W}"));
+ Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new CreateTokenEffect(new SpiritWhiteToken(), 2), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new ExileSourceFromGraveCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java b/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java
index e5f75dc640..d7cd0ac09f 100644
--- a/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java
+++ b/Mage.Sets/src/mage/cards/n/Nebuchadnezzar.java
@@ -32,7 +32,7 @@ public final class Nebuchadnezzar extends CardImpl {
this.toughness = new MageInt(3);
// {X}, {T}: Choose a card name. Target opponent reveals X cards at random from their hand. Then that player discards all cards with that name revealed this way. Activate this ability only during your turn.
- Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.ALL), new ManaCostsImpl("{X}"), MyTurnCondition.instance);
+ Ability ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.ALL), new ManaCostsImpl<>("{X}"), MyTurnCondition.instance);
ability.addCost(new TapSourceCost());
ability.addEffect(new NebuchadnezzarEffect());
ability.addTarget(new TargetOpponent());
diff --git a/Mage.Sets/src/mage/cards/n/NecromancersStockpile.java b/Mage.Sets/src/mage/cards/n/NecromancersStockpile.java
index 0dc9e8bc0e..fe040b74a1 100644
--- a/Mage.Sets/src/mage/cards/n/NecromancersStockpile.java
+++ b/Mage.Sets/src/mage/cards/n/NecromancersStockpile.java
@@ -32,7 +32,7 @@ public final class NecromancersStockpile extends CardImpl {
// {1}{B}, Discard a creature card: Draw a card.
// If the discarded card was a Zombie card, create a tapped 2/2 black Zombie creature token.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new NecromancersStockpileDiscardTargetCost(new TargetCardInHand(StaticFilters.FILTER_CARD_CREATURE)));
ability.addEffect(new NecromancersStockpilePutTokenEffect());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NecromasterDragon.java b/Mage.Sets/src/mage/cards/n/NecromasterDragon.java
index 3ca93b6d2d..bab76ea078 100644
--- a/Mage.Sets/src/mage/cards/n/NecromasterDragon.java
+++ b/Mage.Sets/src/mage/cards/n/NecromasterDragon.java
@@ -34,7 +34,7 @@ public final class NecromasterDragon extends CardImpl {
// Whenever Necromaster Dragon deals combat damage to a player, you may pay {2}. If you do, create a 2/2 black Zombie creature token and each opponent puts the top two cards of their library into their graveyard
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(
- new DoIfCostPaid(new CreateTokenEffect(new ZombieToken(), 1), new ManaCostsImpl("{2}")), false);
+ new DoIfCostPaid(new CreateTokenEffect(new ZombieToken(), 1), new ManaCostsImpl<>("{2}")), false);
ability.addEffect(new MillCardsEachPlayerEffect(2, TargetController.OPPONENT));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NecropolisFiend.java b/Mage.Sets/src/mage/cards/n/NecropolisFiend.java
index c44697f799..fb46ad6c84 100644
--- a/Mage.Sets/src/mage/cards/n/NecropolisFiend.java
+++ b/Mage.Sets/src/mage/cards/n/NecropolisFiend.java
@@ -58,7 +58,7 @@ public final class NecropolisFiend extends CardImpl {
effect.setText("Target creature gets -X/-X until end of turn");
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD, effect,
- new ManaCostsImpl("{X}")
+ new ManaCostsImpl<>("{X}")
);
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/n/Necrosavant.java b/Mage.Sets/src/mage/cards/n/Necrosavant.java
index 29b43a7bad..41395137e2 100644
--- a/Mage.Sets/src/mage/cards/n/Necrosavant.java
+++ b/Mage.Sets/src/mage/cards/n/Necrosavant.java
@@ -35,7 +35,7 @@ public final class Necrosavant extends CardImpl {
// {3}{B}{B}, Sacrifice a creature: Return Necrosavant from your graveyard to the battlefield. Activate this ability only during your upkeep.
Ability ability = new ConditionalActivatedAbility(Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToBattlefieldEffect(false,false),
- new ManaCostsImpl("{3}{B}{B}"),
+ new ManaCostsImpl<>("{3}{B}{B}"),
new IsStepCondition(PhaseStep.UPKEEP),
null
);
diff --git a/Mage.Sets/src/mage/cards/n/NeedleSpires.java b/Mage.Sets/src/mage/cards/n/NeedleSpires.java
index e689892ada..d37a5b7485 100644
--- a/Mage.Sets/src/mage/cards/n/NeedleSpires.java
+++ b/Mage.Sets/src/mage/cards/n/NeedleSpires.java
@@ -38,7 +38,7 @@ public final class NeedleSpires extends CardImpl {
// {2}{R}{W}: Needle Spires becomes a 2/1 red and white Elemental creature with double strike until end of turn. It's still a land.
Effect effect = new BecomesCreatureSourceEffect(new NeedleSpiresToken(), "land", Duration.EndOfTurn);
effect.setText("{this} becomes a 2/1 red and white Elemental creature with double strike until end of turn. It's still a land");
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{R}{W}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}{W}")));
}
private NeedleSpires(final NeedleSpires card) {
diff --git a/Mage.Sets/src/mage/cards/n/NeedlebiteTrap.java b/Mage.Sets/src/mage/cards/n/NeedlebiteTrap.java
index 35a7a7b5bd..990db5e6f6 100644
--- a/Mage.Sets/src/mage/cards/n/NeedlebiteTrap.java
+++ b/Mage.Sets/src/mage/cards/n/NeedlebiteTrap.java
@@ -27,7 +27,7 @@ public final class NeedlebiteTrap extends CardImpl {
this.subtype.add(SubType.TRAP);
// If an opponent gained life this turn, you may pay {B} rather than pay Needlebite Trap's mana cost.
- this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{B}"), NeedlebiteTrapCondition.instance), new PlayerGainedLifeWatcher());
+ this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{B}"), NeedlebiteTrapCondition.instance), new PlayerGainedLifeWatcher());
// Target player loses 5 life and you gain 5 life.
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(5));
diff --git a/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java b/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java
index 0ca3f5b1be..a8c1c649a6 100644
--- a/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java
+++ b/Mage.Sets/src/mage/cards/n/NemataGroveGuardian.java
@@ -38,7 +38,7 @@ public final class NemataGroveGuardian extends CardImpl {
this.toughness = new MageInt(5);
// {2}{G}: Create a 1/1 green Saproling creature token.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl<>("{2}{G}")));
// Sacrifice a Saproling: Saproling creatures get +1/+1 until end of turn.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.EndOfTurn, filter, false), new SacrificeTargetCost(new TargetControlledPermanent(filter1))));
}
diff --git a/Mage.Sets/src/mage/cards/n/NemesisTrap.java b/Mage.Sets/src/mage/cards/n/NemesisTrap.java
index 512f96f5b5..dbe685f966 100644
--- a/Mage.Sets/src/mage/cards/n/NemesisTrap.java
+++ b/Mage.Sets/src/mage/cards/n/NemesisTrap.java
@@ -44,7 +44,7 @@ public final class NemesisTrap extends CardImpl {
this.subtype.add(SubType.TRAP);
// If a white creature is attacking, you may pay {B}{B} rather than pay Nemesis Trap's mana cost.
- this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{B}{B}"), new PermanentsOnTheBattlefieldCondition(filter, false)));
+ this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{B}{B}"), new PermanentsOnTheBattlefieldCondition(filter, false)));
// Exile target attacking creature. Create a token that's a copy of that creature. Exile it at the beginning of the next end step.
this.getSpellAbility().addEffect(new NemesisTrapEffect());
diff --git a/Mage.Sets/src/mage/cards/n/NephaliaDrownyard.java b/Mage.Sets/src/mage/cards/n/NephaliaDrownyard.java
index 868535931f..e2ea556643 100644
--- a/Mage.Sets/src/mage/cards/n/NephaliaDrownyard.java
+++ b/Mage.Sets/src/mage/cards/n/NephaliaDrownyard.java
@@ -26,7 +26,7 @@ public final class NephaliaDrownyard extends CardImpl {
this.addAbility(new ColorlessManaAbility());
// {1}{U}{B}, {T}: Target player puts the top three cards of their library into their graveyard.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(3), new ManaCostsImpl("{1}{U}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(3), new ManaCostsImpl<>("{1}{U}{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NephaliaMoondrakes.java b/Mage.Sets/src/mage/cards/n/NephaliaMoondrakes.java
index 5ab5fbebf8..2be42984e5 100644
--- a/Mage.Sets/src/mage/cards/n/NephaliaMoondrakes.java
+++ b/Mage.Sets/src/mage/cards/n/NephaliaMoondrakes.java
@@ -41,7 +41,7 @@ public final class NephaliaMoondrakes extends CardImpl {
this.addAbility(ability);
// {4}{U}{U}, Exile Nephalia Moondrakes from your graveyard: Creatures you control gain flying until end of turn.
- ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, FILTER_PERMANENT_CREATURES), new ManaCostsImpl("{4}{U}{U}"));
+ ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, FILTER_PERMANENT_CREATURES), new ManaCostsImpl<>("{4}{U}{U}"));
ability.addCost(new ExileSourceFromGraveCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java b/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java
index c081c10093..58f57930c1 100644
--- a/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java
+++ b/Mage.Sets/src/mage/cards/n/NephaliaSmuggler.java
@@ -38,7 +38,7 @@ public final class NephaliaSmuggler extends CardImpl {
this.toughness = new MageInt(1);
// {3}{U}, {tap}: Exile another target creature you control, then return that card to the battlefield under your control.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new ManaCostsImpl("{3}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new ManaCostsImpl<>("{3}{U}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ReturnToBattlefieldUnderYourControlTargetEffect(false));
ability.addTarget(new TargetControlledCreaturePermanent(filter));
diff --git a/Mage.Sets/src/mage/cards/n/NetterEnDal.java b/Mage.Sets/src/mage/cards/n/NetterEnDal.java
index b1f64985b3..aa80c16524 100644
--- a/Mage.Sets/src/mage/cards/n/NetterEnDal.java
+++ b/Mage.Sets/src/mage/cards/n/NetterEnDal.java
@@ -31,7 +31,7 @@ public final class NetterEnDal extends CardImpl {
this.toughness = new MageInt(1);
// {W}, {tap}, Discard a card: Target creature can't attack this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantAttackTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantAttackTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/n/NettlingCurse.java b/Mage.Sets/src/mage/cards/n/NettlingCurse.java
index 496eebeabc..d943ac1f39 100644
--- a/Mage.Sets/src/mage/cards/n/NettlingCurse.java
+++ b/Mage.Sets/src/mage/cards/n/NettlingCurse.java
@@ -38,7 +38,7 @@ public final class NettlingCurse extends CardImpl {
this.addAbility(new AttacksOrBlocksAttachedTriggeredAbility(new LoseLifeControllerAttachedEffect(3), AttachmentType.AURA));
// {1}{R}: Enchanted creature attacks this turn if able.
- this.addAbility(new SimpleActivatedAbility(new AttacksIfAbleAttachedEffect(Duration.EndOfTurn, AttachmentType.AURA).setText("Enchanted creature attacks this turn if able."), new ManaCostsImpl("{1}{R}")));
+ this.addAbility(new SimpleActivatedAbility(new AttacksIfAbleAttachedEffect(Duration.EndOfTurn, AttachmentType.AURA).setText("Enchanted creature attacks this turn if able."), new ManaCostsImpl<>("{1}{R}")));
}
private NettlingCurse(final NettlingCurse card) {
diff --git a/Mage.Sets/src/mage/cards/n/NeurokReplica.java b/Mage.Sets/src/mage/cards/n/NeurokReplica.java
index a7677a6095..3caf82fa83 100644
--- a/Mage.Sets/src/mage/cards/n/NeurokReplica.java
+++ b/Mage.Sets/src/mage/cards/n/NeurokReplica.java
@@ -27,7 +27,7 @@ public final class NeurokReplica extends CardImpl {
this.subtype.add(SubType.WIZARD);
this.power = new MageInt(1);
this.toughness = new MageInt(4);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{1}{U}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NeurokStealthsuit.java b/Mage.Sets/src/mage/cards/n/NeurokStealthsuit.java
index 73e096f95c..38224f1f8c 100644
--- a/Mage.Sets/src/mage/cards/n/NeurokStealthsuit.java
+++ b/Mage.Sets/src/mage/cards/n/NeurokStealthsuit.java
@@ -33,7 +33,7 @@ public final class NeurokStealthsuit extends CardImpl {
// Equipped creature has shroud.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.EQUIPMENT)));
// {U}{U}: Attach Neurok Stealthsuit to target creature you control.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttachEffect(Outcome.BoostCreature, "Attach {this} to target creature you control"), new ManaCostsImpl("{U}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AttachEffect(Outcome.BoostCreature, "Attach {this} to target creature you control"), new ManaCostsImpl<>("{U}{U}"));
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
// Equip {1}
diff --git a/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java b/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java
index 590fc872f4..24d33ce19b 100644
--- a/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java
+++ b/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java
@@ -40,13 +40,13 @@ public final class NeurokTransmuter extends CardImpl {
this.toughness = new MageInt(2);
// {U}: Target creature becomes an artifact in addition to its other types until end of turn.
- Ability becomeArtifactAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCardTypeTargetEffect(Duration.EndOfTurn, CardType.ARTIFACT), new ManaCostsImpl("{U}"));
+ Ability becomeArtifactAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCardTypeTargetEffect(Duration.EndOfTurn, CardType.ARTIFACT), new ManaCostsImpl<>("{U}"));
becomeArtifactAbility.addTarget(new TargetCreaturePermanent());
this.addAbility(becomeArtifactAbility);
// {U}: Until end of turn, target artifact creature becomes blue and isn't an artifact.
Effect blueEffect = new BecomesColorTargetEffect(ObjectColor.BLUE, Duration.EndOfTurn);
blueEffect.setText("Until end of turn, target artifact creature becomes blue and ");
- Ability becomeBlueAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, blueEffect, new ManaCostsImpl("{U}"));
+ Ability becomeBlueAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, blueEffect, new ManaCostsImpl<>("{U}"));
becomeBlueAbility.addTarget(new TargetCreaturePermanent(filter));
Effect loseArtifactEffect = new LoseArtifactTypeTargetEffect(Duration.EndOfTurn);
loseArtifactEffect.setText("isn't an artifact");
diff --git a/Mage.Sets/src/mage/cards/n/Neutralize.java b/Mage.Sets/src/mage/cards/n/Neutralize.java
index 80450d258c..abe86f80e9 100644
--- a/Mage.Sets/src/mage/cards/n/Neutralize.java
+++ b/Mage.Sets/src/mage/cards/n/Neutralize.java
@@ -23,7 +23,7 @@ public final class Neutralize extends CardImpl {
this.getSpellAbility().addTarget(new TargetSpell());
// Cycling {2}
- this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
}
private Neutralize(final Neutralize card) {
diff --git a/Mage.Sets/src/mage/cards/n/NevinyrralsDisk.java b/Mage.Sets/src/mage/cards/n/NevinyrralsDisk.java
index f8bfbde2f5..c1a3926a84 100644
--- a/Mage.Sets/src/mage/cards/n/NevinyrralsDisk.java
+++ b/Mage.Sets/src/mage/cards/n/NevinyrralsDisk.java
@@ -38,7 +38,7 @@ public final class NevinyrralsDisk extends CardImpl {
this.addAbility(new EntersBattlefieldTappedAbility());
// {1}, {tap}: Destroy all artifacts, creatures, and enchantments.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(filter, false), new ManaCostsImpl("{1}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(filter, false), new ManaCostsImpl<>("{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NewPrahvGuildmage.java b/Mage.Sets/src/mage/cards/n/NewPrahvGuildmage.java
index a912cfd108..720ecb26a2 100644
--- a/Mage.Sets/src/mage/cards/n/NewPrahvGuildmage.java
+++ b/Mage.Sets/src/mage/cards/n/NewPrahvGuildmage.java
@@ -43,13 +43,13 @@ public final class NewPrahvGuildmage extends CardImpl {
this.toughness = new MageInt(2);
// {W}{U}: Target creature gains flying until end of turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{W}{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{W}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
// {3}{W}{U}: Detain target nonland permanent an opponent controls.
// (Until your next turn, that permanent can't attack or block and its activated abilities can't be activated.)
- ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DetainTargetEffect(), new ManaCostsImpl("{3}{W}{U}"));
+ ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DetainTargetEffect(), new ManaCostsImpl<>("{3}{W}{U}"));
TargetNonlandPermanent target = new TargetNonlandPermanent(filter);
ability.addTarget(target);
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NezumiBoneReader.java b/Mage.Sets/src/mage/cards/n/NezumiBoneReader.java
index 7b30ac568e..a19463b067 100644
--- a/Mage.Sets/src/mage/cards/n/NezumiBoneReader.java
+++ b/Mage.Sets/src/mage/cards/n/NezumiBoneReader.java
@@ -33,7 +33,7 @@ public final class NezumiBoneReader extends CardImpl {
// {B}, Sacrifice a creature: 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 SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
- ability.addCost(new ManaCostsImpl("{B}"));
+ ability.addCost(new ManaCostsImpl<>("{B}"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java b/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java
index 02c1bff22c..1de94e766f 100644
--- a/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java
+++ b/Mage.Sets/src/mage/cards/n/NezumiGraverobber.java
@@ -43,7 +43,7 @@ public final class NezumiGraverobber extends CardImpl {
this.flipCardName = "Nighteyes the Desecrator";
// {1}{B}: Exile target card from an opponent's graveyard. If no cards are in that graveyard, flip Nezumi Graverobber.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl<>("{1}{B}"));
Target target = new TargetCardInOpponentsGraveyard(new FilterCard("card from an opponent's graveyard"));
ability.addTarget(target);
ability.addEffect(new NezumiGraverobberFlipEffect());
@@ -104,7 +104,7 @@ class NighteyesTheDesecratorToken extends TokenImpl {
power = new MageInt(4);
toughness = new MageInt(2);
// {4}{B}: Put target creature card from a graveyard onto the battlefield under your control.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{4}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl<>("{4}{B}"));
ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card from a graveyard")));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NezumiShortfang.java b/Mage.Sets/src/mage/cards/n/NezumiShortfang.java
index e02e7aa7f5..304085abdc 100644
--- a/Mage.Sets/src/mage/cards/n/NezumiShortfang.java
+++ b/Mage.Sets/src/mage/cards/n/NezumiShortfang.java
@@ -37,7 +37,7 @@ public final class NezumiShortfang extends CardImpl {
this.flipCardName = "Stabwhisker the Odious";
// {1}{B}, {tap}: Target opponent discards a card. Then if that player has no cards in hand, flip Nezumi Shortfang.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl("{1}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardTargetEffect(1), new ManaCostsImpl<>("{1}{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetOpponent());
ability.addEffect(new ConditionalOneShotEffect(
diff --git a/Mage.Sets/src/mage/cards/n/NiallSilvain.java b/Mage.Sets/src/mage/cards/n/NiallSilvain.java
index 88a30f07c3..1256435e61 100644
--- a/Mage.Sets/src/mage/cards/n/NiallSilvain.java
+++ b/Mage.Sets/src/mage/cards/n/NiallSilvain.java
@@ -28,7 +28,7 @@ public final class NiallSilvain extends CardImpl {
this.toughness = new MageInt(2);
// {G}{G}{G}{G}, {tap}: Regenerate target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{G}{G}{G}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{G}{G}{G}{G}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java b/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java
index 415a41a654..9cea452c6b 100644
--- a/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java
+++ b/Mage.Sets/src/mage/cards/n/NiambiEsteemedSpeaker.java
@@ -63,7 +63,7 @@ public final class NiambiEsteemedSpeaker extends CardImpl {
// {1}{W}{U}, {T}, Discard a legendary card: Draw two cards.
ability = new SimpleActivatedAbility(
- new DrawCardSourceControllerEffect(2), new ManaCostsImpl("{1}{W}{U}")
+ new DrawCardSourceControllerEffect(2), new ManaCostsImpl<>("{1}{W}{U}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardTargetCost(new TargetCardInHand(filter2)));
diff --git a/Mage.Sets/src/mage/cards/n/NicolBolas.java b/Mage.Sets/src/mage/cards/n/NicolBolas.java
index 471cb28118..7238808c48 100644
--- a/Mage.Sets/src/mage/cards/n/NicolBolas.java
+++ b/Mage.Sets/src/mage/cards/n/NicolBolas.java
@@ -34,7 +34,7 @@ public final class NicolBolas extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// At the beginning of your upkeep, sacrifice Nicol Bolas unless you pay {U}{B}{R}.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl("{U}{B}{R}")), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ManaCostsImpl<>("{U}{B}{R}")), TargetController.YOU, false));
// Whenever Nicol Bolas deals damage to an opponent, that player discards their hand.
this.addAbility(new DealsDamageToOpponentTriggeredAbility(new DiscardHandTargetEffect("that player"), false, false, true));
diff --git a/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java b/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java
index 690788279a..1a201fe5bb 100644
--- a/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java
+++ b/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java
@@ -47,7 +47,7 @@ public final class NicolBolasTheRavager extends CardImpl {
this.addAbility(new ActivateAsSorceryActivatedAbility(
Zone.BATTLEFIELD,
new ExileAndReturnTransformedSourceEffect(Pronoun.HE),
- new ManaCostsImpl("{4}{U}{B}{R}")
+ new ManaCostsImpl<>("{4}{U}{B}{R}")
));
}
diff --git a/Mage.Sets/src/mage/cards/n/NightDealings.java b/Mage.Sets/src/mage/cards/n/NightDealings.java
index 9c96d6886e..f9f0973647 100644
--- a/Mage.Sets/src/mage/cards/n/NightDealings.java
+++ b/Mage.Sets/src/mage/cards/n/NightDealings.java
@@ -39,7 +39,7 @@ public final class NightDealings extends CardImpl {
this.addAbility((new NightDealingsTriggeredAbility()));
// {2}{B}{B}, Remove X theft counters from Night Dealings: Search your library for a nonland card with converted mana cost X, reveal it, and put it into your hand. Then shuffle your library.
- Ability ability = new SimpleActivatedAbility(new NightDealingsSearchEffect(), new ManaCostsImpl("{2}{B}{B}"));
+ Ability ability = new SimpleActivatedAbility(new NightDealingsSearchEffect(), new ManaCostsImpl<>("{2}{B}{B}"));
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.THEFT.createInstance(1)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NightbirdsClutches.java b/Mage.Sets/src/mage/cards/n/NightbirdsClutches.java
index d5a6ade10e..9b9903f158 100644
--- a/Mage.Sets/src/mage/cards/n/NightbirdsClutches.java
+++ b/Mage.Sets/src/mage/cards/n/NightbirdsClutches.java
@@ -26,7 +26,7 @@ public final class NightbirdsClutches extends CardImpl {
this.getSpellAbility().addEffect(new CantBlockTargetEffect(Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2));
// Flashback {3}{R}
- this.addAbility(new FlashbackAbility(this, new ManaCostsImpl("{3}{R}")));
+ this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{3}{R}")));
}
private NightbirdsClutches(final NightbirdsClutches card) {
diff --git a/Mage.Sets/src/mage/cards/n/NightfallPredator.java b/Mage.Sets/src/mage/cards/n/NightfallPredator.java
index 658b093721..275b43fe3c 100644
--- a/Mage.Sets/src/mage/cards/n/NightfallPredator.java
+++ b/Mage.Sets/src/mage/cards/n/NightfallPredator.java
@@ -36,7 +36,7 @@ public final class NightfallPredator extends CardImpl {
new FightTargetSourceEffect().setText(
"{this} fights target creature. " +
"(Each deals damage equal to its power to the other.)"),
- new ManaCostsImpl("{R}")
+ new ManaCostsImpl<>("{R}")
);
activatedAbility.addCost(new TapSourceCost());
activatedAbility.addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/n/NightfireGiant.java b/Mage.Sets/src/mage/cards/n/NightfireGiant.java
index bf526dff3b..6cee9258e6 100644
--- a/Mage.Sets/src/mage/cards/n/NightfireGiant.java
+++ b/Mage.Sets/src/mage/cards/n/NightfireGiant.java
@@ -42,7 +42,7 @@ public final class NightfireGiant extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceWhileControlsEffect(filter, 1, 1)));
// {4}{R}: Nightfire Giant deals 2 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{4}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{4}{R}"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NightscapeApprentice.java b/Mage.Sets/src/mage/cards/n/NightscapeApprentice.java
index ef6c495158..807e8a575a 100644
--- a/Mage.Sets/src/mage/cards/n/NightscapeApprentice.java
+++ b/Mage.Sets/src/mage/cards/n/NightscapeApprentice.java
@@ -34,13 +34,13 @@ public final class NightscapeApprentice extends CardImpl {
this.toughness = new MageInt(1);
// {U}, {T}: Put target creature you control on top of its owner's library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{U}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl<>("{U}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
// {R}, {T}: Target creature gains first strike until end of turn.
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(),
- Duration.EndOfTurn), new ManaCostsImpl("{R}"));
+ Duration.EndOfTurn), new ManaCostsImpl<>("{R}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NightscapeFamiliar.java b/Mage.Sets/src/mage/cards/n/NightscapeFamiliar.java
index 64c27aade2..1965741a11 100644
--- a/Mage.Sets/src/mage/cards/n/NightscapeFamiliar.java
+++ b/Mage.Sets/src/mage/cards/n/NightscapeFamiliar.java
@@ -42,7 +42,7 @@ public final class NightscapeFamiliar extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1)));
// {1}{B}: Regenerate Nightscape Familiar.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{B}")));
}
private NightscapeFamiliar(final NightscapeFamiliar card) {
diff --git a/Mage.Sets/src/mage/cards/n/NightscapeMaster.java b/Mage.Sets/src/mage/cards/n/NightscapeMaster.java
index 365c1c397f..617f84f14f 100644
--- a/Mage.Sets/src/mage/cards/n/NightscapeMaster.java
+++ b/Mage.Sets/src/mage/cards/n/NightscapeMaster.java
@@ -30,13 +30,13 @@ public final class NightscapeMaster extends CardImpl {
this.toughness = new MageInt(2);
// {U}{U}, {tap}: Return target creature to its owner's hand.
- Ability returnAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{U}{U}"));
+ Ability returnAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{U}{U}"));
returnAbility.addTarget(new TargetCreaturePermanent());
returnAbility.addCost(new TapSourceCost());
this.addAbility(returnAbility);
// {R}{R}, {tap}: Nightscape Master deals 2 damage to target creature.
- Ability damageAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{R}{R}"));
+ Ability damageAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl<>("{R}{R}"));
damageAbility.addTarget(new TargetCreaturePermanent());
damageAbility.addCost(new TapSourceCost());
this.addAbility(damageAbility);
diff --git a/Mage.Sets/src/mage/cards/n/NightshadeAssassin.java b/Mage.Sets/src/mage/cards/n/NightshadeAssassin.java
index e162bc012d..9ade352746 100644
--- a/Mage.Sets/src/mage/cards/n/NightshadeAssassin.java
+++ b/Mage.Sets/src/mage/cards/n/NightshadeAssassin.java
@@ -49,7 +49,7 @@ public final class NightshadeAssassin extends CardImpl {
this.addAbility(ability);
// Madness {1}{B}
- this.addAbility(new MadnessAbility(new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new MadnessAbility(new ManaCostsImpl<>("{1}{B}")));
}
private NightshadeAssassin(final NightshadeAssassin card) {
diff --git a/Mage.Sets/src/mage/cards/n/NightshadeSeer.java b/Mage.Sets/src/mage/cards/n/NightshadeSeer.java
index e01aad8293..2a89382c6f 100644
--- a/Mage.Sets/src/mage/cards/n/NightshadeSeer.java
+++ b/Mage.Sets/src/mage/cards/n/NightshadeSeer.java
@@ -37,7 +37,7 @@ public final class NightshadeSeer extends CardImpl {
this.toughness = new MageInt(1);
// {2}{B}, {tap}: Reveal any number of black cards in your hand. Target creature gets -X/-X until end of turn, where X is the number of cards revealed this way.
- Ability ability = new SimpleActivatedAbility(new NightshadeSeerEffect(), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(new NightshadeSeerEffect(), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NightwingShade.java b/Mage.Sets/src/mage/cards/n/NightwingShade.java
index b964692606..37aac5407c 100644
--- a/Mage.Sets/src/mage/cards/n/NightwingShade.java
+++ b/Mage.Sets/src/mage/cards/n/NightwingShade.java
@@ -29,7 +29,7 @@ public final class NightwingShade extends CardImpl {
this.toughness = new MageInt(2);
this.addAbility(FlyingAbility.getInstance());
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}{B}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}")));
}
private NightwingShade(final NightwingShade card) {
diff --git a/Mage.Sets/src/mage/cards/n/NihilisticGlee.java b/Mage.Sets/src/mage/cards/n/NihilisticGlee.java
index 00f261b40c..8975f9cd2f 100644
--- a/Mage.Sets/src/mage/cards/n/NihilisticGlee.java
+++ b/Mage.Sets/src/mage/cards/n/NihilisticGlee.java
@@ -31,7 +31,7 @@ public final class NihilisticGlee extends CardImpl {
// {2}{B}, Discard a card: Target opponent loses 1 life and you gain 1 life.
Ability ability = new SimpleActivatedAbility(
new LoseLifeTargetEffect(1),
- new ManaCostsImpl("{2}{B}")
+ new ManaCostsImpl<>("{2}{B}")
);
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
ability.addCost(new DiscardCardCost());
diff --git a/Mage.Sets/src/mage/cards/n/Nihilith.java b/Mage.Sets/src/mage/cards/n/Nihilith.java
index a7f6483b65..e612be96fd 100644
--- a/Mage.Sets/src/mage/cards/n/Nihilith.java
+++ b/Mage.Sets/src/mage/cards/n/Nihilith.java
@@ -36,7 +36,7 @@ public final class Nihilith extends CardImpl {
this.addAbility(FearAbility.getInstance());
// Suspend 7-{1}{B}
- this.addAbility(new SuspendAbility(7, new ManaCostsImpl("{1}{B}"), this, false));
+ this.addAbility(new SuspendAbility(7, new ManaCostsImpl<>("{1}{B}"), this, false));
// Whenever a card is put into an opponent's graveyard from anywhere, if Nihilith is suspended, you may remove a time counter from Nihilith.
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/n/NilsDisciplineEnforcer.java b/Mage.Sets/src/mage/cards/n/NilsDisciplineEnforcer.java
index 4375cbb4c9..31764db1e0 100644
--- a/Mage.Sets/src/mage/cards/n/NilsDisciplineEnforcer.java
+++ b/Mage.Sets/src/mage/cards/n/NilsDisciplineEnforcer.java
@@ -135,7 +135,7 @@ class NilsDisciplineEnforcerEffect extends CantAttackYouUnlessPayManaAllEffect {
if (count < 1) {
return null;
}
- return new ManaCostsImpl("{" + count + '}');
+ return new ManaCostsImpl<>("{" + count + '}');
}
@Override
diff --git a/Mage.Sets/src/mage/cards/n/NimDevourer.java b/Mage.Sets/src/mage/cards/n/NimDevourer.java
index 42b282d22f..a85a2c7949 100644
--- a/Mage.Sets/src/mage/cards/n/NimDevourer.java
+++ b/Mage.Sets/src/mage/cards/n/NimDevourer.java
@@ -44,7 +44,7 @@ public final class NimDevourer extends CardImpl {
// {B}{B}: Return Nim Devourer from your graveyard to the battlefield, then sacrifice a creature. Activate this ability only during your upkeep.
Ability ability = new ConditionalActivatedAbility(Zone.GRAVEYARD,
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
- new ManaCostsImpl("{B}{B}"),
+ new ManaCostsImpl<>("{B}{B}"),
new IsStepCondition(PhaseStep.UPKEEP), null);
ability.addEffect(new NimDevourerEffect());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NimReplica.java b/Mage.Sets/src/mage/cards/n/NimReplica.java
index 2aad52c6a4..112883bd9c 100644
--- a/Mage.Sets/src/mage/cards/n/NimReplica.java
+++ b/Mage.Sets/src/mage/cards/n/NimReplica.java
@@ -27,7 +27,7 @@ public final class NimReplica extends CardImpl {
this.subtype.add(SubType.ZOMBIE);
this.power = new MageInt(3);
this.toughness = new MageInt(1);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Duration.EndOfTurn), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NirkanaCutthroat.java b/Mage.Sets/src/mage/cards/n/NirkanaCutthroat.java
index d341071a05..0b0d11410c 100644
--- a/Mage.Sets/src/mage/cards/n/NirkanaCutthroat.java
+++ b/Mage.Sets/src/mage/cards/n/NirkanaCutthroat.java
@@ -30,7 +30,7 @@ public final class NirkanaCutthroat extends LevelerCard {
this.color.setBlack(true);
this.power = new MageInt(3);
this.toughness = new MageInt(2);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{2}{B}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{2}{B}")));
Abilities abilities1 = new AbilitiesImpl<>();
abilities1.add(DeathtouchAbility.getInstance());
diff --git a/Mage.Sets/src/mage/cards/n/NirkanaRevenant.java b/Mage.Sets/src/mage/cards/n/NirkanaRevenant.java
index 0908b2da04..e7d2b9ebbb 100644
--- a/Mage.Sets/src/mage/cards/n/NirkanaRevenant.java
+++ b/Mage.Sets/src/mage/cards/n/NirkanaRevenant.java
@@ -38,7 +38,7 @@ public final class NirkanaRevenant extends CardImpl {
// {B}: Nirkana Revenant gets +1/+1 until end of turn.
this.addAbility(new SimpleActivatedAbility(
- new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")
+ new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")
));
}
diff --git a/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java b/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java
index 6a3f5e7215..7ac7612ef4 100644
--- a/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java
+++ b/Mage.Sets/src/mage/cards/n/NivMizzetDracogenius.java
@@ -41,7 +41,7 @@ public final class NivMizzetDracogenius extends CardImpl {
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new DrawCardSourceControllerEffect(1), true));
// {U}{R}: Niv-Mizzet, Dracogenius deals 1 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1),new ManaCostsImpl("{U}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1),new ManaCostsImpl<>("{U}{R}"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NivixGuildmage.java b/Mage.Sets/src/mage/cards/n/NivixGuildmage.java
index 6e6c4ad78b..f393a6b7f2 100644
--- a/Mage.Sets/src/mage/cards/n/NivixGuildmage.java
+++ b/Mage.Sets/src/mage/cards/n/NivixGuildmage.java
@@ -43,10 +43,10 @@ public final class NivixGuildmage extends CardImpl {
this.toughness = new MageInt(2);
// {1}{U}{R}: Draw a card, then discard a card.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(), new ManaCostsImpl("{1}{U}{R}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardControllerEffect(), new ManaCostsImpl<>("{1}{U}{R}")));
// {2}{U}{R}: Copy target instant or sorcery spell you control. You may choose new targets for the copy.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl("{2}{U}{R}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CopyTargetSpellEffect(), new ManaCostsImpl<>("{2}{U}{R}"));
ability.addTarget(new TargetSpell(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NoblePanther.java b/Mage.Sets/src/mage/cards/n/NoblePanther.java
index fcdb888927..aabfc47ca2 100644
--- a/Mage.Sets/src/mage/cards/n/NoblePanther.java
+++ b/Mage.Sets/src/mage/cards/n/NoblePanther.java
@@ -28,7 +28,7 @@ public final class NoblePanther extends CardImpl {
this.toughness = new MageInt(3);
// {1}: Noble Panther gains first strike until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}")));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{1}")));
}
private NoblePanther(final NoblePanther card) {
diff --git a/Mage.Sets/src/mage/cards/n/NobleSteeds.java b/Mage.Sets/src/mage/cards/n/NobleSteeds.java
index 06c587f01e..a44fb58ca1 100644
--- a/Mage.Sets/src/mage/cards/n/NobleSteeds.java
+++ b/Mage.Sets/src/mage/cards/n/NobleSteeds.java
@@ -27,7 +27,7 @@ public final class NobleSteeds extends CardImpl {
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{1}{W}")
+ new ManaCostsImpl<>("{1}{W}")
);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NobleTemplar.java b/Mage.Sets/src/mage/cards/n/NobleTemplar.java
index e5084aa4e7..6a1df81eea 100644
--- a/Mage.Sets/src/mage/cards/n/NobleTemplar.java
+++ b/Mage.Sets/src/mage/cards/n/NobleTemplar.java
@@ -29,7 +29,7 @@ public final class NobleTemplar extends CardImpl {
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Plainscycling {2}
- this.addAbility(new PlainscyclingAbility(new ManaCostsImpl("{2}")));
+ this.addAbility(new PlainscyclingAbility(new ManaCostsImpl<>("{2}")));
}
private NobleTemplar(final NobleTemplar card) {
diff --git a/Mage.Sets/src/mage/cards/n/NomadDecoy.java b/Mage.Sets/src/mage/cards/n/NomadDecoy.java
index 26efa8bb95..665dc0f6a1 100644
--- a/Mage.Sets/src/mage/cards/n/NomadDecoy.java
+++ b/Mage.Sets/src/mage/cards/n/NomadDecoy.java
@@ -34,7 +34,7 @@ public final class NomadDecoy extends CardImpl {
this.toughness = new MageInt(2);
// {W}, {tap}: Tap target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{W}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
this.addAbility(ability);
@@ -42,7 +42,7 @@ public final class NomadDecoy extends CardImpl {
// Threshold - {W}{W}, {T}: Tap two target creatures. Activate this ability only if seven or more cards are in your graveyard.
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new TapTargetEffect(),
- new ManaCostsImpl("{W}{W}"),
+ new ManaCostsImpl<>("{W}{W}"),
new CardsInControllerGraveyardCondition(7));
thresholdAbility.addCost(new TapSourceCost());
thresholdAbility.addTarget(new TargetCreaturePermanent(2));
diff --git a/Mage.Sets/src/mage/cards/n/NomadMythmaker.java b/Mage.Sets/src/mage/cards/n/NomadMythmaker.java
index 9ac931b86f..201f175627 100644
--- a/Mage.Sets/src/mage/cards/n/NomadMythmaker.java
+++ b/Mage.Sets/src/mage/cards/n/NomadMythmaker.java
@@ -44,7 +44,7 @@ public final class NomadMythmaker extends CardImpl {
this.toughness = new MageInt(2);
// {W}, {tap}: Put target Aura card from a graveyard onto the battlefield under your control attached to a creature you control.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NomadMythmakerEffect(), new ManaCostsImpl("{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NomadMythmakerEffect(), new ManaCostsImpl<>("{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCardInGraveyard(1, FILTER));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NomadStadium.java b/Mage.Sets/src/mage/cards/n/NomadStadium.java
index 7e9c98a9ed..4c82db9512 100644
--- a/Mage.Sets/src/mage/cards/n/NomadStadium.java
+++ b/Mage.Sets/src/mage/cards/n/NomadStadium.java
@@ -34,7 +34,7 @@ public final class NomadStadium extends CardImpl {
// Threshold - {W}, {tap}, Sacrifice Nomad Stadium: You gain 4 life. Activate this ability only if seven or more cards are in your graveyard.
Ability thresholdAbility = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new GainLifeEffect(4),
- new ManaCostsImpl("{W}"),
+ new ManaCostsImpl<>("{W}"),
new CardsInControllerGraveyardCondition(7));
thresholdAbility.addCost(new TapSourceCost());
thresholdAbility.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/n/NomadicElf.java b/Mage.Sets/src/mage/cards/n/NomadicElf.java
index dfd6a22bf5..a59c835057 100644
--- a/Mage.Sets/src/mage/cards/n/NomadicElf.java
+++ b/Mage.Sets/src/mage/cards/n/NomadicElf.java
@@ -25,7 +25,7 @@ public final class NomadicElf extends CardImpl {
this.toughness = new MageInt(2);
// {1}{G}: Add one mana of any color.
- this.addAbility(new AnyColorManaAbility(new ManaCostsImpl("{1}{G}")));
+ this.addAbility(new AnyColorManaAbility(new ManaCostsImpl<>("{1}{G}")));
}
private NomadicElf(final NomadicElf card) {
diff --git a/Mage.Sets/src/mage/cards/n/NorthernPaladin.java b/Mage.Sets/src/mage/cards/n/NorthernPaladin.java
index f07f1c0f0a..4c9821f551 100644
--- a/Mage.Sets/src/mage/cards/n/NorthernPaladin.java
+++ b/Mage.Sets/src/mage/cards/n/NorthernPaladin.java
@@ -38,7 +38,7 @@ public final class NorthernPaladin extends CardImpl {
this.toughness = new MageInt(3);
// {W}{W}, {tap}: Destroy target black permanent.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{W}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl<>("{W}{W}"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NotoriousAssassin.java b/Mage.Sets/src/mage/cards/n/NotoriousAssassin.java
index 30ff3a2796..13fdf1558b 100644
--- a/Mage.Sets/src/mage/cards/n/NotoriousAssassin.java
+++ b/Mage.Sets/src/mage/cards/n/NotoriousAssassin.java
@@ -31,7 +31,7 @@ public final class NotoriousAssassin extends CardImpl {
this.toughness = new MageInt(2);
// {2}{B}, {tap}, Discard a card: Destroy target nonblack creature. It can't be regenerated.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(true), new ManaCostsImpl("{2}{B}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(true), new ManaCostsImpl<>("{2}{B}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_PERMANENT_CREATURE_NON_BLACK));
diff --git a/Mage.Sets/src/mage/cards/n/NovaCleric.java b/Mage.Sets/src/mage/cards/n/NovaCleric.java
index b7fa2bcb4d..00865331ec 100644
--- a/Mage.Sets/src/mage/cards/n/NovaCleric.java
+++ b/Mage.Sets/src/mage/cards/n/NovaCleric.java
@@ -30,7 +30,7 @@ public final class NovaCleric extends CardImpl {
this.toughness = new MageInt(2);
// {2}{W}, {tap}, Sacrifice Nova Cleric: Destroy all enchantments.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(new FilterEnchantmentPermanent("enchantments")), new ManaCostsImpl("{2}{W}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyAllEffect(new FilterEnchantmentPermanent("enchantments")), new ManaCostsImpl<>("{2}{W}"));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NullBrooch.java b/Mage.Sets/src/mage/cards/n/NullBrooch.java
index 55022d6be3..9b5550e418 100644
--- a/Mage.Sets/src/mage/cards/n/NullBrooch.java
+++ b/Mage.Sets/src/mage/cards/n/NullBrooch.java
@@ -25,7 +25,7 @@ public final class NullBrooch extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// {2}, {tap}, Discard your hand: Counter target noncreature spell.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl("{2}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl<>("{2}"));
ability.addCost(new TapSourceCost());
ability.addCost(new DiscardHandCost());
ability.addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_NON_CREATURE));
diff --git a/Mage.Sets/src/mage/cards/n/NullChampion.java b/Mage.Sets/src/mage/cards/n/NullChampion.java
index f20ed48be6..8f3174fb99 100644
--- a/Mage.Sets/src/mage/cards/n/NullChampion.java
+++ b/Mage.Sets/src/mage/cards/n/NullChampion.java
@@ -31,12 +31,12 @@ public final class NullChampion extends LevelerCard {
this.color.setBlack(true);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
- this.addAbility(new LevelUpAbility(new ManaCostsImpl("{3}")));
+ this.addAbility(new LevelUpAbility(new ManaCostsImpl<>("{3}")));
Abilities abilities1 = new AbilitiesImpl<>();
Abilities abilities2 = new AbilitiesImpl<>();
- abilities2.add(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{B}")));
+ abilities2.add(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl<>("{B}")));
this.addAbilities(LevelerCardBuilder.construct(
new LevelerCardBuilder.LevelAbility(1, 3, abilities1, 4, 2),
diff --git a/Mage.Sets/src/mage/cards/n/NumaJoragaChieftain.java b/Mage.Sets/src/mage/cards/n/NumaJoragaChieftain.java
index 8577c96f09..367064dd7e 100644
--- a/Mage.Sets/src/mage/cards/n/NumaJoragaChieftain.java
+++ b/Mage.Sets/src/mage/cards/n/NumaJoragaChieftain.java
@@ -78,7 +78,7 @@ class NumaJoragaChieftainEffect extends OneShotEffect {
if (player == null) {
return false;
}
- ManaCosts cost = new ManaCostsImpl("{X}{X}");
+ ManaCosts cost = new ManaCostsImpl<>("{X}{X}");
if (!player.chooseUse(Outcome.BoostCreature, "Pay " + cost.getText() + "?", source, game)) {
return false;
}
diff --git a/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java b/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java
index e54ec58465..38a1e9fd8a 100644
--- a/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java
+++ b/Mage.Sets/src/mage/cards/n/NumotTheDevastator.java
@@ -38,7 +38,7 @@ public final class NumotTheDevastator extends CardImpl {
OneShotEffect effect = new DestroyTargetEffect();
effect.setText("destroy up to two target lands");
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(
- new DoIfCostPaid(effect, new ManaCostsImpl("{2}{R}")), false);
+ new DoIfCostPaid(effect, new ManaCostsImpl<>("{2}{R}")), false);
ability.addTarget(new TargetLandPermanent(0, 2, StaticFilters.FILTER_LANDS, false));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NurturerInitiate.java b/Mage.Sets/src/mage/cards/n/NurturerInitiate.java
index 6a27a342d9..4a8b07a55c 100644
--- a/Mage.Sets/src/mage/cards/n/NurturerInitiate.java
+++ b/Mage.Sets/src/mage/cards/n/NurturerInitiate.java
@@ -39,7 +39,7 @@ public final class NurturerInitiate extends CardImpl {
this.toughness = new MageInt(1);
// Whenever a player casts a green spell, you may pay {1}. If you do, target creature gets +1/+1 until end of turn.
- Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new BoostTargetEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{1}")), filter, false);
+ Ability ability = new SpellCastAllTriggeredAbility(new DoIfCostPaid(new BoostTargetEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{1}")), filter, false);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java b/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java
index 85f4456c6f..88f77f19e8 100644
--- a/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java
+++ b/Mage.Sets/src/mage/cards/n/NyleaGodOfTheHunt.java
@@ -50,7 +50,7 @@ public final class NyleaGodOfTheHunt extends CardImpl {
// {3}{G}: Target creature gets +2/+2 until end of turn.
Ability ability = new SimpleActivatedAbility(
- new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{3}{G}")
+ new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl<>("{3}{G}")
);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/n/NyleaKeenEyed.java b/Mage.Sets/src/mage/cards/n/NyleaKeenEyed.java
index 1d28a140f7..5415ed8486 100644
--- a/Mage.Sets/src/mage/cards/n/NyleaKeenEyed.java
+++ b/Mage.Sets/src/mage/cards/n/NyleaKeenEyed.java
@@ -48,7 +48,7 @@ public final class NyleaKeenEyed extends CardImpl {
this.addAbility(new SimpleStaticAbility(new SpellsCostReductionControllerEffect(filter, 1)));
// {2}{G}: Reveal the top card of your library. If it's a creature card, put it into your hand. Otherwise, you may put it into your graveyard.
- this.addAbility(new SimpleActivatedAbility(new NyleaKeenEyedEffect(), new ManaCostsImpl("{2}{G}")));
+ this.addAbility(new SimpleActivatedAbility(new NyleaKeenEyedEffect(), new ManaCostsImpl<>("{2}{G}")));
}
private NyleaKeenEyed(final NyleaKeenEyed card) {
diff --git a/Mage.Sets/src/mage/cards/n/NyxWeaver.java b/Mage.Sets/src/mage/cards/n/NyxWeaver.java
index 9860dfb61f..a352b7675f 100644
--- a/Mage.Sets/src/mage/cards/n/NyxWeaver.java
+++ b/Mage.Sets/src/mage/cards/n/NyxWeaver.java
@@ -37,7 +37,7 @@ public final class NyxWeaver extends CardImpl {
// At the beginning of your upkeep, put the top two cards of your library into your graveyard.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new MillCardsControllerEffect(2), TargetController.YOU, false));
// {1}{B}{G}, Exile Nyx Weaver: Return target card from your graveyard to your hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{1}{B}{G}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl<>("{1}{B}{G}"));
ability.addCost(new ExileSourceCost());
ability.addTarget(new TargetCardInYourGraveyard());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/v/VoloItinerantScholar.java b/Mage.Sets/src/mage/cards/v/VoloItinerantScholar.java
new file mode 100644
index 0000000000..08102f7849
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/v/VoloItinerantScholar.java
@@ -0,0 +1,100 @@
+package mage.cards.v;
+
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.ChooseABackgroundAbility;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.costs.mana.GenericManaCost;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.CreateTokenEffect;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.SubType;
+import mage.constants.SuperType;
+import mage.filter.FilterPermanent;
+import mage.filter.common.FilterControlledPermanent;
+import mage.filter.predicate.mageobject.NamePredicate;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.game.permanent.token.VolosJournalToken;
+import mage.players.Player;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class VoloItinerantScholar extends CardImpl {
+
+ private static final FilterPermanent filter
+ = new FilterControlledPermanent("permanent you control named Volo's Journal");
+
+ static {
+ filter.add(new NamePredicate("Volo's Journal"));
+ }
+
+ public VoloItinerantScholar(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
+
+ this.addSuperType(SuperType.LEGENDARY);
+ this.subtype.add(SubType.HUMAN);
+ this.subtype.add(SubType.WIZARD);
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(3);
+
+ // When Volo enters the battlefield, create Volo's Journal, a legendary colorless artifact token with hexproof and "Whenever you cast a creature spell, note one of its creature types that hasn't been noted for this artifact."
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new VolosJournalToken())));
+
+ // {2}, {T}: Draw a card for each creature type noted for target permanent you control named Volo's Journal.
+ Ability ability = new SimpleActivatedAbility(new VoloItinerantScholarEffect(), new GenericManaCost(2));
+ ability.addCost(new TapSourceCost());
+ ability.addTarget(new TargetPermanent(filter));
+ this.addAbility(ability);
+
+ // Choose a Background
+ this.addAbility(ChooseABackgroundAbility.getInstance());
+ }
+
+ private VoloItinerantScholar(final VoloItinerantScholar card) {
+ super(card);
+ }
+
+ @Override
+ public VoloItinerantScholar copy() {
+ return new VoloItinerantScholar(this);
+ }
+}
+
+class VoloItinerantScholarEffect extends OneShotEffect {
+
+ VoloItinerantScholarEffect() {
+ super(Outcome.Benefit);
+ staticText = "draw a card for each creature type noted for target permanent you control named Volo's Journal";
+ }
+
+ private VoloItinerantScholarEffect(final VoloItinerantScholarEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public VoloItinerantScholarEffect copy() {
+ return new VoloItinerantScholarEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player player = game.getPlayer(source.getControllerId());
+ Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source));
+ return player != null && permanent != null
+ && player.drawCards(
+ VolosJournalToken.getNotedTypes(
+ game, permanent.getId(), permanent.getZoneChangeCounter(game)
+ ).size(), source, game
+ ) > 0;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java
index 2e21b38879..92644a4148 100644
--- a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java
+++ b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java
@@ -263,6 +263,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
cards.add(new SetCardInfo("Goblin Spymaster", 795, Rarity.RARE, mage.cards.g.GoblinSpymaster.class));
cards.add(new SetCardInfo("Goggles of Night", 74, Rarity.COMMON, mage.cards.g.GogglesOfNight.class));
cards.add(new SetCardInfo("Goliath Paladin", 21, Rarity.COMMON, mage.cards.g.GoliathPaladin.class));
+ cards.add(new SetCardInfo("Gond Gate", 353, Rarity.UNCOMMON, mage.cards.g.GondGate.class));
cards.add(new SetCardInfo("Gonti, Lord of Luxury", 753, Rarity.RARE, mage.cards.g.GontiLordOfLuxury.class));
cards.add(new SetCardInfo("Gorion, Wise Mentor", 276, Rarity.RARE, mage.cards.g.GorionWiseMentor.class));
cards.add(new SetCardInfo("Gray Harbor Merfolk", 75, Rarity.COMMON, mage.cards.g.GrayHarborMerfolk.class));
@@ -270,6 +271,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
cards.add(new SetCardInfo("Grazilaxx, Illithid Scholar", 723, Rarity.RARE, mage.cards.g.GrazilaxxIllithidScholar.class));
cards.add(new SetCardInfo("Greater Gargadon", 796, Rarity.RARE, mage.cards.g.GreaterGargadon.class));
cards.add(new SetCardInfo("Greatsword of Tyr", 22, Rarity.COMMON, mage.cards.g.GreatswordOfTyr.class));
+ cards.add(new SetCardInfo("Green Slime", 680, Rarity.RARE, mage.cards.g.GreenSlime.class));
cards.add(new SetCardInfo("Grim Haruspex", 754, Rarity.RARE, mage.cards.g.GrimHaruspex.class));
cards.add(new SetCardInfo("Grim Hireling", 755, Rarity.RARE, mage.cards.g.GrimHireling.class));
cards.add(new SetCardInfo("Grumgully, the Generous", 847, Rarity.UNCOMMON, mage.cards.g.GrumgullyTheGenerous.class));
@@ -361,6 +363,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
cards.add(new SetCardInfo("Memory Plunder", 849, Rarity.RARE, mage.cards.m.MemoryPlunder.class));
cards.add(new SetCardInfo("Meteor Golem", 323, Rarity.UNCOMMON, mage.cards.m.MeteorGolem.class));
cards.add(new SetCardInfo("Midnight Clock", 727, Rarity.RARE, mage.cards.m.MidnightClock.class));
+ cards.add(new SetCardInfo("Mighty Servant of Leuk-o", 324, Rarity.RARE, mage.cards.m.MightyServantOfLeukO.class));
cards.add(new SetCardInfo("Miirym, Sentinel Wyrm", 284, Rarity.RARE, mage.cards.m.MiirymSentinelWyrm.class));
cards.add(new SetCardInfo("Mikaeus, the Lunarch", 700, Rarity.MYTHIC, mage.cards.m.MikaeusTheLunarch.class));
cards.add(new SetCardInfo("Mind Flayer", 728, Rarity.RARE, mage.cards.m.MindFlayer.class));
@@ -594,6 +597,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
cards.add(new SetCardInfo("Viconia, Drow Apostate", 156, Rarity.UNCOMMON, mage.cards.v.ViconiaDrowApostate.class));
cards.add(new SetCardInfo("Vivien, Champion of the Wilds", 838, Rarity.RARE, mage.cards.v.VivienChampionOfTheWilds.class));
cards.add(new SetCardInfo("Volcanic Torrent", 813, Rarity.UNCOMMON, mage.cards.v.VolcanicTorrent.class));
+ cards.add(new SetCardInfo("Volo, Itinerant Scholar", 103, Rarity.MYTHIC, mage.cards.v.VoloItinerantScholar.class));
cards.add(new SetCardInfo("Vrock", 157, Rarity.UNCOMMON, mage.cards.v.Vrock.class));
cards.add(new SetCardInfo("Wand of Wonder", 204, Rarity.RARE, mage.cards.w.WandOfWonder.class));
cards.add(new SetCardInfo("Wandering Fumarole", 928, Rarity.RARE, mage.cards.w.WanderingFumarole.class));
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java
index 18269ec3f5..6c4ac36698 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java
@@ -42,13 +42,14 @@ public class ManaCostsImpl extends ArrayList implements M
load(mana);
}
- public ManaCostsImpl(final ManaCostsImpl costs) {
+ private ManaCostsImpl(final ManaCostsImpl costs) {
this.id = costs.id;
this.text = costs.text;
for (T cost : costs) {
this.add(cost.copy());
}
this.phyrexian = costs.phyrexian;
+ this.phyrexianPaid = costs.phyrexianPaid;
}
@Override
diff --git a/Mage/src/main/java/mage/game/permanent/token/VolosJournalToken.java b/Mage/src/main/java/mage/game/permanent/token/VolosJournalToken.java
new file mode 100644
index 0000000000..1c1a3d4a3b
--- /dev/null
+++ b/Mage/src/main/java/mage/game/permanent/token/VolosJournalToken.java
@@ -0,0 +1,128 @@
+package mage.game.permanent.token;
+
+import mage.abilities.Ability;
+import mage.abilities.common.SpellCastControllerTriggeredAbility;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.hint.Hint;
+import mage.abilities.keyword.HexproofAbility;
+import mage.choices.ChoiceCreatureType;
+import mage.constants.*;
+import mage.filter.FilterCard;
+import mage.filter.StaticFilters;
+import mage.game.Game;
+import mage.game.stack.Spell;
+import mage.players.Player;
+import mage.util.RandomUtil;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class VolosJournalToken extends TokenImpl {
+
+ private static final FilterCard filter = new FilterCard("spells");
+
+ public VolosJournalToken() {
+ super("Volo's Journal", "Volo's Journal, a legendary colorless artifact token with hexproof and \"Whenever you cast a creature spell, note one of its creature types that hasn't been noted for this artifact.\"");
+ addSuperType(SuperType.LEGENDARY);
+ this.cardType.add(CardType.ARTIFACT);
+ this.addAbility(HexproofAbility.getInstance());
+ this.addAbility(new SpellCastControllerTriggeredAbility(
+ new VolosJournalTokenEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false
+ ).addHint(VolosJournalTokenHint.instance));
+ }
+
+ public VolosJournalToken(final VolosJournalToken token) {
+ super(token);
+ }
+
+ public VolosJournalToken copy() {
+ return new VolosJournalToken(this);
+ }
+
+ public static Set getNotedTypes(Game game, Ability source) {
+ return getNotedTypes(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter());
+ }
+
+ public static Set getNotedTypes(Game game, UUID sourceId, int zcc) {
+ String key = "notedTypes_" + sourceId + '_' + zcc;
+ Object value = game.getState().getValue(key);
+ if (value == null) {
+ Set types = new HashSet<>();
+ game.getState().setValue(key, types);
+ return types;
+ }
+ return (Set) value;
+ }
+}
+
+enum VolosJournalTokenHint implements Hint {
+ instance;
+
+ @Override
+ public String getText(Game game, Ability ability) {
+ Set types = VolosJournalToken.getNotedTypes(game, ability);
+ int size = types.size();
+ if (size > 0) {
+ return "Creature types noted: " + size + " (" + String.join(", ", types) + ')';
+ }
+ return "No creature types currently noted";
+ }
+
+ @Override
+ public VolosJournalTokenHint copy() {
+ return this;
+ }
+}
+
+class VolosJournalTokenEffect extends OneShotEffect {
+
+ VolosJournalTokenEffect() {
+ super(Outcome.Benefit);
+ staticText = "note one of its creature types that hasn't been noted for this artifact";
+ }
+
+ private VolosJournalTokenEffect(final VolosJournalTokenEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public VolosJournalTokenEffect copy() {
+ return new VolosJournalTokenEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Set types = VolosJournalToken.getNotedTypes(game, source);
+ Spell spell = (Spell) getValue("spellCast");
+ if (spell == null) {
+ return false;
+ }
+ ChoiceCreatureType choice = new ChoiceCreatureType();
+ choice.getChoices().removeIf(types::contains);
+ if (!spell.isAllCreatureTypes(game)) {
+ spell.getSubtype(game)
+ .stream()
+ .filter(subType -> subType.getSubTypeSet() == SubTypeSet.CreatureType)
+ .map(SubType::getDescription)
+ .forEach(s -> choice.getChoices().removeIf(s::equals));
+ }
+ switch (choice.getChoices().size()) {
+ case 0:
+ return false;
+ case 1:
+ types.add(RandomUtil.randomFromCollection(choice.getChoices()));
+ return true;
+ }
+ Player player = game.getPlayer(source.getControllerId());
+ if (player == null) {
+ return false;
+ }
+ player.choose(outcome, choice, game);
+ types.add(choice.getChoice());
+ return true;
+ }
+}