From 149e4328a7ffab0f918f93a40ad30e51f5c0b01c Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Thu, 23 May 2024 14:05:20 +0200 Subject: [PATCH] implement [MH3] Wurmcoil Larva --- Mage.Sets/src/mage/cards/w/WurmcoilLarva.java | 52 +++++++++++++++++++ Mage.Sets/src/mage/sets/ModernHorizons3.java | 1 + .../token/PhyrexianWurm12DeathtouchToken.java | 32 ++++++++++++ .../token/PhyrexianWurm21LifelinkToken.java | 32 ++++++++++++ 4 files changed, 117 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/w/WurmcoilLarva.java create mode 100644 Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm12DeathtouchToken.java create mode 100644 Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm21LifelinkToken.java diff --git a/Mage.Sets/src/mage/cards/w/WurmcoilLarva.java b/Mage.Sets/src/mage/cards/w/WurmcoilLarva.java new file mode 100644 index 00000000000..9fbb4b81168 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WurmcoilLarva.java @@ -0,0 +1,52 @@ +package mage.cards.w; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesSourceTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.game.permanent.token.PhyrexianWurm12DeathtouchToken; +import mage.game.permanent.token.PhyrexianWurm21LifelinkToken; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class WurmcoilLarva extends CardImpl { + + public WurmcoilLarva(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}{B}{B}"); + + this.subtype.add(SubType.PHYREXIAN); + this.subtype.add(SubType.WURM); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Deathtouch + this.addAbility(DeathtouchAbility.getInstance()); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // When Wurmcoil Larva dies, create a 1/2 black Phyrexian Wurm artifact creature token with deathtouch and a 2/1 black Phyrexian Wurm artifact creature token with lifelink. + Ability ability = new DiesSourceTriggeredAbility(new CreateTokenEffect(new PhyrexianWurm12DeathtouchToken()), false); + ability.addEffect(new CreateTokenEffect(new PhyrexianWurm21LifelinkToken()) + .setText("and a 2/1 black Phyrexian Wurm artifact creature token with lifelink")); + this.addAbility(ability); + } + + private WurmcoilLarva(final WurmcoilLarva card) { + super(card); + } + + @Override + public WurmcoilLarva copy() { + return new WurmcoilLarva(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons3.java b/Mage.Sets/src/mage/sets/ModernHorizons3.java index 671d64e7830..4a5ce62beef 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons3.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons3.java @@ -110,5 +110,6 @@ public final class ModernHorizons3 extends ExpansionSet { cards.add(new SetCardInfo("Wooded Foothills", 236, Rarity.RARE, mage.cards.w.WoodedFoothills.class)); cards.add(new SetCardInfo("Worn Powerstone", 298, Rarity.UNCOMMON, mage.cards.w.WornPowerstone.class)); cards.add(new SetCardInfo("Writhing Chrysalis", 208, Rarity.COMMON, mage.cards.w.WrithingChrysalis.class)); + cards.add(new SetCardInfo("Wurmcoil Larva", 112, Rarity.UNCOMMON, mage.cards.w.WurmcoilLarva.class)); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm12DeathtouchToken.java b/Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm12DeathtouchToken.java new file mode 100644 index 00000000000..624e6ba1d76 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm12DeathtouchToken.java @@ -0,0 +1,32 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.DeathtouchAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author Susucr + */ +public final class PhyrexianWurm12DeathtouchToken extends TokenImpl { + + public PhyrexianWurm12DeathtouchToken() { + super("Phyrexian Wurm Token", "1/2 black Phyrexian Wurm artifact creature token with deathtouch"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add(SubType.PHYREXIAN); + subtype.add(SubType.WURM); + color.setBlack(true); + power = new MageInt(1); + toughness = new MageInt(2); + this.addAbility(DeathtouchAbility.getInstance()); + } + + private PhyrexianWurm12DeathtouchToken(final PhyrexianWurm12DeathtouchToken token) { + super(token); + } + + public PhyrexianWurm12DeathtouchToken copy() { + return new PhyrexianWurm12DeathtouchToken(this); + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm21LifelinkToken.java b/Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm21LifelinkToken.java new file mode 100644 index 00000000000..a3a29bbdda3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PhyrexianWurm21LifelinkToken.java @@ -0,0 +1,32 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.keyword.LifelinkAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author Susucr + */ +public final class PhyrexianWurm21LifelinkToken extends TokenImpl { + + public PhyrexianWurm21LifelinkToken() { + super("Phyrexian Wurm Token", "2/1 black Phyrexian Wurm artifact creature token with lifelink"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add(SubType.PHYREXIAN); + subtype.add(SubType.WURM); + color.setBlack(true); + power = new MageInt(2); + toughness = new MageInt(1); + this.addAbility(LifelinkAbility.getInstance()); + } + + private PhyrexianWurm21LifelinkToken(final PhyrexianWurm21LifelinkToken token) { + super(token); + } + + public PhyrexianWurm21LifelinkToken copy() { + return new PhyrexianWurm21LifelinkToken(this); + } +}