From a1ab2a6fcafb966d8fd3bdd465583a7fc1522bf8 Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Sat, 9 Sep 2023 21:34:47 +0200 Subject: [PATCH] [CMB1] Implement Banding Sliver (#11136) --- Mage.Sets/src/mage/cards/b/BandingSliver.java | 48 +++++++++++++++++++ .../src/mage/cards/b/BatteringSliver.java | 15 +++--- .../src/mage/sets/MysteryBoosterPlaytest.java | 1 + 3 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/b/BandingSliver.java diff --git a/Mage.Sets/src/mage/cards/b/BandingSliver.java b/Mage.Sets/src/mage/cards/b/BandingSliver.java new file mode 100644 index 00000000000..16c221658c9 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BandingSliver.java @@ -0,0 +1,48 @@ + +package mage.cards.b; + +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.keyword.BandingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * + * @author Susucr + */ +public final class BandingSliver extends CardImpl { + + public BandingSliver(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); + this.subtype.add(SubType.SLIVER); + + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // All Sliver creatures have banding. + this.addAbility(new SimpleStaticAbility( + new GainAbilityAllEffect( + BandingAbility.getInstance(), + Duration.WhileOnBattlefield, + StaticFilters.FILTER_PERMANENT_ALL_SLIVERS + ) + )); + } + + private BandingSliver(final BandingSliver card) { + super(card); + } + + @Override + public BandingSliver copy() { + return new BandingSliver(this); + } +} diff --git a/Mage.Sets/src/mage/cards/b/BatteringSliver.java b/Mage.Sets/src/mage/cards/b/BatteringSliver.java index 005b3766bf4..ac39923965a 100644 --- a/Mage.Sets/src/mage/cards/b/BatteringSliver.java +++ b/Mage.Sets/src/mage/cards/b/BatteringSliver.java @@ -12,6 +12,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; import mage.constants.Zone; +import mage.filter.StaticFilters; import mage.filter.common.FilterCreaturePermanent; /** @@ -20,12 +21,6 @@ import mage.filter.common.FilterCreaturePermanent; */ public final class BatteringSliver extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("all Sliver creatures"); - - static { - filter.add(SubType.SLIVER.getPredicate()); - } - public BatteringSliver(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{R}"); this.subtype.add(SubType.SLIVER); @@ -35,8 +30,12 @@ public final class BatteringSliver extends CardImpl { // All Sliver creatures have trample. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new GainAbilityAllEffect(TrampleAbility.getInstance(), - Duration.WhileOnBattlefield, filter))); + new GainAbilityAllEffect( + TrampleAbility.getInstance(), + Duration.WhileOnBattlefield, + StaticFilters.FILTER_PERMANENT_ALL_SLIVERS + ) + )); } private BatteringSliver(final BatteringSliver card) { diff --git a/Mage.Sets/src/mage/sets/MysteryBoosterPlaytest.java b/Mage.Sets/src/mage/sets/MysteryBoosterPlaytest.java index 90baf52fb70..eceb8fa7574 100644 --- a/Mage.Sets/src/mage/sets/MysteryBoosterPlaytest.java +++ b/Mage.Sets/src/mage/sets/MysteryBoosterPlaytest.java @@ -23,6 +23,7 @@ public class MysteryBoosterPlaytest extends ExpansionSet { this.hasBoosters = false; this.hasBasicLands = false; + cards.add(new SetCardInfo("Banding Sliver", 2, Rarity.RARE, mage.cards.b.BandingSliver.class)); cards.add(new SetCardInfo("How to Keep an Izzet Mage Busy", 93, Rarity.RARE, mage.cards.h.HowToKeepAnIzzetMageBusy.class)); cards.add(new SetCardInfo("Slivdrazi Monstrosity", 102, Rarity.RARE, mage.cards.s.SlivdraziMonstrosity.class)); cards.add(new SetCardInfo("Unicycle", 110, Rarity.RARE, mage.cards.u.Unicycle.class));