[NEO] Implemented Banishing Slash

This commit is contained in:
Evan Kranzler 2022-01-30 15:32:58 -05:00
parent c77459b7a0
commit 2f189c1dec
3 changed files with 82 additions and 0 deletions

View file

@ -0,0 +1,75 @@
package mage.cards.b;
import mage.abilities.condition.CompoundCondition;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.hint.ConditionHint;
import mage.abilities.hint.Hint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.permanent.token.SamuraiToken;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class BanishingSlash extends CardImpl {
private static final FilterPermanent filter
= new FilterPermanent("artifact, enchantment, or tapped creature");
static {
filter.add(Predicates.or(
CardType.ENCHANTMENT.getPredicate(),
CardType.ARTIFACT.getPredicate(),
Predicates.and(
CardType.CREATURE.getPredicate(),
TappedPredicate.TAPPED
)
));
}
private static final Condition condition = new CompoundCondition(
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT),
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_CONTROLLED_PERMANENT_ENCHANTMENT)
);
private static final Hint hint1 = new ConditionHint(new PermanentsOnTheBattlefieldCondition(
StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT
), "You control an artifact");
private static final Hint hint2 = new ConditionHint(new PermanentsOnTheBattlefieldCondition(
StaticFilters.FILTER_CONTROLLED_PERMANENT_ENCHANTMENT
), "You control an enchantment");
public BanishingSlash(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{W}{W}");
// Destroy up to one target artifact, enchantment, or tapped creature. Then if you control an artifact and an enchantment, create a 2/2 white Samurai creature token with vigilance.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(0, 1, filter));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new CreateTokenEffect(new SamuraiToken()), condition, "Then if you control " +
"an artifact and an enchantment, create a 2/2 white Samurai creature token with vigilance"
));
this.getSpellAbility().addHint(hint1);
this.getSpellAbility().addHint(hint2);
}
private BanishingSlash(final BanishingSlash card) {
super(card);
}
@Override
public BanishingSlash copy() {
return new BanishingSlash(this);
}
}

View file

@ -32,6 +32,7 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
cards.add(new SetCardInfo("Asari Captain", 215, Rarity.UNCOMMON, mage.cards.a.AsariCaptain.class));
cards.add(new SetCardInfo("Atsushi, the Blazing Sky", 134, Rarity.MYTHIC, mage.cards.a.AtsushiTheBlazingSky.class));
cards.add(new SetCardInfo("Bamboo Grove Archer", 173, Rarity.COMMON, mage.cards.b.BambooGroveArcher.class));
cards.add(new SetCardInfo("Banishing Slash", 3, Rarity.UNCOMMON, mage.cards.b.BanishingSlash.class));
cards.add(new SetCardInfo("Befriending the Moths", 4, Rarity.COMMON, mage.cards.b.BefriendingTheMoths.class));
cards.add(new SetCardInfo("Biting-Palm Ninja", 88, Rarity.RARE, mage.cards.b.BitingPalmNinja.class));
cards.add(new SetCardInfo("Bronzeplate Boar", 135, Rarity.UNCOMMON, mage.cards.b.BronzeplateBoar.class));

View file

@ -377,6 +377,12 @@ public final class StaticFilters {
FILTER_CONTROLLED_PERMANENT_ARTIFACT_OR_CREATURE.setLockedFilter(true);
}
public static final FilterControlledPermanent FILTER_CONTROLLED_PERMANENT_ENCHANTMENT = new FilterControlledEnchantmentPermanent();
static {
FILTER_CONTROLLED_PERMANENT_ENCHANTMENT.setLockedFilter(true);
}
public static final FilterControlledPermanent FILTER_CONTROLLED_PERMANENT_LAND = new FilterControlledLandPermanent();
static {