[CMB1] Implement Banding Sliver (#11136)

This commit is contained in:
Susucre 2023-09-09 21:34:47 +02:00 committed by GitHub
parent aaf8f92db7
commit a1ab2a6fca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 56 additions and 8 deletions

View file

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

View file

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

View file

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