mirror of
https://github.com/correl/mage.git
synced 2024-11-24 19:19:56 +00:00
[VOC] various text fixes
This commit is contained in:
parent
652dd49940
commit
53f6bc372a
24 changed files with 88 additions and 85 deletions
|
@ -1,10 +1,9 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -15,7 +14,10 @@ import mage.filter.FilterCard;
|
|||
import mage.target.Target;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public final class AngelOfFlightAlabaster extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Spirit card from your graveyard");
|
||||
|
||||
static {
|
||||
|
@ -23,19 +25,18 @@ public final class AngelOfFlightAlabaster extends CardImpl {
|
|||
}
|
||||
|
||||
public AngelOfFlightAlabaster(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}");
|
||||
this.subtype.add(SubType.ANGEL);
|
||||
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(new ReturnToHandTargetEffect(), TargetController.YOU, false);
|
||||
Target target = new TargetCardInYourGraveyard(filter);
|
||||
ability.addTarget(target);
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(
|
||||
new ReturnFromGraveyardToHandTargetEffect(), TargetController.YOU, false
|
||||
);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private AngelOfFlightAlabaster(final AngelOfFlightAlabaster card) {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.DelayedTriggeredAbility;
|
||||
import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility;
|
||||
|
@ -19,8 +18,9 @@ import mage.players.Player;
|
|||
import mage.target.TargetSpell;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class ArcaneDenial extends CardImpl {
|
||||
|
@ -35,7 +35,10 @@ public final class ArcaneDenial extends CardImpl {
|
|||
// You draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1)), false));
|
||||
new DrawCardSourceControllerEffect(1)
|
||||
.setText("you draw a card")
|
||||
), false).concatBy("<br>")
|
||||
);
|
||||
}
|
||||
|
||||
private ArcaneDenial(final ArcaneDenial card) {
|
||||
|
|
|
@ -31,6 +31,7 @@ public final class ArterialAlchemy extends CardImpl {
|
|||
// When Arterial Alchemy enters the battlefield, create a Blood token for each opponent you have.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||
new CreateTokenEffect(new BloodToken(), OpponentsCount.instance)
|
||||
.setText("create a Blood token for each opponent you have")
|
||||
));
|
||||
|
||||
// Blood tokens you control are Equipment in addition to their other types and have "Equipped creature gets +2/+0" and equip {2}.
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class AvacynsJudgment extends CardImpl {
|
|||
// Avacyn's Judgment deals 2 damage divided as you choose among any number of target creatures and/or players. If Avacyn's Judgment's madness cost was paid, it deals X damage divided as you choose among those creatures and/or players instead.
|
||||
DynamicValue xValue = new AvacynsJudgmentManacostVariableValue();
|
||||
Effect effect = new DamageMultiEffect(xValue);
|
||||
effect.setText("{this} deals 2 damage divided as you choose among any number of target creatures and/or players. If {this}'s madness cost was paid, it deals X damage divided as you choose among those creatures and/or players instead.");
|
||||
effect.setText("{this} deals 2 damage divided as you choose among any number of targets. If this spell's madness cost was paid, it deals X damage divided as you choose among those permanents and/or players instead.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(xValue));
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ class BenevolentOfferingEffect2 extends OneShotEffect {
|
|||
|
||||
BenevolentOfferingEffect2() {
|
||||
super(Outcome.Sacrifice);
|
||||
this.staticText = "Choose an opponent. You gain 2 life for each creature you control and that player gains 2 life for each creature they control";
|
||||
this.staticText = "<br>Choose an opponent. You gain 2 life for each creature you control and that player gains 2 life for each creature they control";
|
||||
}
|
||||
|
||||
BenevolentOfferingEffect2(final BenevolentOfferingEffect2 effect) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import mage.MageInt;
|
||||
|
@ -8,6 +7,8 @@ import mage.abilities.dynamicvalue.DynamicValue;
|
|||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -17,7 +18,6 @@ import mage.filter.common.FilterControlledPermanent;
|
|||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author L_J
|
||||
*/
|
||||
public final class ChampionOfDusk extends CardImpl {
|
||||
|
@ -28,6 +28,9 @@ public final class ChampionOfDusk extends CardImpl {
|
|||
filter.add(SubType.VAMPIRE.getPredicate());
|
||||
}
|
||||
|
||||
private static final DynamicValue xCount = new PermanentsOnBattlefieldCount(filter);
|
||||
private static final Hint hint = new ValueHint("Vampires you control", xCount);
|
||||
|
||||
public ChampionOfDusk(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
|
@ -36,10 +39,12 @@ public final class ChampionOfDusk extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// When Champion of Dusk enters the battlefield, you draw X cards and you lose X life, where X is the number of Vampires you control.
|
||||
DynamicValue xCount = new PermanentsOnBattlefieldCount(filter);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(xCount));
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(xCount));
|
||||
this.addAbility(ability);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(xCount).setText("you draw X cards")
|
||||
);
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(xCount)
|
||||
.setText("and you lose X life, where X is the number of Vampires you control"));
|
||||
this.addAbility(ability.addHint(hint));
|
||||
}
|
||||
|
||||
private ChampionOfDusk(final ChampionOfDusk card) {
|
||||
|
|
|
@ -4,7 +4,6 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -37,7 +36,7 @@ public final class CrimsonHonorGuard extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// At the beginning of each player's end step, Crimson Honor Guard deals 4 damage to that player unless they control a commander.
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(new CrimsonHonorGuardEffect(), TargetController.ANY, false));
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(new CrimsonHonorGuardEffect(), TargetController.EACH_PLAYER, false));
|
||||
}
|
||||
|
||||
private CrimsonHonorGuard(final CrimsonHonorGuard card) {
|
||||
|
|
|
@ -22,7 +22,7 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
*/
|
||||
public final class DrogskolCaptain extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.SPIRIT, "Spirits");
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.SPIRIT, "Spirit creatures");
|
||||
|
||||
public DrogskolCaptain(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}");
|
||||
|
|
|
@ -11,7 +11,6 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -38,12 +37,12 @@ public final class DrogskolReinforcements extends CardImpl {
|
|||
// Other Spirits you control have melee.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
|
||||
new MeleeAbility(), Duration.WhileOnBattlefield, filter, true
|
||||
)));
|
||||
).setText("other Spirits you control have melee")));
|
||||
|
||||
// Prevent all noncombat damage that would be dealt to Spirits you control.
|
||||
this.addAbility(new SimpleStaticAbility(new PreventAllNonCombatDamageToAllEffect(
|
||||
Duration.WhileOnBattlefield, StaticFilters.FILTER_CONTROLLED_CREATURES
|
||||
)));
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
new PreventAllNonCombatDamageToAllEffect(Duration.WhileOnBattlefield, filter)
|
||||
));
|
||||
}
|
||||
|
||||
private DrogskolReinforcements(final DrogskolReinforcements card) {
|
||||
|
|
|
@ -69,7 +69,7 @@ class FalkenrathGorgerEffect extends ContinuousEffectImpl {
|
|||
|
||||
public FalkenrathGorgerEffect() {
|
||||
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
|
||||
this.staticText = "Each Vampire creature card you own that isn't on the battlefield has madness. Its madness cost is equal to its mana cost";
|
||||
this.staticText = "Each Vampire creature card you own that isn't on the battlefield has madness. The madness cost is equal to its mana cost";
|
||||
}
|
||||
|
||||
public FalkenrathGorgerEffect(final FalkenrathGorgerEffect effect) {
|
||||
|
|
|
@ -52,7 +52,7 @@ class GeistOfSaintTraftEffect extends OneShotEffect {
|
|||
|
||||
GeistOfSaintTraftEffect() {
|
||||
super(Outcome.PutCreatureInPlay);
|
||||
staticText = "create a 4/4 white Angel creature token with flying tapped and attacking. Exile that token at end of combat";
|
||||
staticText = "create a 4/4 white Angel creature token with flying that's tapped and attacking. Exile that token at end of combat";
|
||||
}
|
||||
|
||||
GeistOfSaintTraftEffect(final GeistOfSaintTraftEffect effect) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class KamberThePlunderer extends CardImpl {
|
|||
Ability ability = new DiesCreatureTriggeredAbility(
|
||||
new GainLifeEffect(1), false, StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE
|
||||
);
|
||||
ability.addEffect(new CreateTokenEffect(new BloodToken()));
|
||||
ability.addEffect(new CreateTokenEffect(new BloodToken()).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfDrawTriggeredAbility;
|
||||
import mage.abilities.effects.common.DrawCardTargetEffect;
|
||||
|
@ -12,14 +10,15 @@ import mage.constants.SubType;
|
|||
import mage.constants.SuperType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class KamiOfTheCrescentMoon extends CardImpl {
|
||||
|
||||
public KamiOfTheCrescentMoon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}{U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{U}");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.SPIRIT);
|
||||
|
||||
|
@ -27,7 +26,7 @@ public final class KamiOfTheCrescentMoon extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// At the beginning of each player's draw step, that player draws an additional card.
|
||||
this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardTargetEffect(1), TargetController.ANY, false));
|
||||
this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardTargetEffect(1).setText("that player draws an additional card"), TargetController.ANY, false));
|
||||
}
|
||||
|
||||
private KamiOfTheCrescentMoon(final KamiOfTheCrescentMoon card) {
|
||||
|
|
|
@ -19,8 +19,8 @@ public final class NightsWhisper extends CardImpl {
|
|||
|
||||
|
||||
// You draw two cards and you lose 2 life.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
|
||||
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2).setText("you draw two cards"));
|
||||
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(2).concatBy("and"));
|
||||
}
|
||||
|
||||
private NightsWhisper(final NightsWhisper card) {
|
||||
|
|
|
@ -112,7 +112,7 @@ class PatronOfTheVeinCreatureDiesTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a creature an opponent controls dies, exile it and put a +1/+1 counter on each Vampire you control";
|
||||
return "Whenever a creature an opponent controls dies, exile it and put a +1/+1 counter on each Vampire you control.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
|
@ -17,23 +15,26 @@ import mage.game.permanent.Permanent;
|
|||
import mage.game.permanent.token.SpiritToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class PromiseOfBunrei extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control");
|
||||
|
||||
|
||||
static {
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
}
|
||||
|
||||
|
||||
public PromiseOfBunrei(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
|
||||
|
||||
// When a creature you control dies, sacrifice Promise of Bunrei. If you do, create four 1/1 colorless Spirit creature tokens.
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(new PromiseOfBunreiEffect(), false, filter));
|
||||
this.addAbility(new DiesCreatureTriggeredAbility(
|
||||
new PromiseOfBunreiEffect(), false, filter
|
||||
).setTriggerPhrase("When a creature you control dies, "));
|
||||
}
|
||||
|
||||
private PromiseOfBunrei(final PromiseOfBunrei card) {
|
||||
|
@ -47,21 +48,21 @@ public final class PromiseOfBunrei extends CardImpl {
|
|||
}
|
||||
|
||||
class PromiseOfBunreiEffect extends OneShotEffect {
|
||||
|
||||
|
||||
public PromiseOfBunreiEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "sacrifice {this}. If you do, create four 1/1 colorless Spirit creature tokens";
|
||||
}
|
||||
|
||||
|
||||
public PromiseOfBunreiEffect(final PromiseOfBunreiEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PromiseOfBunreiEffect copy() {
|
||||
return new PromiseOfBunreiEffect(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class ReconnaissanceMission extends CardImpl {
|
|||
// Whenever a creature you control deals combat damage to a player, you may draw a card.
|
||||
this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(1),
|
||||
StaticFilters.FILTER_CONTROLLED_CREATURE,
|
||||
StaticFilters.FILTER_CONTROLLED_A_CREATURE,
|
||||
true, SetTargetPointer.NONE, true
|
||||
));
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledArtifactPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.permanent.TokenPredicate;
|
||||
import mage.game.permanent.token.TreasureToken;
|
||||
|
@ -28,6 +28,8 @@ public final class ScionOfOpulence extends CardImpl {
|
|||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterControlledPermanent(SubType.VAMPIRE, "nontoken Vampire you control");
|
||||
private static final FilterControlledPermanent filter2
|
||||
= new FilterControlledArtifactPermanent("artifacts");
|
||||
|
||||
static {
|
||||
filter.add(TokenPredicate.FALSE);
|
||||
|
@ -50,9 +52,7 @@ public final class ScionOfOpulence extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(
|
||||
new ExileTopXMayPlayUntilEndOfTurnEffect(1), new ManaCostsImpl<>("{R}")
|
||||
);
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(
|
||||
2, StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN
|
||||
)));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(2, filter2)));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
|
@ -12,35 +10,29 @@ 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.filter.common.FilterControlledPermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
|
||||
*/
|
||||
public final class SpectralShepherd extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Spirit");
|
||||
|
||||
static {
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
filter.add(SubType.SPIRIT.getPredicate());
|
||||
}
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.SPIRIT);
|
||||
|
||||
public SpectralShepherd(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.subtype.add(SubType.SPIRIT);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
|
||||
// {1}{U}: Return target Spirit you control to its owner's hand.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{1}{U}"));
|
||||
Ability ability = new SimpleActivatedAbility(new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{1}{U}"));
|
||||
ability.addTarget(new TargetControlledPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
|
@ -12,22 +11,20 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Loki
|
||||
*/
|
||||
public final class StromkirkCaptain extends CardImpl {
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Vampire creatures");
|
||||
|
||||
static {
|
||||
filter.add(SubType.VAMPIRE.getPredicate());
|
||||
}
|
||||
private static final FilterCreaturePermanent filter
|
||||
= new FilterCreaturePermanent(SubType.VAMPIRE, "Vampire creatures");
|
||||
|
||||
public StromkirkCaptain(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{R}");
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.SOLDIER);
|
||||
|
||||
|
@ -36,8 +33,13 @@ public final class StromkirkCaptain extends CardImpl {
|
|||
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
// Other Vampire creatures you control get +1/+1 and have first strike.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true)));
|
||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
|
||||
1, 1, Duration.WhileOnBattlefield, filter, true
|
||||
));
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true
|
||||
).setText("and have first strike"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private StromkirkCaptain(final StromkirkCaptain card) {
|
||||
|
|
|
@ -62,7 +62,7 @@ class StromkirkOccultistExileEffect extends OneShotEffect {
|
|||
|
||||
public StromkirkOccultistExileEffect() {
|
||||
super(Outcome.Detriment);
|
||||
this.staticText = "Exile the top card of your library. Until end of turn, you may play that card";
|
||||
this.staticText = "exile the top card of your library. Until end of turn, you may play that card";
|
||||
}
|
||||
|
||||
public StromkirkOccultistExileEffect(final StromkirkOccultistExileEffect effect) {
|
||||
|
|
|
@ -37,7 +37,8 @@ public final class TiminYouthfulGeist extends CardImpl {
|
|||
|
||||
// At the beginning of each combat, tap up to one target creature.
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(
|
||||
new TapTargetEffect(), TargetController.ANY, false
|
||||
new TapTargetEffect().setText("tap up to one target creature"),
|
||||
TargetController.ANY, false
|
||||
);
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 1));
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -58,7 +58,7 @@ public class VerifyCardDataTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "VOW"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "VOC"; // 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 ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
||||
|
||||
|
|
|
@ -67,13 +67,13 @@ public class InvestigateEffect extends OneShotEffect {
|
|||
message = ". <i>(C";
|
||||
break;
|
||||
case 2:
|
||||
message = "twice. <i>(To investigate, c";
|
||||
message = " twice. <i>(To investigate, c";
|
||||
break;
|
||||
default:
|
||||
message = CardUtil.numberToText(value) + " times. <i>(To investigate, c";
|
||||
message = ' ' + CardUtil.numberToText(value) + " times. <i>(To investigate, c";
|
||||
}
|
||||
} else {
|
||||
message = "X times, where X is the " + amount.getMessage() + ". <i>(To investigate, c";
|
||||
message = " X times, where X is the " + amount.getMessage() + ". <i>(To investigate, c";
|
||||
}
|
||||
return "investigate" + message + "reate a colorless Clue artifact token " +
|
||||
"with \"{2}, Sacrifice this artifact: Draw a card.\")</i>";
|
||||
|
|
Loading…
Reference in a new issue