From ad50e3f2eb54248a6ddaa1278e733b5416c22a85 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 02:46:32 +0000 Subject: [PATCH] - Changed "This card does not untap during your untap phase." keyword to "This card doesn't untap during your untap step.", and added "This card doesn't untap during your next untap step." keyword. New cards: Dingus Egg, Dingus Staff, Proper Burial, Moonlit Wake, Fecundity, Goblin Sharpshooter, Dauthi Ghoul, Eternity Snare, Elvish Hunter (not implemented yet). --- res/cards.txt | 72 +++++++++++- src/forge/CardFactory_Auras.java | 103 +++++++++++++++++ src/forge/GameAction.java | 23 ++++ src/forge/GameActionUtil.java | 189 +++++++++++++++++++++++++++++++ src/forge/Input_Untap.java | 6 +- 5 files changed, 390 insertions(+), 3 deletions(-) diff --git a/res/cards.txt b/res/cards.txt index 59a0b796d6b..bf92ce134a2 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,71 @@ +Dingus Egg +4 +Artifact +no text +Whenever a land is put into a graveyard from the battlefield, Dingus Egg deals 2 damage to that land's controller. + +Dingus Staff +4 +Artifact +no text +Whenever a creature is put into a graveyard from the battlefield, Dingus Egg deals 2 damage to that creature's controller. + +Proper Burial +3 W +Enchantment +no text +Whenever a creature you control is put into a graveyard from the battlefield, you gain life equal to that creature's toughness. + +Moonlit Wake +2 W +Enchantment +no text +Whenever a creature is put into a graveyard from the battlefield, you gain 1 life. + +Fecundity +2 G +Enchantment +no text +Whenever a creature is put into a graveyard from the battlefield, that creature's controller may draw a card. + +Goblin Sharpshooter +2 R +Creature Goblin +no text +1/1 +abDamageCP T:1 +This card doesn't untap during your untap step. +Whenever a creature is put into a graveyard from the battlefield, untap Goblin Sharpshooter. + +Soulcatcher +1 W +Creature Bird Soldier +no text +1/1 +Whenever a creature with flying is put into a graveyard from the battlefield, put a +1/+1 counter on Soulcatcher. +Flying + +Dauthi Ghoul +1 B +Creature Dauthi Zombie +no text +1/1 +Whenever a creature with shadow is put into a graveyard from the battlefield, put a +1/+1 counter on Dauthi Ghoul. +Shadow + +Eternity Snare +4 U +Enchantment Aura +Enchanted creature doesn't untap during its controller's untap step. +When this card comes into play, draw a card. +Enchant creature + +Elvish Hunter +1 G +Creature Elf Archer +no text +1/1 + Merfolk Looter 1 U Creature Merfolk Rogue @@ -3669,7 +3737,7 @@ Basalt Monolith 3 Artifact no text -This card does not untap during your untap phase. +This card doesn't untap during your untap step. Untap:3 tap: add 3 @@ -3677,7 +3745,7 @@ Grim Monolith 2 Artifact no text -This card does not untap during your untap phase. +This card doesn't untap during your untap step. Untap:4 tap: add 3 diff --git a/src/forge/CardFactory_Auras.java b/src/forge/CardFactory_Auras.java index 91f4d4cfa6f..4909f66a93d 100644 --- a/src/forge/CardFactory_Auras.java +++ b/src/forge/CardFactory_Auras.java @@ -5445,6 +5445,109 @@ class CardFactory_Auras { spell.setBeforePayMana(CardFactoryUtil.input_targetCreature(spell)); }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + if(cardName.equals("Eternity Snare")) + { + final SpellAbility spell = new Spell(card) + { + + private static final long serialVersionUID = -1241918879720338838L; + public boolean canPlayAI() + { + CardList list = new CardList(AllZone.Human_Play.getCards()); + list = list.filter(new CardListFilter() + { + public boolean addCard(Card c) { + return c.isCreature() && !c.getKeyword().contains("Vigilance"); + } + }); + + if(list.isEmpty()) + return false; + + //else + CardListUtil.sortAttack(list); + CardListUtil.sortFlying(list); + + for (int i=0;i keywords = c.getKeyword(); + for (String kw : keywords) + { + if (kw.startsWith("Whenever") && kw.contains(" put into a graveyard from the battlefield,")) + return true; + } + return false; + } + }); + + for (int i=0;i