mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
[ZEN] various text fixes
This commit is contained in:
parent
ed3d357531
commit
caa1b7a8d7
38 changed files with 117 additions and 108 deletions
|
@ -37,7 +37,7 @@ public final class AetherFigment extends CardImpl {
|
|||
Ability ability = new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
|
||||
KickedCondition.instance,
|
||||
"If {this} was kicked, it enters the battlefield with two +1/+1 counters on it",
|
||||
"If {this} was kicked, it enters the battlefield with two +1/+1 counters on it.",
|
||||
"");
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public final class BalaGedThief extends CardImpl {
|
|||
// You choose one of them. That player discards that card.
|
||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DiscardCardYouChooseTargetEffect(TargetController.ANY, xValue), false);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(ability.setAbilityWord(null));
|
||||
}
|
||||
|
||||
private BalaGedThief(final BalaGedThief card) {
|
||||
|
|
|
@ -26,7 +26,7 @@ public final class BurstLightning extends CardImpl {
|
|||
// Burst Lightning deals 2 damage to any target. If Burst Lightning was kicked, it deals 4 damage to that creature or player instead.
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. If this spell was kicked, it deals 4 damage to that permanent or player instead"));
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. If this spell was kicked, it deals 4 damage instead"));
|
||||
}
|
||||
|
||||
private BurstLightning(final BurstLightning card) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
@ -24,14 +24,15 @@ public final class GrimDiscovery extends CardImpl {
|
|||
// Choose one or both -
|
||||
this.getSpellAbility().getModes().setMinModes(1);
|
||||
this.getSpellAbility().getModes().setMaxModes(2);
|
||||
|
||||
// Return target creature card from your graveyard to your hand;
|
||||
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD).withChooseHint("return to hand"));
|
||||
|
||||
// and/or return target land card from your graveyard to your hand.
|
||||
Mode mode1 = new Mode();
|
||||
mode1.addEffect(new ReturnToHandTargetEffect());
|
||||
mode1.addTarget(new TargetCardInYourGraveyard(filterLandCard).withChooseHint("return to hand"));
|
||||
this.getSpellAbility().addMode(mode1);
|
||||
Mode mode = new Mode(new ReturnFromGraveyardToHandTargetEffect());
|
||||
mode.addTarget(new TargetCardInYourGraveyard(filterLandCard).withChooseHint("return to hand"));
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
||||
private GrimDiscovery(final GrimDiscovery card) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
|
||||
|
@ -15,8 +13,9 @@ import mage.constants.TargetController;
|
|||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class HagraDiabolist extends CardImpl {
|
||||
|
@ -29,7 +28,7 @@ public final class HagraDiabolist extends CardImpl {
|
|||
}
|
||||
|
||||
public HagraDiabolist(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
||||
this.subtype.add(SubType.OGRE);
|
||||
this.subtype.add(SubType.SHAMAN);
|
||||
this.subtype.add(SubType.ALLY);
|
||||
|
@ -37,9 +36,9 @@ public final class HagraDiabolist extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(new PermanentsOnBattlefieldCount(filter)), true);
|
||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(new PermanentsOnBattlefieldCount(filter)).setText("you may have target player lose life equal to the number of Allies you control"), true);
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(ability.setAbilityWord(null));
|
||||
}
|
||||
|
||||
private HagraDiabolist(final HagraDiabolist card) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class HighlandBerserker extends CardImpl {
|
|||
// Whenever Highland Berserker or another Ally enters the battlefield under your control, you may have Ally creatures you control gain first strike until end of turn.
|
||||
Effect effect = new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, filter);
|
||||
effect.setText("you may have Ally creatures you control gain first strike until end of turn");
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(effect, true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(effect, true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private HighlandBerserker(final HighlandBerserker card) {
|
||||
|
|
|
@ -37,7 +37,9 @@ public final class JoragaBard extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(4);
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, filter), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(
|
||||
VigilanceAbility.getInstance(), Duration.EndOfTurn, filter
|
||||
).setText("you may have Ally creatures you control gain vigilance until end of turn"), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private JoragaBard(final JoragaBard card) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class KabiraEvangel extends CardImpl {
|
|||
.setText("choose a color. If you do, Allies you control gain protection " +
|
||||
"from the chosen color until end of turn."),
|
||||
true
|
||||
));
|
||||
).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private KabiraEvangel(final KabiraEvangel card) {
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class KazanduBlademaster extends CardImpl {
|
|||
|
||||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private KazanduBlademaster(final KazanduBlademaster card) {
|
||||
|
|
|
@ -19,7 +19,7 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
*/
|
||||
public final class KazuulWarlord extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Ally creatures you control");
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Ally creature you control");
|
||||
|
||||
static {
|
||||
filter.add(SubType.ALLY.getPredicate());
|
||||
|
@ -35,7 +35,7 @@ public final class KazuulWarlord extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private KazuulWarlord(final KazuulWarlord card) {
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class KorHookmaster extends CardImpl {
|
|||
// When Kor Hookmaster enters the battlefield, tap target creature an opponent controls.
|
||||
// That creature doesn't untap during its controller's next untap step.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect());
|
||||
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect());
|
||||
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("that creature"));
|
||||
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.CompositeCost;
|
||||
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
||||
import mage.abilities.costs.common.ReturnToHandFromBattlefieldSourceCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
|
@ -16,17 +15,17 @@ import mage.abilities.mana.BlueManaAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author jeffwadsworth
|
||||
*/
|
||||
public final class MagosiTheWaterveil extends CardImpl {
|
||||
|
||||
public MagosiTheWaterveil(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// Magosi, the Waterveil enters the battlefield tapped.
|
||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||
|
@ -35,17 +34,21 @@ public final class MagosiTheWaterveil extends CardImpl {
|
|||
this.addAbility(new BlueManaAbility());
|
||||
|
||||
// {U}, {T}: Put an eon counter on Magosi, the Waterveil. Skip your next turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.EON.createInstance()), new ManaCostsImpl("{U}"));
|
||||
ability.addEffect(new SkipNextTurnSourceEffect());
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new AddCountersSourceEffect(CounterType.EON.createInstance()), new ManaCostsImpl<>("{U}")
|
||||
);
|
||||
ability.addEffect(new SkipNextTurnSourceEffect().setText("skip your next turn"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
||||
// {T}, Remove an eon counter from Magosi, the Waterveil and return it to its owner's hand: Take an extra turn after this one.
|
||||
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddExtraTurnControllerEffect(), new TapSourceCost());
|
||||
ability2.addCost(new RemoveCountersSourceCost(CounterType.EON.createInstance()));
|
||||
ability2.addCost(new ReturnToHandFromBattlefieldSourceCost());
|
||||
Ability ability2 = new SimpleActivatedAbility(new AddExtraTurnControllerEffect(), new TapSourceCost());
|
||||
ability2.addCost(new CompositeCost(
|
||||
new RemoveCountersSourceCost(CounterType.EON.createInstance()),
|
||||
new ReturnToHandFromBattlefieldSourceCost(),
|
||||
"remove an eon counter from {this} and return it to its owner's hand"
|
||||
));
|
||||
this.addAbility(ability2);
|
||||
|
||||
}
|
||||
|
||||
private MagosiTheWaterveil(final MagosiTheWaterveil card) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class MakindiShieldmate extends CardImpl {
|
|||
|
||||
this.addAbility(DefenderAbility.getInstance());
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private MakindiShieldmate(final MakindiShieldmate card) {
|
||||
|
|
|
@ -19,7 +19,7 @@ import mage.filter.FilterCard;
|
|||
*/
|
||||
public final class MerfolkWayfinder extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("all Island cards");
|
||||
private static final FilterCard filter = new FilterCard("Island cards");
|
||||
|
||||
static {
|
||||
filter.add(SubType.ISLAND.getPredicate());
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class MireBlight extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
// When enchanted creature is dealt damage, destroy it.
|
||||
this.addAbility(new DealtDamageAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), false));
|
||||
this.addAbility(new DealtDamageAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), false).setTriggerPhrase("When enchanted creature is dealt damage, "));
|
||||
}
|
||||
|
||||
private MireBlight(final MireBlight card) {
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class MurasaPyromancer extends CardImpl {
|
|||
|
||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)), true);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(ability.setAbilityWord(null));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class NeedlebiteTrap extends CardImpl {
|
|||
|
||||
// Target player loses 5 life and you gain 5 life.
|
||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(5));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(5));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(5).concatBy("and"));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ public final class NimanaSellSword extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private NimanaSellSword(final NimanaSellSword card) {
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class NimbusWings extends CardImpl {
|
|||
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
|
||||
// Enchanted creature gets +1/+2 and has flying.
|
||||
SimpleStaticAbility ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 2, Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA).setText("and has flying"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class ObNixilisTheFallen extends CardImpl {
|
|||
|
||||
// Landfall - Whenever a land enters the battlefield under your control, you may have target player lose 3 life.
|
||||
// If you do, put three +1/+1 counters on Ob Nixilis, the Fallen.
|
||||
Ability ability = new LandfallAbility(new LoseLifeTargetEffect(3), true);
|
||||
Ability ability = new LandfallAbility(new LoseLifeTargetEffect(3).setText("target player lose 3 life"), true);
|
||||
ability.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)).concatBy("If you do,"));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class OnduCleric extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter)), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter)), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private OnduCleric(final OnduCleric card) {
|
||||
|
|
|
@ -26,7 +26,7 @@ public final class OranRiefSurvivalist extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private OranRiefSurvivalist(final OranRiefSurvivalist card) {
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.DoIfCostPaid;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class PunishingFire extends CardImpl {
|
||||
|
||||
public PunishingFire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}");
|
||||
|
||||
// Punishing Fire deals 2 damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// Whenever an opponent gains life, you may pay {R}. If you do, return Punishing Fire from your graveyard to your hand.
|
||||
this.addAbility(new PunishingFireTriggeredAbility());
|
||||
}
|
||||
|
@ -46,7 +44,7 @@ public final class PunishingFire extends CardImpl {
|
|||
class PunishingFireTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public PunishingFireTriggeredAbility() {
|
||||
super(Zone.GRAVEYARD, new DoIfCostPaid(new ReturnToHandSourceEffect(), new ManaCostsImpl("{R}")));
|
||||
super(Zone.GRAVEYARD, new DoIfCostPaid(new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl<>("{R}")));
|
||||
}
|
||||
|
||||
public PunishingFireTriggeredAbility(final PunishingFireTriggeredAbility ability) {
|
||||
|
@ -70,6 +68,6 @@ class PunishingFireTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getTriggerPhrase() {
|
||||
return "Whenever an opponent gains life, " ;
|
||||
return "Whenever an opponent gains life, ";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class QuestForTheGemblades extends CardImpl {
|
|||
|
||||
// Whenever a creature you control deals combat damage to a creature, you may put a quest counter on Quest for the Gemblades.
|
||||
this.addAbility(new DealsDamageToACreatureAllTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.QUEST.createInstance()), false,
|
||||
new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true,
|
||||
StaticFilters.FILTER_CONTROLLED_A_CREATURE, SetTargetPointer.PERMANENT, true
|
||||
));
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
|
@ -13,36 +11,35 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
|||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.*;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class SavageSilhouette extends CardImpl {
|
||||
|
||||
public SavageSilhouette(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
|
||||
|
||||
// Enchanted creature gets +2/+2 and has "{1}{G}: Regenerate this creature."
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}"));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.AURA)));
|
||||
Ability ability = new SimpleStaticAbility(new BoostEnchantedEffect(
|
||||
2, 2, Duration.WhileOnBattlefield
|
||||
));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(new SimpleActivatedAbility(
|
||||
new RegenerateSourceEffect(), new ManaCostsImpl<>("{1}{G}")
|
||||
), AttachmentType.AURA).setText("and has \"{1}{G}: Regenerate this creature.\""));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private SavageSilhouette(final SavageSilhouette card) {
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class ScytheTiger extends CardImpl {
|
|||
this.addAbility(ShroudAbility.getInstance());
|
||||
|
||||
// When Scythe Tiger enters the battlefield, sacrifice it unless you sacrifice a land.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_LAND_SHORT_TEXT)))));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_LAND_SHORT_TEXT))).setText("sacrifice it unless you sacrifice a land")));
|
||||
}
|
||||
|
||||
private ScytheTiger(final ScytheTiger card) {
|
||||
|
|
|
@ -36,7 +36,7 @@ public final class SeascapeAerialist extends CardImpl {
|
|||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter).setText("you may have Ally creatures you control gain flying until end of turn"), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private SeascapeAerialist(final SeascapeAerialist card) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class SorinMarkov extends CardImpl {
|
|||
|
||||
// +2: Sorin Markov deals 2 damage to any target and you gain 2 life.
|
||||
LoyaltyAbility ability1 = new LoyaltyAbility(new DamageTargetEffect(2), 2);
|
||||
ability1.addEffect(new GainLifeEffect(2));
|
||||
ability1.addEffect(new GainLifeEffect(2).concatBy("and"));
|
||||
ability1.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability1);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
|||
import mage.abilities.costs.CompositeCost;
|
||||
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -30,7 +30,7 @@ public final class SoulStairExpedition extends CardImpl {
|
|||
|
||||
// Remove three quest counters from Soul Stair Expedition and sacrifice it: Return up to two target creature cards from your graveyard to your hand.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new ReturnToHandTargetEffect(),
|
||||
new ReturnFromGraveyardToHandTargetEffect(),
|
||||
new CompositeCost(
|
||||
new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
|
||||
new SacrificeSourceCost(),
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||
|
@ -12,22 +11,26 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class SpidersilkNet extends CardImpl {
|
||||
|
||||
public SpidersilkNet(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{0}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{0}");
|
||||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 2)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ReachAbility.getInstance(), AttachmentType.EQUIPMENT)));
|
||||
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(0, 2));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(
|
||||
ReachAbility.getInstance(), AttachmentType.EQUIPMENT
|
||||
).setText("and has reach"));
|
||||
this.addAbility(ability);
|
||||
|
||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class TajuruArcher extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)), true);
|
||||
ability.addTarget(new TargetCreaturePermanent(filterTarget));
|
||||
this.addAbility(ability);
|
||||
this.addAbility(ability.setAbilityWord(null));
|
||||
}
|
||||
|
||||
private TajuruArcher(final TajuruArcher card) {
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
package mage.cards.t;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -14,8 +13,9 @@ import mage.constants.SubType;
|
|||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class TimbermawLarva extends CardImpl {
|
||||
|
@ -28,15 +28,18 @@ public final class TimbermawLarva extends CardImpl {
|
|||
|
||||
}
|
||||
|
||||
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
|
||||
|
||||
public TimbermawLarva(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
|
||||
this.subtype.add(SubType.BEAST);
|
||||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
PermanentsOnBattlefieldCount value = new PermanentsOnBattlefieldCount(filter);
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(value, value, Duration.EndOfTurn), false));
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(
|
||||
xValue, xValue, Duration.EndOfTurn, true, "it"
|
||||
), false));
|
||||
}
|
||||
|
||||
private TimbermawLarva(final TimbermawLarva card) {
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class TuktukGrunts extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private TuktukGrunts(final TuktukGrunts card) {
|
||||
|
|
|
@ -32,8 +32,8 @@ public final class TurntimberRanger extends CardImpl {
|
|||
|
||||
// Whenever Turntimber Ranger or another Ally enters the battlefield under your control, you may create a 2/2 green Wolf creature token. If you do, put a +1/+1 counter on Turntimber Ranger.
|
||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WolfToken()), true);
|
||||
ability.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
||||
this.addAbility(ability);
|
||||
ability.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance()).concatBy("If you do,"));
|
||||
this.addAbility(ability.setAbilityWord(null));
|
||||
}
|
||||
|
||||
private TurntimberRanger(final TurntimberRanger card) {
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class UmaraRaptor extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true));
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true).setAbilityWord(null));
|
||||
}
|
||||
|
||||
private UmaraRaptor(final UmaraRaptor card) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.w;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
|
@ -11,20 +9,24 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public final class WindborneCharge extends CardImpl {
|
||||
|
||||
public WindborneCharge(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{W}{W}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{W}{W}");
|
||||
|
||||
// Two target creatures you control each get +2/+2 and gain flying until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(
|
||||
2, 2, Duration.EndOfTurn
|
||||
).setText("two target creatures you control each get +2/+2"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(
|
||||
FlyingAbility.getInstance(), Duration.EndOfTurn
|
||||
).setText("and gain flying until end of turn"));
|
||||
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent(2));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn));
|
||||
}
|
||||
|
||||
private WindborneCharge(final WindborneCharge card) {
|
||||
|
|
|
@ -62,7 +62,7 @@ public class VerifyCardDataTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOR"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ZEN"; // 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
|
||||
|
||||
|
|
|
@ -160,17 +160,18 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
|
|||
superRule = newRule.toString();
|
||||
}
|
||||
} else if (this.getTargets().isEmpty()
|
||||
|| ruleLow.startsWith("attach")
|
||||
|| ruleLow.startsWith("counter")
|
||||
|| ruleLow.startsWith("destroy")
|
||||
|| ruleLow.startsWith("exchange")
|
||||
|| ruleLow.startsWith("exile")
|
||||
|| ruleLow.startsWith("gain")
|
||||
|| ruleLow.startsWith("destroy")
|
||||
|| ruleLow.startsWith("return")
|
||||
|| ruleLow.startsWith("tap")
|
||||
|| ruleLow.startsWith("untap")
|
||||
|| ruleLow.startsWith("goad")
|
||||
|| ruleLow.startsWith("put")
|
||||
|| ruleLow.startsWith("remove")
|
||||
|| ruleLow.startsWith("counter")
|
||||
|| ruleLow.startsWith("exchange")
|
||||
|| ruleLow.startsWith("goad")) {
|
||||
|| ruleLow.startsWith("return")
|
||||
|| ruleLow.startsWith("tap")
|
||||
|| ruleLow.startsWith("untap")) {
|
||||
sb.append("you may ");
|
||||
} else if (!ruleLow.startsWith("its controller may")) {
|
||||
sb.append("you may have ");
|
||||
|
|
Loading…
Reference in a new issue