more text fixes

This commit is contained in:
Evan Kranzler 2017-10-06 18:28:22 -04:00
parent 3baabe2534
commit bc2bfba02a
37 changed files with 124 additions and 126 deletions

View file

@ -87,7 +87,7 @@ public class AgelessSentinels extends CardImpl {
public AgelessSentinelsEffect() {
super(Duration.WhileOnBattlefield, Outcome.BecomeCreature);
staticText = "it becomes a Bird Giant, ";
staticText = "it becomes a Bird Giant,";
}
public AgelessSentinelsEffect(final AgelessSentinelsEffect effect) {

View file

@ -109,6 +109,6 @@ class AlphaStatusDynamicValue implements DynamicValue {
@Override
public String getMessage() {
return "each other creature on the battlefield that shares a creature type with it";
return "other creature on the battlefield that shares a creature type with it";
}
}

View file

@ -52,15 +52,17 @@ import mage.game.permanent.Permanent;
public class AncientOoze extends CardImpl {
public AncientOoze(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}");
this.subtype.add(SubType.OOZE);
this.color.setGreen(true);
this.color.setGreen(true);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Ancient Ooze's power and toughness are each equal to the total converted mana cost of other creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new AncientOozePowerToughnessValue(), Duration.EndOfGame)));
// Ancient Ooze's power and toughness are each equal to the total converted mana cost of other creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new AncientOozePowerToughnessValue(), Duration.EndOfGame)
.setText("{this}'s power and toughness are each equal to the total converted mana cost of other creatures you control.")
));
}
public AncientOoze(final AncientOoze card) {
@ -74,12 +76,12 @@ public class AncientOoze extends CardImpl {
}
class AncientOozePowerToughnessValue implements DynamicValue {
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
int value = 0;
for(Permanent creature : game.getBattlefield().getActivePermanents(new FilterControlledCreaturePermanent(), sourceAbility.getControllerId(), game)){
if(creature != null && !sourceAbility.getSourceId().equals(creature.getId())){
for (Permanent creature : game.getBattlefield().getActivePermanents(new FilterControlledCreaturePermanent(), sourceAbility.getControllerId(), game)) {
if (creature != null && !sourceAbility.getSourceId().equals(creature.getId())) {
value += creature.getConvertedManaCost();
}
}

View file

@ -52,21 +52,21 @@ import mage.target.common.TargetControlledCreaturePermanent;
public class BlackCarriage extends CardImpl {
public BlackCarriage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
this.subtype.add(SubType.HORSE);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Trample
this.addAbility(TrampleAbility.getInstance());
// Black Carriage doesn't untap during your untap step.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// Sacrifice a creature: Untap Black Carriage. Activate this ability only during your upkeep.
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new UntapSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("a creature"))),
new IsStepCondition(PhaseStep.UPKEEP), null));
new IsStepCondition(PhaseStep.UPKEEP), "Sacrifice a creature: Untap {this}. Activate this ability only during your upkeep."));
}
public BlackCarriage(final BlackCarriage card) {

View file

@ -53,7 +53,7 @@ import java.util.UUID;
*/
public class BrownOuphe extends CardImpl {
private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source");
private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source");
static {
filter.add(new ArtifactSourcePredicate());

View file

@ -42,10 +42,12 @@ import mage.target.TargetPlayer;
public class CabalConditioning extends CardImpl {
public CabalConditioning(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{6}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{6}{B}");
// Any number of target players each discard a number of cards equal to the highest converted mana cost among permanents you control.
this.getSpellAbility().addEffect(new DiscardTargetEffect(new HighestConvertedManaCostValue()));
this.getSpellAbility().addEffect(new DiscardTargetEffect(new HighestConvertedManaCostValue())
.setText("Any number of target players each discard a number of cards equal to the highest converted mana cost among permanents you control.")
);
this.getSpellAbility().addTarget(new TargetPlayer(0, Integer.MAX_VALUE, false));
}

View file

@ -53,7 +53,7 @@ import mage.game.permanent.Permanent;
public class ClergyOfTheHolyNimbus extends CardImpl {
public ClergyOfTheHolyNimbus(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.CLERIC);
this.power = new MageInt(1);
@ -61,7 +61,7 @@ public class ClergyOfTheHolyNimbus extends CardImpl {
// If Clergy of the Holy Nimbus would be destroyed, regenerate it.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new ClergyOfTheHolyNimbusReplacementEffect()));
// {1}: Clergy 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("{1}")));
}
@ -90,7 +90,7 @@ class ClergyOfTheHolyNimbusReplacementEffect extends ReplacementEffectImpl {
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Permanent ClergyOfTheHolyNimbus = game.getPermanent(event.getTargetId());
if (ClergyOfTheHolyNimbus != null
if (ClergyOfTheHolyNimbus != null
&& event.getAmount() == 0) { // 1=noRegen
if (ClergyOfTheHolyNimbus.regenerate(source.getSourceId(), game)) {
game.informPlayers(source.getSourceObject(game).getName() + " has been regenerated.");
@ -116,4 +116,4 @@ class ClergyOfTheHolyNimbusReplacementEffect extends ReplacementEffectImpl {
return new ClergyOfTheHolyNimbusReplacementEffect(this);
}
}
}

View file

@ -45,7 +45,7 @@ import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
import mage.target.common.TargetControlledCreaturePermanent;
/**
*
@ -59,7 +59,7 @@ public class CoalitionFlag extends CardImpl {
this.subtype.add(SubType.AURA);
// Enchant creature you control
TargetPermanent auraTarget = new TargetCreaturePermanent();
TargetPermanent auraTarget = new TargetControlledCreaturePermanent();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
Ability ability = new EnchantAbility(auraTarget.getTargetName());

View file

@ -71,6 +71,7 @@ public class DaughterOfAutumn extends CardImpl {
// {W}: The next 1 damage that would be dealt to target white creature this turn is dealt to Daughter of Autumn instead.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DaughterOfAutumnPreventDamageTargetEffect(Duration.EndOfTurn, 1), new ManaCostsImpl("{W}"));
ability.addTarget(new TargetCreaturePermanent(filter));
this.addAbility(ability);
}
public DaughterOfAutumn(final DaughterOfAutumn card) {

View file

@ -50,10 +50,12 @@ public class DivineLight extends CardImpl {
}
public DivineLight(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{W}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{W}");
// Prevent all damage that would be dealt this turn to creatures you control.
this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, filter));
this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, filter)
.setText("Prevent all damage that would be dealt this turn to creatures you control.")
);
}
public DivineLight(final DivineLight card) {

View file

@ -46,18 +46,18 @@ import mage.filter.predicate.mageobject.ColorPredicate;
/**
*
* @author LoneFox
*
*/
public class DwarvenPatrol extends CardImpl {
private static final FilterSpell filter = new FilterSpell("nonred spell");
private static final FilterSpell filter = new FilterSpell("a nonred spell");
static {
filter.add(Predicates.not(new ColorPredicate(ObjectColor.RED)));
}
public DwarvenPatrol(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
this.subtype.add(SubType.DWARF);
this.power = new MageInt(4);
this.toughness = new MageInt(2);

View file

@ -48,7 +48,9 @@ public class GreatDefender extends CardImpl {
// Target creature gets +0/+X until end of turn, where X is its converted mana cost.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BoostTargetEffect(new StaticValue(0), new TargetConvertedManaCost(), Duration.EndOfTurn, true));
this.getSpellAbility().addEffect(new BoostTargetEffect(new StaticValue(0), new TargetConvertedManaCost(), Duration.EndOfTurn, true)
.setText("Target creature gets +0/+X until end of turn, where X is its converted mana cost.")
);
}
public GreatDefender(final GreatDefender card) {

View file

@ -52,11 +52,10 @@ import mage.players.Player;
public class IceCave extends CardImpl {
public IceCave(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}");
// Whenever a player casts a spell, any other player may pay that spell's mana cost. If a player does, counter the spell. (Mana cost includes color.)
this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), StaticFilters.FILTER_SPELL, false, SetTargetPointer.SPELL));
this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), StaticFilters.FILTER_A_SPELL, false, SetTargetPointer.SPELL));
}
public IceCave(final IceCave card) {
@ -90,17 +89,17 @@ class IceCaveEffect extends OneShotEffect {
Player controller = game.getPlayer(source.getControllerId());
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
Spell spell = (Spell) game.getStack().getStackObject(targetPointer.getFirst(game, source));
if(sourcePermanent != null && spell != null && controller != null) {
if (sourcePermanent != null && spell != null && controller != null) {
Player spellController = game.getPlayer(spell.getControllerId());
Cost cost = new ManaCostsImpl(spell.getSpellAbility().getManaCosts().getText());
if(spellController != null) {
if (spellController != null) {
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
if(player != null && player != spellController) {
if (player != null && player != spellController) {
cost.clearPaid();
if(cost.canPay(source, source.getSourceId(), player.getId(), game)
if (cost.canPay(source, source.getSourceId(), player.getId(), game)
&& player.chooseUse(outcome, "Pay " + cost.getText() + " to counter " + spell.getIdName() + '?', source, game)) {
if(cost.pay(source, game, source.getSourceId(), playerId, false, null)) {
if (cost.pay(source, game, source.getSourceId(), playerId, false, null)) {
game.informPlayers(player.getLogName() + " pays" + cost.getText() + " to counter " + spell.getIdName() + '.');
game.getStack().counter(spell.getId(), source.getSourceId(), game);
return true;

View file

@ -47,7 +47,7 @@ import mage.target.common.TargetCreaturePermanent;
public class Illuminate extends CardImpl {
public Illuminate(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
// Kicker {2}{R} and/or {3}{U}
KickerAbility kickerAbility = new KickerAbility("{2}{R}");
@ -57,13 +57,13 @@ public class Illuminate extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(new ManacostVariableValue()));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DamageTargetControllerEffect(new ManacostVariableValue()),
new KickedCostCondition("{2}{R}"),
"If {this} was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
new DamageTargetControllerEffect(new ManacostVariableValue()),
new KickedCostCondition("{2}{R}"),
"If {this} was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new DrawCardSourceControllerEffect(new ManacostVariableValue()),
new KickedCostCondition("{3}{U}"),
"If {this} was kicked with its {3}{U} kicker, you draw X cards."));
new DrawCardSourceControllerEffect(new ManacostVariableValue()),
new KickedCostCondition("{3}{U}"),
" If {this} was kicked with its {3}{U} kicker, you draw X cards."));
}

View file

@ -53,11 +53,11 @@ import mage.target.targetpointer.SecondTargetPointer;
public class Jilt extends CardImpl {
public Jilt(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// Kicker {1}{R}
this.addAbility(new KickerAbility("{1}{R}"));
// Return target creature to its owner's hand. If Jilt was kicked, it deals 2 damage to another target creature.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
Effect effect = new ConditionalOneShotEffect(
@ -66,11 +66,11 @@ public class Jilt extends CardImpl {
"If {this} was kicked, it deals 2 damage to another target creature");
effect.setTargetPointer(new SecondTargetPointer());
this.getSpellAbility().addEffect(effect);
Target target = new TargetCreaturePermanent(new FilterCreaturePermanent("Target Creature: returned to Hand"));
Target target = new TargetCreaturePermanent();
target.setTargetTag(1);
this.getSpellAbility().addTarget(target);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof SpellAbility && KickedCondition.instance.apply(game, ability)) {

View file

@ -59,26 +59,26 @@ import java.util.UUID;
public class Jokulmorder extends CardImpl {
public Jokulmorder(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}{U}");
this.subtype.add(SubType.LEVIATHAN);
this.power = new MageInt(12);
this.toughness = new MageInt(12);
// Trample
this.addAbility(TrampleAbility.getInstance());
// Jokulmorder enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
// When Jokulmorder enters the battlefield, sacrifice it unless you sacrifice five lands.
Effect effect = new SacrificeSourceUnlessPaysEffect(
new SacrificeTargetCost(new TargetControlledPermanent(5, 5, new FilterControlledLandPermanent("five lands"), true)));
effect.setText("sacrifice it unless you sacrifice five lands");
this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false));
// Jokulmorder doesn't untap during your untap step.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
// Whenever you play an Island, you may untap Jokulmorder.
this.addAbility(new JokulmorderTriggeredAbility());
}
@ -122,6 +122,6 @@ class JokulmorderTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "When you play an Island, you may untap {this}";
return "Whenever you play an Island, you may untap {this}";
}
}

View file

@ -32,20 +32,15 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.costs.Cost;
import mage.abilities.costs.CostImpl;
import mage.abilities.TriggeredAbility;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.CumulativeUpkeepAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.players.Player;
@ -60,7 +55,7 @@ import mage.target.common.TargetOpponent;
public class KarplusanMinotaur extends CardImpl {
public KarplusanMinotaur(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
this.subtype.add(SubType.MINOTAUR);
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(3);
@ -68,7 +63,7 @@ public class KarplusanMinotaur extends CardImpl {
// Cumulative upkeep-Flip a coin.
this.addAbility(new CumulativeUpkeepAbility(new KarplusanMinotaurCost()));
// Whenever you win a coin flip, Karplusan Minotaur deals 1 damage to target creature or player.
Ability abilityWin = new KarplusanMinotaurFlipWinTriggeredAbility();
abilityWin.addTarget(new TargetCreatureOrPlayer());
@ -80,23 +75,22 @@ public class KarplusanMinotaur extends CardImpl {
abilityLose.addTarget(new TargetCreatureOrPlayer());
this.addAbility(abilityLose);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof KarplusanMinotaurFlipLoseTriggeredAbility) {
Player controller = game.getPlayer(ability.getControllerId());
if(controller != null) {
if (controller != null) {
UUID opponentId = null;
if(game.getOpponents(controller.getId()).size() > 1) {
if (game.getOpponents(controller.getId()).size() > 1) {
Target target = new TargetOpponent(true);
if(controller.chooseTarget(Outcome.Neutral, target, ability, game)) {
if (controller.chooseTarget(Outcome.Neutral, target, ability, game)) {
opponentId = target.getFirstTarget();
}
}
else {
} else {
opponentId = game.getOpponents(controller.getId()).iterator().next();
}
if(opponentId != null) {
if (opponentId != null) {
ability.getTargets().get(0).setTargetController(opponentId);
}
}
@ -171,12 +165,12 @@ class KarplusanMinotaurFlipLoseTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever you lose a coin flip, {this} deals 1 damage to target creature or player of an opponent's choice";
return "Whenever you lose a coin flip, {this} deals 1 damage to target creature or player of an opponent's choice.";
}
}
class KarplusanMinotaurCost extends CostImpl {
KarplusanMinotaurCost() {
this.text = "Flip a coin";
}
@ -188,7 +182,7 @@ class KarplusanMinotaurCost extends CostImpl {
controller.flipCoin(game);
this.paid = true;
return true;
}
}
return false;
}
@ -202,7 +196,7 @@ class KarplusanMinotaurCost extends CostImpl {
}
return false;
}
@Override
public KarplusanMinotaurCost copy() {
return new KarplusanMinotaurCost();

View file

@ -43,12 +43,12 @@ import mage.target.TargetPlayer;
public class LastCaress extends CardImpl {
public LastCaress(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1));
this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addEffect(new GainLifeEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new GainLifeEffect(1).setText("and you gain 1 life"));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card"));
}
public LastCaress(final LastCaress card) {

View file

@ -52,33 +52,33 @@ import java.util.UUID;
* @author fireshoes
*/
public class MinotaurTactician extends CardImpl {
private static final FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent();
private static final FilterControlledCreaturePermanent filterBlue = new FilterControlledCreaturePermanent();
static {
filterWhite.add(new ColorPredicate(ObjectColor.WHITE));
filterBlue.add(new ColorPredicate(ObjectColor.BLUE));
}
static final private String ruleWhite = "{this} gets +1/+1 as long as you control another white creature";
static final private String ruleBlue = "{this} gets +1/+1 as long as you control another white creature";
static final private String ruleBlue = "{this} gets +1/+1 as long as you control another blue creature";
public MinotaurTactician(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.subtype.add(SubType.MINOTAUR);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
// Haste
this.addAbility(HasteAbility.getInstance());
// Minotaur Tactician gets +1/+1 as long as you control a white creature.
Condition conditionWhite = new PermanentsOnTheBattlefieldCondition(filterWhite);
Effect effectWhite = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionWhite, ruleWhite);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effectWhite));
// Minotaur Tactician gets +1/+1 as long as you control a blue creature.
Condition conditionBlue = new PermanentsOnTheBattlefieldCondition(filterBlue);
Effect effectBlue = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionBlue, ruleBlue);

View file

@ -28,11 +28,9 @@
package mage.cards.p;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility;
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.MultipliedValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@ -59,7 +57,9 @@ public class PhyrexianEtchings extends CardImpl {
this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.AGE)), false));
// When Phyrexian Etchings is put into a graveyard from the battlefield, you lose 2 life for each age counter on it.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))));
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))
.setText("When {this} is put into a graveyard from the battlefield, you lose 2 life for each age counter on it")
));
}
public PhyrexianEtchings(final PhyrexianEtchings card) {

View file

@ -135,6 +135,6 @@ class RimefeatherOwlEffect extends ContinuousEffectImpl {
@Override
public String getText(Mode mode) {
return "All nonland permanents are legendary";
return "Permanents with ice counters on them are snow.";
}
}

View file

@ -37,10 +37,9 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
import mage.target.common.TargetEnchantmentPermanent;
/**
*
@ -49,14 +48,14 @@ import java.util.UUID;
public class RonomUnicorn extends CardImpl {
public RonomUnicorn(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.subtype.add(SubType.UNICORN);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Sacrifice Ronom Unicorn: Destroy target enchantment.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new SacrificeSourceCost());
ability.addTarget(new TargetPermanent(StaticFilters.ARTIFACT_OR_ENCHANTMENT_PERMANENT));
ability.addTarget(new TargetEnchantmentPermanent());
this.addAbility(ability);
}

View file

@ -46,7 +46,7 @@ import mage.target.common.TargetActivatedOrTriggeredAbility;
*/
public class Rust extends CardImpl {
private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source");
private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source");
static {
filter.add(new ArtifactSourcePredicate());

View file

@ -43,13 +43,13 @@ import mage.target.common.TargetLandPermanent;
public class ShimmeringMirage extends CardImpl {
public ShimmeringMirage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// Target land becomes the basic land type of your choice until end of turn.
this.getSpellAbility().addEffect(new BecomesBasicLandTargetEffect(Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetLandPermanent());
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card"));
}
public ShimmeringMirage(final ShimmeringMirage card) {

View file

@ -42,13 +42,14 @@ import mage.target.TargetPermanent;
public class SurgingAether extends CardImpl {
public SurgingAether(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{U}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
// Ripple 4
this.addAbility(new RippleAbility(4));
// Return target permanent to its owner's hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent());
// Ripple 4
this.addAbility(new RippleAbility(4));
}
public SurgingAether(final SurgingAether card) {

View file

@ -42,13 +42,12 @@ import mage.filter.common.FilterEnchantmentPermanent;
public class TranquilPath extends CardImpl {
public TranquilPath(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{G}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}");
// Destroy all enchantments.
this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterEnchantmentPermanent("enchantments")));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("<br><br>Draw a card"));
}
public TranquilPath(final TranquilPath card) {

View file

@ -45,7 +45,7 @@ import mage.target.common.TargetCreaturePermanent;
public class UnnaturalSelection extends CardImpl {
public UnnaturalSelection(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
// {1}: Choose a creature type other than Wall. Target creature becomes that type until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesChosenCreatureTypeTargetEffect(true), new GenericManaCost(1));

View file

@ -78,7 +78,7 @@ public class CantBeRegeneratedSourceEffect extends ContinuousRuleModifyingEffect
return staticText;
}
StringBuilder sb = new StringBuilder();
sb.append(" {this} can't be regenerated");
sb.append("{this} can't be regenerated");
if (!duration.toString().isEmpty()) {
sb.append(' ');
if (duration == Duration.EndOfTurn) {

View file

@ -57,7 +57,7 @@ public class ExileSourceEffect extends OneShotEffect {
*/
public ExileSourceEffect(boolean toUniqueExileZone) {
super(Outcome.Exile);
staticText = "Exile {this}";
staticText = "exile {this}";
this.toUniqueExileZone = toUniqueExileZone;
}

View file

@ -117,7 +117,7 @@ public class RevealLibraryPutIntoHandEffect extends OneShotEffect {
}
private String setText() {
StringBuilder sb = new StringBuilder("Reveal the top ");
StringBuilder sb = new StringBuilder("reveal the top ");
sb.append(CardUtil.numberToText(amountCards.toString())).append(" cards of your library. Put all ");
sb.append(filter.getMessage());
sb.append(" revealed this way into your hand and the rest ");

View file

@ -191,7 +191,7 @@ public class BecomesBasicLandTargetEffect extends ContinuousEffectImpl {
private String setText() {
StringBuilder sb = new StringBuilder();
if (chooseLandType) {
sb.append("Target land becomes the basic land type of your choice ");
sb.append("Target land becomes the basic land type of your choice");
} else {
sb.append("Target land becomes a ");
int i = 1;

View file

@ -26,7 +26,7 @@ public class BecomesChosenCreatureTypeTargetEffect extends OneShotEffect {
super(Outcome.BoostCreature);
this.nonWall = nonWall;
if(nonWall) {
staticText = "choose a creature type other than wall, target creature's type becomes that type until end of turn";
staticText = "choose a creature type other than wall. Target creature becomes that type until end of turn";
}
else {
staticText = "target creature becomes the creature type of your choice until end of turn";

View file

@ -52,12 +52,13 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
/**
* Set the color of a spell or permanent
*
* @param duration
*
* @param duration
*/
public BecomesColorTargetEffect(Duration duration) {
this(null, duration, null);
}
public BecomesColorTargetEffect(ObjectColor setColor, Duration duration) {
this(setColor, duration, null);
}
@ -78,7 +79,7 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
Player controller = game.getPlayer(source.getControllerId());
if (controller == null) {
return;
}
}
if (setColor == null) {
ChoiceColor choice = new ChoiceColor();
while (!choice.isChosen()) {
@ -95,9 +96,8 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
if (!game.isSimulation()) {
game.informPlayers(controller.getLogName() + " has chosen the color: " + setColor.toString());
}
}
}
super.init(source, game); //To change body of generated methods, choose Tools | Templates.
}
@ -109,11 +109,11 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
}
if (setColor != null) {
boolean objectFound = false;
for (UUID targetId :targetPointer.getTargets(game, source)) {
for (UUID targetId : targetPointer.getTargets(game, source)) {
MageObject targetObject = game.getObject(targetId);
if (targetObject != null) {
objectFound = true;
targetObject.getColor(game).setColor(setColor);
targetObject.getColor(game).setColor(setColor);
}
}
if (!objectFound && this.getDuration() == Duration.Custom) {
@ -143,7 +143,9 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
} else {
sb.append(setColor.getDescription());
}
sb.append(' ').append(duration.toString());
if (!duration.toString().equals("")) {
sb.append(' ').append(duration.toString());
}
return sb.toString();
}
}

View file

@ -32,7 +32,6 @@ import mage.MageObject;
import mage.ObjectColor;
import mage.abilities.StaticAbility;
import mage.cards.Card;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterCard;
@ -90,7 +89,7 @@ public class ProtectionAbility extends StaticAbility {
@Override
public String getRule() {
return "Protection from " + filter.getMessage() + (removeAuras ? "" : ". This effect doesn't remove auras.");
return "protection from " + filter.getMessage() + (removeAuras ? "" : ". This effect doesn't remove auras.");
}
public boolean canTarget(MageObject source, Game game) {

View file

@ -56,13 +56,11 @@ public class RippleAbility extends TriggeredAbilityImpl {
return new RippleAbility(this);
}
@Override
public String getRule() {
return "Ripple " + rippleNumber + " <i>(When you cast this spell, you may reveal the top " + CardUtil.numberToText(rippleNumber) + " cards of your library. You may cast any revealed cards with the same name as this spell without paying their mana costs. Put the rest on the bottom of your library.)</i>";
return "ripple " + rippleNumber + " <i>(When you cast this spell, you may reveal the top " + CardUtil.numberToText(rippleNumber) + " cards of your library. You may cast any revealed cards with the same name as this spell without paying their mana costs. Put the rest on the bottom of your library.)</i>";
}
}
class RippleEffect extends OneShotEffect {
@ -84,13 +82,12 @@ class RippleEffect extends OneShotEffect {
return new RippleEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
MageObject sourceObject = game.getObject(source.getSourceId());
if (player != null) {
if (!player.chooseUse(Outcome.Neutral, "Reveal " + rippleNumber + " cards from the top of your library?", source, game)){
if (!player.chooseUse(Outcome.Neutral, "Reveal " + rippleNumber + " cards from the top of your library?", source, game)) {
return true; //fizzle
}
// reveal to/**/p cards from library
@ -123,4 +120,3 @@ class RippleEffect extends OneShotEffect {
}
}

View file

@ -69,6 +69,7 @@ public final class StaticFilters {
= (FilterSpell) new FilterSpell("noncreature spell").add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
public static final FilterSpell FILTER_SPELL = new FilterSpell();
public static final FilterSpell FILTER_A_SPELL = new FilterSpell("a spell");
public static final FilterSpell FILTER_INSTANT_OR_SORCERY_SPELL = new FilterSpell("instant or sorcery spell");
public static final FilterSpell FILTER_INSTANT_OR_SORCERY_SPELLS = new FilterSpell("instant or sorcery spells");

View file

@ -24,8 +24,7 @@
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
*/
package mage.filter.common;
import mage.filter.predicate.permanent.BlockingPredicate;
@ -37,7 +36,7 @@ import mage.filter.predicate.permanent.BlockingPredicate;
public class FilterBlockingCreature extends FilterCreaturePermanent {
public FilterBlockingCreature() {
this("Blocking creature");
this("blocking creature");
}
public FilterBlockingCreature(String name) {