From 202edaa7f41b88c226ec1f9f8cc2e573c9c86032 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Tue, 12 Nov 2024 12:09:02 -0500 Subject: [PATCH] [J25] Implement Slimy Piper --- Mage.Sets/src/mage/cards/s/SlimyPiper.java | 60 +++++++++++++++++++ .../src/mage/sets/FoundationsJumpstart.java | 1 + 2 files changed, 61 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SlimyPiper.java diff --git a/Mage.Sets/src/mage/cards/s/SlimyPiper.java b/Mage.Sets/src/mage/cards/s/SlimyPiper.java new file mode 100644 index 00000000000..25459834ae3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SlimyPiper.java @@ -0,0 +1,60 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.common.AddContinuousEffectToGame; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SlimyPiper extends CardImpl { + + private static final Condition condition = new PermanentsOnTheBattlefieldCondition( + StaticFilters.FILTER_CONTROLLED_CREATURE, ComparisonType.MORE_THAN, 3 + ); + + public SlimyPiper(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add(SubType.FUNGUS); + this.subtype.add(SubType.BARD); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Whenever Slimy Piper attacks, it gets +1/+1 until end of turn. If you control four or more creatures, it gets +2/+2 and gains indestructible until end of turn instead. + this.addAbility(new AttacksTriggeredAbility(new ConditionalOneShotEffect( + new AddContinuousEffectToGame( + new BoostSourceEffect(2, 2, Duration.EndOfTurn), + new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn) + ), + new AddContinuousEffectToGame(new BoostSourceEffect(1, 1, Duration.EndOfTurn)), + condition, "it gets +1/+1 until end of turn. If you control four or more creatures, " + + "it gets +2/+2 and gains indestructible until end of turn instead" + )).addHint(CreaturesYouControlHint.instance)); + } + + private SlimyPiper(final SlimyPiper card) { + super(card); + } + + @Override + public SlimyPiper copy() { + return new SlimyPiper(this); + } +} diff --git a/Mage.Sets/src/mage/sets/FoundationsJumpstart.java b/Mage.Sets/src/mage/sets/FoundationsJumpstart.java index 3b211885cd8..3c76b01d1fb 100644 --- a/Mage.Sets/src/mage/sets/FoundationsJumpstart.java +++ b/Mage.Sets/src/mage/sets/FoundationsJumpstart.java @@ -606,6 +606,7 @@ public final class FoundationsJumpstart extends ExpansionSet { cards.add(new SetCardInfo("Skyclave Pick-Axe", 712, Rarity.UNCOMMON, mage.cards.s.SkyclavePickAxe.class)); cards.add(new SetCardInfo("Skymarch Bloodletter", 125, Rarity.COMMON, mage.cards.s.SkymarchBloodletter.class)); cards.add(new SetCardInfo("Slimebind", 360, Rarity.COMMON, mage.cards.s.Slimebind.class)); + cards.add(new SetCardInfo("Slimy Piper", 25, Rarity.COMMON, mage.cards.s.SlimyPiper.class)); cards.add(new SetCardInfo("Smoke Shroud", 361, Rarity.COMMON, mage.cards.s.SmokeShroud.class)); cards.add(new SetCardInfo("Snakeskin Veil", 713, Rarity.COMMON, mage.cards.s.SnakeskinVeil.class)); cards.add(new SetCardInfo("Snapping Gnarlid", 714, Rarity.COMMON, mage.cards.s.SnappingGnarlid.class));