forked from External/mage
[FDN] various text fixes
This commit is contained in:
parent
0013e075be
commit
33012783a6
19 changed files with 61 additions and 88 deletions
|
|
@ -19,14 +19,13 @@ import mage.target.common.TargetCreatureOrPlaneswalkerAmount;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author ciaccona007
|
||||
*/
|
||||
public final class ChandraFlameshaper extends CardImpl {
|
||||
|
||||
public ChandraFlameshaper(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{5}{R}{R}");
|
||||
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.CHANDRA);
|
||||
this.setStartingLoyalty(6);
|
||||
|
|
@ -37,13 +36,15 @@ public final class ChandraFlameshaper extends CardImpl {
|
|||
this.addAbility(plusTwoAbility);
|
||||
|
||||
// +1: Create a token that's a copy of target creature you control, except it has haste and "At the beginning of the end step, sacrifice this token."
|
||||
Ability[] extraAbilities = new Ability[2];
|
||||
extraAbilities[0] = HasteAbility.getInstance();
|
||||
extraAbilities[1] = new BeginningOfEndStepTriggeredAbility(
|
||||
TargetController.NEXT, new SacrificeSourceEffect(), false
|
||||
);
|
||||
Ability plusOneAbility = new LoyaltyAbility(
|
||||
new CreateTokenCopyTargetEffect().addAdditionalAbilities(extraAbilities), 1
|
||||
new CreateTokenCopyTargetEffect()
|
||||
.addAdditionalAbilities(
|
||||
HasteAbility.getInstance(),
|
||||
new BeginningOfEndStepTriggeredAbility(
|
||||
TargetController.NEXT, new SacrificeSourceEffect(), false
|
||||
)).setText("create a token that's a copy of target creature you control, " +
|
||||
"except it has haste and \"At the beginning of the end step, sacrifice this token.\""),
|
||||
1
|
||||
);
|
||||
plusOneAbility.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(plusOneAbility);
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ class DeadlyBrewEffect extends OneShotEffect {
|
|||
|
||||
DeadlyBrewEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "each player sacrifices a creature or planeswalker. If you sacrificed a permanent this way, " +
|
||||
staticText = "each player sacrifices a creature or planeswalker of their choice. If you sacrificed a permanent this way, " +
|
||||
"you may return another permanent card from your graveyard to your hand";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public final class DesecrationDemon extends CardImpl {
|
|||
class DesecrationDemonEffect extends OneShotEffect {
|
||||
DesecrationDemonEffect() {
|
||||
super(Outcome.BoostCreature);
|
||||
staticText = "any opponent may sacrifice a creature. If a player does, tap {this} and put a +1/+1 counter on it";
|
||||
staticText = "any opponent may sacrifice a creature of their choice. If a player does, tap {this} and put a +1/+1 counter on it";
|
||||
}
|
||||
|
||||
private DesecrationDemonEffect(final DesecrationDemonEffect effect) {
|
||||
|
|
|
|||
|
|
@ -2,21 +2,17 @@ package mage.cards.f;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksEachCombatStaticAbility;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.condition.common.FerociousCondition;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.ReturnToBattlefieldUnderOwnerControlSourceEffect;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect;
|
||||
import mage.abilities.hint.common.FerociousHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -33,20 +29,19 @@ public final class FlamewakePhoenix extends CardImpl {
|
|||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Flamewake Phoenix attacks each turn if able.
|
||||
this.addAbility(new AttacksEachCombatStaticAbility());
|
||||
|
||||
// <i>Ferocious</i> — At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return Flamewake Phoenix from your graveyard to the battlefield.
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new BeginningOfCombatTriggeredAbility(
|
||||
Zone.GRAVEYARD,
|
||||
TargetController.YOU, new DoIfCostPaid(new ReturnToBattlefieldUnderOwnerControlSourceEffect(), new ManaCostsImpl<>("{R}")),
|
||||
false),
|
||||
FerociousCondition.instance,
|
||||
"<i>Ferocious</i> — At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return {this} from your graveyard to the battlefield."
|
||||
).addHint(FerociousHint.instance));
|
||||
this.addAbility(new BeginningOfCombatTriggeredAbility(
|
||||
Zone.GRAVEYARD, TargetController.YOU,
|
||||
new DoIfCostPaid(new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl<>("{R}")),
|
||||
false
|
||||
).withInterveningIf(FerociousCondition.instance).setAbilityWord(AbilityWord.FEROCIOUS).addHint(FerociousHint.instance));
|
||||
}
|
||||
|
||||
private FlamewakePhoenix(final FlamewakePhoenix card) {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public final class GateColossus extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||
Zone.GRAVEYARD,
|
||||
new PutOnLibrarySourceEffect(
|
||||
true, "put {this} from your graveyard on top of your library"
|
||||
true, "put this card from your graveyard on top of your library"
|
||||
), filter, true
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,36 +1,27 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.condition.common.KickedCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.common.SacrificeEffect;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author maurer.it_at_gmail.com
|
||||
*/
|
||||
public final class GatekeeperOfMalakir extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter;
|
||||
|
||||
static {
|
||||
filter = new FilterControlledPermanent("creature");
|
||||
filter.add(CardType.CREATURE.getPredicate());
|
||||
}
|
||||
|
||||
public GatekeeperOfMalakir(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{B}");
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.WARRIOR);
|
||||
|
||||
|
|
@ -41,12 +32,11 @@ public final class GatekeeperOfMalakir extends CardImpl {
|
|||
this.addAbility(new KickerAbility("{B}"));
|
||||
|
||||
// When this creature enters, if it was kicked, target player sacrifices a creature.
|
||||
EntersBattlefieldTriggeredAbility ability =
|
||||
new EntersBattlefieldTriggeredAbility(new SacrificeEffect(filter, 1, "target player"))
|
||||
.setTriggerPhrase("When this creature enters, ");
|
||||
Ability conditionalAbility = new ConditionalInterveningIfTriggeredAbility(ability, KickedCondition.ONCE, "When this creature enters, if it was kicked, target player sacrifices a creature.");
|
||||
conditionalAbility.addTarget(new TargetPlayer());
|
||||
this.addAbility(conditionalAbility);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(
|
||||
new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "target player")
|
||||
).withInterveningIf(KickedCondition.ONCE);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private GatekeeperOfMalakir(final GatekeeperOfMalakir card) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ public final class GorehornRaider extends CardImpl {
|
|||
|
||||
// Raid -- When this creature enters, if you attacked this turn, this creature deals 2 damage to any target.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2))
|
||||
.withRuleTextReplacement(false)
|
||||
.withInterveningIf(RaidCondition.instance);
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability.setAbilityWord(AbilityWord.RAID).addHint(RaidHint.instance), new PlayerAttackedWatcher());
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class GratuitousViolenceReplacementEffect extends ReplacementEffectImpl {
|
|||
|
||||
GratuitousViolenceReplacementEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Damage);
|
||||
staticText = "If a creature you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead";
|
||||
staticText = "If a creature you control would deal damage to a permanent or player, it deals double that damage instead";
|
||||
}
|
||||
|
||||
private GratuitousViolenceReplacementEffect(final GratuitousViolenceReplacementEffect effect) {
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ class KellanPlanarTrailblazerDetectiveEffect extends OneShotEffect {
|
|||
KellanPlanarTrailblazerDetectiveEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "if {this} is a Scout, it becomes a Human Faerie Detective and gains "
|
||||
+ "\"Whenever this creature deals combat damage to a player, exile the top card of your library. "
|
||||
+ "\"Whenever {this} deals combat damage to a player, exile the top card of your library. "
|
||||
+ "You may play that card this turn.\"";
|
||||
}
|
||||
|
||||
|
|
@ -125,4 +125,4 @@ class KellanPlanarTrailblazerRogueEffect extends OneShotEffect {
|
|||
), source);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class QuilledGreatwurmEffect extends AsThoughEffectImpl {
|
|||
|
||||
QuilledGreatwurmEffect() {
|
||||
super(AsThoughEffectType.CAST_FROM_NOT_OWN_HAND_ZONE, Duration.EndOfGame, Outcome.Benefit);
|
||||
this.staticText = "you may cast {this} from your graveyard by removing six counters " +
|
||||
this.staticText = "you may cast this card from your graveyard by removing six counters " +
|
||||
"from among creatures you control in addition to paying its other costs";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public final class SunBlessedHealer extends CardImpl {
|
|||
Ability ability = new EntersBattlefieldTriggeredAbility(
|
||||
new ReturnFromGraveyardToBattlefieldTargetEffect()
|
||||
).withInterveningIf(KickedCondition.ONCE);
|
||||
ability.addTarget(new TargetCardInYourGraveyard());
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class TragicBanshee extends CardImpl {
|
|||
new AddContinuousEffectToGame(new BoostTargetEffect(-13, -13)),
|
||||
new AddContinuousEffectToGame(new BoostTargetEffect(-1, -1)),
|
||||
MorbidCondition.instance, "target creature an opponent controls gets -1/-1 until end of turn. " +
|
||||
"If a creature died this turn, that creature gets -13/-13 instead"
|
||||
"If a creature died this turn, that creature gets -13/-13 until end of turn instead"
|
||||
));
|
||||
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||
this.addAbility(ability.addHint(MorbidHint.instance).setAbilityWord(AbilityWord.MORBID));
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class TributeToHungerEffect extends OneShotEffect {
|
|||
|
||||
TributeToHungerEffect() {
|
||||
super(Outcome.Sacrifice);
|
||||
staticText = "Target opponent sacrifices a creature. You gain life equal to that creature's toughness";
|
||||
staticText = "Target opponent sacrifices a creature of their choice. You gain life equal to that creature's toughness";
|
||||
}
|
||||
|
||||
private TributeToHungerEffect(final TributeToHungerEffect effect) {
|
||||
|
|
|
|||
|
|
@ -1,15 +1,12 @@
|
|||
package mage.cards.u;
|
||||
|
||||
import mage.abilities.common.AsEntersBattlefieldAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTappedAsItEntersChooseColorAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.ChooseColorEffect;
|
||||
import mage.abilities.effects.mana.AddManaChosenColorEffect;
|
||||
import mage.abilities.mana.SimpleManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -23,10 +20,8 @@ public final class UnchartedHaven extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// Uncharted Haven enters the battlefield tapped.
|
||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||
|
||||
// As Uncharted Haven enters the battlefield, choose a color.
|
||||
this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral)));
|
||||
this.addAbility(new EntersBattlefieldTappedAsItEntersChooseColorAbility());
|
||||
|
||||
// {T}: Add one mana of the chosen color.
|
||||
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaChosenColorEffect(), new TapSourceCost()));
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class VizierOfTheMenagerieManaEffect extends AsThoughEffectImpl implements AsTho
|
|||
|
||||
public VizierOfTheMenagerieManaEffect() {
|
||||
super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||
staticText = "You may spend mana as though it were mana of any type to cast creature spells";
|
||||
staticText = "You can spend mana of any type to cast creature spells";
|
||||
}
|
||||
|
||||
private VizierOfTheMenagerieManaEffect(final VizierOfTheMenagerieManaEffect effect) {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,6 @@ public enum KickedCondition implements Condition {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "{this} was kicked" + (text.isEmpty() ? "" : " " + text);
|
||||
return "it was kicked" + (text.isEmpty() ? "" : " " + text);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.abilities.effects.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
|
|
@ -9,7 +8,6 @@ import mage.constants.Outcome;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.events.ZoneChangeEvent;
|
||||
import mage.game.stack.StackObject;
|
||||
import mage.players.Player;
|
||||
|
|
@ -21,7 +19,7 @@ public class DiscardOntoBattlefieldEffect extends ReplacementEffectImpl {
|
|||
|
||||
public DiscardOntoBattlefieldEffect() {
|
||||
super(Duration.EndOfGame, Outcome.PutCardInPlay);
|
||||
staticText = "If a spell or ability an opponent controls causes you to discard {this}, put it onto the battlefield instead of putting it into your graveyard";
|
||||
staticText = "If a spell or ability an opponent controls causes you to discard this card, put it onto the battlefield instead of putting it into your graveyard";
|
||||
}
|
||||
|
||||
protected DiscardOntoBattlefieldEffect(final DiscardOntoBattlefieldEffect effect) {
|
||||
|
|
@ -40,30 +38,24 @@ public class DiscardOntoBattlefieldEffect extends ReplacementEffectImpl {
|
|||
|
||||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
if (event.getTargetId().equals(source.getSourceId())) {
|
||||
ZoneChangeEvent zcEvent = (ZoneChangeEvent) event;
|
||||
if (zcEvent.getFromZone() == Zone.HAND && zcEvent.getToZone() == Zone.GRAVEYARD) {
|
||||
StackObject spell = game.getStack().getStackObject(event.getSourceId());
|
||||
if (spell != null && game.getOpponents(source.getControllerId()).contains(spell.getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!event.getTargetId().equals(source.getSourceId())) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
ZoneChangeEvent zcEvent = (ZoneChangeEvent) event;
|
||||
if (zcEvent.getFromZone() != Zone.HAND || zcEvent.getToZone() != Zone.GRAVEYARD) {
|
||||
return false;
|
||||
}
|
||||
StackObject spell = game.getStack().getStackObject(event.getSourceId());
|
||||
return spell != null && game.getOpponents(source.getControllerId()).contains(spell.getControllerId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
|
||||
Card card = game.getCard(source.getSourceId());
|
||||
if (card != null) {
|
||||
Player owner = game.getPlayer(card.getOwnerId());
|
||||
if (owner != null) {
|
||||
if (owner.moveCards(card, Zone.BATTLEFIELD, source, game)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (card == null) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
Player owner = game.getPlayer(card.getOwnerId());
|
||||
return owner != null && owner.moveCards(card, Zone.BATTLEFIELD, source, game);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.abilities.keyword;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
import mage.abilities.MageSingleton;
|
||||
import mage.abilities.OpeningHandAction;
|
||||
import mage.abilities.StaticAbility;
|
||||
|
|
@ -11,8 +9,9 @@ import mage.constants.Zone;
|
|||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class LeylineAbility extends StaticAbility implements MageSingleton, OpeningHandAction {
|
||||
|
|
@ -33,7 +32,7 @@ public class LeylineAbility extends StaticAbility implements MageSingleton, Open
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "If {this} is in your opening hand, you may begin the game with it on the battlefield.";
|
||||
return "If this card is in your opening hand, you may begin the game with it on the battlefield.";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import mage.constants.SubType;
|
|||
public final class RatCantBlockToken extends TokenImpl {
|
||||
|
||||
public RatCantBlockToken() {
|
||||
super("Rat Token", "1/1 black Rat creature token with \"This creature can't block.\"");
|
||||
super("Rat Token", "1/1 black Rat creature token with \"This token can't block.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setBlack(true);
|
||||
subtype.add(SubType.RAT);
|
||||
|
|
@ -22,7 +22,7 @@ public final class RatCantBlockToken extends TokenImpl {
|
|||
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
new CantBlockSourceEffect(Duration.WhileOnBattlefield)
|
||||
.setText("this creature can't block")
|
||||
.setText("this token can't block")
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue