diff --git a/res/cardsfolder/adun_oakenshield.txt b/res/cardsfolder/adun_oakenshield.txt index 7f9c86b9265..6d37dfe32f3 100644 --- a/res/cardsfolder/adun_oakenshield.txt +++ b/res/cardsfolder/adun_oakenshield.txt @@ -3,6 +3,7 @@ ManaCost:G R B Types:Legendary Creature Human Knight Text:no text PT:1/2 +A:AB$ChangeZone | Cost$ B R G T | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to your hand. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/adun_oakenshield.jpg SetInfo:LEG|Rare|http://magiccards.info/scans/en/lg/256.jpg diff --git a/res/cardsfolder/dragon_blood.txt b/res/cardsfolder/dragon_blood.txt index 9358afd0fdb..b08eceae0be 100644 --- a/res/cardsfolder/dragon_blood.txt +++ b/res/cardsfolder/dragon_blood.txt @@ -2,6 +2,7 @@ Name:Dragon Blood ManaCost:3 Types:Artifact Text:no text +A:AB$PutCounter | Cost$ 3 T | Tgt$ TgtC | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on target creature. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/dragon_blood.jpg SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/163.jpg diff --git a/res/cardsfolder/duskmantle_house_of_shadow.txt b/res/cardsfolder/duskmantle_house_of_shadow.txt index 822b4206320..3c575418c1a 100644 --- a/res/cardsfolder/duskmantle_house_of_shadow.txt +++ b/res/cardsfolder/duskmantle_house_of_shadow.txt @@ -3,6 +3,7 @@ ManaCost:no cost Types:Land Text:no text K:tap: add 1 +A:AB$Mill | Cost$ U B T | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | SpellDescription$ Target player puts the top card of his or her library into his or her graveyard. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/Duskmantle_House_of_Shadow.jpg SetInfo:RAV|Uncommon|http://magiccards.info/scans/en/rav/277.jpg diff --git a/res/cardsfolder/rix_maadi_dungeon_palace.txt b/res/cardsfolder/rix_maadi_dungeon_palace.txt index 311abfda036..568fc0d7af4 100644 --- a/res/cardsfolder/rix_maadi_dungeon_palace.txt +++ b/res/cardsfolder/rix_maadi_dungeon_palace.txt @@ -3,6 +3,7 @@ ManaCost:no cost Types:Land Text:no text K:tap: add 1 +A:AB$Discard | Cost$1 B R T|NumCards$ 1 | Mode$ TgtChoose | Defined$ Each |SorcerySpeed$True| SpellDescription$Each player discards a card. Activate this ability only any time you could cast a sorcery. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/rix_maadi_dungeon_palace.jpg SetInfo:DIS|Uncommon|http://magiccards.info/scans/en/di/179.jpg diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 379d6b99e21..1144b6e006e 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -7386,101 +7386,6 @@ public class CardFactory implements NewConstants { }//*************** END ************ END ************************** - //*************** START *********** START ************************** - else if(cardName.equals("Dragon Blood")) { - Ability_Tap ability = new Ability_Tap(card, "3") { - private static final long serialVersionUID = -8095802059752537764L; - - @Override - public void resolve() { - if(getTargetCard() != null && getTargetCard().isCreature() - && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addCounter( - Counters.P1P1, 1); - } - - @Override - public boolean canPlayAI() { - CardList list = new CardList(AllZone.Computer_Battlefield.getCards()); - list = list.getType("Creature"); - if(list.size() > 0) { - setTargetCard(CardFactoryUtil.AI_getBestCreature(list)); - return (getTargetCard() != null); - } - return false; - } - }; - ability.setBeforePayMana(CardFactoryUtil.input_targetCreature(ability)); - ability.setDescription("3, tap: Put a +1/+1 counter on target creature."); - StringBuilder sb = new StringBuilder(); - sb.append(card).append(": put a +1/+1 counter on target Creature."); - ability.setStackDescription(sb.toString()); - card.addSpellAbility(ability); - }//*************** END ************ END ************************** - - /* - //*************** START *********** START ************************** - else if(cardName.equals("AEther Vial")) { - //final int[] converted = null; - final Ability_Tap ability = new Ability_Tap(card, "0") { - private static final long serialVersionUID = 1854859213307704018L; - - @Override - public boolean canPlay() { - return card.getCounters(Counters.CHARGE) > 0; - } - - @Override - public void resolve() { - Player player = card.getController(); - - PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, player); - PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, player); - - //converted[0] = card.getCounters(Counters.CHARGE); - //System.out.println("converted: " + converted[0]); - - CardList list = new CardList(hand.getCards()); - list = list.filter(new CardListFilter() { - public boolean addCard(Card c) { - return CardUtil.getConvertedManaCost(c.getManaCost()) == card.getCounters(Counters.CHARGE) - && c.isCreature(); - } - }); - - - if(list.size() > 0) { - if(player.equals(AllZone.HumanPlayer)) { - Object o = AllZone.Display.getChoiceOptional("Pick creature to put into play", - list.toArray()); - if(o != null) { - Card c = (Card) o; - hand.remove(c); - play.add(c); - } - } else { - Card c = list.get(0); - if(AllZone.GameAction.isCardInZone(c, hand)) { - hand.remove(c); - play.add(c); - } - } - } - } - }; - - StringBuilder sbDesc = new StringBuilder(); - sbDesc.append("Tap: You may put a creature card with converted mana cost equal to the "); - sbDesc.append("number of charge counters on AEther Vial from your hand into play."); - ability.setDescription(sbDesc.toString()); - - StringBuilder sbStack = new StringBuilder(); - sbStack.append(card.getName()); - sbStack.append(" - put creature card with converted mana cost equal to the number of charge counters into play."); - ability.setStackDescription(sbStack.toString()); - - card.addSpellAbility(ability); - }//*************** END ************ END ************************** - */ //*************** START *********** START ************************** else if(cardName.equals("Lifespark Spellbomb")) { @@ -7647,70 +7552,7 @@ public class CardFactory implements NewConstants { } //*************** END ************ END ************************** - /* - //*************** START *********** START ************************** - else if(cardName.equals("Quicksilver Amulet")) { - final SpellAbility ability = new Ability_Tap(card, "4") { - private static final long serialVersionUID = 4414609319033894302L; - - @Override - public boolean canPlayAI() { - return (getCreature().size() > 0); - } - - @Override - public void chooseTargetAI() { - card.tap(); - Card target = CardFactoryUtil.AI_getBestCreature(getCreature()); - setTargetCard(target); - } - - CardList getCreature() { - CardList list = new CardList(AllZone.Computer_Hand.getCards()); - list = list.getType("Creature"); - list = list.filter(new CardListFilter() { - public boolean addCard(Card c) { - return (c.getCMC() > 4); - } - }); - return list; - } - - @Override - public void resolve() { - Card c = getTargetCard(); - PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController()); - PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, card.getController()); - - if(AllZone.GameAction.isCardInZone(c, hand)) { - hand.remove(c); - play.add(c); - } - } - }; - - ability.setBeforePayMana(new Input() { - private static final long serialVersionUID = -1647181037510967127L; - - @Override - public void showMessage() { - Player controller = card.getController(); - CardList creats = new CardList(AllZone.getZone(Constant.Zone.Hand, controller).getCards()); - creats = creats.filter(new CardListFilter() { - public boolean addCard(Card c) { - PlayerZone zone = AllZone.getZone(c); - return c.isCreature() && zone.is(Constant.Zone.Hand); - } - - }); - stopSetNext(CardFactoryUtil.input_targetSpecific(ability, creats, "Select a creature", false, - false)); - } - }); - card.addSpellAbility(ability); - }//*************** END ************ END ************************** - */ - + //*************** START *********** START ************************** else if(cardName.equals("Chalice of the Void")) { Command intoPlay = new Command() { diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 32fc220a54e..fe1c0325e66 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -3140,59 +3140,6 @@ public class CardFactory_Creatures { }//*************** END ************ END ************************** - //*************** START *********** START ************************ - else if(cardName.equals("Adun Oakenshield")) { - final Ability_Tap ability = new Ability_Tap(card, "B R G") { - private static final long serialVersionUID = -7913968639880781838L; - - @Override - public boolean canPlayAI() { - return getGraveCreatures().size() != 0; - } - - @Override - public void chooseTargetAI() { - CardList grave = getGraveCreatures(); - Card target = CardFactoryUtil.AI_getBestCreature(grave); - setTargetCard(target); - } - - @Override - public void resolve() { - if(card.getController().equals(AllZone.HumanPlayer)) { - Card c = AllZone.Display.getChoice("Select card", getGraveCreatures().toArray()); - setTargetCard(c); - } - - PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController()); - PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController()); - - if(AllZone.GameAction.isCardInZone(getTargetCard(), grave)) AllZone.GameAction.moveTo(hand, - getTargetCard()); - }//resolve() - - @Override - public boolean canPlay() { - return super.canPlay() && getGraveCreatures().size() != 0 && super.canPlay(); - } - - CardList getGraveCreatures() { - PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController()); - CardList list = new CardList(grave.getCards()); - list = list.getType("Creature"); - return list; - } - };//SpellAbility - ability.setDescription("B R G, Tap: Return target creature card from your graveyard to your hand."); - - StringBuilder sb = new StringBuilder(); - sb.append(cardName).append(" - return target creature from your graveyard to your hand."); - ability.setStackDescription(sb.toString()); - - card.addSpellAbility(ability); - }//*************** END ************ END ************************** - - //*************** START *********** START ************************** else if(cardName.equals("Penumbra Kavu")) { final Ability ability = new Ability(card, "0") { diff --git a/src/forge/CardFactory_Lands.java b/src/forge/CardFactory_Lands.java index c92f0700426..9c83f060cc6 100644 --- a/src/forge/CardFactory_Lands.java +++ b/src/forge/CardFactory_Lands.java @@ -1253,52 +1253,16 @@ class CardFactory_Lands { //*************** END ************ END ************************** - //*************** START *********** START ************************** - else if(cardName.equals("Duskmantle, House of Shadow")) { - card.clearSpellKeepManaAbility(); - - Ability_Tap ability = new Ability_Tap(card, "U B") { - private static final long serialVersionUID = 42470566751344693L; - - @Override - public boolean canPlayAI() { - Player player = getTargetPlayer(); - PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player); - CardList libList = new CardList(lib.getCards()); - return libList.size() > 0 && super.canPlayAI(); - } - - @Override - public void resolve() { - getTargetPlayer().mill(1); - } - }; - ability.setBeforePayMana(CardFactoryUtil.input_targetPlayer(ability)); - ability.setDescription("tap U B: Target player puts the top card of his or her library into his or her graveyard."); - ability.setStackDescription("Target player puts the top card of his or her library into his or her graveyard."); - card.addSpellAbility(ability); - } - //*************** END ************ END ************************** - - //*************** START *********** START ************************** + //*************** START *********** START ************************** else if(cardName.equals("Crypt of Agadeem")) { final SpellAbility ability = new Ability_Tap(card, "2") { private static final long serialVersionUID = -3561865824450791583L; @Override public void resolve() { - /*CardList list = new CardList(AllZone.getZone(Constant.Zone.Play, AllZone.HumanPlayer).getCards()); - list = list.getName("Mana Pool");*/ - Card mp = AllZone.ManaPool;//list.getCard(0); - - PlayerZone Grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController()); - CardList evildead = new CardList(); - evildead.addAll(Grave.getCards()); - evildead = evildead.filter(new CardListFilter() { - public boolean addCard(Card c) { - return (c.isCreature() && c.isBlack()); - } - }); + Card mp = AllZone.ManaPool; + CardList evildead = AllZoneUtil.getPlayerTypeInGraveyard(card.getController(), "Creature"); + evildead = evildead.filter(AllZoneUtil.black); for(int i = 0; i < evildead.size(); i++) { mp.addExtrinsicKeyword("ManaPool:B"); @@ -1316,52 +1280,10 @@ class CardFactory_Lands { sb.append(cardName).append(" adds B to your mana pool for each black creature card in your graveyard."); ability.setStackDescription(sb.toString()); - //card.clearSpellAbility(); - //card.setText(card.getText() + ability.toString()); card.addSpellAbility(ability); - - return card; }//*************** END ************ END ************************** - - //*************** START *********** START ************************** - else if(cardName.equals("Rix Maadi, Dungeon Palace")) { - card.clearSpellKeepManaAbility(); - - Ability_Tap ability = new Ability_Tap(card, "1 B R") { - private static final long serialVersionUID = 42470566751344693L; - - @Override - public boolean canPlay() { - if(Phase.canCastSorcery(getSourceCard().getController()) - && AllZone.GameAction.isCardInPlay(card)) return true; - else return false; - } - - @Override - public boolean canPlayAI() { - PlayerZone hand_c = AllZone.getZone(Constant.Zone.Hand, AllZone.ComputerPlayer); - PlayerZone hand_h = AllZone.getZone(Constant.Zone.Hand, AllZone.HumanPlayer); - CardList hand_comp = new CardList(hand_c.getCards()); - CardList hand_hum = new CardList(hand_h.getCards()); - return ((hand_comp.size() - hand_hum.size()) > 1 && hand_hum.size() > 0) && super.canPlayAI(); - } - - @Override - public void resolve() { - AllZone.ComputerPlayer.discard(this); - AllZone.HumanPlayer.discard(this); - //AllZone.InputControl.setInput(CardFactoryUtil.input_discard(this)); - //AllZone.GameAction.discardRandom(AllZone.ComputerPlayer, this); // wise discard should be here - } - }; - ability.setDescription("tap 1 B R: Each player discards a card. Activate this ability only any time you could cast a sorcery."); - ability.setStackDescription("Each player discards a card."); - card.addSpellAbility(ability); - } - //*************** END ************ END ************************** - - + //*************** START *********** START ************************** else if(cardName.equals("Svogthos, the Restless Tomb")) { final long[] timeStamp = new long[1];