From 00de8efa384208d2d3c26bd34bf432fb00193b5a Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 08:22:25 +0000 Subject: [PATCH] - Added the "World rule". - Added the World supertype to Concordant Crossroads. - Converted Serra Aviary to stPump. --- res/cardsfolder/concordant_crossroads.txt | 2 +- res/cardsfolder/serra_aviary.txt | 2 +- src/forge/CardFactory.java | 25 +++++++++++++++++++++++ src/forge/GameAction.java | 2 +- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/res/cardsfolder/concordant_crossroads.txt b/res/cardsfolder/concordant_crossroads.txt index 87b90282838..3b392710bd3 100644 --- a/res/cardsfolder/concordant_crossroads.txt +++ b/res/cardsfolder/concordant_crossroads.txt @@ -1,6 +1,6 @@ Name:Concordant Crossroads ManaCost:G -Types:Enchantment +Types:World Enchantment Text:All creatures have haste. SVar:BuffedBy:Creature SVar:AntiBuffedBy:Creature diff --git a/res/cardsfolder/serra_aviary.txt b/res/cardsfolder/serra_aviary.txt index de9b8cbcb44..65b8433a57a 100644 --- a/res/cardsfolder/serra_aviary.txt +++ b/res/cardsfolder/serra_aviary.txt @@ -2,7 +2,7 @@ Name:Serra Aviary ManaCost:3 W Types:World Enchantment Text:no text -K:StaticEffect:Play:All Permanents:PTBonus/1/1:Type.Creature!with.Flying:Creatures with flying get +1/+1. +K:stPumpAll:Creature.withFlying:1/1:No Condition:Creatures with flying get +1/+1. SVar:PlayMain1:TRUE SVar:RemAIDeck:True SVar:Rarity:Rare diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 7052f000bfd..165139ca316 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -655,6 +655,31 @@ public class CardFactory implements NewConstants { } } + + if (card.isType("World")) // Enforce the "World rule" + { + Command intoPlay = new Command() { + private static final long serialVersionUID = 6536398032388958127L; + + public void execute() { + CardList CardsinPlay = new CardList(); + CardsinPlay.addAll(AllZone.Human_Play.getCards()); + CardsinPlay.addAll(AllZone.Computer_Play.getCards()); + CardsinPlay = CardsinPlay.getType("World"); + CardsinPlay = CardsinPlay.filter(new CardListFilter() { + public boolean addCard(Card c) { + if(!c.equals(card)) return true; + return false; + } + }); + for(int i = 0; i < CardsinPlay.size(); i++) + AllZone.GameAction.sacrificeDestroy(CardsinPlay.get(i)); + }//execute() + };//Command + card.addComesIntoPlayCommand(intoPlay); + } + + if (hasKeyword(card, "When CARDNAME enters the battlefield, return a land you control to its owner's hand.") != -1) { int n = hasKeyword(card, "When CARDNAME enters the battlefield, return a land you control to its owner's hand."); diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index 439c4def86e..c780053e422 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -2234,7 +2234,7 @@ public class GameAction { } // Whenever Keyword - private void sacrificeDestroy(Card c) { + public void sacrificeDestroy(Card c) { if(!isCardInPlay(c)) return; boolean persist = false;