diff --git a/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java b/Mage.Sets/src/mage/cards/g/GalvanicAlchemist.java index ed054b714be..3a6938dfd2a 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 348ca15b047..a341b76355a 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 a87e8f888b5..7f69c67faa5 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 de34de52f0f..73820cf6257 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 00b45620169..4d1dd1703c4 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 2c0cdeb35fb..6f8b6ec324b 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 f1452ed8027..953899f3465 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 12647541ddf..eb15c2a56cb 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 7d8c774cd65..324206d366b 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 9ff01f06a80..fabb2f48f8a 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 e204e432ae4..cfc912e501a 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 fd8c7795637..cc03249ec59 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 13afc6191f3..5259f95b2bd 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 d0f16ffa157..005d404f73b 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 4672de807ea..792539892c5 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 1795c33340a..c030b122f53 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 5cb21a537c3..28dbf3d424b 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 0fb70766bc6..7c0cd785e4a 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 88e416018e4..3eb328bf5d1 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 bc8e0e970e5..48104c4d051 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 4a9c9f22a5e..9385c8de505 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 3780966c20c..cbd984e2f9e 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 d5048bb394a..3e21e1f5f10 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 61dc3520106..9621f81124a 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 ee740491e08..6bc918c965e 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 036d42425a4..d83b74fb43a 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 8883f7990bb..458c2a708b2 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 05a174d1278..e9ab7a79e7e 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 127dac949e2..59072f1bf11 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 f383065a445..537bfabd649 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 97f59af617d..ba5175fc22e 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 f77d8cff95c..ded5b6ca61a 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 34e7e107ee2..f641cef6e81 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 55f615ba37a..0bf904bad17 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 8148ab19dc1..8f281cb23c5 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 8e6f9c4c32d..e9d898420f9 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 41aba38573b..fefa170b4be 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 a6bf3360780..3bbce4acea6 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 5158628409e..030be317805 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 b786f75e165..073463479c5 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 21afeb69b5b..93fd64fdeaf 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 34daf55f4ef..ca691cfed28 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 e70d0caedf4..c9e990efd3c 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 dde67209adc..fed5c45339a 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 f184a3a5d43..458f96c4254 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 1930c52fcac..dfbc7fe180f 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 c831b12659c..efd6d768251 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 e2c74d29d08..88963e49af9 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 d0b9eabded8..0f98a572ee5 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 07f05204659..f0d9b71c74b 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 ec1f364df29..6a04d189c13 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 7e596817b42..06195e2c476 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 f5e3a03f7dc..d51830d119f 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 63063c6c8b8..aa8e14113c4 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 544388d29c6..6f410e2d0a3 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 4b2cfd80bb9..769fb3f793f 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 a51ed59a9a7..1b810c84792 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 c68d54bbe3f..23dabdfeb29 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 fa7a0802bb0..e7f0e1ef369 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 a8862d89f2e..5c59e1c8b39 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 98fa2ca94fa..725f78c51aa 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 1ba3afbe7f0..180885fe1a8 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 dfb36138d06..a78fb405560 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 c3966c78a07..07d0f2b4b4c 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 30cbef5c455..1d2f1c33536 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 4ac368e349a..be9bc5efb15 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 543f43fd251..f60213c79c7 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 63af0a5b78f..fc6f3c24b1f 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 cf6539fbcbb..36c83d7c0d3 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 a1a61da72db..7f0c2d93c11 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 c9604e6fceb..eef561a1ece 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 ea7c2ffdd81..f81f3c0bf40 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 67fae6af139..d0197494377 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 61c95f3978d..6e066656517 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 b1a45bdd0dc..65782958c88 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 f5b4b5009c6..0d3c271d4a0 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 5f5b5eec623..295de6d07dc 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 3770ec3942b..bad7ed4ac3c 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 cb9944378e4..0b218dcd1c1 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 26949fb457d..9d6d6363e34 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 63d285bfbd9..1ccc00ed40e 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 725debff1ff..242a91b1a92 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 8dc6a87c622..9829274798a 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 a73d325645d..97494b2c859 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 ff76a4c1a9c..91ac8002e5d 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 ae07c81c85b..dcc3c8c53ec 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 fc027fbf7a7..fbe4ae0099b 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 2eb8c321ff9..191cf3e78ae 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 d1d26e47a9f..d63bcf6759c 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 0e8d5b25f41..17c3d503a3c 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 85d4f40911a..02ed36630b1 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 e443c2d2eb7..98a2b6a25e8 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 005f073f5b8..651d224fe70 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 c8b3ff1df40..0a13516c604 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 c17f3450b66..da26604d60d 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 4b59c287929..bd3cb48a565 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 b318f7e2c22..1d388d9d95b 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 1f0cef2c0aa..9b7a64726a8 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 ce3afd13fd7..a24afab806c 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 3260517f460..f48cf32e658 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 3e81b036525..3b223d9a55a 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 fa861bae0ab..a14077578b7 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 8dd06695df8..94c5de4862c 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 a756d63c2c9..cf3a6a18064 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 a7b3c97e6d4..36e6474cfdd 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 e5be2d3f5f0..e4d0dd54bd5 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 d67eacf7124..3d326eb069e 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 8da5122f68d..748b76976cf 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 ad305b1e695..8e16f184718 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 6da98c09f76..5b724132be0 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 3ed26475d16..4462bc1057a 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 b85d9d0e823..31e94672ea1 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 16e19d984b9..b17db40cdda 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 0d289270398..fc506e96f78 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 e644c33867f..e970917d769 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 50e8b96fabe..ebd61dd71b6 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 ac67bb982ec..8174dae6e2e 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 847e134c7c6..d0154889d87 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 fcb6ad1d912..801837999cb 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 996f0ac4c75..c98f5360047 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 bf6b10805f3..a492dfa3bd7 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 cdf4df4e66f..18f0893c590 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 d0c592f14ab..e54da63ee66 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 00000000000..d3b0d29273b --- /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 d428a6d6390..c5b4d424ae4 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 eebbfcb35dd..03d5065a9a4 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 33eeffbdf0b..4f3cfe82e47 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 d7c2388295f..a1e1e3798d4 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 dc02d8c52b8..68e4f5fd0d0 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 2a53c4a73b3..f5fad22e60d 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 c71e9e0f58e..9db7817a35d 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 162fba1030b..86c82df1b70 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 5a1cac8610b..6ac12f4003e 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 5f0780a77c0..cb6a1d4d332 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 31fb236694e..ad399ab0181 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 be0c6e3217f..1df9867533a 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 e2800747ff7..eace4dbf038 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 82cfdb2873a..9aa3bc93d84 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 2af5869d941..95c666ae785 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 d42793bdaf1..7b918e90943 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 1d5f4f2e1ce..7867ddc138d 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 a35cd707f16..f3f562e83f2 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 0351a04cdac..e7b7e50b11e 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 310fc625796..d9d31d507d3 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 15ce659881d..2cfc417f813 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 57e90799500..a21a1c0ab39 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 3f21ccefa5b..963fcf13959 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 675858953aa..ff08e43f7ba 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 6cbfef840f3..4d11a6c1814 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 e1dd9917d1e..564c339d82a 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 20959d21938..a79c077d2d2 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 83dcb1b1ee9..d89979fd6b4 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 72ae2c91ab4..7443bc958c6 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 f02233ac88b..ab0a29f6064 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 0d06e966fef..1b3cf687f44 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 00000000000..6487e82846d --- /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 0e358027ae4..cc36223b333 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 0b3bdca8209..bfa2cb78c4c 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 fd3c5b14598..9bda3322c37 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 7fa16db81c2..44d9b9cd834 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 961f7a7d174..0c8094854c0 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 40699dcfa6e..1845b0cbc35 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 9c112f2a77b..3b6ac0f2850 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 94c472489d7..74deb601bae 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 5b16978b087..630a92c01b9 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 201b6e2e16d..a589f242370 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 6f8460f277b..35d1744a2d7 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 9a7ef93e650..60abbce6cb5 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 279adb90c6b..8d8c0cf1279 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 2b02dd3c5bb..eca9e518578 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 6fa26d620e4..81bed8ed437 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 1119cf767b1..61e491d6bf3 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 18712cb7dab..68c91fc16f9 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 fe9b432feb8..1a7fd237f55 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 d5ad10bf167..91b94d1c131 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 0a8d43381e9..9497cb1488c 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 9980d750836..b8898282e6f 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 ed527ac8b52..2a8a4ce978f 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 225207d35f6..fdec5210dce 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 ec4786d49f5..bbfdeac8e34 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 92e342c2069..edd20d6dbc0 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 1bfe37720f9..652e8950613 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 ed5703a9d49..cdbe31b9c5e 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 3659e5dc4a3..bfb51e3aa2c 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 cd783a97b76..97bb7faac6e 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 d7810c327f5..b59cc093359 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 ddac8b13454..183dab44bb4 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 8a2c0a46be8..e15eabdd307 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 ac9ffecbb0f..d265c9b7a58 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 28911b3d5c4..964daf8595a 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 10ceba8c49c..0a564a1d864 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 62e75d2e611..181cd8f57e2 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 f66cd143fed..1f6d1052b1d 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 e8127b215dd..27ec162fcd8 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 c2ad3229d6f..71c40c5d97d 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 29210971b68..3f98f9fbac9 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 71f4fe70617..22aa3dad5a0 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 aa5d198f808..98cede9c374 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 e08315c4da8..297aae6a55d 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 6a46002a004..85197a00c64 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 58ae81c1ffe..49ef4ba26a9 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 c4ccf6f56c0..e47899d59ac 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 28517cfec32..4f149829463 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 5cf6fc94f5a..5afd779f585 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 908bbbf576b..4f9347bafb4 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 2dc408cfadd..83c066a8dc1 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 34eda60e372..504ce36d1d3 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 6f83c4d0390..7274f7226cd 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 803bf3e8144..a5767a191ed 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 aff9e629ca4..3d274e64da9 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 bbfa828b1c9..9400f36b7b1 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 c1834f55ac2..768784f4a12 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 90f4ea6fb28..cc43e2a3998 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 f4001fc9250..f882a343749 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 8b7a253b78e..3b53624c494 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 a36dbaa41ed..de307f2d6b9 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 feabfe1ee9d..56ed2d97944 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 124d238d007..c00d598ea0a 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 409090c0e39..1ee026f962a 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 283ceb4960b..1bf7297f437 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 a5c089ec90f..5bef7ac7521 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 47a136890fd..a2579735506 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 63e94133207..d0acb78df3a 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 f614277e4c2..0d27d83f977 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 f7ad7b3c6a1..e7eb164b333 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 218915429d3..706f95ed487 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 d8a3e48a091..036d7afbb7e 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 46838a8d137..33bc8690ea2 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 e4e72630d2c..1769330d3fb 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 d0d0c25c74f..286e813cd1a 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 26052e0d5ca..3c87537a807 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 b7270f21eef..c9f51938e19 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 6a9237a2297..60437f803cf 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 bb1dd72af0e..e8f80fc6ed0 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 4536a12dac1..f494771c0e6 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 4d7f1ac9977..0a17b5860db 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 838005b4043..97476f1aa49 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 3d8399f894d..e5382836b0a 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 33d4fb047b1..d83d2ef9b7c 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 0be9bad5fd7..5aa5e9eeeff 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 9174a9a9b88..032393ff1de 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 2d2ed094628..00a9eecec91 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 766ff6e2468..03711e3c4f5 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 c4e063ff6da..95406223b67 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 8991ab0a0aa..1a3b5a5849b 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 47dd9da2cb2..94dabd9ac9c 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 4cf9dbf7e08..78e5926bafe 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 80641ced80f..ab3e035d5a8 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 1c7950b917d..3a42a68f87e 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 f57f284179f..c34fe35312b 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 787e68b820e..947efe6d983 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 738e35f0c57..8dc9aacd2b4 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 9857bed1c82..ccad8402b17 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 f6509448db9..c4085d4e05e 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 f91cf42a2bb..fc671208711 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 bcf37249033..ef3573fb740 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 3a9ef643b41..1ec0552d206 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 ace9012c830..0228fd11cf0 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 8cd27e6fcec..4cf1ff6e1b5 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 f13a84b9a53..ff5c726faff 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 f73853bc22f..4faaf7322ee 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 f8882443597..787c765f1bd 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 ebd207e12fb..1e49090a119 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 784aa47c721..53082f7e8bd 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 c61cbc3d0f2..5ba9a572a06 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 8736fcebb19..579c38ac33b 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 92018432f4f..657563c2695 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 eec70587a06..e775a06ceac 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 21e9f0c2ded..1ee3ac631a4 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 7895ad60f50..ae30add9fc2 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 4b8879cdb63..188d226a7d9 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 d3801688efa..3b2043f1531 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 05a919f937b..2d3c7988bb3 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 7641d116cb6..a391bd4a9ac 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 2bba1fd71c4..54a6f2ef6b5 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 315ff5b1932..21c4a45e286 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 72f3f7f531f..31b26dc1e40 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 c846241de82..4a397e082e7 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 16612d2d1f6..d7e292ce89b 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 84d856df425..59e31b19a44 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 c6769aafd08..6802897c122 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 f05f8bd92ed..4400408822b 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 96b903d0d72..2021040df0b 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 a55a72956fd..e4839edd0a8 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 b1731349722..c0b01cbada0 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 8ba2e0b81cf..060d67f3633 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 f0e7330b925..67d926681f7 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 ae226ad77c9..3e0536d26af 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 b5c5ef1171f..72b77411e1e 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 22501ede579..24bf1fe35a2 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 405ef572c51..b8f44127ffa 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 465dcfe204c..4cb9eea4777 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 eb51d576419..1cf3f7f2893 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 48c6bf1d413..dcec75ed421 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 56668c7fa0a..0b0cd6d03d6 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 7a28ea83a0a..d0ff1798d16 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 166cee19809..ed642d625ed 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 a85f77ad24d..158965ea83c 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 7195fcb10d1..e7734474098 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 a3c76253bf0..c0196b97204 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 a59c438f72d..684da3add22 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 07403178369..16daf8b93fd 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 8628afcb0f0..9c685b1390f 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 e144a1f9b4e..c9b1006d2a4 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 d8ba7328a07..ed901eec463 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 7c8ae9fae78..c4e058056c9 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 adf9b5c9f2d..c4a8bdecdf5 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 25ad5732a3d..8b3b15de61d 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 47c3047bd85..9b67705bd42 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 7e7c3bba925..1656e05c8a3 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 fab54cdaff0..71a6f6626af 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 aad6b3a790f..7d7cc2f58ad 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 0e85e21f217..4fce23b4b4c 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 11dfd050f3d..835d4caac5d 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 ef05c0ad68a..bb8e8ce2fb7 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 07941880f35..ac1b58fb764 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 f14953025d8..ff9fb9afd66 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 c6222c5b852..9e98d691b19 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 c64d759bbae..85274ab46d8 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 2d9ccc70b8f..1ac3ce0a443 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 04364ff6dc5..637188a4513 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 8cdef482648..96fd7d9237b 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 e98f5624669..63c385b5dea 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 7971da9c264..76627f7a39e 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 18c3319f71a..3dcb6501567 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 6a3f2f27caa..49a724e761d 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 1b59dbcc980..e32efdc6677 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 0a7d5a35554..960b08e9250 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 206169db7a2..99fd716c33b 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 bb5af1fe3c5..549230d4bb6 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 b5a6a49fafe..19aa08ce252 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 93168bc0508..c47ccaa1371 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 71080fa398f..470912fe537 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 0ba823798ce..33a72c4b31d 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 941413c9c41..873ed4002cc 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 2653e07fd75..d19235e9ff9 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 6752384396c..17854ded729 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 4883b16f657..ab331f4b859 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 9027cf29265..c611f4a922b 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 c70a18a1a8a..836dc774d34 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 9a56760d70c..ddc5ed72dd6 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 1c01c6a3c74..9d613f0b51c 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 b3dc936935d..e0f47bfc0e2 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 b1e183eec11..5c228813882 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 6f47376227d..1ee08da5c22 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 88cd2c1d18e..63c9d9319ce 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 74ab21776d4..be339d8dbaf 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 e1bbf2b0296..990993d1cb9 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 2c6d5445c50..1ccf402ecf7 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 bebe1ead805..25c42ce6d58 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 bfac0a745f9..df0a6f9ca77 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 3776ddebedf..e0c96dc9e42 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 2c634f30835..b4828d0c6e6 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 073501142dc..5124d9069c4 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 8b53ef79620..f29d615389f 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 59a19b2b1b5..e602748fece 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 d60cdc0802a..9c72077846d 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 adc500e6a9f..d1b86d526ce 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 709ab5b1af4..cbf04305b1e 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 159d1d31204..ab649c7297c 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 85c917a1978..40c680fb5fc 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 f99d57e6bb1..bcb6b98193f 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 f103019a5a9..51997516949 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 3a3e7ec8b21..135b733663a 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 2ad0be20938..f70fc66c218 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 bbe4b925bd6..2f0a75f75ca 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 216e55f723c..abdf418111d 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 f32b6cfb445..37c60155d8b 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 7e6f63dd965..89cb765a1a6 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 fa318c4bddd..2f870cf627d 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 5eddaae8427..5b1cddee2b2 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 78b4b1d479a..bd930b2948c 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 7a5857ff159..b05f203056f 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 119af8e1926..986b163c860 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 1b06cdb6a97..5074c949c2d 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 12fdda32ad2..80f40d24cc7 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 a9031950ee8..f63b5cc163f 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 bd33c6a8e5a..3f73456ac4d 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 00394255bf2..63a1f4988ac 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 1b408e79cc4..13198800905 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 16153c7ab56..4a57ffd396f 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 9f8fcd1cfa1..75e60632f26 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 751e4072515..df033da3bc0 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 e972ca827ec..04c304d9430 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 7a6aa056fba..bb69c8b6612 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 975bdf7aad0..e8c53865cd7 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 90a12895866..01bd628b8f6 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 19b6a685f46..1e2e9519bdb 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 c4bb03519b6..ce528380c12 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 a8af08653c7..b404189c3a4 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 cf679805183..f7569d4c21e 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 f5598c337da..44802b492d6 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 eb8b91c8341..48e3736fd9a 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 0a5c4382ed8..f1a40bdf144 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 e8acc4964bc..0859537e705 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 10289acecc4..6e38453985a 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 be134304d2b..9eba2262522 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 02a0d6239db..0909d66eba2 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 980fc8b7f5c..73cce4c1e3f 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 0e4cf766609..77d6d14f912 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 e5832f41bb7..1bd279808c4 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 36fd93f123e..ea7c5b26f76 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 db6f71dec3d..5a4c2c4f118 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 c9f693f7f60..4060bea9815 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 64e5324c281..849e219e967 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 ba436201bb9..f7875acbc20 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 6647c15dcb2..2966a587cd7 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 9547e3b7b18..27bb12ea2a8 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 ef2b124e32e..d84719fa1b8 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 d086d1a9ea8..d8dc6622b19 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 1ba7a64e2a3..93e6f9bd13c 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 e56336a73df..d7db3776bad 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 d903acdfafc..216ad5e5e71 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 58d5ec50fb9..ace1de130da 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 e86ca1c7632..1f2dd12fe43 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 507a92a3eb1..23de815a881 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 5c1bc92d1fe..cb6131694a6 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 93c201ea68e..a807f3f0f58 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 b9776d3fb38..ed238ba18dd 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 cac5fc4f9f1..faeebf1c7c3 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 d5b8b8ebc33..c5fa549977a 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 e81b392100a..9dc16d589fb 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 9d900c2ee81..a9f638b1184 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 0851b3f617c..b8363aa1a0d 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 590772a94f6..4d06a699dc1 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 565249d10c2..5e02166c4db 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 03fc79a70df..19dff8ee7da 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 3c3c1639e1d..ff26f144e53 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 935024b72d0..6e73dc917cd 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 f9d551cbeb3..9401fe61436 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 5e65a10897e..b887920db5c 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 a0a90c78fa6..86efb498b77 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 f7affa020db..e2cd3aa991b 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 85cd8dac6fb..8a685aaa6e5 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 2e72870ac59..0784fcbcf32 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 8b094ea5a2a..b784f8e3ea2 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 fea106ee044..ba94bed8865 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 c7815b698da..88fa097f0bb 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 be0757481b2..ff0cfc7156e 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 2a69570060d..081ea96e0e0 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 99707f11924..4d2935cbafb 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 c26f01b64e3..8e30c2b19fa 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 fb7e6809635..693729f8b24 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 e70a5dd390b..45496319145 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 d56fba15e63..c99529d0226 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 9c879362d78..4f276ce14e7 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 43cde7bcab8..83425250b6f 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 fbba29c1ed9..50fffe1cc86 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 ffbf11e8107..9dbd749c7b0 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 6d7b6326c2e..2f9c9c104e8 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 dbb32877b0b..adf56bcc990 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 f59457c3d8d..57bf7947817 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 deca477cce0..c4b120765b4 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 0a227f5af33..349172e7a32 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 8ae089d9368..a17769ed55c 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 283fb55864e..b5f8b4d9d8d 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 b91469bef8c..539d0cc7f4a 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 bf6a7af4807..1167072ebdb 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 e131b7e97d6..53b33c801af 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 6cb52caff59..2a21d290693 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 fe59d134dd9..6fec374ad9d 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 17eb7918357..ba62969ce9d 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 78169d04d08..332064ed632 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 09b05b2ac9b..baa4373b82f 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 cff02c48406..05b392c16fb 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 9e195b4b3ce..3af07477492 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 043c75c2f98..1a3dc510517 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 c4b062074d0..49bd9a0e5d3 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 b730654f3eb..9387cc5af44 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 91a2787988b..d1b89df3ce6 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 5700435a655..2daffefc110 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 0b2dc989fb9..ec0120180fd 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 3f714f6aa36..6cf173ed873 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 3f3c988ba56..23a99425ae1 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 a18a2791e9b..a7c523a7330 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 f30d6267dba..3cd51456f0a 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 dc432bc706a..28691102e42 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 57b491006e8..1967fcd9c97 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 03e404c4fb3..d4cd03b36d9 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 a0d1c443b28..015ee533591 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 0cbaf39dca7..6bfc531b670 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 8218fd426a6..2420456d317 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 5daf7048d94..b3ba0f32f44 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 7e8ee1eda94..c325d4ba602 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 a121a156d0f..f2fcff6dc44 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 5432c1d6b96..3bcea86f579 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 647f25f55fd..cd3b4f8efb6 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 fb766421fc2..0a3ac06965c 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 b98985540c2..384467caf5e 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 2a6fdcf491b..ea3633e3763 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 d8d321fd4c2..ee6c6dc4269 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 d5f2e8ed38b..9281a06e463 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 bb100be0989..18673b9e106 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 553ca2101d7..292646f1cb3 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 e9912a5ebfe..fdf320bbbbb 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 9205f839289..9c7a6626d82 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 dc6c2b5f14c..2db1d7642f6 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 d43a187a7cf..81ac13925fe 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 2c2dfb16a26..367bd16c35b 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 75829c8c4e2..09c8fc49548 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 f7feb5dabfc..fad57ed53b9 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 6c1d1015ae9..5db58496eaa 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 16797d55e8c..f1255734ab1 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 3e943da7277..887053918ae 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 8587996f804..84c1208bc8f 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 314d1506ccb..57f201da599 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 967b25d1359..03f91ae2b61 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 879da84b312..d636b999fd8 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 0e584464b11..9f4732b36e9 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 c1b780cf35c..66a717c00b0 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 93a7767ae4d..061f2967ed5 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 5b376b1f45b..e9f169879ec 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 22ccd363446..ef5f2241c73 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 6231879edeb..b8abbf7bac4 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 70b8597d9b1..ee908a94121 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 adbacf7cae3..cc11a9e14f2 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 4c57b9b0bd6..5ce3521b8ed 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 a6364745843..edcf2e243bd 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 79672587f5a..ad86d767f99 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 00dfe7fd272..5dfbf57e211 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 1e3e39e38bf..1f0b5eab335 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 916e1d0ccbe..cd4ad65358a 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 6406cccf323..8fa63f19190 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 0ab9f2298ac..293724f66a7 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 267302a2d7f..66fd0b0792b 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 6c1f9104bba..7886ed3990a 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 f8d5d485b87..12b044c4480 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 7b64afd77d5..965390d9c00 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 75adbf0a36d..5a04faa8763 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 e23899618f3..aed3b5e6dcb 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 2664fad36d6..3a190ba15ab 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 863b7a29622..6eb36d413cd 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 28b217edf62..62881e3666d 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 68b5497ab0c..b5ad32c345e 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 dd2801061ba..3c2a92591fd 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 559ce168532..d92c6b4211b 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 11bb7c64f94..b729a3be64a 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 4150ebc56bc..781d80bc6c1 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 72b211705dd..e546b99e45c 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 d7bdb06632b..ec46a9a746f 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 22f2b880f30..e3ce35aed6a 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 7a1dc583380..fbfaa81a29e 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 8752b4b64ec..b154a17d6ca 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 5490deae5d7..0c095d7c5d6 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 1e6e04e1dfa..41ce500272c 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 0b3b78a4e05..64f0cd6ac7e 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 172626e3fff..064a6053e74 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 5a9daa646dd..865c3bd7d8f 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 d30ffdd6c56..66eb63f2daa 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 bf25793fed7..5ced6c1550b 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 b3a5be4d5fb..50664182187 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 f39bfe11f00..e2ead6e1609 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 b52a1d5fddc..26346760b3f 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 6d1e79a7a87..4161a45e47c 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 7aba0942c4b..abc876b3df1 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 3eb6ce69e17..211b55974d1 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 59b2420d18b..655c001b679 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 8feb3957334..97f9aebbf40 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 6e7e4c4c8dd..5c2fc9960cc 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 1241938d3ec..d59f7c17a18 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 904085abbc0..49e1f71752a 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 c60e858d2fc..93acf859a00 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 eb8284ed2c9..d40ddb9dc69 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 8184d0e7f7f..e0e1fcc9685 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 59fea573e04..83be63bfaef 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 472beba8d19..6c33a5a689f 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 df9e68412d1..3047d7b0108 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 0190c41cc7f..ba095d1e5a7 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 b0e9b36fded..7330a739d98 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 c04ba14adf7..89039a94e74 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 c1e74d77477..6286022a97e 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 6ea33309b57..e964474c55d 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 56730558301..acbb21d3c4a 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 99ee1d373cf..ec0049af67c 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 d7c30bda816..6e973aceb44 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 4f3493584e0..bcc3b25e278 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 d93bf2a2d55..126d4761177 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 fd85574f988..737acde3370 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 82c71024240..b4a880e7f37 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 82ef42f8a04..166d6050044 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 74c783c0e47..cebeb77a74d 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 80eff12a4f8..879181edfe0 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 11d8e2084c4..0019f637133 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 9c6118a4317..80a896e18fb 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 48ca29399e3..a236890d684 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 21530759e76..d154b42e160 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 5486200d05c..5346535dd89 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 9204db31423..1ac7ca722cb 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 f7ed9df1318..33da0b8d7c9 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 dada1a21e82..4190cd9419f 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 b79cd766930..b7331464ad7 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 91d30add3f8..ca2bc272ede 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 032322c8938..46ee7b25574 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 4c0310d07dc..2b92c4d594c 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 1d7828cb1ad..73a63ba2369 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 a1334d79684..3178a9b5420 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 7451bc2e680..6f495230907 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 257ed34f42c..5708debdf71 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 f6bd230a4b2..787bfb20558 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 a8ae2337a2b..2c70d04c80c 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 d9efb2c675b..dceda4ad9c2 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 c0a11241af8..ccf96d255ea 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 9531ec34bd9..07773a38b11 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 e5f78b3f615..e42417634c5 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 fbe495e9bba..4e0bea343e3 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 5a1e13ed873..9f44e17eb50 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 cb9c694d33e..f207e847d6c 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 80a3878ff5d..1c4b6d9dd14 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 3023d2ea470..1bf0c722832 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 0a733a52153..3aec8816d6d 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 9959fd28819..478d5007ebd 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 478f0e2ee25..2d1d6e334e1 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 f0203de56f5..ceab00aeb40 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 d511b76f4c4..d14215bfff0 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 e68cf59e25b..f5ed2b15f0b 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 0774fb5fb23..7dc73f48d9d 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 941b5bea38f..8bcb6385200 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 6037fb3a8c3..9c69bf2f7b5 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 6450f30c337..caec0fa8e63 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 73234db3b79..5e2344fb419 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 7377e6b9635..b466bb19c2c 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 4043a22eb3d..7c27c79b250 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 2e33b43f41f..ed94c745478 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 8f87a0ce94a..72e5348f028 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 31a0a343772..fc5c3fd5823 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 fee1aa0ee45..599cdc87294 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 aa3eec83733..577439ce7b2 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 03da0b0da42..65f5612f9dc 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 dbca8b0e4e1..48ca1cca645 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 194c5fdaca4..32f6f387f40 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 0c2bdf6f2e5..0f88f15f90a 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 5ec22413107..ec0a33f35c6 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 7b612d17bbb..817e07d473b 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 912aca2b988..457aa13b6bf 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 9dd7081f6a3..81b8bc7964d 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 3a39f48780e..a0d95b8fc40 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 8b7cae4b877..43968606ac2 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 cd83cac2ab1..24e41d25111 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 4e22fbe3f53..36680bdc786 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 bdc7d33c8a8..d07de0c991f 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 4ad16c9648d..355951d1692 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 e112fb3a0af..712efe6e29f 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 109d50883ae..80100d3515e 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 c8026b9955f..757ba184b43 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 01c5e0a7b2e..5a62add9ea8 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 2fe554d4d4a..871e0a2b6d9 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 83779f7deb9..2342366d310 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 cc1bdcc2928..57c093ddce8 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 e835b0a746b..8aae31bc879 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 c0238b80d2e..2f2c0c25c6f 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 48dc294d524..17613803ba4 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 f9338c39838..66989232c14 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 372d8773813..9e314fe77dc 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 f8bacd40916..a030f76204e 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 80d89e826fa..0ca107fe5e3 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 74c81d9baa1..ca51b3b5275 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 70a8c69eadb..f525da35e9f 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 9c616c98e97..1b4c8a70e30 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 1f7fa8c5414..a60586c7920 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 090eec0977e..d4d855b5304 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 aeaecbd9c73..865c56683ab 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 c5826d22b67..89ff9082a88 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 c1aa2fa579f..c0369de242a 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 a8c05bbbdb3..21caf815800 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 55b531e2140..143c5da68db 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 239901d6070..e7efea15bbd 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 81dbf50f7d7..0cc203253e7 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 7a135dcbaf9..34465a19bbe 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 509e225b80a..a443019c757 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 55a2650e6dd..cef3932702d 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 c5cae875f4b..20fdb4ef5f1 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 2aceecc67fa..ae11a79c4e4 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 9534763ff0b..4df5634ea69 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 7928e2095e3..f443b6ac774 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 47a5d916ed1..88c1f0f55db 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 c4ec99597fd..510b8d5c25e 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 2c05b67606a..9f54bc28695 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 2b3d6af99db..77ae5e81942 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 6749bb9c43b..b6ebd3b97de 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 67d6e3c1d13..818f09ad42e 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 63cd3c954c3..f635a3fb40c 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 a0998a4d4bb..764d3f7406e 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 935e6f0fb9c..6502283911c 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 1a328072b36..c38ba3acc32 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 ab505a33884..b2910fe42de 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 ac7e6ffb614..d70d61db827 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 fea2a0bcc71..4ba978a6bff 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 93f7c0d1d52..fc202b234d1 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 3543d76cf85..7011e599ee6 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 d2af5b96b09..eff727e4227 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 297441d2c01..d133c811e9f 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 bea16480291..54a3344278c 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 a8d48272ea4..04c5f32b787 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 e6acacc43e5..8f512899500 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 d008b35c54e..0a7fb02c586 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 f343367e796..d06cbef5eea 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 1900ddc9618..4f15f1cad4b 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 9c5a46b79d6..a1d6411b90c 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 149dc7d59ad..ef2df53ac7a 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 7b4481f982f..de2e4ad4378 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 3724d911bdc..d5ad355b87c 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 498e569af5a..31b004f8ac8 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 425d5930be1..a7686742545 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 e227e09d104..222e7cdf944 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 2a1eae5a819..c7fd49787a3 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 54e8f93bebb..2a1f6513404 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 670d44c572d..14ebe31340c 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 c57c5b25284..ecb53d1174c 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 0967c4f0e43..9ae797f1cf3 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 03efbb6aeb5..f95a0cc1c78 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 7ea9d64f3b1..cbc1c0438c3 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 9adbddd484d..e6eb6efd954 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 ecee5ad42fb..5ef17bfdb28 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 be6270f346e..4427593d911 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 e701b1c741f..d9ee6142c4f 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 b3b46622b2c..ae853b9e34a 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 52263eb2255..3d318103d4f 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 a27e54b9273..69152e81a5a 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 61d8410a643..e9cd2f32441 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 09d9d3de591..c14830c7ee3 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 de7ad50c84e..c035d63a6b3 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 180e207a069..6be023f56b9 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 c521ee441b1..8c61abc9abe 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 345956e6ce6..436ffdc2e6b 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 4cc90e77d00..a040e792605 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 e0733f71467..113b096b3a6 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 8bae3f75117..3589a56d405 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 c1feebee40b..bec9232f749 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 78cc7c7e039..7fb14846a22 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 c3a40ffd2b2..b096810cde9 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 59f568b1f29..9fd0cd665b1 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 a7abe78f231..b303f760faf 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 65806b51bb1..048e4533e79 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 e926be17671..c5a4edde6e3 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 e9cef9ae83d..47207107a7f 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 087a58de3bc..c6e9e75efce 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 5f960db1c82..40b3c371d00 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 137e3a6b971..0daf62f10fb 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 4872d6691bc..b47c23538bc 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 5b17fef0fdb..3cbdc35c922 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 40ee1b646e0..3303eb95e1e 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 951bbaf54c1..c24fc1a1fcb 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 39e326ead0e..f8bc683397e 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 9ed78043b07..b7b0c7d3207 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 a183fd621d4..eaaf6126def 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 9eedbac13a1..5fd60fa469e 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 2820d04314b..9db546bd2c3 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 eac785c0a9e..bcdc06f5530 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 be27716805d..0a82b50f9ca 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 04a972a3825..fef37e1bf34 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 ec098724a6c..454554d5d87 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 22ad034d014..6c9e04300d9 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 dbe837064e1..561928355c2 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 8f10a397ca6..e7da36c8a0e 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 9babd9e7161..e8676f02063 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 cd2952e5a43..5427f6a40a2 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 338255e6889..77129af7cee 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 a91436e3d50..d0e033f7a56 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 00b6be5debe..abfdd1bb3ed 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 2ce12de0396..271ac4e6551 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 955f1c613c0..6030423462f 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 cc1da00503e..1c460b8baa0 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 8ad43b8513e..cf809ac0c0b 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 565d3d35ed7..41f91e5440a 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 4dffa2fbb6b..35300f37bcc 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 55cbb4909a5..dc15608af7a 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 90415360310..39eec3d66b9 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 9735846db84..c8fc2adce2f 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 82690f44220..c5cb8feb9e5 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 46201106b12..58cc720d890 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 1a84511f8a0..3a4bd3b54e5 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 00000000000..c94e0723a97 --- /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 65ab7d7b205..88c4442a249 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 df4b8ca15f8..79fe408afcd 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 0fddaca3ee7..facd5fa2886 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 e14fbf44232..eb0f6fd37e7 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 39fd2599345..5c4a8ecb380 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 6fa8aa6bceb..44346bbd588 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 e6cebfe0c64..c5b8c518e3d 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 769d491fb93..59f7de3963e 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 12a21330dcd..efc986d4779 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 a964a6d7715..b03d1c8f4db 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 ad7febd5e55..9342a379387 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 fff8f7088cd..da42223097c 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 0d05037d5ce..ad8ebb73b75 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 e564db981e2..3dcdb086a48 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 29241524a1a..e66e526bca3 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 76661d2fcd5..fb8d1524639 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 35afb89ca44..956c023c8a3 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 d182162f90f..dc65f3d3ba7 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 316e62b93b1..e8b6d274df3 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 c673823a6a0..a5d3bf92ba1 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 3e0be68a017..35e279a7946 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 a5261c2b233..139429636e6 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 9d1ca6e6f31..76fb147a41b 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 c77f0049e60..9e8fe6f725a 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 b62f3519ef8..80d634852bc 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 d162796dcb6..9336d55b429 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 906b070e4c5..c7fee304599 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 5744bc09073..c24e7df320b 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 40b7abb4593..949823d78f4 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 25d1c410901..1d8ffccb779 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 6628f583276..b90bbac7c0f 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 a7c7bcca33d..bd672bdcb92 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 fbea53b47db..c57cf4abf42 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 9357ac73cd8..fc32d61d874 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 9d7ad8921d0..60ba8fc1622 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 1715a6dc129..59f183f4eb0 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 cbcb87b5429..aa259907fbb 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 0069d21df96..9737dbdac09 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 63a2bacf211..1f9a5b309f5 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 ab3f2edec86..ca20a2e8a34 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 c462a3ab2c2..33c2a0c3a29 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 1bf754c5597..941cc31a78b 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 ec12dc22510..a20f1365f63 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 de61755de34..af8e09f6bfc 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 f466540e613..0820739d3b1 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 62843afff8a..036e3252ede 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 91855af4a0d..89ec5c8073c 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 4b3ccb090c7..7999822b6dc 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 f6d758f84e8..65774b02edf 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 9b4934198ab..9fcf380de7b 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 a88fb4e0ca8..90e7ed2ef48 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 61d685d67bb..8a7ba5d2bb9 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 59641521c05..c6565c12308 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 eb6a24787ee..3f167bfbdae 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 16da3515398..e8def286cd2 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 6fa6f598d54..e96da7b452b 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 82c0a14e61f..d12b7c21096 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 cea30ee5b47..a69d5848801 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 d5a352d2ef9..ddcc26bab0d 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 66df095ccf6..9d49c04c122 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 e873e8e3f9d..dde0308f408 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 b8a71f30c90..e49deb6dcc3 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 60d7fd02e0d..2af09f8d935 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 44a8d8e8d8d..f6fcff3f60b 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 ec2070eb0ff..109aba04646 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 9bd2aed6096..860ac6bd8c7 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 60453a85eee..ec8049b31a4 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 e1cee271064..7b76d722d74 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 c2046bc60ca..a18c2936026 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 e389ff186e1..b229a670c2b 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 fd2be913ab0..e33112ea6a3 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 35c1ddfa125..19f498659ba 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 f2b62bfb7de..aafcd5aab80 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 71951ec5ede..0f906140253 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 5714eb2ef1c..25ab3d1b63c 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 651f77047b3..b759ee1510e 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 11a9d6f2ff0..d4f27ba0b30 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 1e1344c9c86..1a24640b7f1 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 80f6ce6dc3f..09774e5c790 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 d736f9c460b..5882adbc8ba 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 26a5b9a63b9..7acd69ab75a 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 b90b27eeff4..e7746b19a43 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 5c103cb6659..b2f4fa79925 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 910b50181d9..e148efcc869 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 c1b44753488..d79901ea18b 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 0135a207696..641406e9d5a 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 462f2c62c02..4cddfdb676c 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 48b359232f4..09e446ebb8d 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 8f599922719..3792e03e7f6 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 f261e7951bb..0ceae7d2435 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 ce7cbfb70ff..f4249278bcb 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 b937ba9ff41..0da0ef2a418 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 5e5ca80dd89..63d33b7c7a4 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 9f89f265a20..ca8fe547ce0 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 9b3408de9ba..959c124baeb 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 1e6f2b81ef4..a06f69a3fbb 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 f1c1a250301..c91a7b67c86 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 ad872874273..d22b3f40411 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 fcd2d7dd3bd..37039100667 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 2eb564debe3..b55c7a00869 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 9191e9a0ef4..06b4331da87 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 c4e6068b65e..4aa0c03d57b 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 a481811f373..0860d2446b3 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 02054232f23..8f3ef96ffd8 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 235e9cf1bb3..67c73e07325 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 3678e99a796..12519821cb4 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 73acad77339..574f0bff4c0 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 263ae1c3b1a..9450d013f00 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 80a903647f0..0064767fb70 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 7a2039a805c..d421e9e2341 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 4fe0fc64613..31946a8ba50 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 c7d95dac3a8..1d8fa65620c 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 9b3ffb62df6..aefb05c0842 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 881e71cbf27..375f2c9e515 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 fd368ab7a28..58ab824fa1d 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 21a24a2bb1a..acf8a735641 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 bcb025383a0..79646b98ebe 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 9a99a4a3c29..5a00a017a16 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 0f9f7b98803..8324cbae1ed 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 864284240c2..2cd294a605a 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 b27936044b2..106976e1a92 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 b250f5bbc6c..acb4307a9f4 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 9a0eced886b..3bf4b4da79f 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 514510db168..de4002f48a8 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 ec4992aa4d0..75f816c3702 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 75ac616fd7b..23c91547dc2 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 e7dfcb59d9b..a7f83722991 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 8162a66aa56..2ac96b9c157 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 00d42ae1b34..3558ea543eb 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 e5f75dc6404..d7cd0ac09fd 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 0dc9e8bc0e0..fe040b74a11 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 3ca93b6d2d8..bab76ea0787 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 c44697f799f..fb46ad6c84f 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 29b43a7bad7..41395137e29 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 e689892ada8..d37a5b74857 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 35a7a7b5bd5..990db5e6f6b 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 0ca3f5b1be0..a8c1c649a6e 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 512f96f5b54..dbe685f9669 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 868535931f2..e2ea5566439 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 5ab5fbebf84..2be42984e5e 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 c081c100933..58f57930c19 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 b1f64985b37..aa80c165246 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 496eebeabc2..d943ac1f393 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 a7677a60950..3caf82fa83d 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 73e096f95c6..38224f1f8c4 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 590fc872f41..24d33ce19bd 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 80450d258cd..abe86f80e90 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 f8bfbde2f53..c1a3926a84e 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 a912cfd108f..720ecb26a28 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 7b30ac568e5..a19463b067c 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 02c1bff22c1..1de94e766f6 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 e02e7aa7f5e..304085abdc4 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 88a30f07c35..1256435e61a 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 415a41a6548..9cea452c6ba 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 471cb281181..7238808c487 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 690788279a6..1a201fe5bb1 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 9c96d6886ea..f9f09736472 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 d5a6ade10ee..9b9903f1587 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 658b093721b..275b43fe3cb 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 bf526dff3bf..6cee9258e60 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 ef6c4951585..807e8a575a8 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 64c27aade26..1965741a116 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 365c1c397f4..617f84f14f3 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 e162bc012d1..9ade3527462 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 e01aad82936..2a89382c6f1 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 b9646926068..37aac5407c9 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 00f261b40cb..8975f9cd2f5 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 a7f6483b650..e612be96fd2 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 4375cbb4c98..31764db1e05 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 42b282d22f1..a85a2c7949e 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 2aad52c6a47..112883bd9c8 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 d341071a052..0b0d11410c7 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 0908b2da040..e7d2b9ebbbb 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 6a3f5e72158..7ac7612ef4d 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 6e6c4ad78bb..f393a6b7f29 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 fcdb888927c..aabfc47ca2d 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 06c587f01e7..a44fb58ca1b 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 e5084aa4e78..6a1df81eea3 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 26efa8bb95b..665dc0f6a1d 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 9ac931b86f2..201f175627b 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 7e9c98a9ed0..4c82db9512b 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 dfd6a22bf5b..a59c8350577 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 f07f1c0f0af..4c9821f5516 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 30ff3a27962..13fdf1558b2 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 b7fa2bcb4de..00865331ec5 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 55022d6be35..9b5550e418f 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 f20ed48be6b..8f3174fb998 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 8577c96f098..367064dd7ea 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 e54ec584651..38a1e9fd8a2 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 6a27a342d9d..4a8b07a55c6 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 85f4456c6fa..88f77f19e82 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 1d28a140f7d..5415ed84862 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 9860dfb61fb..a352b7675fc 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 00000000000..08102f78493 --- /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 2e21b38879e..92644a4148d 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 18269ec3f53..6c4ac366989 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 00000000000..1c1a3d4a3b7 --- /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; + } +}