[BLB] Implement Thornplate Intimidator

This commit is contained in:
theelk801 2024-07-19 17:27:02 -04:00
parent 7f80e9ee50
commit ecefb6c8b0
4 changed files with 63 additions and 18 deletions

View file

@ -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?"

View file

@ -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?"

View file

@ -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);
}
}

View file

@ -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));