diff --git a/res/cards.txt b/res/cards.txt index 055f353ef4f..b26f07947a6 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,9 @@ +Kor Cartographer +3 W +Creature Kor Scout +When Kor Cartographer enters the field, you may search your library for a plains card, put it onto the battlefield tapped, then shuffle your library. +2/2 + Celestial Purge 1 W Instant diff --git a/res/main.properties b/res/main.properties index 5e157468d30..d88f0e0d9bd 100644 --- a/res/main.properties +++ b/res/main.properties @@ -1,6 +1,6 @@ program/mail=mtgerror@yahoo.com program/forum=http://www.slightlymagic.net/forum/viewforum.php?f=26 -program/version=MTG Forge -- official beta: 09/11/02, SVN revision: 99 +program/version=MTG Forge -- official beta: 09/11/02, SVN revision: 100 tokens--file=AllTokens.txt diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index af23e7d23ed..7c7b7a3928f 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -16836,6 +16836,69 @@ public class CardFactory_Creatures { }); card.addSpellAbility(ability); }//*************** END ************ END ************************** + else if(cardName.equals("Kor Cartographer")) + { + final Ability ab1 = new Ability(card, "no cost") + { + private static final long serialVersionUID = -3361422153566629825L; + + public void resolve() + { + PlayerZone lib = AllZone.getZone(Constant.Zone.Library, card.getController()); + PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); + + CardList landInLib = new CardList(lib.getCards()); + landInLib = landInLib.getType("Plains"); + + if (landInLib.size() > 0) + { + if (card.getController().equals(Constant.Player.Computer)) + { + lib.remove(landInLib.get(0)); + landInLib.get(0).tap(); + play.add(landInLib.get(0)); + } + else + { + Object o = AllZone.Display.getChoiceOptional("Select plains card to put into play: ", landInLib.toArray()); + if (o != null) + { + Card crd = (Card)o; + lib.remove(crd); + crd.tap(); + play.add(crd); + } + } + AllZone.GameAction.shuffle(card.getController()); + }//if(isCardInPlay) + } + + public boolean canPlayAI() + { + CardList landInLib = new CardList(AllZone.getZone(Constant.Zone.Library, Constant.Player.Computer).getCards()); + CardList landInPlay = new CardList(AllZone.getZone(Constant.Zone.Play, Constant.Player.Computer).getCards()); + + landInLib = landInLib.getType("Land"); + landInPlay = landInPlay.getType("Land"); + + if (landInLib.size() > 0 && landInPlay.size() > 0) + return true; + else + return false; + + } + };//SpellAbility + Command cip = new Command(){/** + * + */ + private static final long serialVersionUID = -2084426519099911543L; + + public void execute() + { + AllZone.Stack.add(ab1); + }}; + card.addComesIntoPlayCommand(cip); + }//*************** END ************ END ************************** // Cards with Cycling abilities // -1 means keyword "Cycling" not found