mirror of
https://github.com/correl/mage.git
synced 2024-11-14 19:19:32 +00:00
[ELD] various text fixes
This commit is contained in:
parent
6a3240fad3
commit
50a0954606
29 changed files with 80 additions and 62 deletions
|
@ -38,7 +38,7 @@ public final class ArcanistsOwl extends CardImpl {
|
|||
StaticValue.get(4), false, StaticValue.get(1), filter,
|
||||
Zone.LIBRARY, false, true, false, Zone.HAND,
|
||||
true, false, false
|
||||
).setBackInRandomOrder(true).setText("Look at the top four cards of your library. " +
|
||||
).setBackInRandomOrder(true).setText("look at the top four cards of your library. " +
|
||||
"You may reveal an artifact or enchantment card from among them and put it into your hand. " +
|
||||
"Put the rest on the bottom of your library in a random order.")
|
||||
));
|
||||
|
|
|
@ -33,9 +33,10 @@ public final class ArchonOfAbsolution extends CardImpl {
|
|||
this.addAbility(ProtectionAbility.from(ObjectColor.WHITE));
|
||||
|
||||
// Creatures can't attack you or a planeswalker you control unless their controller pays {1} for each of those creatures.
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl("{1}"), true)
|
||||
));
|
||||
this.addAbility(new SimpleStaticAbility(new CantAttackYouUnlessPayManaAllEffect(
|
||||
new ManaCostsImpl("{1}"), true
|
||||
).setText("creatures can't attack you or a planeswalker you control " +
|
||||
"unless their controller pays {1} for each of those creatures")));
|
||||
}
|
||||
|
||||
private ArchonOfAbsolution(final ArchonOfAbsolution card) {
|
||||
|
|
|
@ -81,6 +81,12 @@ class BanishIntoFableTriggeredAbility extends CastSourceTriggeredAbility {
|
|||
public BanishIntoFableTriggeredAbility copy() {
|
||||
return new BanishIntoFableTriggeredAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When you cast this spell from your hand, copy it if you control an artifact, " +
|
||||
"then copy it if you control an enchantment. You may choose new targets for the copies.";
|
||||
}
|
||||
}
|
||||
|
||||
class BanishIntoFableEffect extends OneShotEffect {
|
||||
|
|
|
@ -12,6 +12,7 @@ import mage.cards.AdventureCard;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
|
||||
|
@ -22,6 +23,8 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class FaeOfWishes extends AdventureCard {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("two cards");
|
||||
|
||||
public FaeOfWishes(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new CardType[]{CardType.SORCERY}, "{1}{U}", "Granted", "{3}{U}");
|
||||
|
||||
|
@ -37,7 +40,7 @@ public final class FaeOfWishes extends AdventureCard {
|
|||
Ability ability = new SimpleActivatedAbility(
|
||||
new ReturnToHandSourceEffect(true), new ManaCostsImpl("{1}{U}")
|
||||
);
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, StaticFilters.FILTER_CARD)));
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, filter)));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Granted
|
||||
|
|
|
@ -8,8 +8,8 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.mana.ManaEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.mana.ManaEffect;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.abilities.mana.SimpleManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -84,7 +84,7 @@ enum FaeburrowElderValue implements DynamicValue {
|
|||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "for each color among permanents you control";
|
||||
return "color among permanents you control";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
import mage.filter.predicate.permanent.AttackingPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -29,7 +30,7 @@ import java.util.UUID;
|
|||
public final class FerventChampion extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterPermanent(SubType.KNIGHT, "another target attacking Knight");
|
||||
= new FilterControlledPermanent(SubType.KNIGHT, "another target attacking Knight you control");
|
||||
|
||||
static {
|
||||
filter.add(AttackingPredicate.instance);
|
||||
|
@ -90,20 +91,20 @@ class FerventChampionEffect extends CostModificationEffectImpl {
|
|||
|
||||
@Override
|
||||
public boolean applies(Ability abilityToModify, Ability source, Game game) {
|
||||
if (abilityToModify instanceof EquipAbility
|
||||
if (abilityToModify instanceof EquipAbility
|
||||
&& abilityToModify.isControlledBy(source.getControllerId())) {
|
||||
if (game != null && game.inCheckPlayableState()) {
|
||||
return !abilityToModify.getTargets().isEmpty() &&
|
||||
abilityToModify.getTargets().get(0).canTarget(source.getSourceId(), abilityToModify, game);
|
||||
abilityToModify.getTargets().get(0).canTarget(source.getSourceId(), abilityToModify, game);
|
||||
} else {
|
||||
return abilityToModify
|
||||
.getTargets()
|
||||
.stream()
|
||||
.map(Target::getTargets)
|
||||
.flatMap(Collection::stream)
|
||||
.anyMatch(source.getSourceId()::equals);
|
||||
return abilityToModify
|
||||
.getTargets()
|
||||
.stream()
|
||||
.map(Target::getTargets)
|
||||
.flatMap(Collection::stream)
|
||||
.anyMatch(source.getSourceId()::equals);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package mage.cards.f;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
|
@ -35,8 +36,10 @@ public final class FlaxenIntruder extends AdventureCard {
|
|||
new DestroyTargetEffect(), false, "destroy target artifact or enchantment"
|
||||
);
|
||||
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
|
||||
Cost cost = new SacrificeSourceCost();
|
||||
cost.setText("sacrifice it");
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DoWhenCostPaid(
|
||||
ability, new SacrificeSourceCost(), "Sacrifice {this}?"
|
||||
ability, cost, "Sacrifice {this}?"
|
||||
), false));
|
||||
|
||||
// Welcome Home
|
||||
|
|
|
@ -25,7 +25,6 @@ public final class IrencragFeat extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}{R}{R}");
|
||||
|
||||
// Add seven {R}. You can cast only one more spell this turn.
|
||||
this.getSpellAbility().addEffect(new BasicManaEffect(Mana.RedMana(7)));
|
||||
this.getSpellAbility().addEffect(new IrencragFeatEffect());
|
||||
}
|
||||
|
||||
|
@ -57,6 +56,7 @@ class IrencragFeatEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
new BasicManaEffect(Mana.RedMana(7)).apply(game, source);
|
||||
CastSpellLastTurnWatcher watcher = game.getState().getWatcher(CastSpellLastTurnWatcher.class);
|
||||
if (watcher == null) {
|
||||
return false;
|
||||
|
|
|
@ -88,6 +88,6 @@ class KeeperOfFablesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever one or more non-Human creatures you control deal combat damage to a player, draw a card";
|
||||
return "Whenever one or more non-Human creatures you control deal combat damage to a player, draw a card.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,9 +31,6 @@ public final class MemoryTheft extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
|
||||
|
||||
// Target opponent reveals their hand. You choose a nonland card from it. That player discards that card. You may put a card that has an Adventure that player owns from exile into that player's graveyard.
|
||||
this.getSpellAbility().addEffect(
|
||||
new DiscardCardYouChooseTargetEffect(StaticFilters.FILTER_CARD_NON_LAND, TargetController.ANY)
|
||||
);
|
||||
this.getSpellAbility().addEffect(new MemoryTheftEffect());
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
}
|
||||
|
@ -68,6 +65,9 @@ class MemoryTheftEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
new DiscardCardYouChooseTargetEffect(
|
||||
StaticFilters.FILTER_CARD_NON_LAND, TargetController.ANY
|
||||
).apply(game, source);
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Player player = game.getPlayer(source.getFirstTarget());
|
||||
if (controller == null || player == null) {
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class MidnightClock extends CardImpl {
|
|||
|
||||
// At the beginning of each upkeep, put an hour counter on Midnight Clock.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.HOUR.createInstance()), TargetController.ANY, false
|
||||
new AddCountersSourceEffect(CounterType.HOUR.createInstance()), TargetController.EACH_PLAYER, false
|
||||
));
|
||||
|
||||
// When the twelfth hour counter is put on Midnight Clock, shuffle your hand and graveyard into your library, then draw seven cards. Exile Midnight Clock.
|
||||
|
|
|
@ -27,7 +27,7 @@ import java.util.UUID;
|
|||
public final class OakhameAdversary extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterPermanent("your opponent controls a green permanent");
|
||||
= new FilterPermanent("an opponent controls a green permanent");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.GREEN));
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class QueenOfIce extends AdventureCard {
|
|||
|
||||
// Whenever Queen of Ice deals combat damage to a creature, tap that creature. It doesn't untap during its controller's next untap step.
|
||||
Ability ability = new DealsDamageToACreatureTriggeredAbility(
|
||||
new TapTargetEffect().setText("tap that creature"),
|
||||
new TapTargetEffect().setText("that creature"),
|
||||
true, false, true
|
||||
);
|
||||
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect()
|
||||
|
|
|
@ -152,6 +152,6 @@ class QuestingBeastTriggeredAbility extends TriggeredAbilityImpl {
|
|||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever {this} deals combat damage to an opponent, " +
|
||||
"it deals that much damage to target planeswalker that player controls";
|
||||
"it deals that much damage to target planeswalker that player controls.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,15 +50,16 @@ public final class RowanFearlessSparkmage extends CardImpl {
|
|||
|
||||
// −2: Rowan, Fearless Sparkmage deals 1 damage to each of up to two target creatures. Those creatures can't block this turn.
|
||||
ability = new LoyaltyAbility(new DamageTargetEffect(1)
|
||||
.setText("deals 1 damage to each of up to two target creatures."), -2);
|
||||
.setText("{this} deals 1 damage to each of up to two target creatures."), -2);
|
||||
ability.addEffect(new CantBlockTargetEffect(Duration.EndOfTurn)
|
||||
.setText("Those creatures can't block this turn."));
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 2));
|
||||
this.addAbility(ability);
|
||||
|
||||
// −9: Gain control of all creatures until end of turn. Untap them. They gain haste until end of turn.
|
||||
ability = new LoyaltyAbility(new GainControlAllEffect(Duration.EndOfTurn, filter), -9);
|
||||
ability.addEffect(new UntapAllEffect(filter).setText("until end of turn. Untap them."));
|
||||
ability = new LoyaltyAbility(new GainControlAllEffect(Duration.EndOfTurn, filter)
|
||||
.setText("gain control of all creatures until end of turn."), -9);
|
||||
ability.addEffect(new UntapAllEffect(filter).setText("Untap them."));
|
||||
ability.addEffect(new GainAbilityAllEffect(
|
||||
HasteAbility.getInstance(), Duration.EndOfTurn, filter
|
||||
).setText("They gain haste until end of turn"));
|
||||
|
|
|
@ -70,6 +70,6 @@ class SorcerersBroomTriggeredAbility extends TriggeredAbilityImpl {
|
|||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you sacrifice another permanent, you may pay {3}. " +
|
||||
"If you do, create a token that's a copy of {this}";
|
||||
"If you do, create a token that's a copy of {this}.";
|
||||
}
|
||||
}
|
|
@ -8,23 +8,19 @@ import mage.abilities.costs.mana.GenericManaCost;
|
|||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.permanent.EquippedPredicate;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
@ -32,7 +28,7 @@ import mage.target.common.TargetControlledCreaturePermanent;
|
|||
public final class SyrGwynHeroOfAshvale extends CardImpl {
|
||||
|
||||
private static final FilterControlledCreaturePermanent filter
|
||||
= new FilterControlledCreaturePermanent("an equipped creature you control");
|
||||
= new FilterControlledCreaturePermanent("equipped creature you control");
|
||||
private static final FilterPermanent filter2
|
||||
= new FilterControlledPermanent(SubType.EQUIPMENT);
|
||||
private static final FilterControlledCreaturePermanent filter3
|
||||
|
@ -59,16 +55,18 @@ public final class SyrGwynHeroOfAshvale extends CardImpl {
|
|||
|
||||
// Whenever an equipped creature you control attacks, you draw a card and you lose 1 life.
|
||||
Ability ability = new AttacksCreatureYouControlTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1).setText("you draw a card and"), false, filter
|
||||
new DrawCardSourceControllerEffect(1).setText("you draw a card"), false, filter
|
||||
);
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(1));
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Equipment you control have equip Knight {0}.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
new EquipAbility(Outcome.AddAbility, new GenericManaCost(0), new TargetControlledCreaturePermanent(filter3)),
|
||||
Duration.WhileOnBattlefield, filter2
|
||||
)));
|
||||
new EquipAbility(
|
||||
Outcome.AddAbility, new GenericManaCost(0),
|
||||
new TargetControlledCreaturePermanent(filter3)
|
||||
), Duration.WhileOnBattlefield, filter2
|
||||
).setText("Equipment you control have equip Knight {0}.")));
|
||||
}
|
||||
|
||||
private SyrGwynHeroOfAshvale(final SyrGwynHeroOfAshvale card) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class WeaponRack extends CardImpl {
|
|||
// Weapon Rack enters the battlefield with three +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)),
|
||||
"{this} enters the battlefield with three +1/+1 counters on it"
|
||||
"with three +1/+1 counters on it"
|
||||
));
|
||||
|
||||
// {T}: Move a +1/+1 counter from Weapon Rack onto target creature. Activate this ability only any time you could cast a sorcery.
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class WishclawTalisman extends CardImpl {
|
|||
// Wishclaw Talisman enters the battlefield with three wish counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.WISH.createInstance(3)),
|
||||
"{this} enters the battlefield with three wish counters on it"
|
||||
"with three wish counters on it"
|
||||
));
|
||||
|
||||
// {1}, {T}, Remove a wish counter from Wishclaw Talisman: Search your library for a card, put it into your hand, then shuffle your library. An opponent gains control of Wishclaw Talisman. Activate this ability only during your turn.
|
||||
|
|
|
@ -54,13 +54,13 @@ public final class WorkshopElders extends CardImpl {
|
|||
// At the beginning of combat on your turn, you may have target noncreature artifact you control become a 0/0 artifact creature. If you do, put four +1/+1 counters on it.
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(new AddCardTypeTargetEffect(
|
||||
Duration.EndOfGame, CardType.ARTIFACT, CardType.CREATURE
|
||||
).setText("have target noncreature artifact you control become"), TargetController.YOU, true);
|
||||
).setText("target noncreature artifact you control become a 0/0 artifact creature"), TargetController.YOU, true);
|
||||
ability.addEffect(new SetPowerToughnessTargetEffect(
|
||||
0, 0, Duration.EndOfGame
|
||||
).setText("a 0/0 artifact creature"));
|
||||
).setText("If you do"));
|
||||
ability.addEffect(new AddCountersTargetEffect(
|
||||
CounterType.P1P1.createInstance(4)
|
||||
).setText("If you do, put four +1/+1 counters on it"));
|
||||
).setText(", put four +1/+1 counters on it"));
|
||||
ability.addTarget(new TargetPermanent(filter2));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class YorvoLordOfGarenbrig extends CardImpl {
|
|||
// Yorvo, Lord of Garenbrig enters the battlefield with four +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)),
|
||||
"{this} enters the battlefield with four +1/+1 counters on it"
|
||||
"with four +1/+1 counters on it"
|
||||
));
|
||||
|
||||
// Whenever another green creature enters the battlefield under your control, put a +1/+1 counter on Yorvo. Then if that creature's power is greater than Yorvo's power, put another +1/+1 counter on Yorvo.
|
||||
|
|
|
@ -52,7 +52,7 @@ public class VerifyCardDataTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ZNR"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ELD"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: fix sample decks if it contains errors like wrong card numbers
|
||||
|
||||
private static final HashMap<String, Set<String>> skipCheckLists = new HashMap<>();
|
||||
|
|
|
@ -136,9 +136,10 @@ public class BeginningOfUpkeepTriggeredAbility extends TriggeredAbilityImpl {
|
|||
case OPPONENT:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each opponent's upkeep, ").toString();
|
||||
case ANY:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each player's upkeep, ").toString();
|
||||
case ACTIVE:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each player's upkeep, ").toString();
|
||||
case EACH_PLAYER:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each upkeep, ").toString();
|
||||
case CONTROLLER_ATTACHED_TO:
|
||||
return sb.insert(0, generateZoneString()).insert(0, "At the beginning of the upkeep of enchanted creature's controller, ").toString();
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public class TapTargetCost extends CostImpl {
|
|||
this.target.setNotTarget(true); // costs are never targeted
|
||||
this.target.setRequired(false); // can be cancel by user
|
||||
this.text
|
||||
= new StringBuilder("Tap ")
|
||||
= new StringBuilder("tap ")
|
||||
.append((target.getTargetName().startsWith("a ") || target.getTargetName().startsWith("an ") || target.getTargetName().startsWith("another"))
|
||||
? "" : CardUtil.numberToText(target.getMaxNumberOfTargets()) + ' ')
|
||||
.append(target.getTargetName()).toString();
|
||||
|
|
|
@ -71,8 +71,7 @@ public class CreateTokenTargetEffect extends OneShotEffect {
|
|||
|
||||
if (mode.getTargets().isEmpty()) {
|
||||
sb.append("that player");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
sb.append("target ").append(mode.getTargets().get(0).getTargetName());
|
||||
}
|
||||
|
||||
|
@ -90,11 +89,11 @@ public class CreateTokenTargetEffect extends OneShotEffect {
|
|||
}
|
||||
sb.append(token.getDescription());
|
||||
if (token.getDescription().endsWith("token")) {
|
||||
sb.append("s ");
|
||||
sb.append("s");
|
||||
}
|
||||
int tokenLocation = sb.indexOf("token ");
|
||||
int tokenLocation = sb.indexOf("token");
|
||||
if (tokenLocation != -1) {
|
||||
sb.replace(tokenLocation, tokenLocation + 6, "tokens ");
|
||||
sb.replace(tokenLocation, tokenLocation + 6, "tokens");
|
||||
}
|
||||
}
|
||||
if (attacking) {
|
||||
|
|
|
@ -160,6 +160,7 @@ public class DoIfCostPaid extends OneShotEffect {
|
|||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("discard")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("sacrifice")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("remove")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("tap")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("pay")) {
|
||||
sb.append("pay ");
|
||||
}
|
||||
|
|
|
@ -86,6 +86,7 @@ public class DoWhenCostPaid extends OneShotEffect {
|
|||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("discard")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("sacrifice")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("remove")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("tap")
|
||||
&& !costText.toLowerCase(Locale.ENGLISH).startsWith("pay")) {
|
||||
sb.append("pay ");
|
||||
}
|
||||
|
|
|
@ -88,7 +88,8 @@ public class SacrificeAllEffect extends OneShotEffect {
|
|||
sb.append(amount.toString());
|
||||
sb.append(' ');
|
||||
} else if (!filter.getMessage().startsWith("a ")) {
|
||||
sb.append(CardUtil.numberToText(amount.toString(), "a "));
|
||||
sb.append(CardUtil.numberToText(amount.toString(), "a"));
|
||||
sb.append(' ');
|
||||
}
|
||||
sb.append(filter.getMessage());
|
||||
staticText = sb.toString();
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package mage.abilities.effects.common;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||
|
@ -15,8 +14,9 @@ import mage.target.Target;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author maurer.it_at_gmail.com
|
||||
*/
|
||||
public class SacrificeEffect extends OneShotEffect {
|
||||
|
@ -98,7 +98,9 @@ public class SacrificeEffect extends OneShotEffect {
|
|||
sb.append(" sacrifice ");
|
||||
}
|
||||
}
|
||||
sb.append(CardUtil.numberToText(count.toString(), "a")).append(' ');
|
||||
if (!filter.getMessage().startsWith("another")) {
|
||||
sb.append(CardUtil.numberToText(count.toString(), "a")).append(' ');
|
||||
}
|
||||
sb.append(filter.getMessage());
|
||||
staticText = sb.toString();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue