Fixed proliferate texts

This commit is contained in:
Oleg Agafonov 2019-04-19 09:24:22 +04:00
parent ac286a586d
commit ec202e1bc3
28 changed files with 105 additions and 95 deletions

View file

@ -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()));
}

View file

@ -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 <i>(Choose any number of permanents and/or players, then give each another counter of each kind already there. Then do it again.)</i>"));
ability.addEffect(new ProliferateEffect(" again", true).concatBy(", then"));
this.addAbility(ability);
}

View file

@ -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));

View file

@ -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);
}

View file

@ -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());

View file

@ -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

View file

@ -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
));

View file

@ -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);
}

View file

@ -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));

View file

@ -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) {

View file

@ -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));

View file

@ -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()));
}

View file

@ -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);
}

View file

@ -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);

View file

@ -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()));
}

View file

@ -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()));
}

View file

@ -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}")));
}

View file

@ -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);

View file

@ -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)));

View file

@ -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);
}

View file

@ -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 <i>(Choose any number of permanents and/or players, " +
"then give each another counter of each kind already there. Then do it again.)</i>"
));
// 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);
}

View file

@ -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);
}

View file

@ -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) {

View file

@ -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);

View file

@ -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));
}

View file

@ -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}")));
}

View file

@ -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) {

View file

@ -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. <i>(You choose any number of permanents and/or players with counters on them, then give each another counter of each kind already there.)</i>";
staticText = "proliferate" + afterText;
if (showAbilityHint) {
staticText += ". <i>(You choose any number of permanents and/or players with counters on them, then give each another counter of each kind already there.)</i>";
}
}
public ProliferateEffect(ProliferateEffect effect) {