From 25616bd8d64d3a678ffe4ef8b6576547fdecc38f Mon Sep 17 00:00:00 2001 From: Sloth Date: Mon, 19 Nov 2012 08:51:58 +0000 Subject: [PATCH] - ChangeZoneAll with destination Library will now let you choose the order. - Added Mirror of Fate. --- .gitattributes | 1 + res/cardsfolder/d/doomsday.txt | 2 +- res/cardsfolder/m/mirror_of_fate.txt | 14 ++++++++++++++ .../effects/ChangeZoneAllEffect.java | 11 +++++++---- 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 res/cardsfolder/m/mirror_of_fate.txt diff --git a/.gitattributes b/.gitattributes index 1de6d46b4ff..f7d1097653f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6247,6 +6247,7 @@ res/cardsfolder/m/mirrodins_core.txt svneol=native#text/plain res/cardsfolder/m/mirror_entity.txt svneol=native#text/plain res/cardsfolder/m/mirror_gallery.txt svneol=native#text/plain res/cardsfolder/m/mirror_mad_phantasm.txt -text +res/cardsfolder/m/mirror_of_fate.txt -text res/cardsfolder/m/mirror_sheen.txt -text res/cardsfolder/m/mirror_sigil_sergeant.txt svneol=native#text/plain res/cardsfolder/m/mirror_strike.txt -text diff --git a/res/cardsfolder/d/doomsday.txt b/res/cardsfolder/d/doomsday.txt index e106a97b70c..0aa7ee94644 100644 --- a/res/cardsfolder/d/doomsday.txt +++ b/res/cardsfolder/d/doomsday.txt @@ -3,7 +3,7 @@ ManaCost:B B B Types:Sorcery Text:no text A:SP$ ChangeZoneAll | Cost$ B B B | Origin$ Graveyard | Destination$ Library | SubAbility$ DBDig | SpellDescription$ Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up. -SVar:DBDig:DB$Dig | DigNum$ X | DestinationZone$ Library | ChangeNum$ 5 | DestinationZone2$ Exile | SubAbility$ DBLoseLife | References$ X +SVar:DBDig:DB$ Dig | DigNum$ X | DestinationZone$ Library | ChangeNum$ 5 | DestinationZone2$ Exile | SubAbility$ DBLoseLife | References$ X SVar:DBLoseLife:DB$LoseLife | LifeAmount$ Y | References$ Y SVar:X:Count$InYourLibrary SVar:Y:Count$YourLifeTotal/HalfUp diff --git a/res/cardsfolder/m/mirror_of_fate.txt b/res/cardsfolder/m/mirror_of_fate.txt new file mode 100644 index 00000000000..e1770b55dfc --- /dev/null +++ b/res/cardsfolder/m/mirror_of_fate.txt @@ -0,0 +1,14 @@ +Name:Mirror of Fate +ManaCost:5 +Types:Artifact +Text:no text +A:AB$ ChooseCard | Cost$ T Sac<1/CARDNAME> | Amount$ 7 | Choices$ Card.YouOwn+faceUp | SubAbility$ DBExile | RememberChosen$ True | ChoiceZone$ Exile | SpellDescription$ Choose up to seven face-up exiled cards you own. Exile all the cards from your library, then put the chosen cards on top of your library. +SVar:DBExile:DB$ ChangeZoneAll | Origin$ Library | Destination$ Exile | SubAbility$ DBReturn +SVar:DBReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Library | ChangeType$ Card.IsRemembered +SVar:RemRandomDeck:True +SVar:RemAIDeck:True +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/mirror_of_fate.jpg +SetInfo:M10|Rare|http://magiccards.info/scans/en/m10/215.jpg +Oracle:{T}, Sacrifice Mirror of Fate: Choose up to seven face-up exiled cards you own. Exile all the cards from your library, then put the chosen cards on top of your library. +End \ No newline at end of file diff --git a/src/main/java/forge/card/abilityfactory/effects/ChangeZoneAllEffect.java b/src/main/java/forge/card/abilityfactory/effects/ChangeZoneAllEffect.java index 43df5a6bcb9..f3f445ef4b3 100644 --- a/src/main/java/forge/card/abilityfactory/effects/ChangeZoneAllEffect.java +++ b/src/main/java/forge/card/abilityfactory/effects/ChangeZoneAllEffect.java @@ -15,6 +15,7 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; import forge.game.player.Player; import forge.game.zone.ZoneType; +import forge.gui.GuiChoose; public class ChangeZoneAllEffect extends SpellEffect { @@ -62,10 +63,12 @@ public class ChangeZoneAllEffect extends SpellEffect { final String remember = sa.getParam("RememberChanged"); - // I don't know if library position is necessary. It's here if it is, - // just in case - final int libraryPos = sa.hasParam("LibraryPosition") ? Integer.parseInt(sa.getParam("LibraryPosition")) - : 0; + final int libraryPos = sa.hasParam("LibraryPosition") ? Integer.parseInt(sa.getParam("LibraryPosition")) : 0; + + if (sa.getActivatingPlayer().isHuman() && destination.equals(ZoneType.Library)) { + cards = GuiChoose.getOrderChoices("Choose order of cards to put into the library", "Put first", 0, cards, null, null); + } + for (final Card c : cards) { if (destination.equals(ZoneType.Battlefield)) { // Auras without Candidates stay in their current location