implement [MH3] Wurmcoil Larva

This commit is contained in:
Susucre 2024-05-23 14:05:20 +02:00
parent bc71db6b50
commit 149e4328a7
4 changed files with 117 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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));
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}