mirror of
https://github.com/correl/mage.git
synced 2025-04-01 19:07:57 -09:00
[MOC] various text fixes
This commit is contained in:
parent
9b7dc33061
commit
c4ebe4ae8b
20 changed files with 67 additions and 65 deletions
|
@ -36,7 +36,8 @@ public final class BrightPalmSoulAwakener extends CardImpl {
|
|||
this.addAbility(backupAbility);
|
||||
|
||||
// Whenever this creature attacks, double the number of +1/+1 counters on target creature. That creature can't be blocked by creatures with power 2 or less this turn.
|
||||
Ability ability = new AttacksTriggeredAbility(new BrightPalmSoulAwakenerEffect());
|
||||
Ability ability = new AttacksTriggeredAbility(new BrightPalmSoulAwakenerEffect())
|
||||
.setTriggerPhrase("Whenever this creature attacks, ");
|
||||
ability.addEffect(new CantBeBlockedTargetEffect(
|
||||
DauntAbility.getFilter(), Duration.EndOfTurn
|
||||
).setText("that creature can't be blocked by creatures with power 2 or less this turn"));
|
||||
|
|
|
@ -41,7 +41,8 @@ public final class DarksteelSplicer extends CardImpl {
|
|||
|
||||
// Whenever Darksteel Splicer or another nontoken Phyrexian enters the battlefield under your control, create X 3/3 colorless Phyrexian Golem artifact creature tokens, where X is the number of opponents you have.
|
||||
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(
|
||||
new CreateTokenEffect(new PhyrexianGolemToken(), OpponentsCount.instance),
|
||||
new CreateTokenEffect(new PhyrexianGolemToken(), OpponentsCount.instance)
|
||||
.setText("create X 3/3 colorless Phyrexian Golem artifact creature tokens, where X is the number of opponents you have"),
|
||||
filter, false, true
|
||||
));
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ public final class FiligreeVector extends CardImpl {
|
|||
// When Filigree Vector enters the battlefield, put a +1/+1 counter on each of any number of target creatures and a charge counter on each of any number of target artifacts.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance())
|
||||
.setText("put a +1/+1 counter on each of any number of target creatures")
|
||||
);
|
||||
ability.addEffect(new AddCountersTargetEffect(CounterType.CHARGE.createInstance())
|
||||
.setText("and a charge counter on each of any number of target artifacts")
|
||||
|
|
|
@ -69,7 +69,7 @@ class FlamerushRiderEffect extends OneShotEffect {
|
|||
|
||||
public FlamerushRiderEffect() {
|
||||
super(Outcome.Copy);
|
||||
this.staticText = "create a token tapped and attacking that's a copy of another target attacking creature. Exile the token at end of combat";
|
||||
this.staticText = "create a token that's a copy of another target attacking creature and that's tapped and attacking. Exile the token at end of combat";
|
||||
}
|
||||
|
||||
public FlamerushRiderEffect(final FlamerushRiderEffect effect) {
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class FlameshadowConjuring extends CardImpl {
|
|||
StaticFilters.FILTER_CONTROLLED_CREATURE_NON_TOKEN, false, SetTargetPointer.PERMANENT,
|
||||
"Whenever a nontoken creature enters the battlefield under your control, "
|
||||
+ "you may pay {R}. If you do, create a token that's a copy of that creature. "
|
||||
+ "That token gains haste. Exile it at the beginning of the next end step");
|
||||
+ "That token gains haste. Exile it at the beginning of the next end step.");
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ public final class HedronDetonator extends CardImpl {
|
|||
|
||||
// Whenever an artifact enters the battlefield under your control, Hedron Detonator deals 1 damage to target opponent.
|
||||
Ability ability = new EntersBattlefieldControlledTriggeredAbility(
|
||||
new DamageTargetEffect(1), StaticFilters.FILTER_PERMANENT_ARTIFACT
|
||||
new DamageTargetEffect(1), StaticFilters.FILTER_PERMANENT_ARTIFACT_AN
|
||||
);
|
||||
ability.addTarget(new TargetOpponent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -28,7 +28,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.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.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);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
|
@ -13,21 +10,23 @@ import mage.abilities.keyword.TrampleAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class KalonianHydra extends CardImpl {
|
||||
|
||||
public KalonianHydra(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
|
||||
this.subtype.add(SubType.HYDRA);
|
||||
|
||||
this.power = new MageInt(0);
|
||||
|
@ -35,11 +34,14 @@ public final class KalonianHydra extends CardImpl {
|
|||
|
||||
// Trample
|
||||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Kalonian Hydra enters the battlefield with four +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4))));
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(
|
||||
CounterType.P1P1.createInstance(4), true
|
||||
), "with four +1/+1 counters on it"));
|
||||
|
||||
// Whenever Kalonian Hydra attacks, double the number of +1/+1 counters on each creature you control.
|
||||
this.addAbility(new AttacksTriggeredAbility(new KalonianHydraEffect(), false));
|
||||
|
||||
}
|
||||
|
||||
private KalonianHydra(final KalonianHydra card) {
|
||||
|
|
|
@ -1,35 +1,31 @@
|
|||
|
||||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.abilities.keyword.IndestructibleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public final class KnightExemplar extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Knight creatures");
|
||||
|
||||
static {
|
||||
filter.add(SubType.KNIGHT.getPredicate());
|
||||
}
|
||||
private static final FilterCreaturePermanent filter
|
||||
= new FilterCreaturePermanent(SubType.KNIGHT, "Knight creatures");
|
||||
|
||||
public KnightExemplar(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.KNIGHT);
|
||||
|
||||
|
@ -38,16 +34,15 @@ public final class KnightExemplar extends CardImpl {
|
|||
|
||||
// First strike
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
// Other Knight creatures you control get +1/+1 and are indestructible.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
FilterCreaturePermanent indestructibleFilter = filter.copy();
|
||||
indestructibleFilter.add(AnotherPredicate.instance);
|
||||
indestructibleFilter.add(TargetController.YOU.getControllerPredicate());
|
||||
indestructibleFilter.setMessage("Other Knight creatures you control");
|
||||
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, indestructibleFilter, false);
|
||||
effect.setText("Other Knight creatures you control are indestructible");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
// Other Knight creatures you control get +1/+1 and are indestructible.
|
||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
|
||||
1, 1, Duration.WhileOnBattlefield, filter, true
|
||||
));
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, filter, false
|
||||
).setText("and have indestructible"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private KnightExemplar(final KnightExemplar card) {
|
||||
|
@ -58,5 +53,4 @@ public final class KnightExemplar extends CardImpl {
|
|||
public KnightExemplar copy() {
|
||||
return new KnightExemplar(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class LocthwainLancer extends CardImpl {
|
|||
|
||||
// Whenever a nontoken Knight you control dies, each opponent loses 1 life and you draw a card.
|
||||
Ability ability = new DiesCreatureTriggeredAbility(new LoseLifeOpponentsEffect(1), false, filter);
|
||||
ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy("and"));
|
||||
ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy("and you"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class SlimefootAndSquee extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.SAPROLING);
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.SAPROLING, "a Saproling");
|
||||
private static final FilterCard filter2 = new FilterCreatureCard("another creature card from your graveyard");
|
||||
|
||||
static {
|
||||
|
|
|
@ -45,7 +45,7 @@ public final class WeirdingWood extends CardImpl {
|
|||
// Enchanted land has "{T}: Add two mana of any one color."
|
||||
Ability gainedAbility = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(2), new TapSourceCost());
|
||||
Effect effect = new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA);
|
||||
effect.setText("Enchanted land has \"{T}: Add two mana of any color.\"");
|
||||
effect.setText("Enchanted land has \"{T}: Add two mana of any one color.\"");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
}
|
||||
|
||||
|
|
|
@ -63,8 +63,8 @@ public class VerifyCardDataTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOM"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final boolean CHECK_ONLY_ABILITIES_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOC"; // check all abilities and output cards with wrong abilities texts;
|
||||
|
||||
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
|
||||
|
||||
|
@ -89,7 +89,7 @@ public class VerifyCardDataTest {
|
|||
private static final List<String> evergreenKeywords = Arrays.asList(
|
||||
"flying", "lifelink", "menace", "trample", "haste", "first strike", "hexproof", "fear",
|
||||
"deathtouch", "double strike", "indestructible", "reach", "flash", "defender", "vigilance",
|
||||
"plainswalk", "islandwalk", "swampwalk", "mountainwalk", "forestwalk", "myriad", "prowess"
|
||||
"plainswalk", "islandwalk", "swampwalk", "mountainwalk", "forestwalk", "myriad", "prowess", "convoke"
|
||||
);
|
||||
|
||||
private static final List<String> doubleNumbers = new ArrayList<>();
|
||||
|
|
|
@ -1,24 +1,23 @@
|
|||
|
||||
package mage.abilities.common;
|
||||
|
||||
import mage.constants.Zone;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author nantuko
|
||||
*/
|
||||
public class BecomesTappedSourceTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public BecomesTappedSourceTriggeredAbility(Effect effect, boolean isOptional) {
|
||||
super(Zone.BATTLEFIELD, effect, isOptional);
|
||||
public BecomesTappedSourceTriggeredAbility(Effect effect) {
|
||||
this(effect, false);
|
||||
}
|
||||
|
||||
public BecomesTappedSourceTriggeredAbility(Effect effect) {
|
||||
super(Zone.BATTLEFIELD, effect);
|
||||
public BecomesTappedSourceTriggeredAbility(Effect effect, boolean isOptional) {
|
||||
super(Zone.BATTLEFIELD, effect, isOptional);
|
||||
setTriggerPhrase("Whenever {this} becomes tapped, ");
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.abilities.effects.common;
|
||||
|
||||
import mage.MageObject;
|
||||
|
@ -65,26 +64,28 @@ public class PreventDamageByTargetEffect extends PreventionEffectImpl {
|
|||
if (staticText != null && !staticText.isEmpty()) {
|
||||
return staticText;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (amountToPrevent == Integer.MAX_VALUE) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Prevent all");
|
||||
if (onlyCombat) {
|
||||
sb.append(" combat");
|
||||
}
|
||||
sb.append(" damage target ");
|
||||
sb.append(mode.getTargets().get(0).getTargetName()).append(" would deal ").append(duration.toString());
|
||||
return sb.toString();
|
||||
} else {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Prevent the next ").append(amountToPrevent);
|
||||
sb.append("Prevent the next ");
|
||||
sb.append(amountToPrevent);
|
||||
if (onlyCombat) {
|
||||
sb.append("combat ");
|
||||
sb.append(" combat");
|
||||
}
|
||||
sb.append(" damage that ");
|
||||
sb.append(mode.getTargets().get(0).getTargetName()).append(" would deal ").append(duration.toString());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
sb.append(mode.getTargets().get(0).getTargetName());
|
||||
sb.append(" would deal ");
|
||||
if (duration == Duration.EndOfTurn) {
|
||||
sb.append("this turn");
|
||||
} else {
|
||||
sb.append(duration);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.effects.common.continuous;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
|
@ -140,7 +141,9 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl {
|
|||
} else {
|
||||
sb.append("gains ");
|
||||
}
|
||||
boolean quotes = (ability instanceof SimpleActivatedAbility) || (ability instanceof TriggeredAbility);
|
||||
boolean quotes = ability instanceof SimpleActivatedAbility
|
||||
|| ability instanceof TriggeredAbility
|
||||
|| ability instanceof LoyaltyAbility;
|
||||
if (quotes) {
|
||||
sb.append('"');
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ public class BolsterEffect extends OneShotEffect {
|
|||
} else {
|
||||
sb.append("X, where X is the number of ");
|
||||
sb.append(amount.getMessage());
|
||||
sb.append(" (Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.)");
|
||||
sb.append(". (Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.)");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ public class ImproviseAbility extends SimpleStaticAbility implements AlternateMa
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.)</i>";
|
||||
return "improvise <i>(Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.)</i>";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -83,7 +83,7 @@ public class FilterCard extends FilterObject<Card> {
|
|||
}
|
||||
|
||||
public boolean hasPredicates() {
|
||||
return !predicates.isEmpty();
|
||||
return !predicates.isEmpty() || !extraPredicates.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,7 +15,7 @@ import java.util.Arrays;
|
|||
public final class StoneTrapIdolToken extends TokenImpl {
|
||||
|
||||
public StoneTrapIdolToken() {
|
||||
super("Construct Token", "6/12 colorless Construct artifact creature token with trample");
|
||||
super("Construct Token", "6/12 colorless Construct artifact creature token with trample");
|
||||
cardType.add(CardType.CREATURE);
|
||||
cardType.add(CardType.ARTIFACT);
|
||||
subtype.add(SubType.CONSTRUCT);
|
||||
|
|
Loading…
Add table
Reference in a new issue