diff --git a/.gitattributes b/.gitattributes index 31a53af4a04..045f736bc75 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2611,6 +2611,7 @@ res/cardsfolder/d/diamond_valley.txt svneol=native#text/plain res/cardsfolder/d/didgeridoo.txt svneol=native#text/plain res/cardsfolder/d/diligent_farmhand.txt svneol=native#text/plain res/cardsfolder/d/diluvian_primordial.txt -text +res/cardsfolder/d/dimensional_breach.txt -text res/cardsfolder/d/diminish.txt svneol=native#text/plain res/cardsfolder/d/diminishing_returns.txt svneol=native#text/plain res/cardsfolder/d/dimir_aqueduct.txt svneol=native#text/plain @@ -6039,6 +6040,7 @@ res/cardsfolder/l/lim_dul_the_necromancer.txt svneol=native#text/plain res/cardsfolder/l/lim_duls_cohort.txt svneol=native#text/plain res/cardsfolder/l/lim_duls_high_guard.txt svneol=native#text/plain res/cardsfolder/l/lim_duls_paladin.txt -text +res/cardsfolder/l/lim_duls_vault.txt -text res/cardsfolder/l/limestone_golem.txt svneol=native#text/plain res/cardsfolder/l/limited_resources.txt -text res/cardsfolder/l/lin_sivvi_defiant_hero.txt svneol=native#text/plain diff --git a/res/cardsfolder/d/dimensional_breach.txt b/res/cardsfolder/d/dimensional_breach.txt new file mode 100644 index 00000000000..2e5360c8b13 --- /dev/null +++ b/res/cardsfolder/d/dimensional_breach.txt @@ -0,0 +1,16 @@ +Name:Dimensional Breach +ManaCost:5 W W +Types:Sorcery +A:SP$ ChangeZoneAll | Cost$ 5 W W | ChangeType$ Permanent | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile all permanents. For as long as any of those cards remain exiled, at the beginning of each player's upkeep, that player returns one of the exiled cards he or she owns to the battlefield. +SVar:DBEffect:DB$ Effect | Name$ Dimensional Breach Effect | Triggers$ TrigUpkeep,TrigCleanup | SVars$ BreachReturn,BreachCleanup,MoveChosen,BreachX | RememberObjects$ Remembered | Duration$ Permanent | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigUpkeep:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ BreachReturn | TriggerZones$ Command | TriggerController$ TriggeredPlayer | CheckSVar$ BreachX | SVarCompare$ GE1 | TriggerDescription$ At the beginning of each player's upkeep, that player returns one of the exiled cards he or she owns to the battlefield. +SVar:BreachReturn:AB$ ChooseCard | Cost$ 0 | Defined$ TriggeredPlayer | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose a card to return to the battlefield | Choices$ Card.IsRemembered+ActivePlayerCtrl | ChoiceZone$ Exile | SubAbility$ MoveChosen +SVar:MoveChosen:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ ChosenCard | ForgetChanged$ True +SVar:TrigCleanup:Mode$ Always | CheckSVar$ BreachX | SVarCompare$ EQ0 | Static$ True | Execute$ BreachCleanup | TriggerZones$ Command +SVar:BreachCleanup:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile +SVar:BreachX:Count$ValidExile Card.IsRemembered +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/dimensional_breach.jpg +SetInfo:SCG|Rare|http://magiccards.info/scans/en/sc/9.jpg +Oracle:Exile all permanents. For as long as any of those cards remain exiled, at the beginning of each player's upkeep, that player returns one of the exiled cards he or she owns to the battlefield. diff --git a/res/cardsfolder/l/lim_duls_vault.txt b/res/cardsfolder/l/lim_duls_vault.txt new file mode 100644 index 00000000000..da94f75b1ad --- /dev/null +++ b/res/cardsfolder/l/lim_duls_vault.txt @@ -0,0 +1,16 @@ +Name:Lim-Dul's Vault +ManaCost:U B +Types:Instant +A:SP$ Dig | Cost$ U B | DigNum$ 5 | NoMove$ True | SubAbility$ DBRepeat | RememberRevealed$ True | StackDescription$ SpellDescription | SpellDescription$ Look at the top five cards of your library. As many times as you choose, you may pay 1 life, put those cards on the bottom of your library in any order, then look at the top five cards of your library. Then shuffle your library and put the last cards you looked at this way on top of it in any order. +SVar:DBRepeat:DB$ Repeat | RepeatSubAbility$ CheckLifePaid | RepeatCheckSVar$ LifePaid | RepeatSVarCompare$ EQ0 | SubAbility$ DBShuffle | StackDescription$ None +SVar:CheckLifePaid:DB$ StoreSVar | SVar$ LifePaid | Type$ Number | Expression$ 1 | UnlessPayer$ You | UnlessCost$ PayLife<1> | UnlessResolveSubs$ WhenPaid | UnlessAI$ Never | SubAbility$ DBResetRem | StackDescription$ No move +SVar:DBResetRem:DB$ Cleanup | ClearRemembered$ True | SubAbility$ GoToBottom +SVar:GoToBottom:DB$ Dig | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Library | LibraryPosition$ -1 | NoLooking$ True | SubAbility$ DBLookAgain | StackDescription$ None +SVar:DBLookAgain:DB$ Dig | DigNum$ 5 | NoMove$ True | RememberRevealed$ True | StackDescription$ None +SVar:DBShuffle:DB$ ChangeZone | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | ChangeType$ Card.IsRemembered | ChangeNum$ 5 | SubAbility$ DBReset | Hidden$ True | SelectPrompt$ Pick 1 on the top of library | Mandatory$ True | NoReveal$ True | StackDescription$ None +SVar:DBReset:DB$ StoreSVar | SVar$ LifePaid | Type$ Number | Expression$ 0 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:LifePaid:Number$0 +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/lim_duls_vault.jpg +Oracle:Look at the top five cards of your library. As many times as you choose, you may pay 1 life, put those cards on the bottom of your library in any order, then look at the top five cards of your library. Then shuffle your library and put the last cards you looked at this way on top of it in any order. diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index ef3944cc27a..703011b7a44 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -1319,8 +1319,9 @@ public class ChangeZoneAi extends SpellAbilityAi { player.shuffle(); } - if ((!ZoneType.Battlefield.equals(destination) && !"Card".equals(type) && !defined) - || (sa.hasParam("Reveal") && !fetched.isEmpty())) { + if (((!ZoneType.Battlefield.equals(destination) && !"Card".equals(type) && !defined) + || (sa.hasParam("Reveal") && !fetched.isEmpty())) + && !sa.hasParam("NoReveal")) { final String picked = player + " picked:"; if (fetched.size() > 0) { GuiChoose.one(picked, fetched); diff --git a/src/main/java/forge/card/ability/effects/DigEffect.java b/src/main/java/forge/card/ability/effects/DigEffect.java index fa4be8cc5ee..6d143710bab 100644 --- a/src/main/java/forge/card/ability/effects/DigEffect.java +++ b/src/main/java/forge/card/ability/effects/DigEffect.java @@ -143,7 +143,7 @@ public class DigEffect extends SpellAbilityEffect { } // Singletons.getModel().getGameAction().revealToCopmuter(top.toArray()); // - for when it exists - } else if (choser.isHuman()) { + } else if (choser.isHuman() && !sa.hasParam("NoLooking")) { // show the user the revealed cards GuiChoose.one("Looking at cards from library", top); }