fixed the text on various sliver cards

This commit is contained in:
Evan Kranzler 2022-02-22 17:53:31 -05:00
parent abc6618cba
commit 414018db13
52 changed files with 217 additions and 196 deletions

View file

@ -38,7 +38,7 @@ public final class AcidicSliver extends CardImpl {
ability.addTarget(new TargetAnyTarget());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS,
"All Slivers have \"{2}, Sacrifice this permanent: This permanent deals 2 damage to any target.\"")));
}

View file

@ -30,7 +30,7 @@ public final class ArmorSliver extends CardImpl {
this.toughness = new MageInt(2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(0, 1, Duration.EndOfTurn).setText("this creature gets +0/+1 until end of turn"),
new GenericManaCost(2)), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
new GenericManaCost(2)), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false)));
}
private ArmorSliver(final ArmorSliver card) {

View file

@ -29,7 +29,7 @@ public final class BarbedSliver extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn).setText("this creature gets +1/+0 until end of turn"),
new GenericManaCost(2)), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
new GenericManaCost(2)), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false)));
}
private BarbedSliver(final BarbedSliver card) {

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
@ -10,11 +8,11 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class BattleSliver extends CardImpl {
@ -27,9 +25,10 @@ public final class BattleSliver extends CardImpl {
this.toughness = new MageInt(3);
// Sliver creatures you control get +2/+0.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
2, 0, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private BattleSliver(final BattleSliver card) {

View file

@ -28,7 +28,7 @@ public final class BladeSliver extends CardImpl {
// All Sliver creatures get +1/+0.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new BoostAllEffect(1, 0, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
new BoostAllEffect(1, 0, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false)));
}
private BladeSliver(final BladeSliver card) {

View file

@ -39,7 +39,7 @@ public final class BladebackSliver extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilityControlledEffect(
ability, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS
), HellbentCondition.instance, "<i>Hellbent</i> &mdash; " +
"As long as you have no cards in hand, Sliver creatures you control have " +
"\"{T}: This creature deals 1 damage to target player or planeswalker.\""

View file

@ -30,7 +30,7 @@ public final class BonescytheSliver extends CardImpl {
// Sliver creatures you control have double strike.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS)));
}
private BonescytheSliver(final BonescytheSliver card) {

View file

@ -27,7 +27,7 @@ public final class BonesplitterSliver extends CardImpl {
// All Sliver creatures get +2/+0.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new BoostAllEffect(2, 0, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
new BoostAllEffect(2, 0, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false)));
}
private BonesplitterSliver(final BonesplitterSliver card) {

View file

@ -27,7 +27,7 @@ public final class CleavingSliver extends CardImpl {
// Sliver creatures you control get +2/+0.
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
2, 0, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}

View file

@ -1,4 +1,3 @@
package mage.cards.c;
import mage.MageInt;
@ -12,7 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import java.util.UUID;
@ -22,19 +20,19 @@ import java.util.UUID;
*/
public final class ClotSliver extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("Slivers");
static {
filter.add(SubType.SLIVER.getPredicate());
}
private static final FilterPermanent filter = new FilterPermanent(SubType.SLIVER, "all Slivers");
public ClotSliver(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.SLIVER);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect("this permanent"), new GenericManaCost(2)), Duration.WhileOnBattlefield, filter, false)));
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
new SimpleActivatedAbility(
new RegenerateSourceEffect("this permanent"), new GenericManaCost(2)
), Duration.WhileOnBattlefield, filter, false
)));
}
private ClotSliver(final ClotSliver card) {

View file

@ -30,11 +30,11 @@ public final class CloudshredderSliver extends CardImpl {
// Sliver creatures you control have flying and haste.
Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS
).setText("Sliver creatures you control have flying"));
ability.addEffect(new GainAbilityControlledEffect(
HasteAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS
).setText("and haste"));
this.addAbility(ability);
}

View file

@ -39,7 +39,7 @@ public final class ConstrictingSliver extends CardImpl {
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS)
.setText("Sliver creatures you control have \"When this creature enters the battlefield, "
+ "you may exile target creature an opponent controls until this creature leaves the battlefield.\"")));

View file

@ -1,4 +1,3 @@
package mage.cards.c;
import java.util.UUID;
@ -15,8 +14,10 @@ import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterCreaturePermanent;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
/**
@ -25,6 +26,7 @@ import mage.target.common.TargetCreaturePermanent;
*/
public final class CryptSliver extends CardImpl {
private static final FilterPermanent filter=new FilterPermanent(SubType.SLIVER,"Sliver");
public CryptSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
this.subtype.add(SubType.SLIVER);
@ -33,9 +35,11 @@ public final class CryptSliver extends CardImpl {
this.toughness = new MageInt(1);
// All Slivers have "{tap}: Regenerate target Sliver."
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent(SubType.SLIVER, "Sliver")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
Ability ability = new SimpleActivatedAbility( new RegenerateTargetEffect(), new TapSourceCost());
ability.addTarget(new TargetPermanent(filter));
this.addAbility(new SimpleStaticAbility( new GainAbilityAllEffect(
ability, Duration.WhileOnBattlefield, filter
).setText("all Slivers have \"{T}: Regenerate target Sliver.\"")));
}
private CryptSliver(final CryptSliver card) {

View file

@ -34,7 +34,7 @@ public final class DarkheartSliver extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3), new SacrificeSourceCost());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS,
"All Slivers have \"Sacrifice this permanent: You gain 3 life.\"")));
}

View file

@ -32,7 +32,7 @@ public final class EnduringSliver extends CardImpl {
// Other sliver creatures you control have outlast {2}.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new OutlastAbility(new ManaCostsImpl<>("{2}")), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, true
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, true
).setText("Other Sliver creatures you control have outlast {2}.")));
}

View file

@ -83,7 +83,7 @@ class DealsDamageAllTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getTriggerPhrase() {
return "Whenever a Sliver deals damage, its controller" ;
return "Whenever a Sliver deals damage, " ;
}
}

View file

@ -28,7 +28,7 @@ public final class FirstSliversChosen extends CardImpl {
// Sliver creatures you control have exalted.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new ExaltedAbility(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}

View file

@ -30,7 +30,7 @@ public final class FurySliver extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(DoubleStrikeAbility.getInstance(),
Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS
)
));
}

View file

@ -1,7 +1,5 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
@ -9,13 +7,13 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class GaleriderSliver extends CardImpl {
@ -28,9 +26,10 @@ public final class GaleriderSliver extends CardImpl {
this.toughness = new MageInt(1);
// Sliver creatures you control have flying.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(FlyingAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private GaleriderSliver(final GaleriderSliver card) {

View file

@ -1,7 +1,5 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
@ -9,13 +7,13 @@ import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class GroundshakerSliver extends CardImpl {
@ -28,9 +26,10 @@ public final class GroundshakerSliver extends CardImpl {
this.toughness = new MageInt(5);
// Sliver creatures you control have trample.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(TrampleAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
TrampleAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private GroundshakerSliver(final GroundshakerSliver card) {

View file

@ -1,7 +1,5 @@
package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
@ -11,27 +9,25 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
* @author Loki
*/
public final class HeartSliver extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("All sliver creatures");
static {
filter.add(SubType.SLIVER.getPredicate());
}
public HeartSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
this.subtype.add(SubType.SLIVER);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter, false)));
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
HasteAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false
)));
}
private HeartSliver(final HeartSliver card) {

View file

@ -36,7 +36,7 @@ public final class HollowheadSliver extends CardImpl {
ability.addCost(new DiscardCardCost());
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
ability, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}

View file

@ -1,7 +1,5 @@
package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
@ -9,13 +7,13 @@ import mage.abilities.keyword.ProvokeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author cbt33
*/
public final class HunterSliver extends CardImpl {
@ -28,8 +26,10 @@ public final class HunterSliver extends CardImpl {
this.toughness = new MageInt(1);
// All Sliver creatures have provoke.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new ProvokeAbility(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
new ProvokeAbility(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS
).setText("all Sliver creatures have provoke")));
}
private HunterSliver(final HunterSliver card) {

View file

@ -28,7 +28,7 @@ public final class LancerSliver extends CardImpl {
// Sliver creatures you control have first strike.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}

View file

@ -30,13 +30,15 @@ public final class LavabellySliver extends CardImpl {
this.toughness = new MageInt(2);
// Sliver creatures you control have "When this creature enters the battlefield, it deals 1 damage to target player or planeswalker and you gain 1 life."
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1, "When this creature enters the battlefield, it"),false,true);
Ability ability = new EntersBattlefieldTriggeredAbility(
new DamageTargetEffect(1, "it"),
false, true
).setTriggerPhrase("When this creature enters the battlefield, ");
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
ability.addTarget(new TargetPlayerOrPlaneswalker());
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)
.withForceQuotes()
));
ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS
).withForceQuotes()));
}
private LavabellySliver(final LavabellySliver card) {

View file

@ -39,15 +39,15 @@ public final class MagmaSliver extends CardImpl {
// where X is the number of Slivers on the battlefield."
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new BoostTargetEffect(new PermanentsOnBattlefieldCount(
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS),
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS),
StaticValue.get(0), Duration.EndOfTurn, true),
new TapSourceCost());
Target target = new TargetCreaturePermanent(
new FilterCreaturePermanent(SubType.SLIVER, "Sliver creature"));
ability.addTarget(target);
Effect effect = new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS);
effect.setText("All Slivers have \"{T}: Target Sliver creature gets +X/+0 until end of turn,"
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS);
effect.setText("All Slivers have \"{T}: Target Sliver creature gets +X/+0 until end of turn, "
+ "where X is the number of Slivers on the battlefield.\"");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
effect));

View file

@ -1,20 +1,18 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class MeganticSliver extends CardImpl {
@ -27,7 +25,10 @@ public final class MeganticSliver extends CardImpl {
this.toughness = new MageInt(3);
// Sliver creatures you control get +3/+3.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(3, 3, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
3, 3, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private MeganticSliver(final MeganticSliver card) {

View file

@ -1,12 +1,11 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.AddCardSubTypeTargetEffect;
@ -15,18 +14,25 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.choices.Choice;
import mage.choices.ChoiceCreatureType;
import mage.constants.*;
import mage.filter.StaticFilters;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/**
* @author cbt33, Plopman (Engineered Plague)
*/
public final class MistformSliver extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent(SubType.SLIVER, "all Slivers");
public MistformSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.subtype.add(SubType.ILLUSION);
@ -36,8 +42,11 @@ public final class MistformSliver extends CardImpl {
this.toughness = new MageInt(1);
// All Slivers have "{1}: This permanent becomes the creature type of your choice in addition to its other types until end of turn."
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MistformSliverEffect(), new ManaCostsImpl("{1}"));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(
new GainAbilityAllEffect(new SimpleActivatedAbility(
new MistformSliverEffect(), new GenericManaCost(1)
), Duration.WhileOnBattlefield, filter)
));
}
private MistformSliver(final MistformSliver card) {

View file

@ -4,7 +4,6 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@ -14,8 +13,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import mage.filter.FilterPermanent;
import java.util.UUID;
@ -24,18 +22,21 @@ import java.util.UUID;
*/
public final class MnemonicSliver extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent(SubType.SLIVER, "all Slivers");
public MnemonicSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
this.subtype.add(SubType.SLIVER);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
Cost cost = new SacrificeSourceCost();
cost.setText("sacrifice this permanent");
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2));
gainedAbility.addCost(cost);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
Ability ability = new SimpleActivatedAbility(
new DrawCardSourceControllerEffect(1), new GenericManaCost(2)
);
ability.addCost(new SacrificeSourceCost().setText("sacrifice this permanent"));
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
ability, Duration.WhileOnBattlefield, filter, false
)));
}
private MnemonicSliver(final MnemonicSliver card) {

View file

@ -38,7 +38,7 @@ public final class NecroticSliver extends CardImpl {
ability.addTarget(new TargetPermanent());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS,
"All Slivers have \"{3}, Sacrifice this permanent: Destroy target permanent.\"")));
}

View file

@ -27,7 +27,7 @@ public final class PlatedSliver extends CardImpl {
this.toughness = new MageInt(1);
// All Sliver creatures get +0/+1.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(0, 1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(0, 1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false)));
}
private PlatedSliver(final PlatedSliver card) {

View file

@ -35,11 +35,11 @@ public final class PoulticeSliver extends CardImpl {
// All Slivers have "{2}, {tap}: Regenerate target Sliver."
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new GenericManaCost(2));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ALL_SLIVERS));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS,
"All Slivers have \"{2}, {T}: Regenerate target Sliver.\"")));
}

View file

@ -28,7 +28,7 @@ public final class PredatorySliver extends CardImpl {
// Sliver creatures you control get +1/+1.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new BoostControlledEffect(1, 1, Duration.WhileInGraveyard, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
new BoostControlledEffect(1, 1, Duration.WhileInGraveyard, StaticFilters.FILTER_PERMANENT_SLIVERS)));
}
private PredatorySliver(final PredatorySliver card) {

View file

@ -20,7 +20,7 @@ import mage.filter.common.FilterCreatureCard;
*/
public final class QuickSliver extends CardImpl {
private static final FilterCreatureCard filter = new FilterCreatureCard("Sliver cards");
private static final FilterCreatureCard filter = new FilterCreatureCard("Sliver spells");
static {
filter.add(SubType.SLIVER.getPredicate());
}

View file

@ -32,7 +32,7 @@ public final class ScuttlingSliver extends CardImpl {
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new SimpleActivatedAbility(
new UntapSourceEffect().setText("untap this creature"), new GenericManaCost(2)
), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)
), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS)
.withForceQuotes()
));
}

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
@ -11,24 +9,27 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author Plopman
*/
public final class SentinelSliver extends CardImpl {
public SentinelSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.subtype.add(SubType.SLIVER);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Sliver creatures you control have vigilance.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent(SubType.SLIVER, "Sliver creatures you control "))));
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
VigilanceAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private SentinelSliver(final SentinelSliver card) {

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
@ -9,14 +7,14 @@ import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class SliverHivelord extends CardImpl {
@ -30,10 +28,10 @@ public final class SliverHivelord extends CardImpl {
this.toughness = new MageInt(5);
// Sliver creatures you control have indestructible.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(IndestructibleAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private SliverHivelord(final SliverHivelord card) {

View file

@ -33,7 +33,7 @@ public final class SpectralSliver extends CardImpl {
// All Sliver creatures have "{2}: This creature gets +1/+1 until end of turn."
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn).setText("this creature gets +1/+1 until end of turn"), new ManaCostsImpl("{2}"));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS)));
}
private SpectralSliver(final SpectralSliver card) {

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BecomesBlockedAllTriggeredAbility;
@ -11,14 +9,15 @@ import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.combat.CombatGroup;
import java.util.UUID;
/**
*
* @author KholdFuzion
*/
public final class SpinedSliver extends CardImpl {
@ -31,10 +30,11 @@ public final class SpinedSliver extends CardImpl {
this.toughness = new MageInt(2);
// Whenever a Sliver becomes blocked, that Sliver gets +1/+1 until end of turn for each creature blocking it.
BlockersCount value = new BlockersCount();
Effect effect = new BoostTargetEffect(value, value, Duration.EndOfTurn, true);
effect.setText("it gets +1/+1 until end of turn for each creature blocking it");
this.addAbility(new BecomesBlockedAllTriggeredAbility(effect, false, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, true));
this.addAbility(new BecomesBlockedAllTriggeredAbility(
new BoostTargetEffect(BlockersCount.instance, BlockersCount.instance, Duration.EndOfTurn, true)
.setText("that Sliver gets +1/+1 until end of turn for each creature blocking it"),
false, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, true
).setTriggerPhrase("Whenever a Sliver becomes blocked, "));
}
private SpinedSliver(final SpinedSliver card) {
@ -47,18 +47,8 @@ public final class SpinedSliver extends CardImpl {
}
}
class BlockersCount implements DynamicValue {
private final String message;
public BlockersCount() {
this.message = "each creature blocking it";
}
public BlockersCount(final BlockersCount blockersCount) {
super();
this.message = blockersCount.message;
}
enum BlockersCount implements DynamicValue {
instance;
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
@ -73,12 +63,12 @@ class BlockersCount implements DynamicValue {
@Override
public BlockersCount copy() {
return new BlockersCount(this);
return this;
}
@Override
public String getMessage() {
return message;
return "each creature blocking it";
}
@Override

View file

@ -35,7 +35,7 @@ public final class SpitefulSliver extends CardImpl {
);
ability.addTarget(new TargetPlayer());
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS
).setText("Sliver creatures you control have \"Whenever this creature is dealt damage, " +
"it deals that much damage to target player or planeswalker.\"")
));

View file

@ -29,7 +29,7 @@ public final class SteelformSliver extends CardImpl {
// Sliver creatures you control get +0/+1.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS, false)));
StaticFilters.FILTER_PERMANENT_SLIVERS, false)));
}
private SteelformSliver(final SteelformSliver card) {

View file

@ -30,7 +30,7 @@ public final class StrikingSliver extends CardImpl {
// Sliver creatures you control have first strike.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS)));
}
private StrikingSliver(final StrikingSliver card) {

View file

@ -1,37 +1,40 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SetTargetPointer;
import mage.constants.SubType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author cbt33
*/
public final class SynapseSliver extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.SLIVER, "a Sliver");
public SynapseSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}");
this.subtype.add(SubType.SLIVER);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Whenever a Sliver deals combat damage to a player, its controller may draw a card.
Effect effect = new DrawCardTargetEffect(1);
effect.setText("its controller may draw a card");
this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility(effect,
new FilterCreaturePermanent(SubType.SLIVER, "a Sliver"),
true, SetTargetPointer.PLAYER, true));
this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility(
new SynapseSliverEffect(), filter, false,
SetTargetPointer.PLAYER, true
));
}
private SynapseSliver(final SynapseSliver card) {
@ -43,3 +46,28 @@ public final class SynapseSliver extends CardImpl {
return new SynapseSliver(this);
}
}
class SynapseSliverEffect extends OneShotEffect {
SynapseSliverEffect() {
super(Outcome.Benefit);
staticText = "its controller may draw a card";
}
private SynapseSliverEffect(final SynapseSliverEffect effect) {
super(effect);
}
@Override
public SynapseSliverEffect copy() {
return new SynapseSliverEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(getTargetPointer().getFirst(game, source));
return player != null
&& player.chooseUse(outcome, "Draw a card?", source, game)
&& player.drawCards(1, source, game) > 0;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
@ -9,13 +7,13 @@ import mage.abilities.keyword.LifelinkAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class SyphonSliver extends CardImpl {
@ -28,9 +26,10 @@ public final class SyphonSliver extends CardImpl {
this.toughness = new MageInt(2);
// Sliver creatures you control have lifelink.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(LifelinkAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
LifelinkAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}
private SyphonSliver(final SyphonSliver card) {

View file

@ -31,7 +31,7 @@ public final class TemperedSliver extends CardImpl {
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new DealsCombatDamageToAPlayerTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false,"Whenever this creature deals combat damage to a player, put a +1/+1 counter on it.",false
), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS
), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS
)));
}

View file

@ -35,7 +35,7 @@ public final class ThorncasterSliver extends CardImpl {
ability.addTarget(new TargetAnyTarget());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS)
.setText("Sliver creatures you control have \"Whenever this creature attacks, it deals 1 damage to any target.\"")));
}

View file

@ -31,7 +31,7 @@ public final class TwoHeadedSliver extends CardImpl {
// All Sliver creatures have menace. (They can't be blocked except by two or more creatures.)
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
new MenaceAbility(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS,
"All Sliver creatures have menace. <i>(They can't be blocked except by two or more creatures.)</i>")));
}

View file

@ -30,7 +30,7 @@ public final class VenomSliver extends CardImpl {
// Sliver creatures you control have deathtouch.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(DeathtouchAbility.getInstance(),
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS)));
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_SLIVERS)));
}
private VenomSliver(final VenomSliver card) {

View file

@ -37,7 +37,7 @@ public final class VictualSliver extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new GainAbilityAllEffect(ability,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_SLIVERS,
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_ALL_SLIVERS,
"All Slivers have \"{2}, Sacrifice this permanent: You gain 4 life.\"")));
}

View file

@ -14,6 +14,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ColorPredicate;
import mage.game.Game;
@ -56,17 +57,11 @@ public final class WardSliver extends CardImpl {
class WardSliverGainAbilityControlledEffect extends ContinuousEffectImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Slivers");
static {
filter.add(SubType.SLIVER.getPredicate());
}
protected FilterPermanent protectionFilter;
public WardSliverGainAbilityControlledEffect() {
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
staticText = "Slivers have protection from the chosen color";
staticText = "all Slivers have protection from the chosen color";
}
public WardSliverGainAbilityControlledEffect(final WardSliverGainAbilityControlledEffect effect) {
@ -92,7 +87,7 @@ class WardSliverGainAbilityControlledEffect extends ContinuousEffectImpl {
}
}
if (protectionFilter != null) {
for (Permanent perm: game.getBattlefield().getAllActivePermanents(filter, game)) {
for (Permanent perm: game.getBattlefield().getAllActivePermanents(StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, game)) {
perm.addAbility(new ProtectionAbility(protectionFilter), source.getSourceId(), game);
}
return true;

View file

@ -1,7 +1,5 @@
package mage.cards.w;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
@ -11,27 +9,25 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
* @author Loki
*/
public final class WingedSliver extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("All sliver creatures");
static {
filter.add(SubType.SLIVER.getPredicate());
}
public WingedSliver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}");
this.subtype.add(SubType.SLIVER);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter, false)));
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_ALL_SLIVERS, false
)));
}
private WingedSliver(final WingedSliver card) {

View file

@ -634,10 +634,16 @@ public final class StaticFilters {
FILTER_PERMANENT_CREATURE_GOBLINS.setLockedFilter(true);
}
public static final FilterCreaturePermanent FILTER_PERMANENT_CREATURE_SLIVERS = new FilterCreaturePermanent(SubType.SLIVER, "all Sliver creatures");
public static final FilterCreaturePermanent FILTER_PERMANENT_SLIVERS = new FilterCreaturePermanent(SubType.SLIVER, "Sliver creatures");
static {
FILTER_PERMANENT_CREATURE_SLIVERS.setLockedFilter(true);
FILTER_PERMANENT_SLIVERS.setLockedFilter(true);
}
public static final FilterCreaturePermanent FILTER_PERMANENT_ALL_SLIVERS = new FilterCreaturePermanent(SubType.SLIVER, "all Sliver creatures");
static {
FILTER_PERMANENT_ALL_SLIVERS.setLockedFilter(true);
}
public static final FilterControlledPermanent FILTER_CONTROLLED_SAMURAI_OR_WARRIOR = new FilterControlledPermanent("a Samurai or Warrior you control");