From b9d76d99c951b1aa08a8be88d19a6b59019803f9 Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Sat, 30 Mar 2024 17:48:46 +0100 Subject: [PATCH] [OTJ] Implement Congregation Gryff --- .../src/mage/cards/c/CongregationGryff.java | 62 +++++++++++++++++++ .../mage/sets/OutlawsOfThunderJunction.java | 1 + 2 files changed, 63 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CongregationGryff.java diff --git a/Mage.Sets/src/mage/cards/c/CongregationGryff.java b/Mage.Sets/src/mage/cards/c/CongregationGryff.java new file mode 100644 index 00000000000..fdd62674f0c --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CongregationGryff.java @@ -0,0 +1,62 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.common.AttacksWhileSaddledTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.SaddleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.common.FilterControlledPermanent; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class CongregationGryff extends CardImpl { + + private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.MOUNT)); + private static final Hint hint = new ValueHint("Number of mounts you control", xValue); + + public CongregationGryff(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}"); + + this.subtype.add(SubType.HIPPOGRIFF); + this.subtype.add(SubType.MOUNT); + this.power = new MageInt(1); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // Whenever Congregation Gryff attacks while saddled, it gets +X/+X until end of turn, where X is the number of Mounts you control. + this.addAbility(new AttacksWhileSaddledTriggeredAbility( + new BoostSourceEffect(xValue, xValue, Duration.EndOfTurn) + .setText("it gets +X/+X until end of turn, where X is the number of Mounts you control") + ).addHint(hint)); + + // Saddle 3 + this.addAbility(new SaddleAbility(3)); + } + + private CongregationGryff(final CongregationGryff card) { + super(card); + } + + @Override + public CongregationGryff copy() { + return new CongregationGryff(this); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java index 9e79d3caf67..cb63fc07f2c 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java @@ -53,6 +53,7 @@ public final class OutlawsOfThunderJunction extends ExpansionSet { cards.add(new SetCardInfo("Canyon Crab", 40, Rarity.UNCOMMON, mage.cards.c.CanyonCrab.class)); cards.add(new SetCardInfo("Colossal Rattlewurm", 159, Rarity.RARE, mage.cards.c.ColossalRattlewurm.class)); cards.add(new SetCardInfo("Concealed Courtyard", 268, Rarity.RARE, mage.cards.c.ConcealedCourtyard.class)); + cards.add(new SetCardInfo("Congregation Gryff", 200, Rarity.UNCOMMON, mage.cards.c.CongregationGryff.class)); cards.add(new SetCardInfo("Creosote Heath", 255, Rarity.COMMON, mage.cards.c.CreosoteHeath.class)); cards.add(new SetCardInfo("Cunning Coyote", 118, Rarity.UNCOMMON, mage.cards.c.CunningCoyote.class)); cards.add(new SetCardInfo("Deepmuck Desperado", 42, Rarity.UNCOMMON, mage.cards.d.DeepmuckDesperado.class));