diff --git a/res/card-pictures.txt b/res/card-pictures.txt index 166632e1709..6660c9f0e5b 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -18,6 +18,10 @@ forest.jpg http://resources.wizards.com/magic/cards/unh/en-us/card73946.jpg forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748 forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587 forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586 +cloudhoof_kirin.jpg http://www.wizards.com/global/images/magic/general/cloudhoof_kirin.jpg +bounteous_kirin.jpg http://www.wizards.com/global/images/magic/general/bounteous_kirin.jpg +captain_of_the_watch.jpg http://www.wizards.com/global/images/magic/general/captain_of_the_watch.jpg +infernal_kirin.jpg http://www.wizards.com/global/images/magic/general/infernal_kirin.jpg halcyon_glaze.jpg http://www.wizards.com/global/images/magic/general/halcyon_glaze.jpg callous_giant.jpg http://www.wizards.com/global/images/magic/general/callous_giant.jpg underworld_dreams.jpg http://www.wizards.com/global/images/magic/general/underworld_dreams.jpg diff --git a/res/cards.txt b/res/cards.txt index f911e96542a..6d2a5840c35 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,24 @@ +Captain of the Watch +4 W W +Creature Human Soldier +Other Soldier creatures you control get +1/+1 and have vigilance. When Captain of the Watch enters the battlefield, put three 1/1 white Soldier creature tokens onto the battlefield. +3/3 +Vigilance + +Bounteous Kirin +5 G G +Legendary Creature Kirin Spirit +Whenever you play a Spirit or Arcane spell, you may gain life equal to that spell's converted mana cost. +4/4 +Flying + +Cloudhoof Kirin +3 U U +Legendary Creature Kirin Spirit +Whenever you play a Spirit or Arcane spell, you may put the top X cards of target player's library into his or her graveyard, where X is that spell's converted mana cost. +4/4 +Flying + Halcyon Glaze 1 U U Enchantment @@ -13688,7 +13709,7 @@ When Kemuri-Onna comes into play, target player discards a card. (NOTE: "Wheneve Infernal Kirin 2 B B Legendary Creature Kirin Spirit -(NOTE: "Whenever you cast a Spirit or Arcane spell, target player reveals his or her hand and discards all cards with that spell's converted mana cost." not implemented.) +Whenever you cast a Spirit or Arcane spell, target player reveals his or her hand and discards all cards with that spell's converted mana cost. 3/3 Flying diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index c7b3de0b23f..c086e8bbc15 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -162,7 +162,58 @@ public class CardFactory_Creatures { a1.setBeforePayMana(new Input_PayManaCost(a1)); a1.setBeforePayMana(CardFactoryUtil.input_targetPlayer(a1)); }//*************** END ************ END ************************** + + //*************** START *********** START ************************** + else if(cardName.equals("Captain of the Watch")) + { + + final SpellAbility comesIntoPlayAbility = new Ability(card, "0") + { + public void resolve() + { + makeToken(); + makeToken(); + makeToken(); + }//resolve() + + public void makeToken() + { + Card c = new Card(); + c.setName("Soldier"); + c.setImageName("W 1 1 Soldier"); + + c.setOwner(card.getController()); + c.setController(card.getController()); + + c.setManaCost("W"); + c.setToken(true); + + c.addType("Creature"); + c.addType("Soldier"); + c.setBaseAttack(1); + c.setBaseDefense(1); + + PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); + play.add(c); + } + + }; //comesIntoPlayAbility + + Command intoPlay = new Command() + { + private static final long serialVersionUID = 8778828278589063477L; + + public void execute() + { + comesIntoPlayAbility.setStackDescription(card.getName() + " - put three 1/1 white Soldier creature tokens into play."); + AllZone.Stack.add(comesIntoPlayAbility); + } + }; + + card.addComesIntoPlayCommand(intoPlay); + }//*************** END ************ END ************************** + //*************** START *********** START ************************** else if(cardName.equals("Dimir Guildmage")) { diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index 7943e4bbaf5..19307004e0b 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -93,6 +93,9 @@ public class GameActionUtil playCard_Dovescape(c); //keep this one top playCard_Demigod_of_Revenge(c); playCard_Halcyon_Glaze(c); + playCard_Infernal_Kirin(c); + playCard_Cloudhoof_Kirin(c); + playCard_Bounteous_Kirin(c); playCard_Emberstrike_Duo(c); playCard_Gravelgill_Duo(c); playCard_Safehold_Duo(c); @@ -660,6 +663,193 @@ public class GameActionUtil }//Halcyon Glaze + public static void playCard_Infernal_Kirin(Card c) + { + final String controller = c.getController(); + + final PlayerZone play = AllZone.getZone(Constant.Zone.Play, + controller); + + CardList list = new CardList(); + list.addAll(play.getCards()); + + list = list.getName("Infernal Kirin"); + + if (list.size() > 0){ + if (c.getType().contains("Spirit") || c.getType().contains("Arcane") || c.getIntrinsicKeyword().contains("Changeling")) + { + for (int i=0;i 0 && target.equals(Constant.Player.Computer)) + AllZone.Display.getChoice("Revealing hand", fullHand.toArray()); + CardList discard = new CardList(hand.getCards()); + discard = discard.filter(new CardListFilter() + { + public boolean addCard(Card c) { + return CardUtil.getConvertedManaCost(c.getManaCost()) == converted; + } + }); + for (int j=0; j 0){ + if (c.getType().contains("Spirit") || c.getType().contains("Arcane") || c.getIntrinsicKeyword().contains("Changeling")) + { + for (int i=0;i 0){ + if (c.getType().contains("Spirit") || c.getType().contains("Arcane") || c.getIntrinsicKeyword().contains("Changeling")) + { + for (int i=0;i