diff --git a/Mage.Sets/src/mage/cards/s/StarseerMentor.java b/Mage.Sets/src/mage/cards/s/StarseerMentor.java index b22536e636c..a81cd21fa91 100644 --- a/Mage.Sets/src/mage/cards/s/StarseerMentor.java +++ b/Mage.Sets/src/mage/cards/s/StarseerMentor.java @@ -17,8 +17,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.Predicates; +import mage.filter.StaticFilters; import mage.target.common.TargetOpponent; import mage.watchers.common.PlayerGainedLifeWatcher; @@ -29,12 +28,6 @@ import java.util.UUID; */ public final class StarseerMentor extends CardImpl { - private static final FilterControlledPermanent filter = new FilterControlledPermanent("nonland permanent"); - - static { - filter.add(Predicates.not(CardType.LAND.getPredicate())); - } - public StarseerMentor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{B}"); @@ -56,7 +49,7 @@ public final class StarseerMentor extends CardImpl { new LoseLifeTargetEffect(3), new OrCost( "sacrifice a nonland permanent or discard a card", - new SacrificeTargetCost(filter), + new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_NON_LAND), new DiscardCardCost() ), "Sacrifice a nonland permanent or discard a card to prevent losing 3 life?" diff --git a/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java b/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java index 7da57a76f48..5375eb36362 100644 --- a/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java +++ b/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java @@ -17,8 +17,7 @@ import mage.cards.Card; import mage.cards.CardSetInfo; import mage.cards.ModalDoubleFacedCard; import mage.constants.*; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.Predicates; +import mage.filter.StaticFilters; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; @@ -34,12 +33,6 @@ import java.util.UUID; */ public final class TergridGodOfFright extends ModalDoubleFacedCard { - private static final FilterControlledPermanent filter = new FilterControlledPermanent("nonland permanent"); - - static { - filter.add(Predicates.not(CardType.LAND.getPredicate())); - } - public TergridGodOfFright(UUID ownerId, CardSetInfo setInfo) { super( ownerId, setInfo, @@ -68,7 +61,7 @@ public final class TergridGodOfFright extends ModalDoubleFacedCard { new LoseLifeTargetEffect(3), new OrCost( "sacrifice a nonland permanent or discard a card", - new SacrificeTargetCost(filter), + new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_NON_LAND), new DiscardCardCost() ), "Sacrifice a nonland permanent or discard a card to prevent losing 3 life?" diff --git a/Mage.Sets/src/mage/cards/t/ThornplateIntimidator.java b/Mage.Sets/src/mage/cards/t/ThornplateIntimidator.java new file mode 100644 index 00000000000..fd2921883d5 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThornplateIntimidator.java @@ -0,0 +1,58 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.OrCost; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.common.DoUnlessTargetPlayerOrTargetsControllerPaysEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.abilities.keyword.OffspringAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.StaticFilters; +import mage.target.common.TargetOpponent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ThornplateIntimidator extends CardImpl { + + public ThornplateIntimidator(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add(SubType.RAT); + this.subtype.add(SubType.ROGUE); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Offspring {3} + this.addAbility(new OffspringAbility("{3}")); + + // When this creature enters, target opponent loses 3 life unless they sacrifice a nonland permanent or discard a card. + Ability ability = new EntersBattlefieldTriggeredAbility(new DoUnlessTargetPlayerOrTargetsControllerPaysEffect( + new LoseLifeTargetEffect(3), + new OrCost( + "sacrifice a nonland permanent or discard a card", + new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_NON_LAND), new DiscardCardCost() + ), + "Sacrifice a nonland permanent or discard a card to prevent losing 3 life?" + )); + ability.addTarget(new TargetOpponent()); + this.addAbility(ability); + } + + private ThornplateIntimidator(final ThornplateIntimidator card) { + super(card); + } + + @Override + public ThornplateIntimidator copy() { + return new ThornplateIntimidator(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Bloomburrow.java b/Mage.Sets/src/mage/sets/Bloomburrow.java index b7fad0c7fdd..60d1cafbf7c 100644 --- a/Mage.Sets/src/mage/sets/Bloomburrow.java +++ b/Mage.Sets/src/mage/sets/Bloomburrow.java @@ -204,6 +204,7 @@ public final class Bloomburrow extends ExpansionSet { cards.add(new SetCardInfo("Tender Wildguide", 196, Rarity.RARE, mage.cards.t.TenderWildguide.class)); cards.add(new SetCardInfo("Thieving Otter", 390, Rarity.COMMON, mage.cards.t.ThievingOtter.class)); cards.add(new SetCardInfo("Thistledown Players", 35, Rarity.COMMON, mage.cards.t.ThistledownPlayers.class)); + cards.add(new SetCardInfo("Thornplate Intimidator", 117, Rarity.COMMON, mage.cards.t.ThornplateIntimidator.class)); cards.add(new SetCardInfo("Thornvault Forager", 197, Rarity.RARE, mage.cards.t.ThornvaultForager.class)); cards.add(new SetCardInfo("Three Tree Mascot", 251, Rarity.COMMON, mage.cards.t.ThreeTreeMascot.class)); cards.add(new SetCardInfo("Three Tree Rootweaver", 198, Rarity.COMMON, mage.cards.t.ThreeTreeRootweaver.class));