mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
[ZNC] some text fixes
This commit is contained in:
parent
144e2e933a
commit
16450f9952
20 changed files with 59 additions and 58 deletions
|
@ -1,25 +1,25 @@
|
||||||
|
|
||||||
package mage.cards.a;
|
package mage.cards.a;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect;
|
import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect;
|
||||||
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.filter.common.FilterAttackingCreature;
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class Aetherize extends CardImpl {
|
public final class Aetherize extends CardImpl {
|
||||||
|
|
||||||
public Aetherize(UUID ownerId, CardSetInfo setInfo) {
|
public Aetherize(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
|
||||||
|
|
||||||
|
|
||||||
// Return all attacking creatures to their owners' hands.
|
// Return all attacking creatures to their owners' hands.
|
||||||
this.getSpellAbility().addEffect(new ReturnToHandFromBattlefieldAllEffect(new FilterAttackingCreature("attacking creatures")));
|
this.getSpellAbility().addEffect(new ReturnToHandFromBattlefieldAllEffect(
|
||||||
|
StaticFilters.FILTER_ATTACKING_CREATURES
|
||||||
|
).setText("Return all attacking creatures to their owner's hand."));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Aetherize(final Aetherize card) {
|
public Aetherize(final Aetherize card) {
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
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.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
|
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
|
||||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||||
import mage.abilities.keyword.EquipAbility;
|
import mage.abilities.keyword.EquipAbility;
|
||||||
|
@ -13,14 +12,17 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author North
|
* @author North
|
||||||
*/
|
*/
|
||||||
public final class Bonehoard extends CardImpl {
|
public final class Bonehoard extends CardImpl {
|
||||||
|
|
||||||
|
private static final DynamicValue value = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
|
||||||
|
|
||||||
public Bonehoard(UUID ownerId, CardSetInfo setInfo) {
|
public Bonehoard(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||||
this.subtype.add(SubType.EQUIPMENT);
|
this.subtype.add(SubType.EQUIPMENT);
|
||||||
|
@ -29,8 +31,7 @@ public final class Bonehoard extends CardImpl {
|
||||||
this.addAbility(new LivingWeaponAbility());
|
this.addAbility(new LivingWeaponAbility());
|
||||||
|
|
||||||
// Equipped creature gets +X/+X, where X is the number of creature cards in all graveyards.
|
// Equipped creature gets +X/+X, where X is the number of creature cards in all graveyards.
|
||||||
CardsInAllGraveyardsCount value = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
|
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(value, value).setText("equipped creature gets +X/+X, where X is the number of creature cards in all graveyards")));
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(value, value)));
|
|
||||||
|
|
||||||
// Equip {2}
|
// Equip {2}
|
||||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));
|
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));
|
||||||
|
|
|
@ -46,7 +46,7 @@ class ExtractFromDarknessEffect extends OneShotEffect {
|
||||||
|
|
||||||
ExtractFromDarknessEffect() {
|
ExtractFromDarknessEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
staticText = "Put a creature card from a graveyard onto the battlefield under your control";
|
staticText = "Then you put a creature card from a graveyard onto the battlefield under your control";
|
||||||
}
|
}
|
||||||
|
|
||||||
private ExtractFromDarknessEffect(final ExtractFromDarknessEffect effect) {
|
private ExtractFromDarknessEffect(final ExtractFromDarknessEffect effect) {
|
||||||
|
|
|
@ -66,7 +66,7 @@ class GontiLordOfLuxuryEffect extends OneShotEffect {
|
||||||
|
|
||||||
public GontiLordOfLuxuryEffect() {
|
public GontiLordOfLuxuryEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
this.staticText = "look at the top four cards of target opponent's library, exile one of them face down, then put the rest on the bottom of that library in a random order. For as long as that card remains exiled, you may look at it, you may cast it, and you may spend mana as though it were mana of any type to cast it";
|
this.staticText = "look at the top four cards of target opponent's library, exile one of them face down, then put the rest on the bottom of that library in a random order. You may look at and cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any type to cast that spell";
|
||||||
}
|
}
|
||||||
|
|
||||||
private GontiLordOfLuxuryEffect(final GontiLordOfLuxuryEffect effect) {
|
private GontiLordOfLuxuryEffect(final GontiLordOfLuxuryEffect effect) {
|
||||||
|
|
|
@ -1,31 +1,32 @@
|
||||||
|
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
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.filter.common.FilterControlledLandPermanent;
|
import mage.filter.StaticFilters;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class GroundAssault extends CardImpl {
|
public final class GroundAssault extends CardImpl {
|
||||||
|
|
||||||
public GroundAssault(UUID ownerId, CardSetInfo setInfo) {
|
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND);
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}{G}");
|
|
||||||
|
|
||||||
|
public GroundAssault(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}{G}");
|
||||||
|
|
||||||
// Ground Assault deals damage to target creature equal to the number of lands you control.
|
// Ground Assault deals damage to target creature equal to the number of lands you control.
|
||||||
this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent())));
|
this.getSpellAbility().addEffect(new DamageTargetEffect(xValue).setText("{this} deals damage to target creature equal to the number of lands you control"));
|
||||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroundAssault(final GroundAssault card) {
|
private GroundAssault(final GroundAssault card) {
|
||||||
super(card);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ public final class InspiringCall extends CardImpl {
|
||||||
// Draw a card for each creature you control with a +1/+1 counter on it. Those creatures gain indestructible until end of turn. <i>(Damage and effects that say "destroy" don't destroy them.)
|
// Draw a card for each creature you control with a +1/+1 counter on it. Those creatures gain indestructible until end of turn. <i>(Damage and effects that say "destroy" don't destroy them.)
|
||||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)));
|
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)));
|
||||||
Effect effect = new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter);
|
Effect effect = new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter);
|
||||||
effect.setText("Those creatures gain indestructible until end of turn. <i>(Damage and effects that say \"destroy\" don't destroy them.)");
|
effect.setText("Those creatures gain indestructible until end of turn. <i>(Damage and effects that say \"destroy\" don't destroy them.)</i>");
|
||||||
this.getSpellAbility().addEffect(effect);
|
this.getSpellAbility().addEffect(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public final class KrosanVerge extends CardImpl {
|
||||||
// {2}, {T}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.
|
// {2}, {T}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(
|
Ability ability = new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(
|
||||||
new KrosanVergeTarget(), true, Outcome.PutLandInPlay
|
new KrosanVergeTarget(), true, Outcome.PutLandInPlay
|
||||||
), new GenericManaCost(2));
|
).setText("search your library for a Forest card and a Plains card, put them onto the battlefield tapped, then shuffle your library"), new GenericManaCost(2));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -59,7 +59,7 @@ class LazavDimirMastermindEffect extends OneShotEffect {
|
||||||
|
|
||||||
LazavDimirMastermindEffect() {
|
LazavDimirMastermindEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
staticText = "you may have {this} become a copy of that card except its name is Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it has hexproof and this ability";
|
staticText = "you may have {this} become a copy of that card, except its name is Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it has hexproof and this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
LazavDimirMastermindEffect(final LazavDimirMastermindEffect effect) {
|
LazavDimirMastermindEffect(final LazavDimirMastermindEffect effect) {
|
||||||
|
|
|
@ -26,7 +26,7 @@ import java.util.UUID;
|
||||||
public final class LivingTwister extends CardImpl {
|
public final class LivingTwister extends CardImpl {
|
||||||
|
|
||||||
private static final FilterControlledPermanent filter
|
private static final FilterControlledPermanent filter
|
||||||
= new FilterControlledLandPermanent("a tapped land you control");
|
= new FilterControlledLandPermanent("tapped land you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(TappedPredicate.instance);
|
filter.add(TappedPredicate.instance);
|
||||||
|
|
|
@ -27,7 +27,7 @@ import mage.target.common.TargetControlledPermanent;
|
||||||
*/
|
*/
|
||||||
public final class MultaniYavimayasAvatar extends CardImpl {
|
public final class MultaniYavimayasAvatar extends CardImpl {
|
||||||
|
|
||||||
private static final FilterControlledLandPermanent LANDS_YOU_CONTROL_FILTER = new FilterControlledLandPermanent();
|
private static final FilterControlledLandPermanent LANDS_YOU_CONTROL_FILTER = new FilterControlledLandPermanent("lands you control");
|
||||||
private static final FilterLandCard LAND_FILTER = new FilterLandCard();
|
private static final FilterLandCard LAND_FILTER = new FilterLandCard();
|
||||||
|
|
||||||
public MultaniYavimayasAvatar(UUID ownerId, CardSetInfo setInfo) {
|
public MultaniYavimayasAvatar(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
@ -49,7 +49,7 @@ public final class MultaniYavimayasAvatar extends CardImpl {
|
||||||
DynamicValue powerToughnessValue = new AdditiveDynamicValue(graveyardCount, permanentsOnBattlefieldCount);
|
DynamicValue powerToughnessValue = new AdditiveDynamicValue(graveyardCount, permanentsOnBattlefieldCount);
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||||
new BoostSourceEffect(powerToughnessValue, powerToughnessValue, Duration.WhileOnBattlefield)
|
new BoostSourceEffect(powerToughnessValue, powerToughnessValue, Duration.WhileOnBattlefield)
|
||||||
.setText("{this} gets +1/+1 for each land you control and each land in your graveyard")
|
.setText("{this} gets +1/+1 for each land you control and each land card in your graveyard")
|
||||||
));
|
));
|
||||||
|
|
||||||
//{1}{G}, Return two lands you control to their owner's hand: Return Multani from your graveyard to your hand.
|
//{1}{G}, Return two lands you control to their owner's hand: Return Multani from your graveyard to your hand.
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
package mage.cards.n;
|
package mage.cards.n;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.dynamicvalue.DynamicValue;
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
|
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
|
||||||
import mage.abilities.effects.Effect;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||||
import mage.abilities.keyword.BestowAbility;
|
import mage.abilities.keyword.BestowAbility;
|
||||||
|
@ -15,15 +13,17 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class Nighthowler extends CardImpl {
|
public final class Nighthowler extends CardImpl {
|
||||||
|
|
||||||
|
private static final DynamicValue graveCreatures = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
|
||||||
|
|
||||||
public Nighthowler(UUID ownerId, CardSetInfo setInfo) {
|
public Nighthowler(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}{B}");
|
||||||
this.subtype.add(SubType.HORROR);
|
this.subtype.add(SubType.HORROR);
|
||||||
|
@ -33,14 +33,15 @@ public final class Nighthowler extends CardImpl {
|
||||||
|
|
||||||
// Bestow {2}{B}{B}
|
// Bestow {2}{B}{B}
|
||||||
this.addAbility(new BestowAbility(this, "{2}{B}{B}"));
|
this.addAbility(new BestowAbility(this, "{2}{B}{B}"));
|
||||||
// Nighthowler and enchanted creature each get +X/+X, where X is the number of creature cards in all graveyards.
|
|
||||||
DynamicValue graveCreatures = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
|
|
||||||
Effect effect = new BoostSourceEffect(graveCreatures, graveCreatures, Duration.WhileOnBattlefield);
|
|
||||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
|
||||||
effect = new BoostEnchantedEffect(graveCreatures, graveCreatures, Duration.WhileOnBattlefield);
|
|
||||||
ability.addEffect(effect);
|
|
||||||
this.addAbility(ability);
|
|
||||||
|
|
||||||
|
// Nighthowler and enchanted creature each get +X/+X, where X is the number of creature cards in all graveyards.
|
||||||
|
Ability ability = new SimpleStaticAbility(new BoostSourceEffect(
|
||||||
|
graveCreatures, graveCreatures, Duration.WhileOnBattlefield
|
||||||
|
).setText("{this} and enchanted creature each get +X/+X"));
|
||||||
|
ability.addEffect(new BoostEnchantedEffect(
|
||||||
|
graveCreatures, graveCreatures, Duration.WhileOnBattlefield
|
||||||
|
).setText(", where X is the number of creature cards in all graveyards"));
|
||||||
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Nighthowler(final Nighthowler card) {
|
public Nighthowler(final Nighthowler card) {
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class NotoriousThrong extends CardImpl {
|
||||||
|
|
||||||
// If Notorious Throng's prowl cost was paid, take an extra turn after this one.
|
// If Notorious Throng's prowl cost was paid, take an extra turn after this one.
|
||||||
Effect effect = new ConditionalOneShotEffect(new AddExtraTurnControllerEffect(), ProwlCostWasPaidCondition.instance);
|
Effect effect = new ConditionalOneShotEffect(new AddExtraTurnControllerEffect(), ProwlCostWasPaidCondition.instance);
|
||||||
effect.setText("If {this}'s prowl cost was paid, take an extra turn after this one.");
|
effect.setText("If this spell's prowl cost was paid, take an extra turn after this one.");
|
||||||
this.getSpellAbility().addEffect(effect);
|
this.getSpellAbility().addEffect(effect);
|
||||||
this.getSpellAbility().addHint(ProwlCostWasPaidHint.instance);
|
this.getSpellAbility().addHint(ProwlCostWasPaidHint.instance);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ public final class Scaretiller extends CardImpl {
|
||||||
));
|
));
|
||||||
|
|
||||||
// • Return target land card from your graveyard to the battlefield tapped.
|
// • Return target land card from your graveyard to the battlefield tapped.
|
||||||
Mode mode = new Mode(new ReturnFromGraveyardToBattlefieldTargetEffect(true));
|
Mode mode = new Mode(new ReturnFromGraveyardToBattlefieldTargetEffect(true, false));
|
||||||
mode.addTarget(new TargetCardInYourGraveyard(filter));
|
mode.addTarget(new TargetCardInYourGraveyard(filter));
|
||||||
ability.addMode(mode);
|
ability.addMode(mode);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class Scytheclaw extends CardImpl {
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1)));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1)));
|
||||||
|
|
||||||
// Whenever equipped creature deals combat damage to a player, that player loses half of their life, round up.
|
// Whenever equipped creature deals combat damage to a player, that player loses half of their life, round up.
|
||||||
this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseHalfLifeTargetEffect(), "equipped", false, true));
|
this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseHalfLifeTargetEffect(), "equipped creature", false, true));
|
||||||
|
|
||||||
// Equip {3}
|
// Equip {3}
|
||||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));
|
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));
|
||||||
|
|
|
@ -1,34 +1,30 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
import mage.abilities.common.LandfallAbility;
|
||||||
import mage.abilities.effects.Effect;
|
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
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.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.common.FilterLandPermanent;
|
|
||||||
import mage.game.permanent.token.SaprolingToken;
|
import mage.game.permanent.token.SaprolingToken;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class Sporemound extends CardImpl {
|
public final class Sporemound extends CardImpl {
|
||||||
|
|
||||||
public Sporemound(UUID ownerId, CardSetInfo setInfo) {
|
public Sporemound(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
|
||||||
this.subtype.add(SubType.FUNGUS);
|
this.subtype.add(SubType.FUNGUS);
|
||||||
|
|
||||||
this.power = new MageInt(3);
|
this.power = new MageInt(3);
|
||||||
this.toughness = new MageInt(3);
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
// Whenever a land enters the battlefield under your control, create a 1/1 green Saproling creature token.
|
// Whenever a land enters the battlefield under your control, create a 1/1 green Saproling creature token.
|
||||||
Effect effect = new CreateTokenEffect(new SaprolingToken());
|
this.addAbility(new LandfallAbility(new CreateTokenEffect(new SaprolingToken())));
|
||||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(effect, new FilterLandPermanent("a land")));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Sporemound(final Sporemound card) {
|
public Sporemound(final Sporemound card) {
|
||||||
|
|
|
@ -53,7 +53,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 = "KHC"; // check all abilities and output cards with wrong abilities texts;
|
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ZNC"; // 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 HashMap<String, Set<String>> skipCheckLists = new HashMap<>();
|
private static final HashMap<String, Set<String>> skipCheckLists = new HashMap<>();
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class PutCardIntoGraveFromAnywhereAllTriggeredAbility extends TriggeredAb
|
||||||
default:
|
default:
|
||||||
sb.append('a');
|
sb.append('a');
|
||||||
}
|
}
|
||||||
sb.append(" graveyard, ");
|
sb.append(" graveyard from anywhere, ");
|
||||||
ruleText = sb.toString();
|
ruleText = sb.toString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,13 +40,13 @@ public class OpponentLostLifeCondition extends IntCompareCondition {
|
||||||
StringBuilder sb = new StringBuilder("if an opponent lost ");
|
StringBuilder sb = new StringBuilder("if an opponent lost ");
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case MORE_THAN:
|
case MORE_THAN:
|
||||||
sb.append(value + 1).append(" or more life this turn ");
|
sb.append(value + 1).append(" or more life this turn");
|
||||||
break;
|
break;
|
||||||
case EQUAL_TO:
|
case EQUAL_TO:
|
||||||
sb.append(value).append(" life this turn ");
|
sb.append(value).append(" life this turn");
|
||||||
break;
|
break;
|
||||||
case FEWER_THAN:
|
case FEWER_THAN:
|
||||||
sb.append(" less than ").append(value).append(" life this turn ");
|
sb.append(" less than ").append(value).append(" life this turn");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
|
@ -11,6 +11,8 @@ import mage.constants.TurnPhase;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
|
@ -61,7 +63,7 @@ public class CastOnlyDuringPhaseStepSourceEffect extends ContinuousRuleModifying
|
||||||
private String setText() {
|
private String setText() {
|
||||||
StringBuilder sb = new StringBuilder("cast this spell only during ");
|
StringBuilder sb = new StringBuilder("cast this spell only during ");
|
||||||
if (turnPhase != null) {
|
if (turnPhase != null) {
|
||||||
sb.append(turnPhase.toString());
|
sb.append(turnPhase.toString().toLowerCase());
|
||||||
}
|
}
|
||||||
if (phaseStep != null) {
|
if (phaseStep != null) {
|
||||||
sb.append("the ").append(phaseStep.getStepText());
|
sb.append("the ").append(phaseStep.getStepText());
|
||||||
|
|
|
@ -154,7 +154,7 @@ public class ProwlAbility extends StaticAbility implements AlternativeSourceCost
|
||||||
private void setReminderText(Card card) {
|
private void setReminderText(Card card) {
|
||||||
reminderText
|
reminderText
|
||||||
= "(You may cast this for its prowl cost if you dealt combat damage to a "
|
= "(You may cast this for its prowl cost if you dealt combat damage to a "
|
||||||
+ "player this turn with a creature that shared a creature type with {this}";
|
+ "player this turn with a creature that shared a creature type with {this})";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue