diff --git a/Mage.Sets/src/mage/cards/s/SpinneretAndSpiderling.java b/Mage.Sets/src/mage/cards/s/SpinneretAndSpiderling.java new file mode 100644 index 00000000000..b4dfef440a3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SpinneretAndSpiderling.java @@ -0,0 +1,77 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.common.AttacksWithCreaturesTriggeredAbility; +import mage.abilities.common.DealsDamageSourceTriggeredAbility; +import mage.abilities.effects.common.ExileTopXMayPlayUntilEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.counters.CounterType; +import mage.filter.FilterPermanent; +import mage.game.Game; +import mage.game.events.GameEvent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SpinneretAndSpiderling extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent(SubType.SPIDER, "Spiders"); + + public SpinneretAndSpiderling(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.SPIDER); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.HERO); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // Whenever you attack with two or more Spiders, put a +1/+1 counter on Spinneret and Spiderling. + this.addAbility(new AttacksWithCreaturesTriggeredAbility( + new AddCountersSourceEffect(CounterType.P1P1.createInstance()), 2, filter + )); + + // Whenever Spinneret and Spiderling deals 4 or more damage, exile the top card of your library. Until the end of your next turn, you may play that card. + this.addAbility(new SpinneretAndSpiderlingTriggeredAbility()); + } + + private SpinneretAndSpiderling(final SpinneretAndSpiderling card) { + super(card); + } + + @Override + public SpinneretAndSpiderling copy() { + return new SpinneretAndSpiderling(this); + } +} + +class SpinneretAndSpiderlingTriggeredAbility extends DealsDamageSourceTriggeredAbility { + + SpinneretAndSpiderlingTriggeredAbility() { + super(new ExileTopXMayPlayUntilEffect(1, Duration.UntilEndOfYourNextTurn)); + setTriggerPhrase("Whenever {this} deals 4 or more damage, "); + } + + private SpinneretAndSpiderlingTriggeredAbility(final SpinneretAndSpiderlingTriggeredAbility ability) { + super(ability); + } + + @Override + public SpinneretAndSpiderlingTriggeredAbility copy() { + return new SpinneretAndSpiderlingTriggeredAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return super.checkTrigger(event, game) && event.getAmount() >= 4; + } +} diff --git a/Mage.Sets/src/mage/sets/MarvelsSpiderMan.java b/Mage.Sets/src/mage/sets/MarvelsSpiderMan.java index a845dc871ed..b5ca5f3ab53 100644 --- a/Mage.Sets/src/mage/sets/MarvelsSpiderMan.java +++ b/Mage.Sets/src/mage/sets/MarvelsSpiderMan.java @@ -159,6 +159,7 @@ public final class MarvelsSpiderMan extends ExpansionSet { cards.add(new SetCardInfo("Spider-Suit", 176, Rarity.UNCOMMON, mage.cards.s.SpiderSuit.class)); cards.add(new SetCardInfo("Spider-UK", 17, Rarity.UNCOMMON, mage.cards.s.SpiderUK.class)); cards.add(new SetCardInfo("Spiders-Man, Heroic Horde", 117, Rarity.UNCOMMON, mage.cards.s.SpidersManHeroicHorde.class)); + cards.add(new SetCardInfo("Spinneret and Spiderling", 94, Rarity.RARE, mage.cards.s.SpinneretAndSpiderling.class)); cards.add(new SetCardInfo("Starling, Aerial Ally", 18, Rarity.COMMON, mage.cards.s.StarlingAerialAlly.class)); cards.add(new SetCardInfo("Steel Wrecking Ball", 177, Rarity.COMMON, mage.cards.s.SteelWreckingBall.class)); cards.add(new SetCardInfo("Stegron the Dinosaur Man", 95, Rarity.COMMON, mage.cards.s.StegronTheDinosaurMan.class));