From ef7157c662d001a2610026de040716f4bbe30f90 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 13:31:19 +0000 Subject: [PATCH] add Metalworker (from Urza's Destiny) --- .gitattributes | 1 + res/cardsfolder/metalworker.txt | 8 ++++ src/forge/CardFactory_Creatures.java | 65 ++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 res/cardsfolder/metalworker.txt diff --git a/.gitattributes b/.gitattributes index 8429c3287c0..e563fe5da96 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3018,6 +3018,7 @@ res/cardsfolder/messenger_falcons.txt -text svneol=native#text/plain res/cardsfolder/metal_fatigue.txt -text svneol=native#text/plain res/cardsfolder/metallic_sliver.txt -text svneol=native#text/plain res/cardsfolder/metallurgeon.txt -text svneol=native#text/plain +res/cardsfolder/metalworker.txt -text svneol=native#text/plain res/cardsfolder/metamorphic_wurm.txt -text svneol=native#text/plain res/cardsfolder/metathran_elite.txt -text svneol=native#text/plain res/cardsfolder/metathran_soldier.txt -text svneol=native#text/plain diff --git a/res/cardsfolder/metalworker.txt b/res/cardsfolder/metalworker.txt new file mode 100644 index 00000000000..7d279294dde --- /dev/null +++ b/res/cardsfolder/metalworker.txt @@ -0,0 +1,8 @@ +Name:Metalworker +ManaCost:3 +Types:Artifact Creature Construct +Text:no text +PT:1/2 +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/metalworker.jpg +End \ No newline at end of file diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index ebc01d96feb..d3f79ec6a54 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -15528,6 +15528,71 @@ public class CardFactory_Creatures { card.addComesIntoPlayCommand(intoPlay); }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Metalworker")) { + final Ability_Cost abCost = new Ability_Cost("T", card.getName(), true); + + final SpellAbility ability = new Ability_Activated(card, abCost, null) { + private static final long serialVersionUID = 6661308920885136284L; + + @Override + public boolean canPlayAI() { + //compy doesn't have a manapool + return false; + }//canPlayAI() + + @Override + public void resolve() { + AllZone.InputControl.setInput(new Input() { + private static final long serialVersionUID = 6150236529653275947L; + CardList revealed = new CardList(); + + @Override + public void showMessage() { + //in case hand is empty, don't do anything + if (AllZoneUtil.getPlayerHand(card.getController()).size() == 0) stop(); + + AllZone.Display.showMessage(card.getName()+" - Reveal an artifact. Revealed "+revealed.size()+" so far. Click OK when done."); + ButtonUtil.enableOnlyOK(); + } + + @Override + public void selectCard(Card c, PlayerZone zone) { + if(zone.is(Constant.Zone.Hand) && c.isArtifact() && !revealed.contains(c)) { + revealed.add(c); + + //in case no more cards in hand to reveal + if(revealed.size() == AllZoneUtil.getPlayerHand(card.getController()).size()) done(); + else + showMessage(); + } + } + + @Override + public void selectButtonOK() { + done(); + } + + void done() { + StringBuilder sb = new StringBuilder(); + for(Card reveal:revealed) sb.append(reveal.getName()+"\n"); + JOptionPane.showMessageDialog(null, "Revealed Cards:\n"+sb.toString(), card.getName(), JOptionPane.PLAIN_MESSAGE); + //adding mana + for(int i = 0; i < revealed.size(); i++) { + AllZone.ManaPool.addManaToFloating("2", card); + } + stop(); + } + }); + }//resolve() + };//SpellAbility + + ability.setDescription(abCost+"Reveal any number of artifact cards in your hand. Add 2 to your mana pool for each card revealed this way."); + ability.setStackDescription(cardName+" - Reveal any number of artifact cards in your hand."); + card.addSpellAbility(ability); + }//*************** END ************ END ************************** + if(hasKeyword(card, "Level up") != -1 && hasKeyword(card, "maxLevel") != -1) {