mirror of
https://github.com/correl/mage.git
synced 2024-11-28 19:19:55 +00:00
[MOR] various text fixes
This commit is contained in:
parent
8999a6e647
commit
6b72142ef2
19 changed files with 103 additions and 85 deletions
|
@ -36,7 +36,7 @@ public final class CreamOfTheCrop extends CardImpl {
|
||||||
+ "you may look at the top X cards of your library, where X "
|
+ "you may look at the top X cards of your library, where X "
|
||||||
+ "is that creature's power. If you do, put one of those cards "
|
+ "is that creature's power. If you do, put one of those cards "
|
||||||
+ "on top of your library and the rest on the bottom of "
|
+ "on top of your library and the rest on the bottom of "
|
||||||
+ "your library in any order"));
|
+ "your library in any order."));
|
||||||
}
|
}
|
||||||
|
|
||||||
private CreamOfTheCrop(final CreamOfTheCrop card) {
|
private CreamOfTheCrop(final CreamOfTheCrop card) {
|
||||||
|
|
|
@ -85,7 +85,7 @@ class AddCounterAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Whenever you cast a spell of the chosen type, put a charge counter on {this}";
|
return "Whenever you cast a spell of the chosen type, put a charge counter on {this}.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
||||||
*/
|
*/
|
||||||
public final class EverbarkShaman extends CardImpl {
|
public final class EverbarkShaman extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCard filterForest = new FilterCard("Forest");
|
private static final FilterCard filterForest = new FilterCard("Forest cards");
|
||||||
private static final FilterCard filterTreefolk = new FilterCard("Treefolk card from your graveyard");
|
private static final FilterCard filterTreefolk = new FilterCard("Treefolk card from your graveyard");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -41,7 +41,7 @@ public final class EverbarkShaman extends CardImpl {
|
||||||
this.toughness = new MageInt(5);
|
this.toughness = new MageInt(5);
|
||||||
|
|
||||||
// {T}, Exile a Treefolk card from your graveyard: Search your library for up to two Forest cards and put them onto the battlefield tapped. Then shuffle your library.
|
// {T}, Exile a Treefolk card from your graveyard: Search your library for up to two Forest cards and put them onto the battlefield tapped. Then shuffle your library.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(2, filterForest), true, Outcome.PutLandInPlay), new TapSourceCost());
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filterForest), true, Outcome.PutLandInPlay), new TapSourceCost());
|
||||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filterTreefolk)));
|
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filterTreefolk)));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
package mage.cards.f;
|
package mage.cards.f;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
@ -11,10 +10,9 @@ 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.FilterPermanent;
|
||||||
import mage.filter.common.FilterLandPermanent;
|
|
||||||
import mage.game.permanent.token.custom.CreatureToken;
|
import mage.game.permanent.token.custom.CreatureToken;
|
||||||
import mage.target.common.TargetLandPermanent;
|
import mage.target.TargetPermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -23,11 +21,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class FendeepSummoner extends CardImpl {
|
public final class FendeepSummoner extends CardImpl {
|
||||||
|
|
||||||
static final FilterLandPermanent filter = new FilterLandPermanent("Swamp");
|
static final FilterPermanent filter = new FilterPermanent(SubType.SWAMP, "Swamps");
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SubType.SWAMP.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
public FendeepSummoner(UUID ownerId, CardSetInfo setInfo) {
|
public FendeepSummoner(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
||||||
|
@ -38,10 +32,11 @@ public final class FendeepSummoner extends CardImpl {
|
||||||
this.toughness = new MageInt(5);
|
this.toughness = new MageInt(5);
|
||||||
|
|
||||||
// {T}: Up to two target Swamps each become 3/5 Treefolk Warrior creatures in addition to their other types until end of turn.
|
// {T}: Up to two target Swamps each become 3/5 Treefolk Warrior creatures in addition to their other types until end of turn.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(
|
Ability ability = new SimpleActivatedAbility(new BecomesCreatureTargetEffect(new CreatureToken(
|
||||||
new CreatureToken(3, 5, "3/5 Treefolk Warrior", SubType.TREEFOLK, SubType.WARRIOR),
|
3, 5, "3/5 Treefolk Warrior creatures " +
|
||||||
false, false, Duration.EndOfTurn), new TapSourceCost());
|
"in addition to their other types", SubType.TREEFOLK, SubType.WARRIOR
|
||||||
ability.addTarget(new TargetLandPermanent(0, 2, filter, false));
|
), false, false, Duration.EndOfTurn), new TapSourceCost());
|
||||||
|
ability.addTarget(new TargetPermanent(0, 2, filter));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
|
|
||||||
package mage.cards.f;
|
package mage.cards.f;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldAbility;
|
import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
|
@ -13,18 +12,25 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
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.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.Zone;
|
import mage.constants.SubType;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class Festercreep extends CardImpl {
|
public final class Festercreep extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("all other creatures");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(AnotherPredicate.instance);
|
||||||
|
}
|
||||||
|
|
||||||
public Festercreep(UUID ownerId, CardSetInfo setInfo) {
|
public Festercreep(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||||
this.subtype.add(SubType.ELEMENTAL);
|
this.subtype.add(SubType.ELEMENTAL);
|
||||||
|
@ -33,10 +39,12 @@ public final class Festercreep extends CardImpl {
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// Festercreep enters the battlefield with a +1/+1 counter on it.
|
// Festercreep enters the battlefield with a +1/+1 counter on it.
|
||||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1))));
|
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), "with a +1/+1 counter on it"));
|
||||||
|
|
||||||
// {1}{B}, Remove a +1/+1 counter from Festercreep: All other creatures get -1/-1 until end of turn.
|
// {1}{B}, Remove a +1/+1 counter from Festercreep: All other creatures get -1/-1 until end of turn.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(-1, -1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true), new ManaCostsImpl("{1}{B}"));
|
Ability ability = new SimpleActivatedAbility(new BoostAllEffect(
|
||||||
|
-1, -1, Duration.EndOfTurn, filter, false
|
||||||
|
), new ManaCostsImpl<>("{1}{B}"));
|
||||||
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class Floodchaser extends CardImpl {
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// Floodchaser enters the battlefield with six +1/+1 counters on it.
|
// Floodchaser enters the battlefield with six +1/+1 counters on it.
|
||||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(6)), "{this} enters the battlefield with six +1/+1 counters on it"));
|
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(6)), "with six +1/+1 counters on it"));
|
||||||
|
|
||||||
// Floodchaser can't attack unless defending player controls an Island.
|
// Floodchaser can't attack unless defending player controls an Island.
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND,"an Island"))));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND,"an Island"))));
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
@ -13,27 +11,35 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.filter.FilterSpell;
|
import mage.filter.FilterSpell;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
|
import mage.filter.predicate.permanent.TappedPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.TargetPlayer;
|
import mage.target.TargetPlayer;
|
||||||
import mage.target.common.TargetControlledCreaturePermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Plopman
|
* @author Plopman
|
||||||
*/
|
*/
|
||||||
public final class GiltLeafArchdruid extends CardImpl {
|
public final class GiltLeafArchdruid extends CardImpl {
|
||||||
|
|
||||||
private static final FilterSpell filterSpell = new FilterSpell("a Druid spell");
|
private static final FilterSpell filter = new FilterSpell("a Druid spell");
|
||||||
|
private static final FilterControlledPermanent filter2
|
||||||
|
= new FilterControlledPermanent(SubType.DRUID, "untapped Druids you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filterSpell.add(SubType.DRUID.getPredicate());
|
filter.add(SubType.DRUID.getPredicate());
|
||||||
|
filter2.add(TappedPredicate.UNTAPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GiltLeafArchdruid(UUID ownerId, CardSetInfo setInfo) {
|
public GiltLeafArchdruid(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
@ -45,10 +51,15 @@ public final class GiltLeafArchdruid extends CardImpl {
|
||||||
this.toughness = new MageInt(3);
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
// Whenever you cast a Druid spell, you may draw a card.
|
// Whenever you cast a Druid spell, you may draw a card.
|
||||||
this.addAbility(new SpellCastControllerTriggeredAbility(new DrawCardSourceControllerEffect(1), filterSpell, true));
|
this.addAbility(new SpellCastControllerTriggeredAbility(
|
||||||
|
new DrawCardSourceControllerEffect(1), filter, true
|
||||||
|
));
|
||||||
|
|
||||||
// Tap seven untapped Druids you control: Gain control of all lands target player controls.
|
// Tap seven untapped Druids you control: Gain control of all lands target player controls.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GiltLeafArchdruidEffect(), new TapTargetCost(new TargetControlledCreaturePermanent(7, 7, new FilterControlledCreaturePermanent(SubType.DRUID, "Druids you control"), true)));
|
Ability ability = new SimpleActivatedAbility(
|
||||||
|
new GiltLeafArchdruidEffect(),
|
||||||
|
new TapTargetCost(new TargetControlledPermanent(7, filter2))
|
||||||
|
);
|
||||||
ability.addTarget(new TargetPlayer());
|
ability.addTarget(new TargetPlayer());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,7 @@ class GrimoireThiefLookEffect extends AsThoughEffectImpl {
|
||||||
|
|
||||||
public GrimoireThiefLookEffect() {
|
public GrimoireThiefLookEffect() {
|
||||||
super(AsThoughEffectType.LOOK_AT_FACE_DOWN, Duration.EndOfGame, Outcome.Benefit);
|
super(AsThoughEffectType.LOOK_AT_FACE_DOWN, Duration.EndOfGame, Outcome.Benefit);
|
||||||
staticText = "You may look at the cards exiled with {this}";
|
staticText = "You may look at cards exiled with {this}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public GrimoireThiefLookEffect(final GrimoireThiefLookEffect effect) {
|
public GrimoireThiefLookEffect(final GrimoireThiefLookEffect effect) {
|
||||||
|
|
|
@ -79,7 +79,7 @@ class AllCountersCount implements DynamicValue {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
return "for each counter on it";
|
return "counter on it";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,7 +28,7 @@ import mage.target.common.TargetCardInHand;
|
||||||
*/
|
*/
|
||||||
public final class PrimalBeyond extends CardImpl {
|
public final class PrimalBeyond extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCard filter = new FilterCard("a Elemental card from your hand");
|
private static final FilterCard filter = new FilterCard("an Elemental card from your hand");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(SubType.ELEMENTAL.getPredicate());
|
filter.add(SubType.ELEMENTAL.getPredicate());
|
||||||
|
@ -38,7 +38,7 @@ public final class PrimalBeyond extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
|
||||||
|
|
||||||
// As Primal Beyond enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Primal Beyond enters the battlefield tapped.
|
// As Primal Beyond enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Primal Beyond enters the battlefield tapped.
|
||||||
this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal a Elemental card from your hand. If you don't, {this} enters the battlefield tapped"));
|
this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal an Elemental card from your hand. If you don't, {this} enters the battlefield tapped"));
|
||||||
// {tap}: Add {C}.
|
// {tap}: Add {C}.
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
// {tap}: Add one mana of any color. Spend this mana only to cast an Elemental spell or activate an ability of an Elemental.
|
// {tap}: Add one mana of any color. Spend this mana only to cast an Elemental spell or activate an ability of an Elemental.
|
||||||
|
@ -65,7 +65,7 @@ class PrimalBeyondManaBuilder extends ConditionalManaBuilder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Spend this mana only to cast Elemental spells or activate abilities of Elementals";
|
return "Spend this mana only to cast an Elemental spell or activate an ability of an Elemental";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ class PrimalBeyondConditionalMana extends ConditionalMana {
|
||||||
|
|
||||||
public PrimalBeyondConditionalMana(Mana mana) {
|
public PrimalBeyondConditionalMana(Mana mana) {
|
||||||
super(mana);
|
super(mana);
|
||||||
this.staticText = "Spend this mana only to cast Elemental spells or activate abilities of Elementals";
|
this.staticText = "Spend this mana only to cast an Elemental spell or activate an ability of an Elemental";
|
||||||
addCondition(new PrimalBeyondManaCondition());
|
addCondition(new PrimalBeyondManaCondition());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ class ScapeshiftEffect extends OneShotEffect {
|
||||||
|
|
||||||
public ScapeshiftEffect() {
|
public ScapeshiftEffect() {
|
||||||
super(Outcome.Neutral);
|
super(Outcome.Neutral);
|
||||||
staticText = "Sacrifice any number of lands. Search your library for that many land cards, put them onto the battlefield tapped, then shuffle";
|
staticText = "Sacrifice any number of lands. Search your library for up to that many land cards, put them onto the battlefield tapped, then shuffle";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ScapeshiftEffect(final ScapeshiftEffect effect) {
|
public ScapeshiftEffect(final ScapeshiftEffect effect) {
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
@ -14,21 +12,18 @@ 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.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
import mage.target.common.TargetControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
|
import mage.target.common.TargetControlledPermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class SeethingPathblazer extends CardImpl {
|
public final class SeethingPathblazer extends CardImpl {
|
||||||
|
|
||||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Elemental");
|
private static final FilterControlledPermanent filter = new FilterControlledCreaturePermanent(SubType.ELEMENTAL, "Elemental");
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(SubType.ELEMENTAL.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
public SeethingPathblazer(UUID ownerId, CardSetInfo setInfo) {
|
public SeethingPathblazer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
|
||||||
|
@ -37,8 +32,12 @@ public final class SeethingPathblazer extends CardImpl {
|
||||||
|
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, false)));
|
Ability ability = new SimpleActivatedAbility(new BoostSourceEffect(
|
||||||
ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn));
|
2, 0, Duration.EndOfTurn
|
||||||
|
).setText("{this} gets +2/+0"), new SacrificeTargetCost(new TargetControlledPermanent(filter)));
|
||||||
|
ability.addEffect(new GainAbilitySourceEffect(
|
||||||
|
FirstStrikeAbility.getInstance(), Duration.EndOfTurn
|
||||||
|
).setText("and gains first strike until end of turn"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,10 +36,10 @@ public final class Shinewend extends CardImpl {
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
// Shinewend enters the battlefield with a +1/+1 counter on it.
|
// Shinewend enters the battlefield with a +1/+1 counter on it.
|
||||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1))));
|
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), "with a +1/+1 counter on it"));
|
||||||
|
|
||||||
// {1}{W}, Remove a +1/+1 counter from Shinewend: Destroy target enchantment.
|
// {1}{W}, Remove a +1/+1 counter from Shinewend: Destroy target enchantment.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{1}{W}"));
|
Ability ability = new SimpleActivatedAbility( new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{W}"));
|
||||||
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1)));
|
||||||
ability.addTarget(new TargetEnchantmentPermanent());
|
ability.addTarget(new TargetEnchantmentPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
|
|
||||||
package mage.cards.s;
|
package mage.cards.s;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.effects.common.SacrificeSourceEffect;
|
import mage.abilities.effects.common.SacrificeSourceEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
@ -12,12 +11,19 @@ import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author emerald000
|
* @author emerald000
|
||||||
*/
|
*/
|
||||||
public final class Stenchskipper extends CardImpl {
|
public final class Stenchskipper extends CardImpl {
|
||||||
|
|
||||||
|
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(
|
||||||
|
new FilterControlledCreaturePermanent(
|
||||||
|
SubType.GOBLIN, "if you control no Goblins"
|
||||||
|
), ComparisonType.FEWER_THAN, 1
|
||||||
|
);
|
||||||
|
|
||||||
public Stenchskipper(UUID ownerId, CardSetInfo setInfo) {
|
public Stenchskipper(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
||||||
this.subtype.add(SubType.ELEMENTAL);
|
this.subtype.add(SubType.ELEMENTAL);
|
||||||
|
@ -29,14 +35,9 @@ public final class Stenchskipper extends CardImpl {
|
||||||
|
|
||||||
// At the beginning of the end step, if you control no Goblins, sacrifice Stenchskipper.
|
// At the beginning of the end step, if you control no Goblins, sacrifice Stenchskipper.
|
||||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD, new SacrificeSourceEffect(),
|
||||||
new SacrificeSourceEffect(),
|
TargetController.NEXT, condition, false
|
||||||
TargetController.ANY,
|
));
|
||||||
new PermanentsOnTheBattlefieldCondition(
|
|
||||||
new FilterControlledCreaturePermanent(SubType.GOBLIN, "if you control no Goblins"),
|
|
||||||
ComparisonType.FEWER_THAN,
|
|
||||||
1),
|
|
||||||
false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Stenchskipper(final Stenchskipper card) {
|
private Stenchskipper(final Stenchskipper card) {
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
package mage.cards.w;
|
package mage.cards.w;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.abilityword.KinshipAbility;
|
import mage.abilities.abilityword.KinshipAbility;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||||
|
@ -9,12 +7,13 @@ import mage.abilities.keyword.FlyingAbility;
|
||||||
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.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class WaterspoutWeavers extends CardImpl {
|
public final class WaterspoutWeavers extends CardImpl {
|
||||||
|
@ -29,7 +28,10 @@ public final class WaterspoutWeavers extends CardImpl {
|
||||||
|
|
||||||
// Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Waterspout Weavers, you may reveal it.
|
// Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Waterspout Weavers, you may reveal it.
|
||||||
// If you do, each creature you control gains flying until end of turn.
|
// If you do, each creature you control gains flying until end of turn.
|
||||||
this.addAbility(new KinshipAbility(new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent())));
|
this.addAbility(new KinshipAbility(new GainAbilityControlledEffect(
|
||||||
|
FlyingAbility.getInstance(), Duration.EndOfTurn,
|
||||||
|
StaticFilters.FILTER_PERMANENT_CREATURE
|
||||||
|
).setText("each creature you control gains flying until end of turn")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private WaterspoutWeavers(final WaterspoutWeavers card) {
|
private WaterspoutWeavers(final WaterspoutWeavers 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 = "SHM"; // check all abilities and output cards with wrong abilities texts;
|
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOR"; // 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
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ public enum ProwlCostWasPaidCondition implements Condition {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "{this}'s prowl cost was paid";
|
return "this spell's prowl cost was paid";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ import mage.game.permanent.Permanent;
|
||||||
import mage.util.CardUtil;
|
import mage.util.CardUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author emerald000
|
* @author emerald000
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -47,8 +46,7 @@ public class CanBlockAdditionalCreatureAllEffect extends ContinuousEffectImpl {
|
||||||
// maxBlocks = 0 equals to "can block any number of creatures"
|
// maxBlocks = 0 equals to "can block any number of creatures"
|
||||||
if (amount > 0) {
|
if (amount > 0) {
|
||||||
permanent.setMaxBlocks(permanent.getMaxBlocks() + amount);
|
permanent.setMaxBlocks(permanent.getMaxBlocks() + amount);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
permanent.setMaxBlocks(0);
|
permanent.setMaxBlocks(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,8 +66,12 @@ public class CanBlockAdditionalCreatureAllEffect extends ContinuousEffectImpl {
|
||||||
case 0:
|
case 0:
|
||||||
sb.append("any number of creatures");
|
sb.append("any number of creatures");
|
||||||
break;
|
break;
|
||||||
|
case 1:
|
||||||
|
sb.append("an additional creature each combat");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
sb.append(CardUtil.numberToText(amount, "an")).append(" additional creature").append(amount > 1 ? "s" : "");
|
sb.append(CardUtil.numberToText(amount));
|
||||||
|
sb.append(" additional creatures");
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue