diff --git a/Mage.Sets/src/mage/cards/b/BloomHulk.java b/Mage.Sets/src/mage/cards/b/BloomHulk.java index 6c991a9536a..c5631c3dc14 100644 --- a/Mage.Sets/src/mage/cards/b/BloomHulk.java +++ b/Mage.Sets/src/mage/cards/b/BloomHulk.java @@ -23,7 +23,7 @@ public final class BloomHulk extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); - // When Bloom Hulk enters the battlefield, proliferate. + // When Bloom Hulk enters the battlefield, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new EntersBattlefieldTriggeredAbility(new ProliferateEffect())); } diff --git a/Mage.Sets/src/mage/cards/c/ContagionEngine.java b/Mage.Sets/src/mage/cards/c/ContagionEngine.java index c01a51ed040..96c31fe3e67 100644 --- a/Mage.Sets/src/mage/cards/c/ContagionEngine.java +++ b/Mage.Sets/src/mage/cards/c/ContagionEngine.java @@ -1,4 +1,3 @@ - package mage.cards.c; import mage.abilities.Ability; @@ -36,9 +35,9 @@ public final class ContagionEngine extends CardImpl { this.addAbility(ability); // {4}, {T}: Proliferate, then proliferate again. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there. Then do it again.) - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect().setText("proliferate,"), new GenericManaCost(4)); + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect("", false), new GenericManaCost(4)); ability.addCost(new TapSourceCost()); - ability.addEffect(new ProliferateEffect().setText("then proliferate again (Choose any number of permanents and/or players, then give each another counter of each kind already there. Then do it again.)")); + ability.addEffect(new ProliferateEffect(" again", true).concatBy(", then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/ContentiousPlan.java b/Mage.Sets/src/mage/cards/c/ContentiousPlan.java index ec04ee97bae..dc9573d5585 100644 --- a/Mage.Sets/src/mage/cards/c/ContentiousPlan.java +++ b/Mage.Sets/src/mage/cards/c/ContentiousPlan.java @@ -1,23 +1,22 @@ package mage.cards.c; -import java.util.UUID; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.abilities.effects.common.counter.ProliferateEffect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import java.util.UUID; /** - * * @author antoni-g */ public final class ContentiousPlan extends CardImpl { public ContentiousPlan(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}"); - - // Proliferate. + + // Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.getSpellAbility().addEffect(new ProliferateEffect()); // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); diff --git a/Mage.Sets/src/mage/cards/c/CoreProwler.java b/Mage.Sets/src/mage/cards/c/CoreProwler.java index 0354d8b1765..963b642bbe0 100644 --- a/Mage.Sets/src/mage/cards/c/CoreProwler.java +++ b/Mage.Sets/src/mage/cards/c/CoreProwler.java @@ -1,8 +1,5 @@ - - package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DiesTriggeredAbility; import mage.abilities.effects.common.counter.ProliferateEffect; @@ -12,22 +9,27 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; +import java.util.UUID; + /** - * * @author Loki */ public final class CoreProwler extends CardImpl { - public CoreProwler (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}"); + public CoreProwler(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); this.subtype.add(SubType.HORROR); this.power = new MageInt(2); this.toughness = new MageInt(2); + + // Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) this.addAbility(InfectAbility.getInstance()); + + // When Core Prowler dies, proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.addAbility(new DiesTriggeredAbility(new ProliferateEffect())); } - public CoreProwler (final CoreProwler card) { + public CoreProwler(final CoreProwler card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/c/CourageInCrisis.java b/Mage.Sets/src/mage/cards/c/CourageInCrisis.java index 5df69ea2497..9b10852d117 100644 --- a/Mage.Sets/src/mage/cards/c/CourageInCrisis.java +++ b/Mage.Sets/src/mage/cards/c/CourageInCrisis.java @@ -18,7 +18,7 @@ public final class CourageInCrisis extends CardImpl { public CourageInCrisis(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}"); - // Put a +1/+1 counter on target creature, then proliferate. + // Put a +1/+1 counter on target creature, then proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance())); this.getSpellAbility().addEffect(new ProliferateEffect().concatBy(", then")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/e/EvolutionSage.java b/Mage.Sets/src/mage/cards/e/EvolutionSage.java index 344522b3d01..9bda0606215 100644 --- a/Mage.Sets/src/mage/cards/e/EvolutionSage.java +++ b/Mage.Sets/src/mage/cards/e/EvolutionSage.java @@ -29,7 +29,7 @@ public final class EvolutionSage extends CardImpl { this.power = new MageInt(3); this.toughness = new MageInt(2); - // Whenever a land enters the battlefield under your control, proliferate. + // Whenever a land enters the battlefield under your control, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new EntersBattlefieldAllTriggeredAbility( Zone.BATTLEFIELD, new ProliferateEffect(), filter, false, null, true diff --git a/Mage.Sets/src/mage/cards/f/FluxChanneler.java b/Mage.Sets/src/mage/cards/f/FluxChanneler.java index fa7ab3bceb3..db14684b2f0 100644 --- a/Mage.Sets/src/mage/cards/f/FluxChanneler.java +++ b/Mage.Sets/src/mage/cards/f/FluxChanneler.java @@ -24,7 +24,7 @@ public final class FluxChanneler extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - // Whenever you cast a noncreature spell, proliferate. + // Whenever you cast a noncreature spell, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new SpellCastControllerTriggeredAbility( new ProliferateEffect(), StaticFilters.FILTER_SPELL_NON_CREATURE, false )); diff --git a/Mage.Sets/src/mage/cards/f/FuelForTheCause.java b/Mage.Sets/src/mage/cards/f/FuelForTheCause.java index a536fa6bc9c..e60955e6e7d 100644 --- a/Mage.Sets/src/mage/cards/f/FuelForTheCause.java +++ b/Mage.Sets/src/mage/cards/f/FuelForTheCause.java @@ -1,8 +1,5 @@ - - package mage.cards.f; -import java.util.UUID; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; @@ -10,21 +7,23 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.TargetSpell; +import java.util.UUID; + /** - * * @author Loki */ public final class FuelForTheCause extends CardImpl { - public FuelForTheCause (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}{U}"); + public FuelForTheCause(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{U}"); + // Counter target spell, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addEffect(new CounterTargetEffect()); - this.getSpellAbility().addEffect(new ProliferateEffect()); + this.getSpellAbility().addEffect(new ProliferateEffect().concatBy(", then")); } - public FuelForTheCause (final FuelForTheCause card) { + public FuelForTheCause(final FuelForTheCause card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/g/GratefulApparition.java b/Mage.Sets/src/mage/cards/g/GratefulApparition.java index e62269bec76..5e96f199cb7 100644 --- a/Mage.Sets/src/mage/cards/g/GratefulApparition.java +++ b/Mage.Sets/src/mage/cards/g/GratefulApparition.java @@ -26,7 +26,7 @@ public final class GratefulApparition extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - // Whenever Grateful Apparition deals combat damage to a player or planeswalker, proliferate. + // Whenever Grateful Apparition deals combat damage to a player or planeswalker, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( new ProliferateEffect(), false ).setOrPlaneswalker(true)); diff --git a/Mage.Sets/src/mage/cards/g/GrimAffliction.java b/Mage.Sets/src/mage/cards/g/GrimAffliction.java index e67c97ea19e..38adaf2ac6f 100644 --- a/Mage.Sets/src/mage/cards/g/GrimAffliction.java +++ b/Mage.Sets/src/mage/cards/g/GrimAffliction.java @@ -1,4 +1,3 @@ - package mage.cards.g; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -19,9 +18,10 @@ public final class GrimAffliction extends CardImpl { public GrimAffliction(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}"); - this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + // Put a -1/-1 counter on target creature, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance())); this.getSpellAbility().addEffect(new ProliferateEffect().concatBy(", then")); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } public GrimAffliction(final GrimAffliction card) { diff --git a/Mage.Sets/src/mage/cards/g/GuildpactInformant.java b/Mage.Sets/src/mage/cards/g/GuildpactInformant.java index 46ad1ce289d..47d833255f3 100644 --- a/Mage.Sets/src/mage/cards/g/GuildpactInformant.java +++ b/Mage.Sets/src/mage/cards/g/GuildpactInformant.java @@ -27,7 +27,7 @@ public final class GuildpactInformant extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - // Whenever Guildpact Informant deals combat damage to a player or planeswalker, proliferate. + // Whenever Guildpact Informant deals combat damage to a player or planeswalker, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( new ProliferateEffect(), false ).setOrPlaneswalker(true)); diff --git a/Mage.Sets/src/mage/cards/h/HuatlisRaptor.java b/Mage.Sets/src/mage/cards/h/HuatlisRaptor.java index ede01b7b31e..886fccf0d1a 100644 --- a/Mage.Sets/src/mage/cards/h/HuatlisRaptor.java +++ b/Mage.Sets/src/mage/cards/h/HuatlisRaptor.java @@ -26,7 +26,7 @@ public final class HuatlisRaptor extends CardImpl { // Vigilance this.addAbility(VigilanceAbility.getInstance()); - // When Huatli's Raptor enters the battlefield, proliferate. + // When Huatli's Raptor enters the battlefield, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new EntersBattlefieldTriggeredAbility(new ProliferateEffect())); } diff --git a/Mage.Sets/src/mage/cards/i/InexorableTide.java b/Mage.Sets/src/mage/cards/i/InexorableTide.java index 066b4b53d52..48bfa92cf53 100644 --- a/Mage.Sets/src/mage/cards/i/InexorableTide.java +++ b/Mage.Sets/src/mage/cards/i/InexorableTide.java @@ -1,28 +1,26 @@ - - package mage.cards.i; -import java.util.UUID; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** - * * @author Loki, North */ public final class InexorableTide extends CardImpl { - public InexorableTide (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}"); - + public InexorableTide(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}"); + // Whenever you cast a spell, proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.addAbility(new SpellCastControllerTriggeredAbility(new ProliferateEffect(), false)); } - public InexorableTide (final InexorableTide card) { + public InexorableTide(final InexorableTide card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/k/KarnsBastion.java b/Mage.Sets/src/mage/cards/k/KarnsBastion.java index c57110985fb..4b5269cd16d 100644 --- a/Mage.Sets/src/mage/cards/k/KarnsBastion.java +++ b/Mage.Sets/src/mage/cards/k/KarnsBastion.java @@ -23,7 +23,7 @@ public final class KarnsBastion extends CardImpl { // {T}: Add {C}. this.addAbility(new ColorlessManaAbility()); - // {4}, {T}: Proliferate. + // {4}, {T}: Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) Ability ability = new SimpleActivatedAbility(new ProliferateEffect(), new GenericManaCost(4)); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/k/KiorasDambreaker.java b/Mage.Sets/src/mage/cards/k/KiorasDambreaker.java index 8250c2bbe59..0dcf40c3cc7 100644 --- a/Mage.Sets/src/mage/cards/k/KiorasDambreaker.java +++ b/Mage.Sets/src/mage/cards/k/KiorasDambreaker.java @@ -22,7 +22,7 @@ public final class KiorasDambreaker extends CardImpl { this.power = new MageInt(5); this.toughness = new MageInt(6); - // When Kiora's Dreammaker enters the battlefield, proliferate. + // When Kiora's Dreammaker enters the battlefield, proliferate. (Choose any number of permanents and/or players, then give each a counter of each kind already there.) this.addAbility(new EntersBattlefieldTriggeredAbility(new ProliferateEffect())); } diff --git a/Mage.Sets/src/mage/cards/m/MartyrForTheCause.java b/Mage.Sets/src/mage/cards/m/MartyrForTheCause.java index 383101829ff..19a17d1ec8a 100644 --- a/Mage.Sets/src/mage/cards/m/MartyrForTheCause.java +++ b/Mage.Sets/src/mage/cards/m/MartyrForTheCause.java @@ -23,7 +23,7 @@ public final class MartyrForTheCause extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - // When Martyr for the Cause dies, proliferate. + // When Martyr for the Cause dies, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) this.addAbility(new DiesTriggeredAbility(new ProliferateEffect())); } diff --git a/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java b/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java index 8f4b86dc5d7..cd2952e5a43 100644 --- a/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java +++ b/Mage.Sets/src/mage/cards/m/MerfolkSkydiver.java @@ -40,7 +40,7 @@ public final class MerfolkSkydiver extends CardImpl { ability.addTarget(new TargetControlledCreaturePermanent()); this.addAbility(ability); - // {3}{G}{U}: Proliferate. + // {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}"))); } diff --git a/Mage.Sets/src/mage/cards/p/PlaguemawBeast.java b/Mage.Sets/src/mage/cards/p/PlaguemawBeast.java index 8bbb6cb49ec..2a5dabc4032 100644 --- a/Mage.Sets/src/mage/cards/p/PlaguemawBeast.java +++ b/Mage.Sets/src/mage/cards/p/PlaguemawBeast.java @@ -1,7 +1,5 @@ - package mage.cards.p; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -13,11 +11,13 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; -import static mage.filter.StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + +import static mage.filter.StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT; + /** - * * @author Loki */ public final class PlaguemawBeast extends CardImpl { @@ -28,6 +28,8 @@ public final class PlaguemawBeast extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(3); + + // {T}, Sacrifice a creature: Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect(), new TapSourceCost()); ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/p/PlanewideCelebration.java b/Mage.Sets/src/mage/cards/p/PlanewideCelebration.java index 503edf298c7..bc782470193 100644 --- a/Mage.Sets/src/mage/cards/p/PlanewideCelebration.java +++ b/Mage.Sets/src/mage/cards/p/PlanewideCelebration.java @@ -39,7 +39,7 @@ public final class PlanewideCelebration extends CardImpl { this.getSpellAbility().addMode(mode); // • Proliferate. - this.getSpellAbility().addMode(new Mode(new ProliferateEffect())); + this.getSpellAbility().addMode(new Mode(new ProliferateEffect(false))); // • You gain 4 life. this.getSpellAbility().addMode(new Mode(new GainLifeEffect(4))); diff --git a/Mage.Sets/src/mage/cards/p/PollenbrightDruid.java b/Mage.Sets/src/mage/cards/p/PollenbrightDruid.java index 2669624b02a..cb51f26780d 100644 --- a/Mage.Sets/src/mage/cards/p/PollenbrightDruid.java +++ b/Mage.Sets/src/mage/cards/p/PollenbrightDruid.java @@ -35,7 +35,7 @@ public final class PollenbrightDruid extends CardImpl { ); ability.addTarget(new TargetCreaturePermanent()); - // • Proliferate. + // • Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) ability.addMode(new Mode(new ProliferateEffect())); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java b/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java index fd13160d275..6c77689b4a1 100644 --- a/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java +++ b/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java @@ -55,12 +55,9 @@ public final class RoaleskApexHybrid extends CardImpl { ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); - // When Roalsk dies, proliferate, then proliferate again. - ability = new DiesTriggeredAbility(new ProliferateEffect().setText("proliferate,")); - ability.addEffect(new ProliferateEffect().setText( - "then proliferate again (Choose any number of permanents and/or players, " + - "then give each another counter of each kind already there. Then do it again.)" - )); + // When Roalsk dies, proliferate, then proliferate again. (Choose any number of permanents and/or players, then give each another counter of each kind already there. Then do it again.) + ability = new DiesTriggeredAbility(new ProliferateEffect(false)); + ability.addEffect(new ProliferateEffect(" again", true).concatBy(", then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SpreadTheSickness.java b/Mage.Sets/src/mage/cards/s/SpreadTheSickness.java index 1b56e195a49..eb97e23df1c 100644 --- a/Mage.Sets/src/mage/cards/s/SpreadTheSickness.java +++ b/Mage.Sets/src/mage/cards/s/SpreadTheSickness.java @@ -1,8 +1,5 @@ - - package mage.cards.s; -import java.util.UUID; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; @@ -10,21 +7,23 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author Loki */ public final class SpreadTheSickness extends CardImpl { - public SpreadTheSickness (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}"); + public SpreadTheSickness(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}"); + // Destroy target creature, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.getSpellAbility().addEffect(new DestroyTargetEffect()); - this.getSpellAbility().addEffect(new ProliferateEffect()); + this.getSpellAbility().addEffect(new ProliferateEffect().concatBy(", then")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } - public SpreadTheSickness (final SpreadTheSickness card) { + public SpreadTheSickness(final SpreadTheSickness card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/t/TezzeretsGambit.java b/Mage.Sets/src/mage/cards/t/TezzeretsGambit.java index d616e448d70..c481b3bc77b 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretsGambit.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretsGambit.java @@ -1,24 +1,24 @@ - package mage.cards.t; -import java.util.UUID; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** - * * @author North */ public final class TezzeretsGambit extends CardImpl { public TezzeretsGambit(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{U/P}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U/P}"); + // Draw two cards, then proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); - this.getSpellAbility().addEffect(new ProliferateEffect()); + this.getSpellAbility().addEffect(new ProliferateEffect().concatBy(", then")); } public TezzeretsGambit(final TezzeretsGambit card) { diff --git a/Mage.Sets/src/mage/cards/t/ThroneOfGeth.java b/Mage.Sets/src/mage/cards/t/ThroneOfGeth.java index 329851cf1b1..b71086bd713 100644 --- a/Mage.Sets/src/mage/cards/t/ThroneOfGeth.java +++ b/Mage.Sets/src/mage/cards/t/ThroneOfGeth.java @@ -1,8 +1,5 @@ - - package mage.cards.t; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -16,8 +13,9 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** - * * @author Loki */ public final class ThroneOfGeth extends CardImpl { @@ -30,9 +28,9 @@ public final class ThroneOfGeth extends CardImpl { public ThroneOfGeth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); - // {T}, Sacrifice an artifact: Proliferate. + // {T}, Sacrifice an artifact: Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect(), new TapSourceCost()); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/t/Thrummingbird.java b/Mage.Sets/src/mage/cards/t/Thrummingbird.java index 9156fc33e5a..15be366d090 100644 --- a/Mage.Sets/src/mage/cards/t/Thrummingbird.java +++ b/Mage.Sets/src/mage/cards/t/Thrummingbird.java @@ -1,8 +1,5 @@ - - package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.counter.ProliferateEffect; @@ -12,20 +9,25 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; +import java.util.UUID; + /** * @author Loki, nantuko, North */ public final class Thrummingbird extends CardImpl { public Thrummingbird(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.subtype.add(SubType.BIRD); this.subtype.add(SubType.HORROR); this.power = new MageInt(1); this.toughness = new MageInt(1); + // Flying this.addAbility(FlyingAbility.getInstance()); + + // Whenever Thrummingbird deals combat damage to a player, proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new ProliferateEffect(), false)); } diff --git a/Mage.Sets/src/mage/cards/v/ViralDrake.java b/Mage.Sets/src/mage/cards/v/ViralDrake.java index 251ae892463..ea734a75cb4 100644 --- a/Mage.Sets/src/mage/cards/v/ViralDrake.java +++ b/Mage.Sets/src/mage/cards/v/ViralDrake.java @@ -1,7 +1,5 @@ - package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -14,21 +12,27 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; +import java.util.UUID; + /** - * * @author North */ public final class ViralDrake extends CardImpl { public ViralDrake(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); this.subtype.add(SubType.DRAKE); this.power = new MageInt(1); this.toughness = new MageInt(4); + // Flying this.addAbility(FlyingAbility.getInstance()); + + // Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) this.addAbility(InfectAbility.getInstance()); + + // {3}{U}: Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect(), new ManaCostsImpl("{3}{U}"))); } diff --git a/Mage.Sets/src/mage/cards/v/VoltCharge.java b/Mage.Sets/src/mage/cards/v/VoltCharge.java index 06cf552162c..4a711c47c53 100644 --- a/Mage.Sets/src/mage/cards/v/VoltCharge.java +++ b/Mage.Sets/src/mage/cards/v/VoltCharge.java @@ -1,7 +1,5 @@ - package mage.cards.v; -import java.util.UUID; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.counter.ProliferateEffect; import mage.cards.CardImpl; @@ -9,19 +7,20 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetAnyTarget; +import java.util.UUID; + /** - * * @author North */ public final class VoltCharge extends CardImpl { public VoltCharge(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}"); - - this.getSpellAbility().addTarget(new TargetAnyTarget()); + // Volt Charge deals 3 damage to any target. Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.) this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addEffect(new ProliferateEffect()); + this.getSpellAbility().addTarget(new TargetAnyTarget()); } public VoltCharge(final VoltCharge card) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/counter/ProliferateEffect.java b/Mage/src/main/java/mage/abilities/effects/common/counter/ProliferateEffect.java index 94d9b30cb43..ca7dd57ae4b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/counter/ProliferateEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/counter/ProliferateEffect.java @@ -1,9 +1,5 @@ package mage.abilities.effects.common.counter; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; @@ -14,14 +10,30 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetPermanentOrPlayerWithCounter; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * @author nantuko */ public class ProliferateEffect extends OneShotEffect { public ProliferateEffect() { + this("", true); + } + + public ProliferateEffect(boolean showAbilityHint) { + this("", showAbilityHint); + } + + public ProliferateEffect(String afterText, boolean showAbilityHint) { super(Outcome.Benefit); - staticText = "proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of each kind already there.)"; + staticText = "proliferate" + afterText; + if (showAbilityHint) { + staticText += ". (You choose any number of permanents and/or players with counters on them, then give each another counter of each kind already there.)"; + } } public ProliferateEffect(ProliferateEffect effect) {