diff --git a/res/cardsfolder/fracturing_gust.txt b/res/cardsfolder/fracturing_gust.txt index f77eac636b3..e4799987763 100644 --- a/res/cardsfolder/fracturing_gust.txt +++ b/res/cardsfolder/fracturing_gust.txt @@ -1,9 +1,9 @@ Name:Fracturing Gust ManaCost:2 GW GW GW Types:Instant -Text:no text -A:SP$DestroyAll | Cost$ 2 GW GW GW | ValidCards$ Artifact,Enchantment | SubAbility$ GainLifeYou/X.Times.2 | SpellDescription$ Destroy all artifacts and enchantments. You gain 2 life for each permanent destroyed this way. +Text:Destroy all artifacts and enchantments. You gain 2 life for each permanent destroyed this way. +K:spDestroyAll:Artifact,Enchantment:Drawback$GainLifeYou/X.Times.2 SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/fracturing_gust.jpg SetInfo:SHM|Rare|http://magiccards.info/scans/en/shm/227.jpg -End +End \ No newline at end of file diff --git a/res/cardsfolder/multanis_decree.txt b/res/cardsfolder/multanis_decree.txt index 17d4ec2847d..afb8c706e79 100644 --- a/res/cardsfolder/multanis_decree.txt +++ b/res/cardsfolder/multanis_decree.txt @@ -1,9 +1,9 @@ Name:Multani's Decree ManaCost:3 G Types:Sorcery -Text:no text -A:SP$DestroyAll | Cost$ 3 G | ValidCards$ Enchantment | SubAbility$ GainLifeYou/X.Times.2 | SpellDescription$ Destroy all enchantments. You gain 2 life for each enchantment destroyed this way. +Text:Destroy all enchantments. You gain 2 life for each enchantment destroyed this way. +K:spDestroyAll:Enchantment:Drawback$GainLifeYou/X.Times.2 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/multanis_decree.jpg SetInfo:UDS|Common|http://magiccards.info/scans/en/ud/114.jpg -End +End \ No newline at end of file diff --git a/res/cardsfolder/righteous_fury.txt b/res/cardsfolder/righteous_fury.txt index 8990a40cb8f..e9be7f1b019 100644 --- a/res/cardsfolder/righteous_fury.txt +++ b/res/cardsfolder/righteous_fury.txt @@ -1,11 +1,12 @@ Name:Righteous Fury ManaCost:4 W W Types:Sorcery -Text:no text -A:SP$DestroyAll | Cost$ 4 W W | ValidCards$ Creature.tapped | SubAbility$ GainLifeYou/X.Times.2 | SpellDescription$ Destroy all tapped creatures. You gain 2 life for each creature destroyed this way. +Text:Destroy all tapped creatures. You gain 2 life for each creature destroyed this way. +K:spDestroyAll:Creature.tapped:Drawback$GainLifeYou/X.Times.2 SVar:PlayMain1:TRUE SVar:Rarity:Rare SVar:Picture:http://serv1.tcgimages.eu/img/cards/Portal_Second_Age/righteous_fury.jpg -SetInfo:PO2|Rare|http://magiccards.info/scans/en/po2/141.jpg +SetInfo:P02|Rare|http://magiccards.info/scans/en/po2/141.jpg SetInfo:S99|Rare|http://magiccards.info/scans/en/st/23.jpg +SetInfo:POR|Rare|http://magiccards.info/scans/en/po2/141.jpg End \ No newline at end of file diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 533963eb64f..63c630e7743 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -2999,8 +2999,13 @@ public class CardFactory implements NewConstants { } // etbLoseLife + /* + * We have three cards which can not be converted to AF_SP$DestroyAll at this time: + * Fracturing Gust + * Multani's Decree + * Righteous Fury + */ // Generic destroy all card - /* Cards converted to AF_DestroyAll if(hasKeyword(card, "spDestroyAll") != -1) { int n = hasKeyword(card, "spDestroyAll"); @@ -3018,23 +3023,23 @@ public class CardFactory implements NewConstants { if (k.length > 2) { - if (k[2].equals("NoRegen")) - NoRegen[0] = true; - - else if (k[2].startsWith("Drawback$")) - Drawback[0] = k[2]; - - if (k.length > 3) - { - if (k[3].startsWith("Drawback$")) - Drawback[0] = k[3]; - } - - if (!Drawback[0].equals("none")) - { - String kk[] = Drawback[0].split("\\$"); + if (k[2].equals("NoRegen")) + NoRegen[0] = true; + + else if (k[2].startsWith("Drawback$")) + Drawback[0] = k[2]; + + if (k.length > 3) + { + if (k[3].startsWith("Drawback$")) + Drawback[0] = k[3]; + } + + if (!Drawback[0].equals("none")) + { + String kk[] = Drawback[0].split("\\$"); Drawback[0] = kk[1]; - } + } } card.clearSpellAbility(); @@ -3044,8 +3049,11 @@ public class CardFactory implements NewConstants { @Override public boolean canPlayAI() { - CardList human = new CardList(AllZone.Human_Play.getCards()); - CardList computer = new CardList(AllZone.Computer_Play.getCards()); + // CardList human = new CardList(AllZone.Human_Play.getCards()); + // CardList computer = new CardList(AllZone.Computer_Play.getCards()); + + CardList human = new CardList(AllZone.Human_Battlefield.getCards()); + CardList computer = new CardList(AllZone.Computer_Battlefield.getCards()); human = human.getValidCards(Tgts,card.getController(),card); human = human.getNotKeyword("Indestructible"); @@ -3064,14 +3072,18 @@ public class CardFactory implements NewConstants { // the computer will play the spell if Y < X - 3 return AllZone.Phase.getPhase().equals(Constant.Phase.Main2) && - (computervalue < humanvalue - 3); + (computervalue < humanvalue - 3); } @Override public void resolve() { CardList all = new CardList(); - all.addAll(AllZone.Human_Play.getCards()); - all.addAll(AllZone.Computer_Play.getCards()); + // all.addAll(AllZone.Human_Play.getCards()); + // all.addAll(AllZone.Computer_Play.getCards()); + + all.addAll(AllZone.Human_Battlefield.getCards()); + all.addAll(AllZone.Computer_Battlefield.getCards()); + all = all.getValidCards(Tgts,card.getController(),card); CardListUtil.sortByIndestructible(all); @@ -3080,33 +3092,37 @@ public class CardFactory implements NewConstants { for(int i = 0; i < all.size(); i++) { Card c = all.get(i); if(NoRegen[0]) - AllZone.GameAction.destroyNoRegeneration(c); + AllZone.GameAction.destroyNoRegeneration(c); else - AllZone.GameAction.destroy(c); + AllZone.GameAction.destroy(c); } if (!Drawback[0].equals("none")) { - // drawbacks for DestroyAll spells usually involve the - // number of permanents that were actually destroyed - int nDestroyed = 0; - CardList afterAll = new CardList(); - afterAll.addAll(AllZone.Human_Play.getCards()); - afterAll.addAll(AllZone.Computer_Play.getCards()); - afterAll = afterAll.getValidCards(Tgts,card.getController(),card); - - ArrayList slD = new ArrayList(); - for (int i=0; i slD = new ArrayList(); + for (int i=0; i