updated tokens with phyrexian subtype

This commit is contained in:
Evan Kranzler 2021-06-10 20:29:07 -04:00
parent cd99beed6e
commit 5f8d746fc0
34 changed files with 237 additions and 82 deletions

View file

@ -13,7 +13,7 @@ import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -36,7 +36,7 @@ public final class BladeSplicer extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// When Blade Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token. // When Blade Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken())));
// Golem creatures you control have first strike. // Golem creatures you control have first strike.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter)));

View file

@ -70,7 +70,7 @@ class BrudicladTelchorEngineerEffect extends OneShotEffect {
public BrudicladTelchorEngineerEffect() { public BrudicladTelchorEngineerEffect() {
super(Outcome.Sacrifice); super(Outcome.Sacrifice);
this.staticText = " create a 2/1 blue Myr artifact creature token. Then you may choose a token you control. If you do, each other token you control becomes a copy of that token"; this.staticText = " create a 2/1 blue Phyrexian Myr artifact creature token. Then you may choose a token you control. If you do, each other token you control becomes a copy of that token";
} }
public BrudicladTelchorEngineerEffect(final BrudicladTelchorEngineerEffect effect) { public BrudicladTelchorEngineerEffect(final BrudicladTelchorEngineerEffect effect) {

View file

@ -16,8 +16,7 @@ import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.PhyrexianGoblinToken;
import mage.game.permanent.token.GoblinToken;
import java.util.UUID; import java.util.UUID;
@ -46,7 +45,7 @@ public final class ChancellorOfTheForge extends CardImpl {
// When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control. // When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control.
DynamicValue value = new PermanentsOnBattlefieldCount(filter); DynamicValue value = new PermanentsOnBattlefieldCount(filter);
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(true), value), false) this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGoblinToken(), value), false)
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
} }
@ -63,7 +62,7 @@ public final class ChancellorOfTheForge extends CardImpl {
class ChancellorOfTheForgeDelayedTriggeredAbility extends DelayedTriggeredAbility { class ChancellorOfTheForgeDelayedTriggeredAbility extends DelayedTriggeredAbility {
ChancellorOfTheForgeDelayedTriggeredAbility() { ChancellorOfTheForgeDelayedTriggeredAbility() {
super(new CreateTokenEffect(new GoblinToken(true))); super(new CreateTokenEffect(new PhyrexianGoblinToken()));
} }
ChancellorOfTheForgeDelayedTriggeredAbility(ChancellorOfTheForgeDelayedTriggeredAbility ability) { ChancellorOfTheForgeDelayedTriggeredAbility(ChancellorOfTheForgeDelayedTriggeredAbility ability) {

View file

@ -14,7 +14,7 @@ import mage.constants.CardType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.common.FilterArtifactCard; import mage.filter.common.FilterArtifactCard;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInGraveyard;
import java.util.UUID; import java.util.UUID;
@ -33,7 +33,7 @@ public final class ConversionChamber extends CardImpl {
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
this.addAbility(ability); this.addAbility(ability);
// {2}, {T}, Remove a charge counter from Conversion Chamber: Create a 3/3 colorless Golem artifact creature token. // {2}, {T}, Remove a charge counter from Conversion Chamber: Create a 3/3 colorless Golem artifact creature token.
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GolemToken()), new GenericManaCost(2)); ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new PhyrexianGolemToken()), new GenericManaCost(2));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())); ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance()));
this.addAbility(ability); this.addAbility(ability);

View file

@ -14,7 +14,7 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.game.permanent.token.BeastToken2; import mage.game.permanent.token.PhyrexianBeastToken;
import mage.players.Player; import mage.players.Player;
import java.util.HashSet; import java.util.HashSet;
@ -48,7 +48,7 @@ class EzurisPredationEffect extends OneShotEffect {
public EzurisPredationEffect() { public EzurisPredationEffect() {
super(Outcome.PutCreatureInPlay); super(Outcome.PutCreatureInPlay);
this.staticText = "For each creature your opponents control, create a 4/4 green Beast creature token. Each of those Beasts fights a different one of those creatures"; this.staticText = "For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures";
} }
public EzurisPredationEffect(final EzurisPredationEffect effect) { public EzurisPredationEffect(final EzurisPredationEffect effect) {
@ -81,7 +81,7 @@ class EzurisPredationEffect extends OneShotEffect {
List<Permanent> creaturesOfOpponents = game.getBattlefield().getActivePermanents(filterCreature, source.getControllerId(), source.getSourceId(), game); List<Permanent> creaturesOfOpponents = game.getBattlefield().getActivePermanents(filterCreature, source.getControllerId(), source.getSourceId(), game);
Set<MageObjectReference> morSet = new HashSet<>(); Set<MageObjectReference> morSet = new HashSet<>();
if (!creaturesOfOpponents.isEmpty()) { if (!creaturesOfOpponents.isEmpty()) {
CreateTokenEffect effect = new CreateTokenEffect(new BeastToken2(), creaturesOfOpponents.size()); CreateTokenEffect effect = new CreateTokenEffect(new PhyrexianBeastToken(), creaturesOfOpponents.size());
effect.apply(game, source); effect.apply(game, source);
for (UUID tokenId : effect.getLastAddedTokenIds()) { for (UUID tokenId : effect.getLastAddedTokenIds()) {
Permanent token = game.getPermanent(tokenId); Permanent token = game.getPermanent(tokenId);

View file

@ -17,7 +17,7 @@ import mage.counters.CounterType;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterControlledPermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -39,7 +39,7 @@ public final class IchTekikSalvageSplicer extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// When Ich-Tekik, Salvage Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token. // When Ich-Tekik, Salvage Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken())));
// Whenever an artifact is put into a graveyard from the battlefield, put a +1/+1 counter on Ich-Tekik and a +1/+1 counter on each Golem you control. // Whenever an artifact is put into a graveyard from the battlefield, put a +1/+1 counter on Ich-Tekik and a +1/+1 counter on each Golem you control.
Ability ability = new PutIntoGraveFromBattlefieldAllTriggeredAbility( Ability ability = new PutIntoGraveFromBattlefieldAllTriggeredAbility(

View file

@ -12,7 +12,7 @@ import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -32,7 +32,7 @@ public final class MasterSplicer extends CardImpl {
this.power = new MageInt(1); this.power = new MageInt(1);
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken())));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, false))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));
} }

View file

@ -13,7 +13,7 @@ import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -39,7 +39,7 @@ public final class MaulSplicer extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// When Maul Splicer enters the battlefield, create two 3/3 colorless Golem artifact creature tokens. // When Maul Splicer enters the battlefield, create two 3/3 colorless Golem artifact creature tokens.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken(), 2))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken(), 2)));
// Golem creatures you control have trample. // Golem creatures you control have trample.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter)));

View file

@ -1,8 +1,5 @@
package mage.cards.m; package mage.cards.m;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.common.DiesSourceTriggeredAbility; import mage.abilities.common.DiesSourceTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
@ -10,10 +7,11 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.game.permanent.token.MyrToken; import mage.game.permanent.token.PhyrexianMyrToken;
import java.util.UUID;
/** /**
*
* @author Loki * @author Loki
*/ */
public final class MyrSire extends CardImpl { public final class MyrSire extends CardImpl {
@ -24,7 +22,7 @@ public final class MyrSire extends CardImpl {
this.subtype.add(SubType.MYR); this.subtype.add(SubType.MYR);
this.power = new MageInt(1); this.power = new MageInt(1);
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new MyrToken()))); this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new PhyrexianMyrToken())));
} }
public MyrSire(final MyrSire card) { public MyrSire(final MyrSire card) {
@ -35,5 +33,4 @@ public final class MyrSire extends CardImpl {
public MyrSire copy() { public MyrSire copy() {
return new MyrSire(this); return new MyrSire(this);
} }
} }

View file

@ -13,6 +13,7 @@ import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent.EventType;
import mage.game.permanent.token.PhyrexianZombieToken;
import mage.game.permanent.token.ZombieToken; import mage.game.permanent.token.ZombieToken;
/** /**
@ -46,7 +47,7 @@ public final class NestedGhoul extends CardImpl {
class NestedGhoulTriggeredAbility extends TriggeredAbilityImpl { class NestedGhoulTriggeredAbility extends TriggeredAbilityImpl {
NestedGhoulTriggeredAbility() { NestedGhoulTriggeredAbility() {
super(Zone.BATTLEFIELD, new CreateTokenEffect(new ZombieToken())); super(Zone.BATTLEFIELD, new CreateTokenEffect(new PhyrexianZombieToken()));
} }
NestedGhoulTriggeredAbility(final NestedGhoulTriggeredAbility ability) { NestedGhoulTriggeredAbility(final NestedGhoulTriggeredAbility ability) {
@ -70,6 +71,6 @@ class NestedGhoulTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever a source deals damage to {this}, create a 2/2 black Zombie creature token."; return "Whenever a source deals damage to {this}, create a 2/2 black Phyrexian Zombie creature token.";
} }
} }

View file

@ -1,7 +1,5 @@
package mage.cards.p; package mage.cards.p;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
@ -11,17 +9,18 @@ import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.game.permanent.token.MyrToken; import mage.game.permanent.token.PhyrexianMyrToken;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/** /**
*
* @author Loki * @author Loki
*/ */
public final class ParasiticImplant extends CardImpl { public final class ParasiticImplant extends CardImpl {
@ -30,14 +29,13 @@ public final class ParasiticImplant extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}"); super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}");
this.subtype.add(SubType.AURA); this.subtype.add(SubType.AURA);
TargetPermanent auraTarget = new TargetCreaturePermanent(); TargetPermanent auraTarget = new TargetCreaturePermanent();
this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.Sacrifice)); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Sacrifice));
Ability ability = new EnchantAbility(auraTarget.getTargetName()); Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability); this.addAbility(ability);
ability = new BeginningOfUpkeepTriggeredAbility(new ParasiticImplantEffect(), TargetController.YOU, false); ability = new BeginningOfUpkeepTriggeredAbility(new ParasiticImplantEffect(), TargetController.YOU, false);
ability.addEffect(new CreateTokenEffect(new MyrToken("NPH"))); ability.addEffect(new CreateTokenEffect(new PhyrexianMyrToken()));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -92,7 +92,7 @@ class PhyrexianProcessorCreateTokenEffect extends OneShotEffect {
PhyrexianProcessorCreateTokenEffect() { PhyrexianProcessorCreateTokenEffect() {
super(Outcome.PutCreatureInPlay); super(Outcome.PutCreatureInPlay);
staticText = "Create an X/X black Minion creature token, " + staticText = "Create an X/X black Phyrexian Minion creature token, " +
"where X is the life paid as {this} entered the battlefield."; "where X is the life paid as {this} entered the battlefield.";
} }

View file

@ -38,7 +38,7 @@ public final class PhyrexianRebirth extends CardImpl {
private PhyrexianRebirthEffect() { private PhyrexianRebirthEffect() {
super(Outcome.DestroyPermanent); super(Outcome.DestroyPermanent);
staticText = "Destroy all creatures, then create an X/X colorless Horror artifact creature token, " + staticText = "Destroy all creatures, then create an X/X colorless Phyrexian Horror artifact creature token, " +
"where X is the number of creatures destroyed this way"; "where X is the number of creatures destroyed this way";
} }

View file

@ -9,7 +9,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -27,7 +27,7 @@ public final class PhyrexianTriniform extends CardImpl {
this.toughness = new MageInt(9); this.toughness = new MageInt(9);
// When Phyrexian Triniform dies, create three 3/3 colorless Golem artifact creature tokens. // When Phyrexian Triniform dies, create three 3/3 colorless Golem artifact creature tokens.
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new GolemToken(), 3))); this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken(), 3)));
// Encore {12} // Encore {12}
this.addAbility(new EncoreAbility(new GenericManaCost(12))); this.addAbility(new EncoreAbility(new GenericManaCost(12)));

View file

@ -13,7 +13,7 @@ import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -38,7 +38,7 @@ public final class SensorSplicer extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// When Sensor Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token. // When Sensor Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken())));
// Golem creatures you control have vigilance. // Golem creatures you control have vigilance.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, filter))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, filter)));

View file

@ -1,7 +1,5 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.ObjectColor; import mage.ObjectColor;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -22,10 +20,11 @@ import mage.constants.Zone;
import mage.counters.CounterType; import mage.counters.CounterType;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.ColorPredicate; import mage.filter.predicate.mageobject.ColorPredicate;
import mage.game.permanent.token.MyrToken; import mage.game.permanent.token.PhyrexianMyrToken;
import java.util.UUID;
/** /**
*
* @author North * @author North
*/ */
public final class ShrineOfLoyalLegions extends CardImpl { public final class ShrineOfLoyalLegions extends CardImpl {
@ -46,7 +45,7 @@ public final class ShrineOfLoyalLegions extends CardImpl {
//{3}, {T}, Sacrifice Shrine of Loyal Legions: Create a 1/1 colorless Myr artifact creature token for each charge counter on Shrine of Loyal Legions. //{3}, {T}, Sacrifice Shrine of Loyal Legions: Create a 1/1 colorless Myr artifact creature token for each charge counter on Shrine of Loyal Legions.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new CreateTokenEffect(new MyrToken("NPH"), new CountersSourceCount(CounterType.CHARGE)), new CreateTokenEffect(new PhyrexianMyrToken(), new CountersSourceCount(CounterType.CHARGE)),
new GenericManaCost(3)); new GenericManaCost(3));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost()); ability.addCost(new SacrificeSourceCost());

View file

@ -5,7 +5,7 @@ import mage.abilities.keyword.SpliceOntoInstantOrSorceryAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -18,7 +18,7 @@ public final class SplicersSkill extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{W}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{W}");
// Create a 3/3 colorless Golem artifact creature token. // Create a 3/3 colorless Golem artifact creature token.
this.getSpellAbility().addEffect(new CreateTokenEffect(new GolemToken())); this.getSpellAbility().addEffect(new CreateTokenEffect(new PhyrexianGolemToken()));
// Splice onto instant or sorcery {3}{W} // Splice onto instant or sorcery {3}{W}
this.addAbility(new SpliceOntoInstantOrSorceryAbility("{3}{W}")); this.addAbility(new SpliceOntoInstantOrSorceryAbility("{3}{W}"));

View file

@ -14,7 +14,7 @@ import mage.constants.SubType;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import java.util.UUID; import java.util.UUID;
@ -42,7 +42,7 @@ public final class VitalSplicer extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// When Vital Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token. // When Vital Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken())));
// {1}: Regenerate target Golem you control. // {1}: Regenerate target Golem you control.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{1}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{1}"));

View file

@ -13,7 +13,7 @@ import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.game.permanent.token.GolemToken; import mage.game.permanent.token.PhyrexianGolemToken;
import java.util.UUID; import java.util.UUID;
@ -39,7 +39,7 @@ public final class WingSplicer extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// When Wing Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token. // When Wing Splicer enters the battlefield, create a 3/3 colorless Golem artifact creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GolemToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGolemToken())));
// Golem creatures you control have flying. // Golem creatures you control have flying.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter)));

View file

@ -33,7 +33,7 @@ public final class WurmcoilEngine extends CardImpl {
// When Wurmcoil Engine dies, create a 3/3 colorless Wurm artifact creature token with deathtouch and a 3/3 colorless Wurm artifact creature token with lifelink. // When Wurmcoil Engine dies, create a 3/3 colorless Wurm artifact creature token with deathtouch and a 3/3 colorless Wurm artifact creature token with lifelink.
Ability ability = new DiesSourceTriggeredAbility(new CreateTokenEffect(new WurmWithDeathtouchToken()), false); Ability ability = new DiesSourceTriggeredAbility(new CreateTokenEffect(new WurmWithDeathtouchToken()), false);
ability.addEffect(new CreateTokenEffect(new WurmWithLifelinkToken()).setText("and a 3/3 colorless Wurm artifact creature token with lifelink")); ability.addEffect(new CreateTokenEffect(new WurmWithLifelinkToken()).setText("and a 3/3 colorless Phyrexian Wurm artifact creature token with lifelink"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -114,7 +114,6 @@ public class VerifyCardDataTest {
// subtype // subtype
skipListCreate(SKIP_LIST_SUBTYPE); skipListCreate(SKIP_LIST_SUBTYPE);
skipListAddName(SKIP_LIST_SUBTYPE, "UGL", "Miss Demeanor"); skipListAddName(SKIP_LIST_SUBTYPE, "UGL", "Miss Demeanor");
subtypesToIgnore.add("Phyrexian"); // large errata incoming, adding this for now
// number // number
skipListCreate(SKIP_LIST_NUMBER); skipListCreate(SKIP_LIST_NUMBER);

View file

@ -1,13 +1,13 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt; import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public final class BrudicladTelchorMyrToken extends TokenImpl { public final class BrudicladTelchorMyrToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
@ -17,14 +17,10 @@ public final class BrudicladTelchorMyrToken extends TokenImpl {
} }
public BrudicladTelchorMyrToken() { public BrudicladTelchorMyrToken() {
this((String)null); super("Phyrexian Myr", "2/1 blue Phyrexian Myr artifact creature token");
}
public BrudicladTelchorMyrToken(String expansionSetCode) {
super("Myr", "2/1 blue Myr artifact creature token");
this.setOriginalExpansionSetCode(expansionSetCode);
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
cardType.add(CardType.ARTIFACT); cardType.add(CardType.ARTIFACT);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.MYR); subtype.add(SubType.MYR);
color.setBlue(true); color.setBlue(true);
power = new MageInt(2); power = new MageInt(2);

View file

@ -28,7 +28,7 @@ public final class GermToken extends TokenImpl {
} }
public GermToken(String setCode, int tokenType) { public GermToken(String setCode, int tokenType) {
super("Germ", "0/0 black Phyrexian Germ creature token"); super("Phyrexian Germ", "0/0 black Phyrexian Germ creature token");
availableImageSetCodes = tokenImageSets; availableImageSetCodes = tokenImageSets;
setOriginalExpansionSetCode(setCode); setOriginalExpansionSetCode(setCode);
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);

View file

@ -1,22 +1,20 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt; import mage.MageInt;
import mage.abilities.keyword.InfectAbility; import mage.abilities.keyword.InfectAbility;
import mage.constants.CardType;
import mage.constants.SubType;
/** /**
*
* @author nantuko * @author nantuko
*/ */
public final class InsectInfectToken extends TokenImpl { public final class InsectInfectToken extends TokenImpl {
public InsectInfectToken() { public InsectInfectToken() {
super("Insect", "1/1 green Insect creature token with infect"); super("Phyrexian Insect", "1/1 green Phyrexian Insect creature token with infect");
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
color.setGreen(true); color.setGreen(true);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.INSECT); subtype.add(SubType.INSECT);
power = new MageInt(1); power = new MageInt(1);
toughness = new MageInt(1); toughness = new MageInt(1);

View file

@ -17,9 +17,10 @@ public final class MinionToken extends TokenImpl {
} }
public MinionToken(String setCode) { public MinionToken(String setCode) {
super("Minion", "X/X black Minion creature token"); super("Phyrexian Minion", "X/X black Phyrexian Minion creature token");
this.setOriginalExpansionSetCode(setCode); this.setOriginalExpansionSetCode(setCode);
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.MINION); subtype.add(SubType.MINION);
color.setBlack(true); color.setBlack(true);
power = new MageInt(0); power = new MageInt(0);

View file

@ -23,8 +23,8 @@ public final class MyrToken extends TokenImpl {
public MyrToken(String expansionSetCode) { public MyrToken(String expansionSetCode) {
super("Myr", "1/1 colorless Myr artifact creature token"); super("Myr", "1/1 colorless Myr artifact creature token");
this.setOriginalExpansionSetCode(expansionSetCode); this.setOriginalExpansionSetCode(expansionSetCode);
cardType.add(CardType.CREATURE);
cardType.add(CardType.ARTIFACT); cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
subtype.add(SubType.MYR); subtype.add(SubType.MYR);
power = new MageInt(1); power = new MageInt(1);
toughness = new MageInt(1); toughness = new MageInt(1);

View file

@ -0,0 +1,30 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author TheElk801
*/
public final class PhyrexianBeastToken extends TokenImpl {
public PhyrexianBeastToken() {
super("Phyrexian Beast", "4/4 green Phyrexian Beast creature token");
cardType.add(CardType.CREATURE);
color.setGreen(true);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.BEAST);
power = new MageInt(4);
toughness = new MageInt(4);
}
public PhyrexianBeastToken(final PhyrexianBeastToken token) {
super(token);
}
@Override
public PhyrexianBeastToken copy() {
return new PhyrexianBeastToken(this);
}
}

View file

@ -0,0 +1,36 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.keyword.HasteAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
public final class PhyrexianGoblinToken extends TokenImpl {
public PhyrexianGoblinToken() {
super("Phyrexian Goblin", "1/1 red Phyrexian Goblin creature token with haste");
cardType.add(CardType.CREATURE);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.GOBLIN);
color.setRed(true);
power = new MageInt(1);
toughness = new MageInt(1);
addAbility(HasteAbility.getInstance());
availableImageSetCodes = Arrays.asList("NPH");
}
public PhyrexianGoblinToken(final PhyrexianGoblinToken token) {
super(token);
}
public PhyrexianGoblinToken copy() {
return new PhyrexianGoblinToken(this);
}
}

View file

@ -0,0 +1,38 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
public final class PhyrexianGolemToken extends TokenImpl {
public PhyrexianGolemToken() {
super("Phyrexian Golem", "3/3 colorless Phyrexian Golem artifact creature token");
cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.GOLEM);
power = new MageInt(3);
toughness = new MageInt(3);
availableImageSetCodes = Arrays.asList("MM2", "NPH", "SOM", "MH1", "M20", "CMR");
}
public PhyrexianGolemToken(final PhyrexianGolemToken token) {
super(token);
}
public PhyrexianGolemToken copy() {
return new PhyrexianGolemToken(this);
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
}
}

View file

@ -0,0 +1,26 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
public final class PhyrexianMyrToken extends TokenImpl {
public PhyrexianMyrToken() {
super("Phyrexian Myr", "1/1 colorless Phyrexian Myr artifact creature token");
cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.MYR);
power = new MageInt(1);
toughness = new MageInt(1);
}
public PhyrexianMyrToken(final PhyrexianMyrToken token) {
super(token);
}
public PhyrexianMyrToken copy() {
return new PhyrexianMyrToken(this);
}
}

View file

@ -12,9 +12,10 @@ import java.util.Arrays;
public final class PhyrexianRebirthHorrorToken extends TokenImpl { public final class PhyrexianRebirthHorrorToken extends TokenImpl {
public PhyrexianRebirthHorrorToken(int power, int toughness) { public PhyrexianRebirthHorrorToken(int power, int toughness) {
super("Horror", "X/X colorless Horror artifact creature token"); super("Phyrexian Horror", "X/X colorless Phyrexian Horror artifact creature token");
this.cardType.add(CardType.ARTIFACT); this.cardType.add(CardType.ARTIFACT);
this.cardType.add(CardType.CREATURE); this.cardType.add(CardType.CREATURE);
this.subtype.add(SubType.PHYREXIAN);
this.subtype.add(SubType.HORROR); this.subtype.add(SubType.HORROR);
this.power = new MageInt(power); this.power = new MageInt(power);
this.toughness = new MageInt(toughness); this.toughness = new MageInt(toughness);

View file

@ -0,0 +1,34 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
public final class PhyrexianZombieToken extends TokenImpl {
public PhyrexianZombieToken() {
super("Phyrexian Zombie", "2/2 black Phyrexian Zombie creature token");
cardType.add(CardType.CREATURE);
color.setBlack(true);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.ZOMBIE);
power = new MageInt(2);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("MBS");
}
public PhyrexianZombieToken(final PhyrexianZombieToken token) {
super(token);
}
@Override
public PhyrexianZombieToken copy() {
return new PhyrexianZombieToken(this);
}
}

View file

@ -13,9 +13,10 @@ import java.util.Arrays;
public final class WurmWithDeathtouchToken extends TokenImpl { public final class WurmWithDeathtouchToken extends TokenImpl {
public WurmWithDeathtouchToken() { public WurmWithDeathtouchToken() {
super("Wurm", "3/3 colorless Wurm artifact creature token with deathtouch"); super("Phyrexian Wurm", "3/3 colorless Phyrexian Wurm artifact creature token with deathtouch");
cardType.add(CardType.ARTIFACT); cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.WURM); subtype.add(SubType.WURM);
power = new MageInt(3); power = new MageInt(3);
toughness = new MageInt(3); toughness = new MageInt(3);

View file

@ -13,9 +13,10 @@ import java.util.Arrays;
public final class WurmWithLifelinkToken extends TokenImpl { public final class WurmWithLifelinkToken extends TokenImpl {
public WurmWithLifelinkToken() { public WurmWithLifelinkToken() {
super("Wurm", "3/3 colorless Wurm artifact creature token with lifelink"); super("Phyrexian Wurm", "3/3 colorless Phyrexian Wurm artifact creature token with lifelink");
cardType.add(CardType.ARTIFACT); cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.WURM); subtype.add(SubType.WURM);
power = new MageInt(3); power = new MageInt(3);
toughness = new MageInt(3); toughness = new MageInt(3);