mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
[AFR] more text fixes
This commit is contained in:
parent
31a559be23
commit
85dfa58e5d
18 changed files with 40 additions and 29 deletions
|
@ -44,7 +44,7 @@ public final class AcererakTheArchlich extends CardImpl {
|
||||||
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
||||||
new EntersBattlefieldTriggeredAbility(new ReturnToHandSourceEffect(true)),
|
new EntersBattlefieldTriggeredAbility(new ReturnToHandSourceEffect(true)),
|
||||||
AcererakTheArchlichCondition.instance, "When {this} enters the battlefield, " +
|
AcererakTheArchlichCondition.instance, "When {this} enters the battlefield, " +
|
||||||
"if you have not completed Tomb of Annihilation, return {this} " +
|
"if you haven't completed Tomb of Annihilation, return {this} " +
|
||||||
"to its owner's hand and venture into the dungeon."
|
"to its owner's hand and venture into the dungeon."
|
||||||
);
|
);
|
||||||
ability.addEffect(new VentureIntoTheDungeonEffect());
|
ability.addEffect(new VentureIntoTheDungeonEffect());
|
||||||
|
|
|
@ -42,7 +42,8 @@ public final class ArcaneInvestigator extends CardImpl {
|
||||||
effect.addTableEntry(10, 20, new LookLibraryAndPickControllerEffect(
|
effect.addTableEntry(10, 20, new LookLibraryAndPickControllerEffect(
|
||||||
StaticValue.get(3), false, StaticValue.get(1),
|
StaticValue.get(3), false, StaticValue.get(1),
|
||||||
StaticFilters.FILTER_CARD, Zone.LIBRARY, false, false
|
StaticFilters.FILTER_CARD, Zone.LIBRARY, false, false
|
||||||
));
|
).setText("look at the top three cards of your library. Put one of them " +
|
||||||
|
"into your hand and the rest on the bottom of your library in any order"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArcaneInvestigator(final ArcaneInvestigator card) {
|
private ArcaneInvestigator(final ArcaneInvestigator card) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class DancingSword extends CardImpl {
|
||||||
// When equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.
|
// When equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.
|
||||||
this.addAbility(new DiesAttachedTriggeredAbility(
|
this.addAbility(new DiesAttachedTriggeredAbility(
|
||||||
new DancingSwordEffect(), "equipped creature", true
|
new DancingSwordEffect(), "equipped creature", true
|
||||||
));
|
).setTriggerPhrase("When equipped creature dies, "));
|
||||||
|
|
||||||
// Equip {1}
|
// Equip {1}
|
||||||
this.addAbility(new EquipAbility(1));
|
this.addAbility(new EquipAbility(1));
|
||||||
|
|
|
@ -56,7 +56,7 @@ class DelinaWildMageEffect extends OneShotEffect {
|
||||||
DelinaWildMageEffect() {
|
DelinaWildMageEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
staticText = "choose target creature you control, then roll a d20." +
|
staticText = "choose target creature you control, then roll a d20." +
|
||||||
"<br>1-14 | Create a tapped and attacking token that's a copy of that creature " +
|
"<br>1-14 | Create a tapped and attacking token that's a copy of that creature, " +
|
||||||
"except it's not legendary and it has \"Exile this creature at end of combat.\"" +
|
"except it's not legendary and it has \"Exile this creature at end of combat.\"" +
|
||||||
"<br>15-20 | Create one of those tokens. You may roll again.";
|
"<br>15-20 | Create one of those tokens. You may roll again.";
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ enum DemilichValue implements DynamicValue {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return "instant and sorcery you've cast this turn";
|
return "instant and sorcery spell you've cast this turn";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ class DemilichPlayEffect extends AsThoughEffectImpl {
|
||||||
|
|
||||||
public DemilichPlayEffect() {
|
public DemilichPlayEffect() {
|
||||||
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||||
this.staticText = "You may cast {this} from your graveyard by exiling four instants and/or sorcery cards from your graveyard in addition to paying its other costs";
|
this.staticText = "You may cast {this} from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs";
|
||||||
}
|
}
|
||||||
|
|
||||||
private DemilichPlayEffect(final DemilichPlayEffect effect) {
|
private DemilichPlayEffect(final DemilichPlayEffect effect) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class GelatinousCube extends CardImpl {
|
public final class GelatinousCube extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent("non-Ooze creature an opponent controls");
|
private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent("non-Ooze creature");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(Predicates.not(SubType.OOZE.getPredicate()));
|
filter.add(Predicates.not(SubType.OOZE.getPredicate()));
|
||||||
|
|
|
@ -52,7 +52,7 @@ class KeenEaredSentryEffect extends ContinuousRuleModifyingEffectImpl {
|
||||||
|
|
||||||
KeenEaredSentryEffect() {
|
KeenEaredSentryEffect() {
|
||||||
super(Duration.WhileOnBattlefield, Outcome.Detriment);
|
super(Duration.WhileOnBattlefield, Outcome.Detriment);
|
||||||
staticText = "your opponents can't venture into the dungeon more than once each turn";
|
staticText = "each opponent can't venture into the dungeon more than once each turn";
|
||||||
}
|
}
|
||||||
|
|
||||||
private KeenEaredSentryEffect(final KeenEaredSentryEffect effect) {
|
private KeenEaredSentryEffect(final KeenEaredSentryEffect effect) {
|
||||||
|
|
|
@ -49,7 +49,7 @@ public final class OchreJelly extends CardImpl {
|
||||||
)), OchreJellyCondition.instance, CardUtil.italicizeWithEmDash("Split")
|
)), OchreJellyCondition.instance, CardUtil.italicizeWithEmDash("Split")
|
||||||
+ "When {this} dies, if it had two or more +1/+1 counters on it, " +
|
+ "When {this} dies, if it had two or more +1/+1 counters on it, " +
|
||||||
"create a token that's a copy of it at the beginning of the next end step. " +
|
"create a token that's a copy of it at the beginning of the next end step. " +
|
||||||
"That token enters the battlefield with half that many +1/+1 counters on it, rounded down."
|
"The token enters the battlefield with half that many +1/+1 counters on it, rounded down."
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package mage.cards.o;
|
package mage.cards.o;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import mage.ConditionalMana;
|
import mage.ConditionalMana;
|
||||||
import mage.MageObject;
|
import mage.MageObject;
|
||||||
import mage.Mana;
|
import mage.Mana;
|
||||||
|
@ -21,16 +19,21 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterBySubtypeCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class OrbOfDragonkind extends CardImpl {
|
public final class OrbOfDragonkind extends CardImpl {
|
||||||
|
|
||||||
private static final FilterBySubtypeCard filter = new FilterBySubtypeCard(SubType.DRAGON);
|
private static final FilterCard filter = new FilterCard("a Dragon card");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(SubType.DRAGON.getPredicate());
|
||||||
|
}
|
||||||
|
|
||||||
public OrbOfDragonkind(UUID ownerId, CardSetInfo setInfo) {
|
public OrbOfDragonkind(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{R}");
|
||||||
|
@ -46,7 +49,7 @@ public final class OrbOfDragonkind extends CardImpl {
|
||||||
StaticValue.get(7), false, StaticValue.get(1), filter,
|
StaticValue.get(7), false, StaticValue.get(1), filter,
|
||||||
Zone.LIBRARY, false, true, false, Zone.HAND,
|
Zone.LIBRARY, false, true, false, Zone.HAND,
|
||||||
true, false, false).setBackInRandomOrder(true),
|
true, false, false).setBackInRandomOrder(true),
|
||||||
new ManaCostsImpl("{R}")
|
new ManaCostsImpl<>("{R}")
|
||||||
);
|
);
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
|
@ -72,7 +75,7 @@ class OrbOfDragonkindManaBuilder extends ConditionalManaBuilder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Spend this mana only to cast Dragon spells or to activate abilities of Dragons";
|
return "Spend this mana only to cast Dragon spells or activate abilities of Dragons";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +83,7 @@ class OrbOfDragonkindConditionalMana extends ConditionalMana {
|
||||||
|
|
||||||
public OrbOfDragonkindConditionalMana(Mana mana) {
|
public OrbOfDragonkindConditionalMana(Mana mana) {
|
||||||
super(mana);
|
super(mana);
|
||||||
this.staticText = "Spend this mana only to cast Dragon spells or to activate abilities of Dragons";
|
this.staticText = "Spend this mana only to cast Dragon spells or activate abilities of Dragons";
|
||||||
addCondition(OrbOfDragonkindManaCondition.instance);
|
addCondition(OrbOfDragonkindManaCondition.instance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ public final class RogueClass extends CardImpl {
|
||||||
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
||||||
new GainAbilityControlledEffect(
|
new GainAbilityControlledEffect(
|
||||||
new MenaceAbility(), Duration.WhileOnBattlefield,
|
new MenaceAbility(), Duration.WhileOnBattlefield,
|
||||||
StaticFilters.FILTER_CONTROLLED_CREATURES
|
StaticFilters.FILTER_PERMANENT_CREATURES
|
||||||
), 2
|
), 2
|
||||||
)));
|
)));
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ class RogueClassManaEffect extends AsThoughEffectImpl implements AsThoughManaEff
|
||||||
|
|
||||||
RogueClassManaEffect() {
|
RogueClassManaEffect() {
|
||||||
super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit);
|
super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||||
this.staticText = ", and you may spend mana as through it were mana of any color to cast them";
|
this.staticText = ", and you may spend mana as though it were mana of any color to cast those spells";
|
||||||
}
|
}
|
||||||
|
|
||||||
private RogueClassManaEffect(final RogueClassManaEffect effect) {
|
private RogueClassManaEffect(final RogueClassManaEffect effect) {
|
||||||
|
|
|
@ -132,7 +132,7 @@ class SorcererClassEffect extends OneShotEffect {
|
||||||
SorcererClassEffect() {
|
SorcererClassEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
staticText = "that spell deals damage to each opponent equal " +
|
staticText = "that spell deals damage to each opponent equal " +
|
||||||
"to the number of instant or sorcery spells you've cast this turn";
|
"to the number of instant and sorcery spells you've cast this turn";
|
||||||
}
|
}
|
||||||
|
|
||||||
private SorcererClassEffect(final SorcererClassEffect effect) {
|
private SorcererClassEffect(final SorcererClassEffect effect) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ class SphereOfAnnihilationEffect extends OneShotEffect {
|
||||||
SphereOfAnnihilationEffect() {
|
SphereOfAnnihilationEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
staticText = "exile {this}, all creatures and planeswalkers with mana value less than or equal to " +
|
staticText = "exile {this}, all creatures and planeswalkers with mana value less than or equal to " +
|
||||||
"the number of void counters on it, and all creature and planeswalker cards in all graveyards " +
|
"the number of void counters on it, and all creature and planeswalker cards in graveyards " +
|
||||||
"with mana value less than or equal to the number of void counters on it";
|
"with mana value less than or equal to the number of void counters on it";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class TrickstersTalisman extends CardImpl {
|
||||||
// Equipped creature gets +1/+1 and has "Whenever this creature deals combat damage to a player, you may sacrifice Trickster's Talisman. If you do, create a token that's a copy of this creature."
|
// Equipped creature gets +1/+1 and has "Whenever this creature deals combat damage to a player, you may sacrifice Trickster's Talisman. If you do, create a token that's a copy of this creature."
|
||||||
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
|
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
|
||||||
ability.addEffect(new TrickstersTalismanEffect());
|
ability.addEffect(new TrickstersTalismanEffect());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability.withFlavorWord("Invoke Duplicity"));
|
||||||
|
|
||||||
// Equip {2}
|
// Equip {2}
|
||||||
this.addAbility(new EquipAbility(2));
|
this.addAbility(new EquipAbility(2));
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class VerifyCardDataTest {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||||
|
|
||||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "AFC"; // check all abilities and output cards with wrong abilities texts;
|
private static final String FULL_ABILITIES_CHECK_SET_CODE = "AFR"; // 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
|
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
|
||||||
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,10 @@ public class Effects extends ArrayList<Effect> {
|
||||||
}
|
}
|
||||||
|
|
||||||
//check if nextRule is a new sentence or not.
|
//check if nextRule is a new sentence or not.
|
||||||
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
|
if (nextRule.startsWith("and ")
|
||||||
|
|| nextRule.startsWith("with ")
|
||||||
|
|| nextRule.startsWith("then ")
|
||||||
|
|| nextRule.startsWith("or ")) {
|
||||||
endString = " ";
|
endString = " ";
|
||||||
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
|
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
|
||||||
endString = "";
|
endString = "";
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.abilities.effects.common;
|
package mage.abilities.effects.common;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
|
@ -9,8 +8,9 @@ import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.target.Target;
|
import mage.target.Target;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public class PhaseOutTargetEffect extends OneShotEffect {
|
public class PhaseOutTargetEffect extends OneShotEffect {
|
||||||
|
@ -73,7 +73,11 @@ public class PhaseOutTargetEffect extends OneShotEffect {
|
||||||
} else {
|
} else {
|
||||||
sb.append("Target ").append(mode.getTargets().get(0).getTargetName());
|
sb.append("Target ").append(mode.getTargets().get(0).getTargetName());
|
||||||
}
|
}
|
||||||
sb.append(" phases out");
|
sb.append(" phase");
|
||||||
|
if (mode.getTargets().get(0).getMaxNumberOfTargets() <= 1) {
|
||||||
|
sb.append('s');
|
||||||
|
}
|
||||||
|
sb.append(" out");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect {
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.forceToSearchBoth = forceToSearchBoth;
|
this.forceToSearchBoth = forceToSearchBoth;
|
||||||
staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
|
staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
|
||||||
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle it");
|
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle");
|
||||||
}
|
}
|
||||||
|
|
||||||
public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) {
|
public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class IcingdeathFrostTongueToken extends TokenImpl {
|
||||||
|
|
||||||
public IcingdeathFrostTongueToken() {
|
public IcingdeathFrostTongueToken() {
|
||||||
super("Icingdeath, Frost Tongue", "Icingdeath, Frost Tongue, a legendary white " +
|
super("Icingdeath, Frost Tongue", "Icingdeath, Frost Tongue, a legendary white " +
|
||||||
"Equipment artifact token with \"Equipped creature gets +2/+0\", " +
|
"Equipment artifact token with \"Equipped creature gets +2/+0,\" " +
|
||||||
"\"Whenever equipped creature attacks, tap target creature " +
|
"\"Whenever equipped creature attacks, tap target creature " +
|
||||||
"defending player controls,\" and equip {2}");
|
"defending player controls,\" and equip {2}");
|
||||||
supertype.add(SuperType.LEGENDARY);
|
supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
Loading…
Reference in a new issue