From 13241c9076e3ba5f2936de9923fe91cbd701e9ef Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 04:07:02 +0000 Subject: [PATCH] Added the cards Entangling Vines and Glimmerdust Nap and their LQ pic urls. I had to hard-code these cards as I do not thoink that these two can be done strictly via keywords. --- res/card-pictures.txt | 2 + res/cards.txt | 12 ++++ src/forge/CardFactory_Auras.java | 102 +++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) diff --git a/res/card-pictures.txt b/res/card-pictures.txt index abacade91d3..1ae0c24eeee 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 +entangling_vines.jpg http://www.wizards.com/global/images/magic/general/entangling_vines.jpg +glimmerdust_nap.jpg http://www.wizards.com/global/images/magic/general/glimmerdust_nap.jpg genesis.jpg http://www.wizards.com/global/images/magic/general/genesis.jpg flight_of_fancy.jpg http://www.wizards.com/global/images/magic/general/flight_of_fancy.jpg elvish_vanguard.jpg http://www.wizards.com/global/images/magic/general/elvish_vanguard.jpg diff --git a/res/cards.txt b/res/cards.txt index d979c2d564d..41dbedb1689 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,15 @@ +Entangling Vines +3 G +Enchantment Aura +Enchanted creature doesn't untap during its controller's untap step. +Enchant tapped creature + +Glimmerdust Nap +2 U +Enchantment Aura +Enchanted creature doesn't untap during its controller's untap step. +Enchant tapped creature + Basalt Monolith 3 Artifact diff --git a/src/forge/CardFactory_Auras.java b/src/forge/CardFactory_Auras.java index 95a9d47db3b..b2d2007f296 100644 --- a/src/forge/CardFactory_Auras.java +++ b/src/forge/CardFactory_Auras.java @@ -1148,6 +1148,108 @@ class CardFactory_Auras { spell.setBeforePayMana(CardFactoryUtil.input_targetCreature(spell)); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if (cardName.equals("Entangling Vines") || cardName.equals("Glimmerdust Nap")) { + + final SpellAbility spell = new Spell(card) { + private static final long serialVersionUID = 843412563175285562L; + + @Override + public boolean canPlayAI() { + + CardList list = new CardList(AllZone.Human_Play.getCards()); // Target human creature + list = list.filter(new CardListFilter() { + public boolean addCard(Card c) { + return c.isCreature() && c.isTapped() && CardFactoryUtil.canTarget(card, c) && + !c.getKeyword().contains("CARDNAME doesn't untap during your untap step."); + } + }); + + if (list.isEmpty()) { + return false; + } else { + CardListUtil.sortAttack(list); + CardListUtil.sortFlying(list); + setTargetCard(list.get(0)); + } + return true; + }//canPlayAI() + + @Override + public void resolve() { + PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); + play.add(card); + + Card c = getTargetCard(); + + if (AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card, c)) card.enchantCard(c); + + }//resolve() + };//SpellAbility + card.clearSpellAbility(); + card.addSpellAbility(spell); + + Command onEnchant = new Command() { + private static final long serialVersionUID = -8694692627290877222L; + + public void execute() { + if (card.isEnchanting()) { + Card crd = card.getEnchanting().get(0); + if (! crd.getKeyword().contains("CARDNAME doesn't untap during your untap step.")) + crd.addExtrinsicKeyword("CARDNAME doesn't untap during your untap step."); + } + }//execute() + };//Command + + Command onUnEnchant = new Command() { + private static final long serialVersionUID = -8271629765371049921L; + + public void execute() { + if(card.isEnchanting()) { + Card crd = card.getEnchanting().get(0); + crd.removeExtrinsicKeyword("CARDNAME doesn't untap during your untap step."); + } + + }//execute() + };//Command + + Command onLeavesPlay = new Command() { + private static final long serialVersionUID = -8694692627290877222L; + + public void execute() { + if(card.isEnchanting()) { + Card crd = card.getEnchanting().get(0); + card.unEnchantCard(crd); + } + } + }; + + Input runtime = new Input() { + private static final long serialVersionUID = 5974269912215230241L; + + @Override + public void showMessage() { + PlayerZone comp = AllZone.getZone(Constant.Zone.Play, Constant.Player.Computer); + PlayerZone hum = AllZone.getZone(Constant.Zone.Play, Constant.Player.Human); + CardList creatures = new CardList(); + creatures.addAll(comp.getCards()); + creatures.addAll(hum.getCards()); + creatures = creatures.filter(new CardListFilter() { + public boolean addCard(Card c) { + return c.isCreature() && c.isTapped() && CardFactoryUtil.canTarget(card, c); + } + }); + + stopSetNext(CardFactoryUtil.input_targetSpecific(spell, creatures, "Select target tapped creature", true, false)); + } + }; + card.addEnchantCommand(onEnchant); + card.addUnEnchantCommand(onUnEnchant); + card.addLeavesPlayCommand(onLeavesPlay); + + spell.setBeforePayMana(runtime); + }//*************** END ************ END ************************** + // ************************************************************************