diff --git a/.gitattributes b/.gitattributes index 986f8c4941a..394b7d62fee 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5252,6 +5252,7 @@ res/cardsfolder/phyrexian_ingester.txt svneol=native#text/plain res/cardsfolder/phyrexian_ironfoot.txt -text svneol=native#text/plain res/cardsfolder/phyrexian_juggernaut.txt -text svneol=native#text/plain res/cardsfolder/phyrexian_lens.txt -text svneol=native#text/plain +res/cardsfolder/phyrexian_metamorph.txt -text svneol=native#text/plain res/cardsfolder/phyrexian_monitor.txt -text svneol=native#text/plain res/cardsfolder/phyrexian_negator.txt -text svneol=native#text/plain res/cardsfolder/phyrexian_obliterator.txt svneol=native#text/plain diff --git a/res/cardsfolder/phyrexian_metamorph.txt b/res/cardsfolder/phyrexian_metamorph.txt new file mode 100644 index 00000000000..4fde5d6e314 --- /dev/null +++ b/res/cardsfolder/phyrexian_metamorph.txt @@ -0,0 +1,8 @@ +Name:Phyrexian Metamorph +ManaCost:3 PU +Types:Artifact Creature Shapeshifter +Text:You may have CARDNAME enter the battlefield as a copy of any artifact or creature on the battlefield, except it's an artifact in addition to its other types. +PT:0/0 +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/phyrexian_metamorph.jpg +End \ No newline at end of file diff --git a/src/forge/card/cardFactory/CardFactory_Creatures.java b/src/forge/card/cardFactory/CardFactory_Creatures.java index 312722a4d92..d0a211905e0 100644 --- a/src/forge/card/cardFactory/CardFactory_Creatures.java +++ b/src/forge/card/cardFactory/CardFactory_Creatures.java @@ -3535,6 +3535,7 @@ public class CardFactory_Creatures { card.addSpellAbility(ability); }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if(cardName.equals("Sutured Ghoul")) { final int[] numCreatures = new int[1]; @@ -4093,7 +4094,8 @@ public class CardFactory_Creatures { //*************** START *********** START ************************** else if(cardName.equals("Clone") || cardName.equals("Vesuvan Doppelganger") || cardName.equals("Quicksilver Gargantuan") - || cardName.equals("Jwari Shapeshifter")) { + || cardName.equals("Jwari Shapeshifter") + || cardName.equals("Phyrexian Metamorph")) { final CardFactory cfact = cf; final Card[] copyTarget = new Card[1]; final Card[] cloned = new Card[1]; @@ -4140,6 +4142,7 @@ public class CardFactory_Creatures { cloned[0] = CardFactory.copyStats(copyTarget[0]); cloned[0].setOwner(card.getController()); cloned[0].setController(card.getController()); + if(cardName.equals("Phyrexian Metamorph")) cloned[0].addType("Artifact"); cloned[0].setCloneOrigin(card); cloned[0].addLeavesPlayCommand(leaves); cloned[0].setCloneLeavesPlayCommand(leaves); @@ -4175,7 +4178,10 @@ public class CardFactory_Creatures { @Override public void showMessage() { - AllZone.Display.showMessage(cardName+" - Select a creature on the battlefield"); + String message = "Select a creature "; + if(cardName.equals("Phyrexian Metamorph")) message += "or artifact "; + message += "on the battlefield"; + AllZone.Display.showMessage(cardName+" - "+message); ButtonUtil.enableOnlyCancel(); } @@ -4184,7 +4190,8 @@ public class CardFactory_Creatures { @Override public void selectCard(Card c, PlayerZone z) { - if( z.is(Constant.Zone.Battlefield) && c.isCreature()) { + if( z.is(Constant.Zone.Battlefield) && + (c.isCreature() || (cardName.equals("Phyrexian Metamorph") && c.isArtifact()))) { if(cardName.equals("Jwari Shapeshifter") && ! c.isType("Ally")) { return; @@ -4534,8 +4541,10 @@ public class CardFactory_Creatures { ability.setDescription(abCost+"Look at the top three cards of target player's library."); card.addSpellAbility(ability); - }//*************** END ************ END ************************** + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** else if(cardName.equals("Awakener Druid")) { final long[] timeStamp = {0}; @@ -4569,7 +4578,7 @@ public class CardFactory_Creatures { myTrig.setOverridingAbility(awaken); card.addTrigger(myTrig); - } + }//*************** END ************ END ************************** if(hasKeyword(card, "Level up") != -1 && hasKeyword(card, "maxLevel") != -1)