From c9b347e9a1f3fa4258fc8ce1331dbf55740a6311 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 14:03:52 +0000 Subject: [PATCH] add Necratog (from Weatherlight) --- .gitattributes | 1 + res/cardsfolder/necratog.txt | 9 ++++ src/forge/CardFactory_Creatures.java | 75 ++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 res/cardsfolder/necratog.txt diff --git a/.gitattributes b/.gitattributes index afc1a019230..9702111c841 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3300,6 +3300,7 @@ res/cardsfolder/naya_hushblade.txt -text svneol=native#text/plain res/cardsfolder/naya_panorama.txt -text svneol=native#text/plain res/cardsfolder/near_death_experience.txt -text svneol=native#text/plain res/cardsfolder/neck_snap.txt -text svneol=native#text/plain +res/cardsfolder/necratog.txt -text svneol=native#text/plain res/cardsfolder/necrogen_censer.txt -text svneol=native#text/plain res/cardsfolder/necrogen_spellbomb.txt -text svneol=native#text/plain res/cardsfolder/necrogenesis.txt -text svneol=native#text/plain diff --git a/res/cardsfolder/necratog.txt b/res/cardsfolder/necratog.txt new file mode 100644 index 00000000000..de123c633d6 --- /dev/null +++ b/res/cardsfolder/necratog.txt @@ -0,0 +1,9 @@ +Name:Necratog +ManaCost:1 B B +Types:Creature Atog +Text:no text +PT:1/2 +SVar:RemAIDeck:True +SVar:Rarity:Uncommon +SVar:Picture:http://www.wizards.com/global/images/magic/general/necratog.jpg +End diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index cc7f9d6c770..0469a47a0d7 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -13638,6 +13638,81 @@ public class CardFactory_Creatures { }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Necratog")) { + final Command untilEOT = new Command() { + private static final long serialVersionUID = 6743592637334556854L; + + public void execute() { + if(AllZone.GameAction.isCardInPlay(card)) { + card.addTempAttackBoost(-2); + card.addTempDefenseBoost(-2); + } + } + }; + + final SpellAbility ability = new Ability(card, "0") { + @Override + public boolean canPlayAI() { + return false; + } + + @Override + public boolean canPlay() { + CardList grave = AllZoneUtil.getPlayerGraveyard(card.getController()); + grave = grave.filter(AllZoneUtil.creatures); + return super.canPlay() && grave.size() > 0; + } + + @Override + public void resolve() { + if(AllZone.GameAction.isCardInPlay(card)) { + card.addTempAttackBoost(2); + card.addTempDefenseBoost(2); + AllZone.EndOfTurn.addUntil(untilEOT); + } + } + }; + + Input runtime = new Input() { + private static final long serialVersionUID = 63327418012595048L; + Card topCreature = null; + public void showMessage() { + + PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, card.getController()); + for(int i = grave.size()-1; i >=0; i--) { + Card c = grave.get(i); + if(c.isCreature()) { + topCreature = c; + break; + } + } + AllZone.Display.showMessage(card.getName()+" - Select OK to exile "+topCreature+"."); + ButtonUtil.enableAll(); + } + + public void selectButtonOK() { + AllZone.GameAction.exile(topCreature); + AllZone.Stack.add(ability); + stop(); + } + + public void selectButtonCancel() { + stop(); + } + }; + + + ability.setDescription("Exile the top creature card of your graveyard: CARDNAME gets +2/+2 until end of turn."); + + StringBuilder sb = new StringBuilder(); + sb.append(card).append(" gets +2/+2 until end of turn."); + ability.setStackDescription(sb.toString()); + ability.setBeforePayMana(runtime); + card.addSpellAbility(ability); + }//*************** END ************ END ************************** + + //*************** START *********** START ************************** else if(cardName.equals("Phyrexian Scuta")) { Ability_Cost abCost = new Ability_Cost("3 B PayLife<3>", cardName, false);