mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08: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(
|
Ability ability = new EntersBattlefieldAbility(
|
||||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
|
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),
|
||||||
KickedCondition.instance,
|
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);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public final class BalaGedThief extends CardImpl {
|
||||||
// You choose one of them. That player discards that card.
|
// You choose one of them. That player discards that card.
|
||||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DiscardCardYouChooseTargetEffect(TargetController.ANY, xValue), false);
|
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DiscardCardYouChooseTargetEffect(TargetController.ANY, xValue), false);
|
||||||
ability.addTarget(new TargetPlayer());
|
ability.addTarget(new TargetPlayer());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability.setAbilityWord(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BalaGedThief(final BalaGedThief card) {
|
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.
|
// 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().addTarget(new TargetAnyTarget());
|
||||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
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) {
|
private BurstLightning(final BurstLightning card) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
|
@ -24,14 +24,15 @@ public final class GrimDiscovery extends CardImpl {
|
||||||
// Choose one or both -
|
// Choose one or both -
|
||||||
this.getSpellAbility().getModes().setMinModes(1);
|
this.getSpellAbility().getModes().setMinModes(1);
|
||||||
this.getSpellAbility().getModes().setMaxModes(2);
|
this.getSpellAbility().getModes().setMaxModes(2);
|
||||||
|
|
||||||
// Return target creature card from your graveyard to your hand;
|
// 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"));
|
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.
|
// and/or return target land card from your graveyard to your hand.
|
||||||
Mode mode1 = new Mode();
|
Mode mode = new Mode(new ReturnFromGraveyardToHandTargetEffect());
|
||||||
mode1.addEffect(new ReturnToHandTargetEffect());
|
mode.addTarget(new TargetCardInYourGraveyard(filterLandCard).withChooseHint("return to hand"));
|
||||||
mode1.addTarget(new TargetCardInYourGraveyard(filterLandCard).withChooseHint("return to hand"));
|
this.getSpellAbility().addMode(mode);
|
||||||
this.getSpellAbility().addMode(mode1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private GrimDiscovery(final GrimDiscovery card) {
|
private GrimDiscovery(final GrimDiscovery card) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.h;
|
package mage.cards.h;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
|
||||||
|
|
@ -15,8 +13,9 @@ import mage.constants.TargetController;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
import mage.target.TargetPlayer;
|
import mage.target.TargetPlayer;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class HagraDiabolist extends CardImpl {
|
public final class HagraDiabolist extends CardImpl {
|
||||||
|
|
@ -29,7 +28,7 @@ public final class HagraDiabolist extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public HagraDiabolist(UUID ownerId, CardSetInfo setInfo) {
|
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.OGRE);
|
||||||
this.subtype.add(SubType.SHAMAN);
|
this.subtype.add(SubType.SHAMAN);
|
||||||
this.subtype.add(SubType.ALLY);
|
this.subtype.add(SubType.ALLY);
|
||||||
|
|
@ -37,9 +36,9 @@ public final class HagraDiabolist extends CardImpl {
|
||||||
this.power = new MageInt(3);
|
this.power = new MageInt(3);
|
||||||
this.toughness = new MageInt(2);
|
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());
|
ability.addTarget(new TargetPlayer());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability.setAbilityWord(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HagraDiabolist(final HagraDiabolist card) {
|
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.
|
// 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 effect = new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, filter);
|
||||||
effect.setText("you may have Ally creatures you control gain first strike until end of turn");
|
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) {
|
private HighlandBerserker(final HighlandBerserker card) {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@ public final class JoragaBard extends CardImpl {
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(4);
|
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) {
|
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 " +
|
.setText("choose a color. If you do, Allies you control gain protection " +
|
||||||
"from the chosen color until end of turn."),
|
"from the chosen color until end of turn."),
|
||||||
true
|
true
|
||||||
));
|
).setAbilityWord(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private KabiraEvangel(final KabiraEvangel card) {
|
private KabiraEvangel(final KabiraEvangel card) {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public final class KazanduBlademaster extends CardImpl {
|
||||||
|
|
||||||
this.addAbility(FirstStrikeAbility.getInstance());
|
this.addAbility(FirstStrikeAbility.getInstance());
|
||||||
this.addAbility(VigilanceAbility.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) {
|
private KazanduBlademaster(final KazanduBlademaster card) {
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import mage.filter.common.FilterCreaturePermanent;
|
||||||
*/
|
*/
|
||||||
public final class KazuulWarlord extends CardImpl {
|
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 {
|
static {
|
||||||
filter.add(SubType.ALLY.getPredicate());
|
filter.add(SubType.ALLY.getPredicate());
|
||||||
|
|
@ -35,7 +35,7 @@ public final class KazuulWarlord extends CardImpl {
|
||||||
this.power = new MageInt(3);
|
this.power = new MageInt(3);
|
||||||
this.toughness = 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) {
|
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.
|
// When Kor Hookmaster enters the battlefield, tap target creature an opponent controls.
|
||||||
// That creature doesn't untap during its controller's next untap step.
|
// That creature doesn't untap during its controller's next untap step.
|
||||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect());
|
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));
|
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
|
|
||||||
package mage.cards.m;
|
package mage.cards.m;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.costs.CompositeCost;
|
||||||
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
||||||
import mage.abilities.costs.common.ReturnToHandFromBattlefieldSourceCost;
|
import mage.abilities.costs.common.ReturnToHandFromBattlefieldSourceCost;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
|
|
@ -16,17 +15,17 @@ import mage.abilities.mana.BlueManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jeffwadsworth
|
* @author jeffwadsworth
|
||||||
*/
|
*/
|
||||||
public final class MagosiTheWaterveil extends CardImpl {
|
public final class MagosiTheWaterveil extends CardImpl {
|
||||||
|
|
||||||
public MagosiTheWaterveil(UUID ownerId, CardSetInfo setInfo) {
|
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.
|
// Magosi, the Waterveil enters the battlefield tapped.
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.addAbility(new EntersBattlefieldTappedAbility());
|
||||||
|
|
@ -35,17 +34,21 @@ public final class MagosiTheWaterveil extends CardImpl {
|
||||||
this.addAbility(new BlueManaAbility());
|
this.addAbility(new BlueManaAbility());
|
||||||
|
|
||||||
// {U}, {T}: Put an eon counter on Magosi, the Waterveil. Skip your next turn.
|
// {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 ability = new SimpleActivatedAbility(
|
||||||
ability.addEffect(new SkipNextTurnSourceEffect());
|
new AddCountersSourceEffect(CounterType.EON.createInstance()), new ManaCostsImpl<>("{U}")
|
||||||
|
);
|
||||||
|
ability.addEffect(new SkipNextTurnSourceEffect().setText("skip your next turn"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
this.addAbility(ability);
|
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.
|
// {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());
|
Ability ability2 = new SimpleActivatedAbility(new AddExtraTurnControllerEffect(), new TapSourceCost());
|
||||||
ability2.addCost(new RemoveCountersSourceCost(CounterType.EON.createInstance()));
|
ability2.addCost(new CompositeCost(
|
||||||
ability2.addCost(new ReturnToHandFromBattlefieldSourceCost());
|
new RemoveCountersSourceCost(CounterType.EON.createInstance()),
|
||||||
|
new ReturnToHandFromBattlefieldSourceCost(),
|
||||||
|
"remove an eon counter from {this} and return it to its owner's hand"
|
||||||
|
));
|
||||||
this.addAbility(ability2);
|
this.addAbility(ability2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private MagosiTheWaterveil(final MagosiTheWaterveil card) {
|
private MagosiTheWaterveil(final MagosiTheWaterveil card) {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public final class MakindiShieldmate extends CardImpl {
|
||||||
|
|
||||||
this.addAbility(DefenderAbility.getInstance());
|
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) {
|
private MakindiShieldmate(final MakindiShieldmate card) {
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import mage.filter.FilterCard;
|
||||||
*/
|
*/
|
||||||
public final class MerfolkWayfinder extends CardImpl {
|
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 {
|
static {
|
||||||
filter.add(SubType.ISLAND.getPredicate());
|
filter.add(SubType.ISLAND.getPredicate());
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public final class MireBlight extends CardImpl {
|
||||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
// When enchanted creature is dealt damage, destroy it.
|
// 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) {
|
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 ability = new AllyEntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)), true);
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
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.
|
// Target player loses 5 life and you gain 5 life.
|
||||||
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(5));
|
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());
|
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ public final class NimanaSellSword extends CardImpl {
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = 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) {
|
private NimanaSellSword(final NimanaSellSword card) {
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public final class NimbusWings extends CardImpl {
|
||||||
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
|
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
|
||||||
// Enchanted creature gets +1/+2 and has flying.
|
// Enchanted creature gets +1/+2 and has flying.
|
||||||
SimpleStaticAbility ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 2, Duration.WhileOnBattlefield));
|
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);
|
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.
|
// 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.
|
// 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.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)).concatBy("If you do,"));
|
||||||
ability.addTarget(new TargetPlayer());
|
ability.addTarget(new TargetPlayer());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ public final class OnduCleric extends CardImpl {
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = 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) {
|
private OnduCleric(final OnduCleric card) {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ public final class OranRiefSurvivalist extends CardImpl {
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = 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) {
|
private OranRiefSurvivalist(final OranRiefSurvivalist card) {
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,32 @@
|
||||||
|
|
||||||
package mage.cards.p;
|
package mage.cards.p;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.TriggeredAbilityImpl;
|
import mage.abilities.TriggeredAbilityImpl;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
import mage.abilities.effects.common.DoIfCostPaid;
|
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.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
import mage.game.events.GameEvent.EventType;
|
|
||||||
import mage.target.common.TargetAnyTarget;
|
import mage.target.common.TargetAnyTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class PunishingFire extends CardImpl {
|
public final class PunishingFire extends CardImpl {
|
||||||
|
|
||||||
public PunishingFire(UUID ownerId, CardSetInfo setInfo) {
|
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.
|
// Punishing Fire deals 2 damage to any target.
|
||||||
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
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.
|
// 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());
|
this.addAbility(new PunishingFireTriggeredAbility());
|
||||||
}
|
}
|
||||||
|
|
@ -46,7 +44,7 @@ public final class PunishingFire extends CardImpl {
|
||||||
class PunishingFireTriggeredAbility extends TriggeredAbilityImpl {
|
class PunishingFireTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
public PunishingFireTriggeredAbility() {
|
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) {
|
public PunishingFireTriggeredAbility(final PunishingFireTriggeredAbility ability) {
|
||||||
|
|
@ -70,6 +68,6 @@ class PunishingFireTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTriggerPhrase() {
|
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.
|
// 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(
|
this.addAbility(new DealsDamageToACreatureAllTriggeredAbility(
|
||||||
new AddCountersSourceEffect(CounterType.QUEST.createInstance()), false,
|
new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true,
|
||||||
StaticFilters.FILTER_CONTROLLED_A_CREATURE, SetTargetPointer.PERMANENT, true
|
StaticFilters.FILTER_CONTROLLED_A_CREATURE, SetTargetPointer.PERMANENT, true
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
|
@ -13,36 +11,35 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||||
import mage.abilities.keyword.EnchantAbility;
|
import mage.abilities.keyword.EnchantAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.AttachmentType;
|
import mage.constants.*;
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class SavageSilhouette extends CardImpl {
|
public final class SavageSilhouette extends CardImpl {
|
||||||
|
|
||||||
public SavageSilhouette(UUID ownerId, CardSetInfo setInfo) {
|
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);
|
this.subtype.add(SubType.AURA);
|
||||||
|
|
||||||
|
|
||||||
// Enchant creature
|
// Enchant creature
|
||||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||||
this.getSpellAbility().addTarget(auraTarget);
|
this.getSpellAbility().addTarget(auraTarget);
|
||||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
|
||||||
this.addAbility(ability);
|
|
||||||
// Enchanted creature gets +2/+2 and has "{1}{G}: Regenerate this creature."
|
// Enchanted creature gets +2/+2 and has "{1}{G}: Regenerate this creature."
|
||||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}"));
|
Ability ability = new SimpleStaticAbility(new BoostEnchantedEffect(
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
|
2, 2, Duration.WhileOnBattlefield
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.AURA)));
|
));
|
||||||
|
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) {
|
private SavageSilhouette(final SavageSilhouette card) {
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public final class ScytheTiger extends CardImpl {
|
||||||
this.addAbility(ShroudAbility.getInstance());
|
this.addAbility(ShroudAbility.getInstance());
|
||||||
|
|
||||||
// When Scythe Tiger enters the battlefield, sacrifice it unless you sacrifice a land.
|
// 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) {
|
private ScytheTiger(final ScytheTiger card) {
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public final class SeascapeAerialist extends CardImpl {
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(3);
|
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) {
|
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.
|
// +2: Sorin Markov deals 2 damage to any target and you gain 2 life.
|
||||||
LoyaltyAbility ability1 = new LoyaltyAbility(new DamageTargetEffect(2), 2);
|
LoyaltyAbility ability1 = new LoyaltyAbility(new DamageTargetEffect(2), 2);
|
||||||
ability1.addEffect(new GainLifeEffect(2));
|
ability1.addEffect(new GainLifeEffect(2).concatBy("and"));
|
||||||
ability1.addTarget(new TargetAnyTarget());
|
ability1.addTarget(new TargetAnyTarget());
|
||||||
this.addAbility(ability1);
|
this.addAbility(ability1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.CompositeCost;
|
import mage.abilities.costs.CompositeCost;
|
||||||
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
||||||
import mage.abilities.costs.common.SacrificeSourceCost;
|
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.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
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.
|
// 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(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
new ReturnToHandTargetEffect(),
|
new ReturnFromGraveyardToHandTargetEffect(),
|
||||||
new CompositeCost(
|
new CompositeCost(
|
||||||
new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
|
new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
|
||||||
new SacrificeSourceCost(),
|
new SacrificeSourceCost(),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||||
|
|
@ -12,22 +11,26 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.AttachmentType;
|
import mage.constants.AttachmentType;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.Zone;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class SpidersilkNet extends CardImpl {
|
public final class SpidersilkNet extends CardImpl {
|
||||||
|
|
||||||
public SpidersilkNet(UUID ownerId, CardSetInfo setInfo) {
|
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.subtype.add(SubType.EQUIPMENT);
|
||||||
|
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 2)));
|
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(0, 2));
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ReachAbility.getInstance(), AttachmentType.EQUIPMENT)));
|
ability.addEffect(new GainAbilityAttachedEffect(
|
||||||
|
ReachAbility.getInstance(), AttachmentType.EQUIPMENT
|
||||||
|
).setText("and has reach"));
|
||||||
|
this.addAbility(ability);
|
||||||
|
|
||||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));
|
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ public final class TajuruArcher extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)), true);
|
Ability ability = new AllyEntersBattlefieldTriggeredAbility(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)), true);
|
||||||
ability.addTarget(new TargetCreaturePermanent(filterTarget));
|
ability.addTarget(new TargetCreaturePermanent(filterTarget));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability.setAbilityWord(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private TajuruArcher(final TajuruArcher card) {
|
private TajuruArcher(final TajuruArcher card) {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
|
|
||||||
package mage.cards.t;
|
package mage.cards.t;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.AttacksTriggeredAbility;
|
import mage.abilities.common.AttacksTriggeredAbility;
|
||||||
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
|
@ -14,8 +13,9 @@ import mage.constants.SubType;
|
||||||
import mage.constants.TargetController;
|
import mage.constants.TargetController;
|
||||||
import mage.filter.common.FilterLandPermanent;
|
import mage.filter.common.FilterLandPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class TimbermawLarva extends CardImpl {
|
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) {
|
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.subtype.add(SubType.BEAST);
|
||||||
|
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
PermanentsOnBattlefieldCount value = new PermanentsOnBattlefieldCount(filter);
|
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(
|
||||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(value, value, Duration.EndOfTurn), false));
|
xValue, xValue, Duration.EndOfTurn, true, "it"
|
||||||
|
), false));
|
||||||
}
|
}
|
||||||
|
|
||||||
private TimbermawLarva(final TimbermawLarva card) {
|
private TimbermawLarva(final TimbermawLarva card) {
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ public final class TuktukGrunts extends CardImpl {
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
this.addAbility(HasteAbility.getInstance());
|
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) {
|
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.
|
// 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 ability = new AllyEntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WolfToken()), true);
|
||||||
ability.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
|
ability.addEffect(new AddCountersSourceEffect(CounterType.P1P1.createInstance()).concatBy("If you do,"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability.setAbilityWord(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private TurntimberRanger(final TurntimberRanger card) {
|
private TurntimberRanger(final TurntimberRanger card) {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ public final class UmaraRaptor extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
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) {
|
private UmaraRaptor(final UmaraRaptor card) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.w;
|
package mage.cards.w;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
|
@ -11,20 +9,24 @@ import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.target.common.TargetControlledCreaturePermanent;
|
import mage.target.common.TargetControlledCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class WindborneCharge extends CardImpl {
|
public final class WindborneCharge extends CardImpl {
|
||||||
|
|
||||||
public WindborneCharge(UUID ownerId, CardSetInfo setInfo) {
|
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.
|
// 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().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) {
|
private WindborneCharge(final WindborneCharge card) {
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ public class VerifyCardDataTest {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||||
|
|
||||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "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 AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
|
||||||
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -160,17 +160,18 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
|
||||||
superRule = newRule.toString();
|
superRule = newRule.toString();
|
||||||
}
|
}
|
||||||
} else if (this.getTargets().isEmpty()
|
} else if (this.getTargets().isEmpty()
|
||||||
|
|| ruleLow.startsWith("attach")
|
||||||
|
|| ruleLow.startsWith("counter")
|
||||||
|
|| ruleLow.startsWith("destroy")
|
||||||
|
|| ruleLow.startsWith("exchange")
|
||||||
|| ruleLow.startsWith("exile")
|
|| ruleLow.startsWith("exile")
|
||||||
|| ruleLow.startsWith("gain")
|
|| ruleLow.startsWith("gain")
|
||||||
|| ruleLow.startsWith("destroy")
|
|| ruleLow.startsWith("goad")
|
||||||
|| ruleLow.startsWith("return")
|
|
||||||
|| ruleLow.startsWith("tap")
|
|
||||||
|| ruleLow.startsWith("untap")
|
|
||||||
|| ruleLow.startsWith("put")
|
|| ruleLow.startsWith("put")
|
||||||
|| ruleLow.startsWith("remove")
|
|| ruleLow.startsWith("remove")
|
||||||
|| ruleLow.startsWith("counter")
|
|| ruleLow.startsWith("return")
|
||||||
|| ruleLow.startsWith("exchange")
|
|| ruleLow.startsWith("tap")
|
||||||
|| ruleLow.startsWith("goad")) {
|
|| ruleLow.startsWith("untap")) {
|
||||||
sb.append("you may ");
|
sb.append("you may ");
|
||||||
} else if (!ruleLow.startsWith("its controller may")) {
|
} else if (!ruleLow.startsWith("its controller may")) {
|
||||||
sb.append("you may have ");
|
sb.append("you may have ");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue