diff --git a/.gitattributes b/.gitattributes index 6f6b53c3fc7..59149164393 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3296,6 +3296,7 @@ res/cardsfolder/g/glimmervoid.txt svneol=native#text/plain res/cardsfolder/g/glimpse_of_nature.txt svneol=native#text/plain res/cardsfolder/g/glimpse_the_unthinkable.txt svneol=native#text/plain res/cardsfolder/g/glint_eye_nephilim.txt svneol=native#text/plain +res/cardsfolder/g/glint_hawk.txt -text res/cardsfolder/g/glint_hawk_idol.txt svneol=native#text/plain res/cardsfolder/g/glintwing_invoker.txt svneol=native#text/plain res/cardsfolder/g/glissa_the_traitor.txt svneol=native#text/plain diff --git a/res/cardsfolder/g/glint_hawk.txt b/res/cardsfolder/g/glint_hawk.txt new file mode 100644 index 00000000000..1f208cb3383 --- /dev/null +++ b/res/cardsfolder/g/glint_hawk.txt @@ -0,0 +1,11 @@ +Name:Glint Hawk +ManaCost:W +Types:Creature Bird +Text:no text +PT:2/2 +K:Flying +#TODO - ETB trigger is hard-coded +SVar:RemAIDeck:True +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/glint_hawk.jpg +End \ No newline at end of file diff --git a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java index b48fbcbf4a1..a752ec8ddc4 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java @@ -2652,6 +2652,62 @@ public class CardFactoryCreatures { card.addSpellAbility(finalAb); } // *************** END ************ END ************************** + // *************** START *********** START ************************** + else if (cardName.equals("Glint Hawk")) { + + final SpellAbility sacOrNo = new Ability(card, "") { + @Override + public void resolve() { + final Player player = card.getController(); + final CardList arts = player.getCardsIn(Zone.Battlefield).getType("Artifact"); + + if (player.isComputer()) { + //SVar:RemAIDeck:True + } else { // this is the human resolution + final Input target = new Input() { + private static final long serialVersionUID = -789722084164422578L; + + @Override + public void showMessage() { + AllZone.getDisplay().showMessage(card + " - Select an artifact you control"); + ButtonUtil.enableOnlyCancel(); + } + + @Override + public void selectButtonCancel() { + AllZone.getGameAction().sacrifice(card); + this.stop(); + } + + @Override + public void selectCard(final Card c, final PlayerZone zone) { + if (zone.is(Constant.Zone.Battlefield) && arts.contains(c)) { + AllZone.getGameAction().moveToHand(c); + this.stop(); + } + } // selectCard() + }; // Input + AllZone.getInputControl().setInput(target); + } + } + }; + final StringBuilder sb = new StringBuilder(); + sb.append("When CARDNAME enters the battlefield, "); + sb.append("sacrifice it unless you return an artifact you control to its owner's hand."); + sacOrNo.setStackDescription(sb.toString()); + + final Command comesIntoPlay = new Command() { + private static final long serialVersionUID = 4065476629778198760L; + + @Override + public void execute() { + AllZone.getStack().addSimultaneousStackEntry(sacOrNo); + } + }; + + card.addComesIntoPlayCommand(comesIntoPlay); + } // *************** END ************ END ************************** + // *************************************************** // end of card specific code // ***************************************************