From 94566cee69376a6fe23cf2f78276589168a7257e Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 4 Sep 2024 16:18:04 -0400 Subject: [PATCH] [DSK] Implement Overlord of the Mistmoors --- .../mage/cards/o/OverlordOfTheMistmoors.java | 43 +++++++++++++++++++ .../src/mage/sets/DuskmournHouseOfHorror.java | 1 + .../permanent/token/InsectWhiteToken.java | 31 +++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/o/OverlordOfTheMistmoors.java create mode 100644 Mage/src/main/java/mage/game/permanent/token/InsectWhiteToken.java diff --git a/Mage.Sets/src/mage/cards/o/OverlordOfTheMistmoors.java b/Mage.Sets/src/mage/cards/o/OverlordOfTheMistmoors.java new file mode 100644 index 00000000000..c3124d29013 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OverlordOfTheMistmoors.java @@ -0,0 +1,43 @@ +package mage.cards.o; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.ImpendingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.game.permanent.token.InsectWhiteToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class OverlordOfTheMistmoors extends CardImpl { + + public OverlordOfTheMistmoors(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{5}{W}{W}"); + + this.subtype.add(SubType.AVATAR); + this.subtype.add(SubType.HORROR); + this.power = new MageInt(6); + this.toughness = new MageInt(6); + + // Impending 4--{2}{W}{W} + this.addAbility(new ImpendingAbility("{2}{W}{W}")); + + // Whenever Overlord of the Mistmoors enters or attacks, create two 2/1 white Insect creature tokens with flying. + this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new CreateTokenEffect(new InsectWhiteToken(), 2))); + } + + private OverlordOfTheMistmoors(final OverlordOfTheMistmoors card) { + super(card); + } + + @Override + public OverlordOfTheMistmoors copy() { + return new OverlordOfTheMistmoors(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java index 4f5b64862e8..531f7b83465 100644 --- a/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java +++ b/Mage.Sets/src/mage/sets/DuskmournHouseOfHorror.java @@ -57,6 +57,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet { cards.add(new SetCardInfo("Neglected Manor", 264, Rarity.COMMON, mage.cards.n.NeglectedManor.class)); cards.add(new SetCardInfo("Overlord of the Floodpits", 68, Rarity.MYTHIC, mage.cards.o.OverlordOfTheFloodpits.class)); cards.add(new SetCardInfo("Overlord of the Hauntwoods", 194, Rarity.MYTHIC, mage.cards.o.OverlordOfTheHauntwoods.class)); + cards.add(new SetCardInfo("Overlord of the Mistmoors", 23, Rarity.MYTHIC, mage.cards.o.OverlordOfTheMistmoors.class)); cards.add(new SetCardInfo("Patched Plaything", 24, Rarity.UNCOMMON, mage.cards.p.PatchedPlaything.class)); cards.add(new SetCardInfo("Patchwork Beastie", 195, Rarity.UNCOMMON, mage.cards.p.PatchworkBeastie.class)); cards.add(new SetCardInfo("Peculiar Lighthouse", 265, Rarity.COMMON, mage.cards.p.PeculiarLighthouse.class)); diff --git a/Mage/src/main/java/mage/game/permanent/token/InsectWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/InsectWhiteToken.java new file mode 100644 index 00000000000..7e112d5de02 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/InsectWhiteToken.java @@ -0,0 +1,31 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.FlyingAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author TheElk801 + */ +public final class InsectWhiteToken extends TokenImpl { + + public InsectWhiteToken() { + super("Insect Token", "2/1 white Insect creature token with flying"); + cardType.add(CardType.CREATURE); + color.setWhite(true); + subtype.add(SubType.INSECT); + power = new MageInt(2); + toughness = new MageInt(1); + + this.addAbility(FlyingAbility.getInstance()); + } + + private InsectWhiteToken(final InsectWhiteToken token) { + super(token); + } + + public InsectWhiteToken copy() { + return new InsectWhiteToken(this); + } +}