diff --git a/res/card-pictures.txt b/res/card-pictures.txt index 1c4d5abffa1..b3394d55912 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -38,6 +38,8 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg +mnemonic_wall.jpg http://www.wizards.com/global/images/magic/general/mnemonic_wall.jpg +cadaver_imp.jpg http://www.wizards.com/global/images/magic/general/cadaver_imp.jpg demonic_consultation.jpg http://www.wizards.com/global/images/magic/general/demonic_consultation.jpg stitch_together.jpg http://www.wizards.com/global/images/magic/general/stitch_together.jpg symbiotic_wurm.jpg http://www.wizards.com/global/images/magic/general/symbiotic_wurm.jpg diff --git a/res/cards.txt b/res/cards.txt index 01a465f11a2..34d14581644 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,10 @@ +Mnemonic Wall +4 U +Creature Wall +When Mnemonic Wall enters the battlefield, you may return target instant or sorcery card from your graveyard to your hand. +0/4 +Defender + Elvish Piper 3 G Creature Elf Shaman diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index e3d0b35cb6b..b16ef99727b 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -3588,9 +3588,8 @@ public class CardFactory_Creatures { }); }//*************** END ************ END ************************** - //*************** START *********** START ************************** - else if(cardName.equals("Gravedigger") || cardName.equals("Cadaver Imp")) { + else if(cardName.equals("Gravedigger") || cardName.equals("Cadaver Imp") || cardName.equals("Mnemonic Wall")) { final SpellAbility ability = new Ability(card, "0") { @Override public void resolve() { @@ -3607,7 +3606,15 @@ public class CardFactory_Creatures { public void execute() { PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController()); CardList list = new CardList(grave.getCards()); - list = list.getType("Creature"); + + list = list.filter(new CardListFilter() { + public boolean addCard(Card crd) { + return ((card.getName().equals("Gravedigger") || card.getName().equals("Cadaver Imp")) && crd.isCreature()) + || + (card.getName().equals("Mnemonic Wall") && (crd.isInstant() || crd.isSorcery())); + } + }); + // list = list.getType("Creature"); if(list.isEmpty()) return; @@ -3620,7 +3627,14 @@ public class CardFactory_Creatures { }//if else//computer { - Card best = CardFactoryUtil.AI_getBestCreature(list); + Card best = card; + if (card.getName().equals("Gravedigger") || card.getName().equals("Cadaver Imp")) { + best = CardFactoryUtil.AI_getBestCreature(list); + } else { + // compy will select a random Instant or Sorcery + list.shuffle(); + best = list.get(0); + } ability.setTargetCard(best); AllZone.Stack.add(ability); }