[AFR] Implemented Death-Priest of Myrkul

This commit is contained in:
Evan Kranzler 2021-07-05 16:36:36 -04:00
parent 83d91ded27
commit 5b1a38b426
10 changed files with 114 additions and 47 deletions

View file

@ -139,7 +139,7 @@
|Generate|TOK:10E|Goblin|||GoblinToken|
|Generate|TOK:10E|Insect|||WaspToken|
|Generate|TOK:10E|Saproling|||SaprolingToken|
|Generate|TOK:10E|Skeleton|||SkeletonToken|
|Generate|TOK:10E|Skeleton|||SkeletonRegenerateToken|
|Generate|TOK:10E|Soldier|||SoldierToken|
|Generate|TOK:10E|Zombie|||ZombieToken|
|Generate|TOK:2ED|Insect|||WaspToken|
@ -211,7 +211,7 @@
|Generate|TOK:ALA|Homunculus|||HomunculusToken|
|Generate|TOK:ALA|Ooze|||MysticGenesisOozeToken|
|Generate|TOK:ALA|Saproling|||SaprolingToken|
|Generate|TOK:ALA|Skeleton|||SkeletonToken|
|Generate|TOK:ALA|Skeleton|||SkeletonRegenerateToken|
|Generate|TOK:ALA|Soldier|||SoldierToken|
|Generate|TOK:ALA|Thopter|||ThopterToken|
|Generate|TOK:ALA|Zombie|||ZombieToken|
@ -700,7 +700,7 @@
|Generate|TOK:H17|Dragon|||DragonTokenGold|
|Generate|TOK:HML|Plant Wall|||KelpToken|
|Generate|TOK:HML|Serf|||SerfToken|
|Generate|TOK:HML|Skeleton|||SkeletonToken|
|Generate|TOK:HML|Skeleton|||SkeletonRegenerateToken|
|Generate|TOK:HOP|Goblin|||GoblinToken|
|Generate|TOK:HOP|Insect|||InsectToken|
|Generate|TOK:HOP|Pentavite|||PentaviteToken|
@ -1157,7 +1157,7 @@
|Generate|TOK:TSP|Wurm|||WurmCallingWurmToken|
|Generate|TOK:UDS|Goblin|||GoblinToken|
|Generate|TOK:ULG|Ape|||PongifyApeToken|
|Generate|TOK:ULG|Skeleton|||SkeletonToken|
|Generate|TOK:ULG|Skeleton|||SkeletonRegenerateToken|
|Generate|TOK:ULG|Squirrel|||SquirrelToken|
|Generate|TOK:UNH|Ape|||PongifyApeToken|
|Generate|TOK:UNH|Goblin|||GoblinToken|

View file

@ -0,0 +1,66 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.CompletedDungeonCondition;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.game.permanent.token.SkeletonToken;
import mage.watchers.common.CompletedDungeonWatcher;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class DeathPriestOfMyrkul extends CardImpl {
private static final FilterCreaturePermanent filter
= new FilterCreaturePermanent("Skeletons, Vampires, and Zombies");
static {
filter.add(Predicates.or(
SubType.SKELETON.getPredicate(),
SubType.VAMPIRE.getPredicate(),
SubType.ZOMBIE.getPredicate()
));
}
public DeathPriestOfMyrkul(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
this.subtype.add(SubType.TIEFLING);
this.subtype.add(SubType.CLERIC);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Skeletons, Vampires, and Zombies you control get +1/+1.
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(
1, 1, Duration.WhileOnBattlefield, filter, false
)));
// At the beginning of your end step, if a creature died this turn, you may pay {1}. If you do, create a 1/1 black Skeleton creature token.
this.addAbility(new BeginningOfEndStepTriggeredAbility(
Zone.BATTLEFIELD,
new DoIfCostPaid(new CreateTokenEffect(new SkeletonToken()), new GenericManaCost(1)),
TargetController.YOU, CompletedDungeonCondition.instance, false
).addHint(CompletedDungeonCondition.getHint()), new CompletedDungeonWatcher());
}
private DeathPriestOfMyrkul(final DeathPriestOfMyrkul card) {
super(card);
}
@Override
public DeathPriestOfMyrkul copy() {
return new DeathPriestOfMyrkul(this);
}
}

View file

@ -18,7 +18,7 @@ import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.permanent.TokenPredicate;
import mage.game.permanent.token.SkeletonToken;
import mage.game.permanent.token.SkeletonRegenerateToken;
import mage.target.common.TargetCardInYourGraveyard;
/**
@ -38,7 +38,7 @@ public final class DrudgeSpell extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}{B}");
// {B}, Exile two creature cards from your graveyard: Create a 1/1 black Skeleton creature token. It has "{B}: Regenerate this creature."
Effect effect = new CreateTokenEffect(new SkeletonToken());
Effect effect = new CreateTokenEffect(new SkeletonRegenerateToken());
effect.setText("create a 1/1 black Skeleton creature token. It has \"{B}: Regenerate this creature.\"");
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{B}"));
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(2, 2, new FilterCreatureCard("creature cards from your graveyard"))));

View file

@ -16,7 +16,7 @@ import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.events.ZoneChangeEvent;
import mage.game.permanent.token.SkeletonToken;
import mage.game.permanent.token.SkeletonRegenerateToken;
import mage.target.common.TargetCreaturePermanent;
import mage.watchers.common.DamagedByWatcher;
@ -74,7 +74,7 @@ class SkeletonizeEffect extends OneShotEffect {
class SkeletonizeDelayedTriggeredAbility extends DelayedTriggeredAbility {
public SkeletonizeDelayedTriggeredAbility() {
super(new CreateTokenEffect(new SkeletonToken()), Duration.EndOfTurn);
super(new CreateTokenEffect(new SkeletonRegenerateToken()), Duration.EndOfTurn);
}
public SkeletonizeDelayedTriggeredAbility(final SkeletonizeDelayedTriggeredAbility ability) {

View file

@ -10,7 +10,7 @@ import mage.abilities.mana.BlackManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.permanent.token.SkeletonToken;
import mage.game.permanent.token.SkeletonRegenerateToken;
/**
*
@ -22,7 +22,7 @@ public final class SpawningPool extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
this.addAbility(new EntersBattlefieldTappedAbility());
this.addAbility(new BlackManaAbility());
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SkeletonToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{B}")));
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SkeletonRegenerateToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{B}")));
}
private SpawningPool(final SpawningPool card) {

View file

@ -47,6 +47,7 @@ public final class AdventuresInTheForgottenRealms extends ExpansionSet {
cards.add(new SetCardInfo("Cloister Gargoyle", 7, Rarity.UNCOMMON, mage.cards.c.CloisterGargoyle.class));
cards.add(new SetCardInfo("Contact Other Plane", 52, Rarity.COMMON, mage.cards.c.ContactOtherPlane.class));
cards.add(new SetCardInfo("Dawnbringer Cleric", 9, Rarity.COMMON, mage.cards.d.DawnbringerCleric.class));
cards.add(new SetCardInfo("Death-Priest of Myrkul", 95, Rarity.UNCOMMON, mage.cards.d.DeathPriestOfMyrkul.class));
cards.add(new SetCardInfo("Delver's Torch", 10, Rarity.COMMON, mage.cards.d.DelversTorch.class));
cards.add(new SetCardInfo("Demogorgon's Clutches", 96, Rarity.UNCOMMON, mage.cards.d.DemogorgonsClutches.class));
cards.add(new SetCardInfo("Den of the Bugbear", 254, Rarity.RARE, mage.cards.d.DenOfTheBugbear.class));

View file

@ -17,7 +17,7 @@ import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.command.Dungeon;
import mage.game.command.DungeonRoom;
import mage.game.permanent.token.SkeletonToken2;
import mage.game.permanent.token.SkeletonToken;
import mage.game.permanent.token.TreasureToken;
import mage.players.Player;
import mage.target.common.TargetCardInHand;
@ -55,7 +55,7 @@ public class DungeonOfTheMadMage extends Dungeon {
// (5b) Muiral's Graveyard Create two 1/1 black Skeleton creature tokens. ( 6)
DungeonRoom muiralsGraveyard = new DungeonRoom(
"Muiral's Graveyard", new CreateTokenEffect(new SkeletonToken2(), 2)
"Muiral's Graveyard", new CreateTokenEffect(new SkeletonToken(), 2)
);
// (6) Deep Mines Scry 3. ( 7)

View file

@ -0,0 +1,31 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ColoredManaCost;
import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.constants.CardType;
import mage.constants.ColoredManaSymbol;
import mage.constants.SubType;
import mage.constants.Zone;
public final class SkeletonRegenerateToken extends TokenImpl {
public SkeletonRegenerateToken() {
super("Skeleton", "1/1 black Skeleton creature token with \"{B}: Regenerate this creature\"");
cardType.add(CardType.CREATURE);
this.subtype.add(SubType.SKELETON);
color.setBlack(true);
power = new MageInt(1);
toughness = new MageInt(1);
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ColoredManaCost(ColoredManaSymbol.B)));
}
public SkeletonRegenerateToken(final SkeletonRegenerateToken token) {
super(token);
}
public SkeletonRegenerateToken copy() {
return new SkeletonRegenerateToken(this);
}
}

View file

@ -1,24 +1,21 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ColoredManaCost;
import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.ColoredManaSymbol;
import mage.constants.Zone;
/**
* @author TheElk801
*/
public final class SkeletonToken extends TokenImpl {
public SkeletonToken() {
super("Skeleton", "1/1 black Skeleton creature token with \"{B}: Regenerate this creature\"");
super("Skeleton", "1/1 black Skeleton creature token");
cardType.add(CardType.CREATURE);
this.subtype.add(SubType.SKELETON);
color.setBlack(true);
power = new MageInt(1);
toughness = new MageInt(1);
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ColoredManaCost(ColoredManaSymbol.B)));
}
public SkeletonToken(final SkeletonToken token) {

View file

@ -1,28 +0,0 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author TheElk801
*/
public final class SkeletonToken2 extends TokenImpl {
public SkeletonToken2() {
super("Skeleton", "1/1 black Skeleton creature token");
cardType.add(CardType.CREATURE);
this.subtype.add(SubType.SKELETON);
color.setBlack(true);
power = new MageInt(1);
toughness = new MageInt(1);
}
public SkeletonToken2(final SkeletonToken2 token) {
super(token);
}
public SkeletonToken2 copy() {
return new SkeletonToken2(this);
}
}