mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
[DMC] various text fixes
This commit is contained in:
parent
53f76c2403
commit
95b2817ac8
10 changed files with 44 additions and 114 deletions
|
@ -58,7 +58,7 @@ public final class BaruWurmspeaker extends CardImpl {
|
||||||
));
|
));
|
||||||
ability.addEffect(new GainAbilityControlledEffect(
|
ability.addEffect(new GainAbilityControlledEffect(
|
||||||
TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter2
|
TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter2
|
||||||
));
|
).setText("and have trample"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// {7}{G}, {T}: Create a 4/4 green Wurm creature token. This ability costs {X} less to activate, whre X is the greatest power among Wurms you control.
|
// {7}{G}, {T}: Create a 4/4 green Wurm creature token. This ability costs {X} less to activate, whre X is the greatest power among Wurms you control.
|
||||||
|
|
|
@ -56,7 +56,7 @@ public final class Chromanticore extends CardImpl {
|
||||||
effect.setText(", trample");
|
effect.setText(", trample");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA);
|
effect = new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA);
|
||||||
effect.setText("and lifelink");
|
effect.setText(", and lifelink");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class FallajiWayfarer extends CardImpl {
|
public final class FallajiWayfarer extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCard filter = new FilterCard("multicolored spells you cast");
|
private static final FilterCard filter = new FilterCard("multicolored spells");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(MulticoloredPredicate.instance);
|
filter.add(MulticoloredPredicate.instance);
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.TapTargetCost;
|
import mage.abilities.costs.common.TapTargetCost;
|
||||||
|
@ -17,12 +14,15 @@ import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.permanent.TappedPredicate;
|
import mage.filter.predicate.permanent.TappedPredicate;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class HonorWornShaku extends CardImpl {
|
public final class HonorWornShaku extends CardImpl {
|
||||||
|
|
||||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("untapped legendary permanent");
|
private static final FilterControlledPermanent filter
|
||||||
|
= new FilterControlledPermanent("untapped legendary permanent you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(TappedPredicate.UNTAPPED);
|
filter.add(TappedPredicate.UNTAPPED);
|
||||||
|
@ -47,5 +47,4 @@ public final class HonorWornShaku extends CardImpl {
|
||||||
public HonorWornShaku copy() {
|
public HonorWornShaku copy() {
|
||||||
return new HonorWornShaku(this);
|
return new HonorWornShaku(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ class OKagachiVengefulKamiTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Whenever {this} deals combat damage to a player, " +
|
return "Whenever {this} deals combat damage to a player, " +
|
||||||
"if that player attacked you during their last turn, " +
|
"if that player attacked you during their last turn, " +
|
||||||
"exile target nonland permanent that player controls";
|
"exile target nonland permanent that player controls.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,6 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||||
import mage.abilities.effects.Effect;
|
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||||
|
@ -17,12 +15,8 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.FilterSpell;
|
import mage.filter.FilterSpell;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.common.FilterLandPermanent;
|
||||||
import mage.game.Game;
|
|
||||||
import mage.players.Player;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -30,16 +24,15 @@ import java.util.UUID;
|
||||||
* @author freaisdead
|
* @author freaisdead
|
||||||
*/
|
*/
|
||||||
public final class ShanidSleepersScourge extends CardImpl {
|
public final class ShanidSleepersScourge extends CardImpl {
|
||||||
private static final FilterCreaturePermanent otherLegendaryCreaturesFilter = new FilterCreaturePermanent("other legendary creatures");
|
private static final FilterCreaturePermanent otherLegendaryCreaturesFilter = new FilterCreaturePermanent("legendary creatures");
|
||||||
private static final FilterSpell legendarySpellFilter = new FilterSpell("a legendary spell");
|
private static final FilterSpell legendarySpellFilter = new FilterSpell("a legendary spell");
|
||||||
private static final FilterPermanent legendaryLandFilter = new FilterPermanent("a legendary land");
|
private static final FilterPermanent legendaryLandFilter = new FilterLandPermanent("a legendary land");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
otherLegendaryCreaturesFilter.add(SuperType.LEGENDARY.getPredicate());
|
otherLegendaryCreaturesFilter.add(SuperType.LEGENDARY.getPredicate());
|
||||||
|
|
||||||
legendarySpellFilter.add(SuperType.LEGENDARY.getPredicate());
|
legendarySpellFilter.add(SuperType.LEGENDARY.getPredicate());
|
||||||
|
|
||||||
legendaryLandFilter.add(CardType.LAND.getPredicate());
|
|
||||||
legendaryLandFilter.add(SuperType.LEGENDARY.getPredicate());
|
legendaryLandFilter.add(SuperType.LEGENDARY.getPredicate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,13 +55,14 @@ public final class ShanidSleepersScourge extends CardImpl {
|
||||||
otherLegendaryCreaturesFilter,
|
otherLegendaryCreaturesFilter,
|
||||||
true)));
|
true)));
|
||||||
// Whenever you play a legendary land or cast a legendary spell, you draw a card and you lose 1 life.
|
// Whenever you play a legendary land or cast a legendary spell, you draw a card and you lose 1 life.
|
||||||
this.addAbility(new OrTriggeredAbility(Zone.BATTLEFIELD,
|
Ability ability = new OrTriggeredAbility(Zone.BATTLEFIELD,
|
||||||
new DrawAndLoseEffect(1, 1),
|
new DrawCardSourceControllerEffect(1).setText("you draw a card"), false,
|
||||||
false,
|
|
||||||
"Whenever you play a legendary land or cast a legendary spell, ",
|
"Whenever you play a legendary land or cast a legendary spell, ",
|
||||||
new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, null, legendaryLandFilter, true),
|
new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, null, legendaryLandFilter, true),
|
||||||
new SpellCastControllerTriggeredAbility(null, legendarySpellFilter, false)
|
new SpellCastControllerTriggeredAbility(null, legendarySpellFilter, false)
|
||||||
));
|
);
|
||||||
|
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
|
||||||
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ShanidSleepersScourge(final ShanidSleepersScourge card) {
|
private ShanidSleepersScourge(final ShanidSleepersScourge card) {
|
||||||
|
@ -80,40 +74,3 @@ public final class ShanidSleepersScourge extends CardImpl {
|
||||||
return new ShanidSleepersScourge(this);
|
return new ShanidSleepersScourge(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class DrawAndLoseEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
DrawAndLoseEffect(int drawAmount, int loseLifeAMount) {
|
|
||||||
super(Outcome.Benefit);
|
|
||||||
String cardRule = "a card";
|
|
||||||
if (drawAmount > 1) {
|
|
||||||
cardRule = String.format("%d cards", drawAmount);
|
|
||||||
}
|
|
||||||
this.staticText = String.format("draw %s and you lose %d life", cardRule, loseLifeAMount);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
|
||||||
if (controller == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Effect drawEffectController = new DrawCardSourceControllerEffect(1);
|
|
||||||
drawEffectController.apply(game, source);
|
|
||||||
Effect drawEffectOpponent = new LoseLifeSourceControllerEffect(1);
|
|
||||||
drawEffectOpponent.apply(game, source);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private DrawAndLoseEffect(final DrawAndLoseEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DrawAndLoseEffect copy() {
|
|
||||||
return new DrawAndLoseEffect(this);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +1,10 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without modification, are
|
|
||||||
* permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
|
||||||
* conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
||||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
|
||||||
* provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
||||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
|
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
||||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* 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.cards.t;
|
package mage.cards.t;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.AttachedToMatchesFilterCondition;
|
import mage.abilities.condition.common.AttachedToMatchesFilterCondition;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
|
||||||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||||
|
@ -41,20 +12,20 @@ import mage.abilities.keyword.EquipAbility;
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.AttachmentType;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||||
import mage.target.common.TargetControlledCreaturePermanent;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LevelX
|
* @author LevelX
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public final class TenzaGodosMaul extends CardImpl {
|
public final class TenzaGodosMaul extends CardImpl {
|
||||||
|
|
||||||
private static final String rule1 = "As long as it's legendary, it gets an additional +2/+2";
|
|
||||||
private static final String rule2 = "As long as it's red, it has trample.";
|
|
||||||
|
|
||||||
private static final FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary");
|
private static final FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary");
|
||||||
private static final FilterCreaturePermanent redFilter = new FilterCreaturePermanent("red");
|
private static final FilterCreaturePermanent redFilter = new FilterCreaturePermanent("red");
|
||||||
|
|
||||||
|
@ -63,24 +34,29 @@ public final class TenzaGodosMaul extends CardImpl {
|
||||||
redFilter.add(new ColorPredicate(ObjectColor.RED));
|
redFilter.add(new ColorPredicate(ObjectColor.RED));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final Condition condition1 = new AttachedToMatchesFilterCondition(legendaryFilter);
|
||||||
|
private static final Condition condition2 = new AttachedToMatchesFilterCondition(redFilter);
|
||||||
|
|
||||||
public TenzaGodosMaul(UUID ownerId, CardSetInfo setInfo) {
|
public TenzaGodosMaul(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||||
addSuperType(SuperType.LEGENDARY);
|
addSuperType(SuperType.LEGENDARY);
|
||||||
this.subtype.add(SubType.EQUIPMENT);
|
this.subtype.add(SubType.EQUIPMENT);
|
||||||
|
|
||||||
// Equipped creature gets +1/+1.
|
// Equipped creature gets +1/+1. As long as it's legendary, it gets an additional +2/+2. As long as it's red, it has trample.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1)));
|
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
|
||||||
// As long as it's legendary, it gets an additional +2/+2.
|
ability.addEffect(new ConditionalContinuousEffect(
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
new BoostEquippedEffect(2, 2), condition1,
|
||||||
new BoostEquippedEffect(2, 2),
|
"As long as it's legendary, it gets an additional +2/+2"
|
||||||
new AttachedToMatchesFilterCondition(legendaryFilter), rule1)));
|
));
|
||||||
// As long as it's red, it has trample.
|
ability.addEffect(new ConditionalContinuousEffect(
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
new GainAbilityAttachedEffect(
|
||||||
new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT),
|
TrampleAbility.getInstance(), AttachmentType.EQUIPMENT
|
||||||
new AttachedToMatchesFilterCondition(redFilter), rule2)));
|
), condition2, "As long as it's red, it has trample."
|
||||||
// Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)
|
));
|
||||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), new TargetControlledCreaturePermanent()));
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
// Equip {1}
|
||||||
|
this.addAbility(new EquipAbility(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private TenzaGodosMaul(final TenzaGodosMaul card) {
|
private TenzaGodosMaul(final TenzaGodosMaul card) {
|
||||||
|
@ -92,5 +68,3 @@ public final class TenzaGodosMaul extends CardImpl {
|
||||||
return new TenzaGodosMaul(this);
|
return new TenzaGodosMaul(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,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 = "DMU"; // check all abilities and output cards with wrong abilities texts;
|
private static final String FULL_ABILITIES_CHECK_SET_CODE = "DMC"; // 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
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ public class ConvokeAbility extends SimpleStaticAbility implements AlternateMana
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Convoke <i>(Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)</i>";
|
return "convoke <i>(Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)</i>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -12,7 +12,7 @@ import mage.constants.SubType;
|
||||||
public final class HazezonTamarSandWarriorToken extends TokenImpl {
|
public final class HazezonTamarSandWarriorToken extends TokenImpl {
|
||||||
|
|
||||||
public HazezonTamarSandWarriorToken() {
|
public HazezonTamarSandWarriorToken() {
|
||||||
super("Sand Warrior Token", "1/1 Sand Warrior creature tokens that are red, green, and white");
|
super("Sand Warrior Token", "1/1 red, green, and white Sand Warrior creature tokens");
|
||||||
cardType.add(CardType.CREATURE);
|
cardType.add(CardType.CREATURE);
|
||||||
color.setRed(true);
|
color.setRed(true);
|
||||||
color.setGreen(true);
|
color.setGreen(true);
|
||||||
|
|
Loading…
Reference in a new issue