From f8fe1e703d111164baa7489c9437df2c75cad892 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 09:16:47 +0000 Subject: [PATCH] Added: Adamaro, first to desire Masumaro, first to live Quagnoth Kavu Titan Vampiric Dragon Emperor Crocodile Seedborn Muse --- src/forge/CardFactory_Creatures.java | 54 +++++++++ src/forge/GameAction.java | 2 + src/forge/GameActionUtil.java | 160 ++++++++++++++++++++++++++- src/forge/StaticEffects.java | 3 + 4 files changed, 217 insertions(+), 2 deletions(-) diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index c46000c1b62..7079eb002e6 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -18275,6 +18275,60 @@ public class CardFactory_Creatures { card.addDestroyCommand(destroy); }//*************** END ************ END ************************** + //*************** START *********** START ************************** + else if(cardName.equals("Kavu Titan")) { + final SpellAbility kicker = new Spell(card) { + private static final long serialVersionUID = -1598664196463358630L; + + @Override + public void resolve() { + PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController()); + PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); + + card.setKicked(true); + hand.remove(card); + play.add(card); + } + + @Override + public boolean canPlay() { + return super.canPlay() && AllZone.Phase.getActivePlayer().equals(card.getController()) + && !AllZone.Phase.getPhase().equals("End of Turn") + && !AllZone.GameAction.isCardInPlay(card); + } + + }; + kicker.setKickerAbility(true); + kicker.setManaCost("3 G G"); + kicker.setAdditionalManaCost("2 G"); + kicker.setDescription("Kicker 2 G"); + kicker.setStackDescription(card.getName() + " - Creature 5/5 (Kicked)"); + + card.addSpellAbility(kicker); + + final Ability ability = new Ability(card, "0") { + @Override + public void resolve() { + card.addCounter(Counters.P1P1, 3); + card.addIntrinsicKeyword("Trample"); + + card.setKicked(false); + } + }; + + Command commandComes = new Command() { + private static final long serialVersionUID = -2622859088591798773L; + + public void execute() { + if(card.isKicked()) { + ability.setStackDescription("Kavu Titan gets 3 +1/+1 counters and gains trample."); + AllZone.Stack.add(ability); + } + }//execute() + };//CommandComes + + card.addComesIntoPlayCommand(commandComes); + }//*************** END ************ END ************************** //*************** START *********** START ************************** else if(cardName.equals("Gatekeeper of Malakir")) { diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index e25667ed7ee..2c60396be67 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -176,6 +176,8 @@ public class GameAction { c.getKeyword().contains("If a spell or ability an opponent controls causes you to discard CARDNAME, put it onto the battlefield with two +1/+1 counters on it instead of putting it into your graveyard.")) && !c.getController().equals(sa.getSourceCard().getController())) discard_PutIntoPlayInstead(c); + else if (c.getKeyword().contains("If a spell or ability an opponent controls causes you to discard CARDNAME, return it to your hand.")) + ; else moveToGraveyard(c); } diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index 1e8d5ce933c..1a0a3d77fed 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -86,6 +86,7 @@ public class GameActionUtil { upkeep_Bringer_of_the_Blue_Dawn(); upkeep_Bringer_of_the_White_Dawn(); upkeep_Murkfiend_Liege(); + upkeep_Seedborn_Muse(); upkeep_Mirror_Sigil_Sergeant(); //upkeep_Luminous_Angel(); upkeep_Verdant_Force(); @@ -1030,7 +1031,7 @@ public class GameActionUtil { for(int i = 0; i < list.size(); i++) { final Card card = list.get(i); final Command untilEOT = new Command() { - private static final long serialVersionUID = -4569751606008597903L; + private static final long serialVersionUID = -4569751606008597913L; public void execute() { if(AllZone.GameAction.isCardInPlay(card)) { @@ -9777,6 +9778,42 @@ public class GameActionUtil { AllZone.Stack.add(ability); } } + + private static void upkeep_Seedborn_Muse() + { + final String player = AllZone.Phase.getActivePlayer(); + final String opp = AllZone.GameAction.getOpponent(player); + + CardList list = AllZoneUtil.getPlayerCardsInPlay(opp); + list = list.getName("Seedborn Muse"); + + Ability ability; + for (int i = 0; i < list.size(); i++) { + final Card card = list.get(i); + + ability = new Ability(card, "0") + { + public void resolve() + { + CardList permanents = AllZoneUtil.getPlayerCardsInPlay(opp); + permanents = permanents.filter(new CardListFilter() { + public boolean addCard(Card c) + { + return c.isTapped(); + } + }); + + for (Card crd:permanents) + { + crd.untap(); + } + } + }; + + ability.setStackDescription(card + " - Untap all permanents you control during each other player's untap step."); + AllZone.Stack.add(ability); + } + } private static void upkeep_Mirror_Sigil_Sergeant() { @@ -12457,6 +12494,42 @@ public class GameActionUtil { }// for outer }// execute() }; + + + public static Command Emperor_Crocodile = new Command() { + private static final long serialVersionUID = -5406532269475480827L; + + @SuppressWarnings("unused") + // gloriousAnthemList + CardList gloriousAnthemList = new CardList(); + + public void execute() { + // get all cards + + CardList list = new CardList(); + list.addAll(AllZone.Human_Play.getCards()); + list.addAll(AllZone.Computer_Play.getCards()); + list = list.filter(new CardListFilter() { + public boolean addCard(Card c) { + return c.getName().equals("Emperor Crocodile"); + } + }); + + for (int i=0;i