diff --git a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java index f14adfc3cc2..3031c56f628 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java @@ -40,7 +40,10 @@ public class DrawEffect extends SpellAbilityEffect { sb.append(" each"); } sb.append(Lang.joinVerb(tgtPlayers, " draw")).append(" "); - sb.append(numCards == 1 ? "a card" : (Lang.getNumeral(numCards) + " cards")); + //if NumCards calculation could change between getStackDescription and resolve, use NumCardsDesc to avoid + //a "wrong" stack description + sb.append(sa.hasParam("NumCardsDesc") ? sa.getParam("NumCardsDesc") : numCards == 1 ? "a card" : + (Lang.getNumeral(numCards) + " cards")); sb.append("."); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PeekAndRevealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PeekAndRevealEffect.java index 76fa42249a5..6e760ca602b 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PeekAndRevealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PeekAndRevealEffect.java @@ -29,21 +29,23 @@ public class PeekAndRevealEffect extends SpellAbilityEffect { @Override protected String getStackDescription(SpellAbility sa) { final Player peeker = sa.getActivatingPlayer(); - final int numPeek = sa.hasParam("PeekAmount") ? AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("PeekAmount"), sa) : 1; final String verb = sa.hasParam("NoReveal") || sa.hasParam("RevealOptional") ? " looks at " : " reveals "; - final String defined = sa.getParamOrDefault("Defined", "their"); - String whose; - if (defined.equals("Player")) { - whose = "each player's"; - } else { // other else ifs for specific defined can be added above as needs arise - whose = Lang.joinHomogenous(getTargetPlayers(sa)); - } + final String defined = sa.getParamOrDefault("Defined", ""); + final List libraryPlayers = getDefinedPlayersOrTargeted(sa); + final String defString = Lang.joinHomogenous(libraryPlayers); + String who = defined.equals("Player") && verb.equals(" reveals ") ? "Each player" : + sa.hasParam("NoPeek") && verb.equals(" reveals ") ? defString : ""; + String whose = defined.equals("Player") && verb.equals(" looks at ") ? "each player's" + : libraryPlayers.size() == 1 && libraryPlayers.get(0) == peeker ? "their" : + defString + "'s"; + final StringBuilder sb = new StringBuilder(); - sb.append(peeker).append(verb).append("the top "); + sb.append(who.equals("") ? peeker : who); + sb.append(verb).append("the top "); sb.append(numPeek > 1 ? Lang.getNumeral(numPeek) + " cards " : "card ").append("of ").append(whose); sb.append(" library."); @@ -58,11 +60,12 @@ public class PeekAndRevealEffect extends SpellAbilityEffect { final Card source = sa.getHostCard(); final boolean rememberRevealed = sa.hasParam("RememberRevealed"); final boolean imprintRevealed = sa.hasParam("ImprintRevealed"); + final boolean noPeek = sa.hasParam("NoPeek"); String revealValid = sa.getParamOrDefault("RevealValid", "Card"); String peekAmount = sa.getParamOrDefault("PeekAmount", "1"); int numPeek = AbilityUtils.calculateAmount(source, peekAmount, sa); - List libraryPlayers = AbilityUtils.getDefinedPlayers(source, sa.getParam("Defined"), sa); + List libraryPlayers = getDefinedPlayersOrTargeted(sa); Player peekingPlayer = sa.getActivatingPlayer(); for (Player libraryToPeek : libraryPlayers) { @@ -77,17 +80,19 @@ public class PeekAndRevealEffect extends SpellAbilityEffect { CardCollectionView revealableCards = CardLists.getValidCards(peekCards, revealValid, sa.getActivatingPlayer(), source, sa); boolean doReveal = !sa.hasParam("NoReveal") && !revealableCards.isEmpty(); - if (!sa.hasParam("NoPeek")) { + if (!noPeek) { peekingPlayer.getController().reveal(peekCards, ZoneType.Library, libraryToPeek, CardTranslation.getTranslatedName(source.getName()) + " - " + - Localizer.getInstance().getMessage("lblRevealingCardFrom")); + Localizer.getInstance().getMessage("lblLookingCardFrom")); } if (doReveal && sa.hasParam("RevealOptional")) doReveal = peekingPlayer.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblRevealCardToOtherPlayers")); if (doReveal) { - peekingPlayer.getGame().getAction().reveal(revealableCards, peekingPlayer); + peekingPlayer.getGame().getAction().reveal(revealableCards, ZoneType.Library, libraryToPeek, !noPeek, + CardTranslation.getTranslatedName(source.getName()) + " - " + + Localizer.getInstance().getMessage("lblRevealingCardFrom")); if (rememberRevealed) { Map cachedMap = Maps.newHashMap(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index eefdad4e2fe..ef9342b3b0e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -185,6 +185,16 @@ public class PumpEffect extends SpellAbilityEffect { keywords.addAll(Arrays.asList(sa.getParam("KW").split(" & "))); } + if (sa.hasParam("IfDesc")) { + if (sa.getParam("IfDesc").equals("True") && sa.hasParam("SpellDescription")) { + String ifDesc = sa.getParam("SpellDescription"); + sb.append(ifDesc, 0, ifDesc.indexOf(",") + 1); + } else { + sb.append(sa.getParam("IfDesc")); + } + sb.append(" "); + } + if (sa instanceof AbilitySub & sa.getRootAbility().getTargets().containsAll(tgts)) { //try to avoid having the same long list of targets twice in a StackDescription sb.append(tgts.size() == 1 && tgts.get(0) instanceof Card ? "It " : "They "); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index f5830c5efec..b6dbd70994c 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -6140,7 +6140,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } if (shieldCounterReplaceDestroy == null) { String reStr = "Event$ Destroy | ActiveZones$ Battlefield | ValidCard$ Card.Self | ValidSource$ SpellAbility " - + "| Description$ If this permanent would be destroyed as the result of an effect, instead remove a shield counter from it"; + + "| Description$ If this permanent would be destroyed as the result of an effect, instead remove a shield counter from it."; shieldCounterReplaceDestroy = ReplacementHandler.parseReplacement(reStr, this, false, null); shieldCounterReplaceDestroy.setOverridingAbility(AbilityFactory.getAbility(sa, this)); } diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index edc15be1fa3..00611639239 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1678,8 +1678,7 @@ public class CardFactoryUtil { final String actualTrigger = "Mode$ SpellCast | ValidCard$ Card.Self | OptionalDecider$ You | " + " Secondary$ True | TriggerDescription$ Ripple " + num + " - CARDNAME"; - final String abString = "DB$ Dig | NoMove$ True | DigNum$ " + num + - " | Reveal$ True | RememberRevealed$ True"; + final String abString = "DB$ PeekAndReveal | PeekAmount$ " + num + " | RememberRevealed$ True"; final String dbCast = "DB$ Play | Valid$ Card.IsRemembered+sameName | " + "ValidZone$ Library | WithoutManaCost$ True | Optional$ True | " + diff --git a/forge-gui/res/cardsfolder/a/aven_windreader.txt b/forge-gui/res/cardsfolder/a/aven_windreader.txt index 272eb3ceb89..09ee68cb91d 100644 --- a/forge-gui/res/cardsfolder/a/aven_windreader.txt +++ b/forge-gui/res/cardsfolder/a/aven_windreader.txt @@ -3,6 +3,6 @@ ManaCost:3 U U Types:Creature Bird Soldier Wizard PT:3/3 K:Flying -A:AB$ Dig | Cost$ 1 U | DigNum$ 1 | ValidTgts$ Player | TgtPrompt$ Select target player | Reveal$ True | NoMove$ True | SpellDescription$ Target player reveals the top card of their library. +A:AB$ PeekAndReveal | Cost$ 1 U | ValidTgts$ Player | TgtPrompt$ Select target player | NoPeek$ True | SpellDescription$ Target player reveals the top card of their library. AI:RemoveDeck:All Oracle:Flying (This creature can't be blocked except by creatures with flying or reach.)\n{1}{U}: Target player reveals the top card of their library. diff --git a/forge-gui/res/cardsfolder/b/brutal_deceiver.txt b/forge-gui/res/cardsfolder/b/brutal_deceiver.txt index fafe552c34f..f53d47f3919 100644 --- a/forge-gui/res/cardsfolder/b/brutal_deceiver.txt +++ b/forge-gui/res/cardsfolder/b/brutal_deceiver.txt @@ -2,9 +2,9 @@ Name:Brutal Deceiver ManaCost:2 R Types:Creature Spirit PT:2/2 -A:AB$ Dig | Cost$ 1 | DigNum$ 1 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | SpellDescription$ Look at the top card of your library. -A:AB$ Dig | Cost$ 2 | DigNum$ 1 | ActivationLimit$ 1 | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | RememberRevealed$ True | SubAbility$ TrigPump | SpellDescription$ Reveal the top card of your library. If it's a land card, CARDNAME gets +1/+0 and gains first strike until end of turn. Activate only once each turn. -SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | KW$ First Strike | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 | SubAbility$ DBCleanup +A:AB$ PeekAndReveal | Cost$ 1 | NoReveal$ True | SpellDescription$ Look at the top card of your library. +A:AB$ PeekAndReveal | Cost$ 2 | ActivationLimit$ 1 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBPump | SpellDescription$ Reveal the top card of your library. +SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | KW$ First Strike | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | SubAbility$ DBCleanup | IfDesc$ True | SpellDescription$ If it's a land card, CARDNAME gets +1/+0 and gains first strike until end of turn. Activate only once each turn. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:{1}: Look at the top card of your library.\n{2}: Reveal the top card of your library. If it's a land card, Brutal Deceiver gets +1/+0 and gains first strike until end of turn. Activate only once each turn. diff --git a/forge-gui/res/cardsfolder/c/callous_deceiver.txt b/forge-gui/res/cardsfolder/c/callous_deceiver.txt index d790010240a..bf39984c88f 100644 --- a/forge-gui/res/cardsfolder/c/callous_deceiver.txt +++ b/forge-gui/res/cardsfolder/c/callous_deceiver.txt @@ -2,9 +2,9 @@ Name:Callous Deceiver ManaCost:2 U Types:Creature Spirit PT:1/3 -A:AB$ Dig | Cost$ 1 | DigNum$ 1 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | SpellDescription$ Look at the top card of your library. -A:AB$ Dig | Cost$ 2 | DigNum$ 1 | ActivationLimit$ 1 | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | RememberRevealed$ True | SubAbility$ TrigPump | SpellDescription$ Reveal the top card of your library. If it's a land card, CARDNAME gets +1/+0 and gains flying until end of turn. Activate only once each turn. -SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | KW$ Flying | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 | SubAbility$ DBCleanup +A:AB$ PeekAndReveal | Cost$ 1 | NoReveal$ True | SpellDescription$ Look at the top card of your library. +A:AB$ PeekAndReveal | Cost$ 2 | ActivationLimit$ 1 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBPump | SpellDescription$ Reveal the top card of your library. +SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | KW$ Flying | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | SubAbility$ DBCleanup | IfDesc$ True | SpellDescription$ If it's a land card, CARDNAME gets +1/+0 and gains flying until end of turn. Activate only once each turn. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:{1}: Look at the top card of your library.\n{2}: Reveal the top card of your library. If it's a land card, Callous Deceiver gets +1/+0 and gains flying until end of turn. Activate only once each turn. diff --git a/forge-gui/res/cardsfolder/c/candles_of_leng.txt b/forge-gui/res/cardsfolder/c/candles_of_leng.txt index 8076ea4cbdd..8336b3f7d3e 100644 --- a/forge-gui/res/cardsfolder/c/candles_of_leng.txt +++ b/forge-gui/res/cardsfolder/c/candles_of_leng.txt @@ -1,8 +1,8 @@ Name:Candles of Leng ManaCost:2 Types:Artifact -A:AB$ Dig | Cost$ 4 T | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBCandlesChangeZone | SpellDescription$ Reveal the top card of your library. If it has the same name as a card in your graveyard, put it into your graveyard. Otherwise, draw a card. -SVar:DBCandlesChangeZone:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | ConditionDefined$ Remembered | ConditionPresent$ Card.sharesNameWith YourGraveyard | ConditionCompare$ GE1 | SubAbility$ DBCandlesDraw -SVar:DBCandlesDraw:DB$ Draw | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card.sharesNameWith YourGraveyard | ConditionCompare$ EQ0 | SubAbility$ DBCandlesCleanup +A:AB$ PeekAndReveal | Cost$ 4 T | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBCandlesChangeZone | SpellDescription$ Reveal the top card of your library. +SVar:DBCandlesChangeZone:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | ConditionDefined$ Remembered | ConditionPresent$ Card.sharesNameWith YourGraveyard | SubAbility$ DBCandlesDraw | StackDescription$ If it has the same name as a card in their graveyard, they put it into their graveyard. | SpellDescription$ If it has the same name as a card in your graveyard, put it into your graveyard. +SVar:DBCandlesDraw:DB$ Draw | ConditionDefined$ Remembered | ConditionPresent$ Card.sharesNameWith YourGraveyard | ConditionCompare$ EQ0 | SubAbility$ DBCandlesCleanup | StackDescription$ Otherwise, they draw a card. | SpellDescription$ Otherwise, draw a card. SVar:DBCandlesCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:{4}, {T}: Reveal the top card of your library. If it has the same name as a card in your graveyard, put it into your graveyard. Otherwise, draw a card. diff --git a/forge-gui/res/cardsfolder/c/cerebral_eruption.txt b/forge-gui/res/cardsfolder/c/cerebral_eruption.txt index cdfc8d5e7c3..dc9d0af9c4c 100644 --- a/forge-gui/res/cardsfolder/c/cerebral_eruption.txt +++ b/forge-gui/res/cardsfolder/c/cerebral_eruption.txt @@ -1,9 +1,9 @@ Name:Cerebral Eruption ManaCost:2 R R Types:Sorcery -A:SP$ Dig | Cost$ 2 R R | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBDamage | SpellDescription$ Target opponent reveals the top card of their library. Cerebral Eruption deals damage equal to the revealed card's mana value to that player and each creature they control. If a land card is revealed this way, return Cerebral Eruption to its owner's hand. -SVar:DBDamage:DB$ DamageAll | ValidCards$ Creature.TargetedPlayerCtrl | ValidPlayers$ Targeted | ValidDescription$ that player and each creature they control. | NumDmg$ X | SubAbility$ DBReturn -SVar:DBReturn:DB$ ChangeZone | Defined$ Parent | Origin$ Stack | Destination$ Hand | ConditionDefined$ Remembered | ConditionPresent$ Land | ConditionCompare$ EQ1 | ConditionDescription$ If a land card is revealed this way, | SubAbility$ DBCleanup +A:SP$ PeekAndReveal | ValidTgts$ Opponent | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBDamage | SpellDescription$ Target opponent reveals the top card of their library. +SVar:DBDamage:DB$ DamageAll | ValidCards$ Creature.TargetedPlayerCtrl | ValidPlayers$ Targeted | NumDmg$ X | SubAbility$ DBReturn | StackDescription$ SpellDescription | SpellDescription$ CARDNAME deals damage equal to the revealed card's mana value to that player and each creature that player controls. +SVar:DBReturn:DB$ ChangeZone | Defined$ Parent | Origin$ Stack | Destination$ Hand | ConditionDefined$ Remembered | ConditionPresent$ Land | StackDescription$ SpellDescription | SubAbility$ DBCleanup | SpellDescription$ If a land card is revealed this way, return CARDNAME to its owner's hand. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$CardManaCost Oracle:Target opponent reveals the top card of their library. Cerebral Eruption deals damage equal to the revealed card's mana value to that player and each creature that player controls. If a land card is revealed this way, return Cerebral Eruption to its owner's hand. diff --git a/forge-gui/res/cardsfolder/c/covenant_of_minds.txt b/forge-gui/res/cardsfolder/c/covenant_of_minds.txt index 1a1272bbb35..9f40943067c 100644 --- a/forge-gui/res/cardsfolder/c/covenant_of_minds.txt +++ b/forge-gui/res/cardsfolder/c/covenant_of_minds.txt @@ -1,7 +1,7 @@ Name:Covenant of Minds ManaCost:4 U Types:Sorcery -A:SP$ Dig | Cost$ 4 U | DigNum$ 3 | NoMove$ True | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | SubAbility$ DBChoice | RememberRevealed$ True | SpellDescription$ Reveal the top three cards of your library. Target opponent may choose to put those cards into your hand. If they don't, put those cards into your graveyard and draw five cards. +A:SP$ PeekAndReveal | PeekAmount$ 3 | NoPeek$ True | SubAbility$ DBChoice | RememberRevealed$ True | StackDescription$ SpellDescription | SpellDescription$ Reveal the top three cards of your library. Target opponent may choose to put those cards into your hand. If they don't, put those cards into your graveyard and draw five cards. SVar:DBChoice:DB$ GenericChoice | ValidTgts$ Opponent | Choices$ CovenantPutIntoHand,CovenantMillDraw | SubAbility$ DBCleanup SVar:CovenantPutIntoHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SpellDescription$ You may choose to put those cards into that player's hand. SVar:CovenantMillDraw:DB$ Mill | Defined$ SourceController | NumCards$ X | SubAbility$ DBDraw | SpellDescription$ If you don't, put those cards into that player's graveyard and that player draws five cards. diff --git a/forge-gui/res/cardsfolder/c/cruel_deceiver.txt b/forge-gui/res/cardsfolder/c/cruel_deceiver.txt index 3c487edce5c..f49bee0b38f 100644 --- a/forge-gui/res/cardsfolder/c/cruel_deceiver.txt +++ b/forge-gui/res/cardsfolder/c/cruel_deceiver.txt @@ -2,10 +2,10 @@ Name:Cruel Deceiver ManaCost:1 B Types:Creature Spirit PT:2/1 -A:AB$ Dig | Cost$ 1 | DigNum$ 1 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | SpellDescription$ Look at the top card of your library. -A:AB$ Dig | Cost$ 2 | DigNum$ 1 | ActivationLimit$ 1 | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | RememberRevealed$ True | SubAbility$ TrigAnimate | SpellDescription$ Reveal the top card of your library. If it's a land card, CARDNAME gains "Whenever CARDNAME deals damage to a creature, destroy that creature" until end of turn. Activate only once each turn. -SVar:TrigAnimate:DB$ Animate | Defined$ Self | Triggers$ TrigDamage | sVars$ TrigDestroy | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ PeekAndReveal | Cost$ 1 | NoReveal$ True | SpellDescription$ Look at the top card of your library. +A:AB$ PeekAndReveal | Cost$ 2 | ActivationLimit$ 1 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBAnimate | SpellDescription$ Reveal the top card of your library. +SVar:DBAnimate:DB$ Animate | Defined$ Self | Triggers$ TrigDamage | sVars$ TrigDestroy | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ If it's a land card, CARDNAME gains "Whenever CARDNAME deals damage to a creature, destroy that creature" until end of turn. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | StackDescription$ None | SpellDescription$ Activate only once each turn. SVar:TrigDamage:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ Whenever CARDNAME deals damage to a creature, destroy that creature. SVar:TrigDestroy:DB$ Destroy | Defined$ TriggeredTargetLKICopy AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/d/dakra_mystic.txt b/forge-gui/res/cardsfolder/d/dakra_mystic.txt index 697f0e8f544..34ca568583e 100644 --- a/forge-gui/res/cardsfolder/d/dakra_mystic.txt +++ b/forge-gui/res/cardsfolder/d/dakra_mystic.txt @@ -2,9 +2,9 @@ Name:Dakra Mystic ManaCost:U Types:Creature Merfolk Wizard PT:1/1 -A:AB$ Dig | Cost$ U T | DigNum$ 1 | Defined$ Player | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBPutRevealed | SpellDescription$ Each player reveals the top card of their library. You may put the revealed cards into their owners' graveyards. If you don't, each player draws a card. +A:AB$ PeekAndReveal | Cost$ U T | Defined$ Player | RememberRevealed$ True | SubAbility$ DBPutRevealed | SpellDescription$ Each player reveals the top card of their library. You may put the revealed cards into their owners' graveyards. If you don't, each player draws a card. SVar:DBPutRevealed:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | Optional$ True | Imprint$ True | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 | ConditionDefined$ Imprinted | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup +SVar:DBDraw:DB$ Draw | Defined$ Player | ConditionDefined$ Imprinted | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True AI:RemoveDeck:All Oracle:{U}, {T}: Each player reveals the top card of their library. You may put the revealed cards into their owners' graveyards. If you don't, each player draws a card. diff --git a/forge-gui/res/cardsfolder/d/djinn_of_wishes.txt b/forge-gui/res/cardsfolder/d/djinn_of_wishes.txt index 4cc5f116805..3df0eb823e9 100644 --- a/forge-gui/res/cardsfolder/d/djinn_of_wishes.txt +++ b/forge-gui/res/cardsfolder/d/djinn_of_wishes.txt @@ -4,9 +4,9 @@ Types:Creature Djinn PT:4/4 K:Flying K:etbCounter:WISH:3 -A:AB$ Dig | Cost$ 2 U U SubCounter<1/WISH> | DigNum$ 1 | Reveal$ True | NoMove$ True | ImprintRevealed$ True | SubAbility$ DBPlay | StackDescription$ {p:You} reveals the top card of their library. {p:You} may play that card without paying its mana cost or exile it. | SpellDescription$ Reveal the top card of your library. You may play that card without paying its mana cost. If you don't, exile it. -SVar:DBPlay:DB$ Play | Defined$ Imprinted | Controller$ You | WithoutManaCost$ True | Optional$ True | RememberPlayed$ True | SubAbility$ DBExileIfNotPlayed | StackDescription$ None -SVar:DBExileIfNotPlayed:DB$ ChangeZone | Origin$ Library | Destination$ Exile | Defined$ Imprinted | DefinedPlayer$ You | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup | StackDescription$ None +A:AB$ PeekAndReveal | Cost$ 2 U U SubCounter<1/WISH> | NoPeek$ True | ImprintRevealed$ True | SubAbility$ DBPlay | | SpellDescription$ Reveal the top card of your library. +SVar:DBPlay:DB$ Play | Defined$ Imprinted | Controller$ You | WithoutManaCost$ True | Optional$ True | RememberPlayed$ True | SubAbility$ DBExileIfNotPlayed | StackDescription$ {p:You} may play that card without paying its mana cost. | SpellDescription$ You may play that card without paying its mana cost. +SVar:DBExileIfNotPlayed:DB$ ChangeZone | Origin$ Library | Destination$ Exile | Defined$ Imprinted | DefinedPlayer$ You | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup | StackDescription$ If they don't, they exile it. | SpellDescription$ If you don't, exile it. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True AI:RemoveDeck:All Oracle:Flying\nDjinn of Wishes enters the battlefield with three wish counters on it.\n{2}{U}{U}, Remove a wish counter from Djinn of Wishes: Reveal the top card of your library. You may play that card without paying its mana cost. If you don't, exile it. diff --git a/forge-gui/res/cardsfolder/d/druidic_satchel.txt b/forge-gui/res/cardsfolder/d/druidic_satchel.txt index 485f38f3153..5fa79fe9748 100644 --- a/forge-gui/res/cardsfolder/d/druidic_satchel.txt +++ b/forge-gui/res/cardsfolder/d/druidic_satchel.txt @@ -1,10 +1,10 @@ Name:Druidic Satchel ManaCost:3 Types:Artifact -A:AB$ Dig | Cost$ 2 T | DigNum$ 1 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBToken | SpellDescription$ Reveal the top card of your library. If it's a creature card, create a 1/1 green Saproling creature token. If it's a land card, put that card onto the battlefield under your control. If it's a noncreature, nonland card, you gain 2 life. -SVar:DBToken:DB$ Token | ConditionDefined$ Remembered | ConditionPresent$ Card.Creature | ConditionCompare$ EQ1 | TokenAmount$ 1 | TokenScript$ g_1_1_saproling | TokenOwner$ You | SubAbility$ DBMove | StackDescription$ If it's a creature card, create a 1/1 green Saproling creature token. -SVar:DBMove:DB$ ChangeZone | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ EQ1 | Defined$ Remembered | Origin$ Library | Destination$ Battlefield | SubAbility$ DBGainLife | StackDescription$ If it's a land card, put that card onto the battlefield under your control. -SVar:DBGainLife:DB$ GainLife | LifeAmount$ 2 | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand+nonCreature | ConditionCompare$ EQ1 | SubAbility$ DBCleanup | StackDescription$ If it's a noncreature, nonland card, you gain 2 life. +A:AB$ PeekAndReveal | Cost$ 2 T | RememberRevealed$ True | SubAbility$ DBToken | SpellDescription$ Reveal the top card of your library. If it's a creature card, create a 1/1 green Saproling creature token. If it's a land card, put that card onto the battlefield under your control. If it's a noncreature, nonland card, you gain 2 life. +SVar:DBToken:DB$ Token | ConditionDefined$ Remembered | ConditionPresent$ Card.Creature | TokenAmount$ 1 | TokenScript$ g_1_1_saproling | TokenOwner$ You | SubAbility$ DBMove | StackDescription$ If it's a creature card, create a 1/1 green Saproling creature token. +SVar:DBMove:DB$ ChangeZone | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | Defined$ Remembered | Origin$ Library | Destination$ Battlefield | SubAbility$ DBGainLife | StackDescription$ If it's a land card, put that card onto the battlefield under your control. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 2 | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand+nonCreature | SubAbility$ DBCleanup | StackDescription$ If it's a noncreature, nonland card, you gain 2 life. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -DeckHas:Ability$Token|LifeGain +DeckHas:Ability$Token|LifeGain & Type$Saproling Oracle:{2}, {T}: Reveal the top card of your library. If it's a creature card, create a 1/1 green Saproling creature token. If it's a land card, put that card onto the battlefield under your control. If it's a noncreature, nonland card, you gain 2 life. diff --git a/forge-gui/res/cardsfolder/e/enduring_renewal.txt b/forge-gui/res/cardsfolder/e/enduring_renewal.txt index cd13c7d5ec5..84bd94c1c5c 100644 --- a/forge-gui/res/cardsfolder/e/enduring_renewal.txt +++ b/forge-gui/res/cardsfolder/e/enduring_renewal.txt @@ -3,9 +3,9 @@ ManaCost:2 W W Types:Enchantment S:Mode$ Continuous | AffectedZone$ Hand | Affected$ Card.YouOwn | MayLookAt$ Player | Description$ Play with your hand revealed. R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ EnduringRevealTop | Description$ If you would draw a card, reveal the top card of your library instead. If it's a creature card, put it into your graveyard. Otherwise, draw a card. -SVar:EnduringRevealTop:DB$ Dig | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBEnduringGraveyard -SVar:DBEnduringGraveyard:DB$ ChangeZone | Defined$ Remembered | ConditionDefined$ Remembered | ConditionPresent$ Creature | ConditionCompare$ GE1 | Origin$ Library | Destination$ Graveyard | SubAbility$ DBEnduringDraw -SVar:DBEnduringDraw:DB$ Draw | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Creature | ConditionCompare$ EQ0 | SubAbility$ DBEnduringCleanup +SVar:EnduringRevealTop:DB$ PeekAndReveal | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBEnduringGraveyard +SVar:DBEnduringGraveyard:DB$ ChangeZone | Defined$ Remembered | ConditionDefined$ Remembered | ConditionPresent$ Creature | Origin$ Library | Destination$ Graveyard | SubAbility$ DBEnduringDraw +SVar:DBEnduringDraw:DB$ Draw | ConditionDefined$ Remembered | ConditionPresent$ Creature | ConditionCompare$ EQ0 | SubAbility$ DBEnduringCleanup SVar:DBEnduringCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ ChangesZone | ValidCard$ Creature.YouOwn | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigEnduringBounce | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature is put into your graveyard from the battlefield, return it to your hand. SVar:TrigEnduringBounce:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Hand diff --git a/forge-gui/res/cardsfolder/e/epiphany_at_the_drownyard.txt b/forge-gui/res/cardsfolder/e/epiphany_at_the_drownyard.txt index 703d7257a73..7f51974c033 100644 --- a/forge-gui/res/cardsfolder/e/epiphany_at_the_drownyard.txt +++ b/forge-gui/res/cardsfolder/e/epiphany_at_the_drownyard.txt @@ -1,7 +1,7 @@ Name:Epiphany at the Drownyard ManaCost:X U Types:Instant -A:SP$ Dig | Cost$ X U | DigNum$ Y | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles | AILogic$ PayX | SpellDescription$ Reveal the top X+1 cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. +A:SP$ PeekAndReveal | Cost$ X U | PeekAmount$ Y | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | AILogic$ PayX | SpellDescription$ Reveal the top X plus one cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. SVar:DBTwoPiles:DB$ TwoPiles | Chooser$ Opponent | DefinedCards$ Remembered | Separator$ You | ChosenPile$ DBHand | UnchosenPile$ DBGrave | AILogic$ Worst SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/f/fact_or_fiction.txt b/forge-gui/res/cardsfolder/f/fact_or_fiction.txt index fbf2cd9d7a7..d263921f9b8 100644 --- a/forge-gui/res/cardsfolder/f/fact_or_fiction.txt +++ b/forge-gui/res/cardsfolder/f/fact_or_fiction.txt @@ -1,7 +1,7 @@ Name:Fact or Fiction ManaCost:3 U Types:Instant -A:SP$ Dig | DigNum$ 5 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. +A:SP$ PeekAndReveal | PeekAmount$ 5 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBGrave | StackDescription$ An opponent separates those cards into two piles. {p:You} puts one pile into their hand and the other into their graveyard. SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/f/feral_deceiver.txt b/forge-gui/res/cardsfolder/f/feral_deceiver.txt index 8050a0d598e..95886766245 100644 --- a/forge-gui/res/cardsfolder/f/feral_deceiver.txt +++ b/forge-gui/res/cardsfolder/f/feral_deceiver.txt @@ -2,9 +2,9 @@ Name:Feral Deceiver ManaCost:3 G Types:Creature Spirit PT:3/2 -A:AB$ Dig | Cost$ 1 | DigNum$ 1 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | SpellDescription$ Look at the top card of your library. -A:AB$ Dig | Cost$ 2 | DigNum$ 1 | ActivationLimit$ 1 | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | RememberRevealed$ True | SubAbility$ TrigPump | SpellDescription$ Reveal the top card of your library. If it's a land card, CARDNAME gets +2/+2 and gains trample until end of turn. Activate only once each turn. -SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 2 | NumDef$ 2 | KW$ Trample | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 | SubAbility$ DBCleanup +A:AB$ PeekAndReveal | Cost$ 1 | NoReveal$ True | SpellDescription$ Look at the top card of your library. +A:AB$ PeekAndReveal | Cost$ 2 | ActivationLimit$ 1 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBPump | SpellDescription$ Reveal the top card of your library. +SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ 2 | NumDef$ 2 | KW$ Trample | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | SubAbility$ DBCleanup | IfDesc$ True | SpellDescription$ If it's a land card, CARDNAME gets +2/+2 and gains trample until end of turn. Activate only once each turn. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:{1}: Look at the top card of your library.\n{2}: Reveal the top card of your library. If it's a land card, Feral Deceiver gets +2/+2 and gains trample until end of turn. Activate only once each turn. diff --git a/forge-gui/res/cardsfolder/g/galvanoth.txt b/forge-gui/res/cardsfolder/g/galvanoth.txt index e4d89a58069..41223cf537d 100644 --- a/forge-gui/res/cardsfolder/g/galvanoth.txt +++ b/forge-gui/res/cardsfolder/g/galvanoth.txt @@ -2,7 +2,8 @@ Name:Galvanoth ManaCost:3 R R Types:Creature Beast PT:3/3 -T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDig | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may look at the top card of your library. You may cast it without paying its mana cost if it's an instant or sorcery spell. -SVar:TrigDig:DB$ Dig | DigNum$ 1 | NoMove$ True | SubAbility$ TrigPlay -SVar:TrigPlay:DB$ Play | Defined$ TopOfLibrary | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | ConditionDefined$ TopOfLibrary | ConditionPresent$ Instant,Sorcery | ConditionCompare$ EQ1 +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPeek | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may look at the top card of your library. You may cast it without paying its mana cost if it's an instant or sorcery spell. +SVar:TrigPeek:DB$ PeekAndReveal | NoReveal$ True | SubAbility$ TrigPlay +SVar:TrigPlay:DB$ Play | Defined$ TopOfLibrary | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | ConditionDefined$ TopOfLibrary | ConditionPresent$ Instant,Sorcery +DeckNeeds:Type$Instant|Sorcery Oracle:At the beginning of your upkeep, you may look at the top card of your library. You may cast it without paying its mana cost if it's an instant or sorcery spell. diff --git a/forge-gui/res/cardsfolder/g/game_preserve.txt b/forge-gui/res/cardsfolder/g/game_preserve.txt index 89fea316b55..098aca8ef38 100644 --- a/forge-gui/res/cardsfolder/g/game_preserve.txt +++ b/forge-gui/res/cardsfolder/g/game_preserve.txt @@ -2,8 +2,7 @@ Name:Game Preserve ManaCost:2 G Types:Enchantment T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigReveal | TriggerDescription$ At the beginning of your upkeep, each player reveals the top card of their library. If all cards revealed this way are creature cards, put those cards onto the battlefield under their owners'control. -SVar:TrigReveal:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ EachDig | SubAbility$ GoToBattlefield -SVar:EachDig:DB$ Dig | Defined$ Remembered | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True +SVar:TrigReveal:DB$ PeekAndReveal | Defined$ Player | RememberRevealed$ True | SubAbility$ GoToBattlefield SVar:GoToBattlefield:DB$ ChangeZoneAll | ChangeType$ Card.TopLibrary | Origin$ Library | Destination$ Battlefield | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$ValidLibrary Card.nonCreature+IsRemembered diff --git a/forge-gui/res/cardsfolder/g/glimpse_of_tomorrow.txt b/forge-gui/res/cardsfolder/g/glimpse_of_tomorrow.txt index ef7df95e2a6..6fce6a9e69f 100644 --- a/forge-gui/res/cardsfolder/g/glimpse_of_tomorrow.txt +++ b/forge-gui/res/cardsfolder/g/glimpse_of_tomorrow.txt @@ -4,7 +4,7 @@ Colors:red Types:Sorcery K:Suspend:3:R R A:SP$ ChangeZoneAll | ChangeType$ Permanent.YouOwn | Imprint$ True | Origin$ Battlefield | Destination$ Library | Shuffle$ True | SubAbility$ DBDig | SpellDescription$ Shuffle all permanents you own into your library, then reveal that many cards from the top of your library. Put all non-Aura permanent cards revealed this way onto the battlefield, then do the same for Aura cards, then put the rest on the bottom of your library in a random order. -SVar:DBDig:DB$ Dig | Defined$ You | NoMove$ True | DigNum$ WarpX | RememberRevealed$ True | Reveal$ True | SubAbility$ DBCleanImprint +SVar:DBDig:DB$ PeekAndReveal | NoPeek$ True | PeekAmount$ WarpX | RememberRevealed$ True | SubAbility$ DBCleanImprint SVar:DBCleanImprint:DB$ Cleanup | ClearImprinted$ True | SubAbility$ ChangePermanent SVar:WarpX:Imprinted$Amount SVar:ChangePermanent:DB$ ChangeZoneAll | ChangeType$ Permanent.nonAura+IsRemembered | Origin$ Library | Destination$ Battlefield | ForgetChanged$ True | SubAbility$ ChangeEnchantment diff --git a/forge-gui/res/cardsfolder/g/guided_passage.txt b/forge-gui/res/cardsfolder/g/guided_passage.txt index d7d55f983e2..4ceab3861cf 100644 --- a/forge-gui/res/cardsfolder/g/guided_passage.txt +++ b/forge-gui/res/cardsfolder/g/guided_passage.txt @@ -1,7 +1,7 @@ Name:Guided Passage ManaCost:U R G Types:Sorcery -A:SP$ Dig | Cost$ U R G | NumCards$ X | Reveal$ True | NoMove$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | SubAbility$ DBCreature | SpellDescription$ Reveal the cards in your library. An opponent chooses from among them a creature card, a land card, and a noncreature, nonland card. You put the chosen cards into your hand. Then shuffle. +A:SP$ PeekAndReveal | PeekAmount$ X | NoPeek$ True | SubAbility$ DBCreature | SpellDescription$ Reveal the cards in your library. An opponent chooses from among them a creature card, a land card, and a noncreature, nonland card. You put the chosen cards into your hand. Then shuffle. SVar:DBCreature:DB$ ChangeZone | ChangeType$ Creature.YouOwn | ChangeNum$ 1 | Chooser$ Opponent | Origin$ Library | Destination$ Hand | SubAbility$ DBLand SVar:DBLand:DB$ ChangeZone | ChangeType$ Land.YouOwn | ChangeNum$ 1 | Chooser$ Opponent | Origin$ Library | Destination$ Hand | SubAbility$ DBNonCreatureNonLand SVar:DBNonCreatureNonLand:DB$ ChangeZone | ChangeType$ Card.nonCreature+nonLand+YouOwn | ChangeNum$ 1 | Chooser$ Opponent | Origin$ Library | Destination$ Hand | Shuffle$ True diff --git a/forge-gui/res/cardsfolder/h/harsh_deceiver.txt b/forge-gui/res/cardsfolder/h/harsh_deceiver.txt index f42ae69f350..6314ab5738b 100644 --- a/forge-gui/res/cardsfolder/h/harsh_deceiver.txt +++ b/forge-gui/res/cardsfolder/h/harsh_deceiver.txt @@ -2,10 +2,10 @@ Name:Harsh Deceiver ManaCost:3 W Types:Creature Spirit PT:1/4 -A:AB$ Dig | Cost$ 1 | DigNum$ 1 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | SpellDescription$ Look at the top card of your library. -A:AB$ Dig | Cost$ 2 | DigNum$ 1 | ActivationLimit$ 1 | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | RememberRevealed$ True | SubAbility$ DBUntap | SpellDescription$ Reveal the top card of your library. If it's a land card, untap CARDNAME and it gets +1/+1 until end of turn. Activate only once each turn. -SVar:DBUntap:DB$ Untap | Defined$ Self | SubAbility$ DBPump | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 -SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | NumDef$ 1 | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 +A:AB$ PeekAndReveal | Cost$ 1 | NoReveal$ True | SpellDescription$ Look at the top card of your library. +A:AB$ PeekAndReveal | Cost$ 2 | ActivationLimit$ 1 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBUntap | SpellDescription$ Reveal the top card of your library. +SVar:DBUntap:DB$ Untap | Defined$ Self | SubAbility$ DBPump | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | StackDescription$ SpellDescription | SpellDescription$ If it's a land card, untap CARDNAME +SVar:DBPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | NumDef$ 1 | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | StackDescription$ and it gets +1/+1 until end of turn. | SpellDescription$ and it gets +1/+1 until end of turn. Activate only once each turn. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:{1}: Look at the top card of your library.\n{2}: Reveal the top card of your library. If it's a land card, untap Harsh Deceiver and it gets +1/+1 until end of turn. Activate only once each turn. diff --git a/forge-gui/res/cardsfolder/h/haunting_imitation.txt b/forge-gui/res/cardsfolder/h/haunting_imitation.txt index e3c3256d02d..e035a030609 100644 --- a/forge-gui/res/cardsfolder/h/haunting_imitation.txt +++ b/forge-gui/res/cardsfolder/h/haunting_imitation.txt @@ -1,7 +1,7 @@ Name:Haunting Imitation ManaCost:2 U Types:Sorcery -A:SP$ Dig | Defined$ Player | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBRepeatEach | StackDescription$ SpellDescription | SpellDescription$ Each player reveals the top card of their library. For each creature card revealed this way, create a token that's a copy of that card, except it's 1/1, it's a Spirit in addition to its other types, and it has flying. If no creature cards were revealed this way, return Haunting Imitation to its owner's hand. +A:SP$ PeekAndReveal | Defined$ Player | RememberRevealed$ True | SubAbility$ DBRepeatEach | StackDescription$ SpellDescription | SpellDescription$ Each player reveals the top card of their library. For each creature card revealed this way, create a token that's a copy of that card, except it's 1/1, it's a Spirit in addition to its other types, and it has flying. If no creature cards were revealed this way, return Haunting Imitation to its owner's hand. SVar:DBRepeatEach:DB$ RepeatEach | RepeatCards$ Creature.IsRemembered | Zone$ Library | UseImprinted$ True | RepeatSubAbility$ DBToken | SubAbility$ DBReturn SVar:DBToken:DB$ CopyPermanent | Defined$ Imprinted | SetPower$ 1 | SetToughness$ 1 | AddTypes$ Spirit | AddKeywords$ Flying SVar:DBReturn:DB$ ChangeZone | Defined$ Parent | Origin$ Stack | Destination$ Hand | ConditionDefined$ Remembered | ConditionPresent$ Creature | ConditionCompare$ EQ0 | SubAbility$ DBCleanup | StackDescription$ None diff --git a/forge-gui/res/cardsfolder/i/interpret_the_signs.txt b/forge-gui/res/cardsfolder/i/interpret_the_signs.txt index e24d2fd27d9..6487f6cd33c 100644 --- a/forge-gui/res/cardsfolder/i/interpret_the_signs.txt +++ b/forge-gui/res/cardsfolder/i/interpret_the_signs.txt @@ -2,7 +2,7 @@ Name:Interpret the Signs ManaCost:5 U Types:Sorcery A:SP$ Scry | Cost$ 5 U | ScryNum$ 3 | SubAbility$ DBReveal | SpellDescription$ Scry 3, then reveal the top card of your library. Draw cards equal to that card's mana value. -SVar:DBReveal:DB$ Dig | DigNum$ 1 | Reveal$ True | NoMove$ True | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | NumCards$ X +SVar:DBReveal:DB$ PeekAndReveal | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ X | NumCardsDesc$ cards equal to that card's mana value SVar:X:Count$TopOfLibraryCMC Oracle:Scry 3, then reveal the top card of your library. Draw cards equal to that card's mana value. (To scry 3, look at the top three cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) diff --git a/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt b/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt index 3c2d8fb241e..7119157201d 100644 --- a/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt +++ b/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt @@ -5,7 +5,7 @@ Loyalty:4 A:AB$ Effect | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Triggers$ TrigAttack | Duration$ UntilYourNextTurn | Name$ Jace, Architect of Thought Effect | AILogic$ Main2 | SpellDescription$ Until your next turn, whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn. SVar:TrigAttack:Mode$ Attacks | ValidCard$ Creature.OppCtrl | TriggerZones$ Command | Execute$ JacePump | TriggerDescription$ Until your next turn, whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn. SVar:JacePump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ -1 -A:AB$ Dig | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | DigNum$ 3 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top three cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order. +A:AB$ PeekAndReveal | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | PeekAmount$ 3 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top three cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order. SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBLibraryBottom SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand SVar:DBLibraryBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/j/jadzi_oracle_of_arcavios_journey_to_the_oracle.txt b/forge-gui/res/cardsfolder/j/jadzi_oracle_of_arcavios_journey_to_the_oracle.txt index a48a9defeda..884945f718f 100644 --- a/forge-gui/res/cardsfolder/j/jadzi_oracle_of_arcavios_journey_to_the_oracle.txt +++ b/forge-gui/res/cardsfolder/j/jadzi_oracle_of_arcavios_journey_to_the_oracle.txt @@ -4,9 +4,9 @@ Types:Legendary Creature Human Wizard PT:5/5 A:AB$ ChangeZone | Cost$ Discard<1/Card> | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return CARDNAME to its owner's hand. T:Mode$ SpellCastOrCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, reveal the top card of your library. If it's a nonland card, you may cast it by paying {1} rather than paying its mana cost. If it's a land card, put it onto the battlefield. -SVar:TrigDig:DB$ Dig | Defined$ You | DigNum$ 1 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ CastCard -SVar:CastCard:DB$ Play | Defined$ Remembered | PlayCost$ 1 | ValidSA$ Spell | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | ConditionCompare$ EQ1 | SubAbility$ MoveLand -SVar:MoveLand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Battlefield | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ EQ1 | SubAbility$ DBCleanup +SVar:TrigDig:DB$ PeekAndReveal | RememberRevealed$ True | NoPeek$ True | SubAbility$ CastCard +SVar:CastCard:DB$ Play | Defined$ Remembered | PlayCost$ 1 | ValidSA$ Spell | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | SubAbility$ MoveLand +SVar:MoveLand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Battlefield | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:PlayMain1:TRUE DeckHas:Ability$Discard diff --git a/forge-gui/res/cardsfolder/l/lim_duls_vault.txt b/forge-gui/res/cardsfolder/l/lim_duls_vault.txt index c6698e92f5e..6252acb4d04 100644 --- a/forge-gui/res/cardsfolder/l/lim_duls_vault.txt +++ b/forge-gui/res/cardsfolder/l/lim_duls_vault.txt @@ -1,12 +1,12 @@ 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 and put the last cards you looked at this way on top in any order. +A:SP$ PeekAndReveal | PeekAmount$ 5 | NoReveal$ True | SubAbility$ DBRepeat | RememberPeeked$ 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 and put the last cards you looked at this way on top 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:DBLookAgain:DB$ PeekAndReveal | PeekAmount$ 5 | NoReveal$ True | RememberPeeked$ 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 | NoLooking$ True | StackDescription$ None SVar:DBReset:DB$ StoreSVar | SVar$ LifePaid | Type$ Number | Expression$ 0 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/l/lonis_cryptozoologist.txt b/forge-gui/res/cardsfolder/l/lonis_cryptozoologist.txt index 8f6305d0e81..98345c26ce0 100644 --- a/forge-gui/res/cardsfolder/l/lonis_cryptozoologist.txt +++ b/forge-gui/res/cardsfolder/l/lonis_cryptozoologist.txt @@ -4,11 +4,11 @@ Types:Legendary Creature Snake Elf Scout PT:1/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl+nonToken+Other | TriggerZones$ Battlefield | Execute$ TrigInvestigate | TriggerDescription$ Whenever another nontoken creature enters the battlefield under your control, investigate. SVar:TrigInvestigate:DB$ Investigate -A:AB$ Dig | Cost$ T Sac | ValidTgts$ Player.Opponent | TgtPrompt$ Select target opponent | Reveal$ True | NoMove$ True | DigNum$ X | RememberRevealed$ True | DestinationZone$ Library | SubAbility$ PickOne | SpellDescription$ Target opponent reveals the top X cards of their library. You may put a nonland permanent card with mana value X or less from among them onto the battlefield under your control. That player puts the rest on the bottom of their library in a random order. -SVar:PickOne:DB$ ChooseCard | Defined$ You | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose a nonland permanent to put on the battlefield under your control | Choices$ Permanent.nonLand+cmcLEX+IsRemembered | ChoiceZone$ Library | SubAbility$ MoveChosen +A:AB$ PeekAndReveal | Cost$ T Sac | ValidTgts$ Opponent | PeekAmount$ X | NoPeek$ True | RememberRevealed$ True | SubAbility$ PickOne | SpellDescription$ Target opponent reveals the top X cards of their library. You may put a nonland permanent card with mana value X or less from among them onto the battlefield under your control. That player puts the rest on the bottom of their library in a random order. +SVar:PickOne:DB$ ChooseCard | Defined$ You | Amount$ 1 | ChoiceTitle$ Choose a nonland permanent to put on the battlefield under your control | Choices$ Permanent.nonLand+cmcLEX+IsRemembered | ChoiceZone$ Library | SubAbility$ MoveChosen SVar:MoveChosen:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | GainControl$ True | Defined$ ChosenCard | SubAbility$ DBBottom SVar:DBBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True SVar:X:Count$xPaid DeckHints:Ability$Investigate DeckHas:Ability$Investigate|Token diff --git a/forge-gui/res/cardsfolder/l/lorehold_apprentice.txt b/forge-gui/res/cardsfolder/l/lorehold_apprentice.txt index 1e6842e8552..9090ecabb0d 100644 --- a/forge-gui/res/cardsfolder/l/lorehold_apprentice.txt +++ b/forge-gui/res/cardsfolder/l/lorehold_apprentice.txt @@ -4,6 +4,6 @@ Types:Creature Human Cleric PT:2/2 T:Mode$ SpellCastOrCopy | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPumpAll | TriggerDescription$ Magecraft — Whenever you cast or copy an instant or sorcery spell, until end of turn, Spirit creatures you control gain "{T}: This creature deals 1 damage to each opponent." SVar:TrigPumpAll:DB$ AnimateAll | ValidCards$ Creature.Spirit+YouCtrl | Abilities$ Sizzle -SVar:Sizzle:AB$ DealDamage | Cost$ T | Defined$ Opponent | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to each opponent. +SVar:Sizzle:AB$ DealDamage | Cost$ T | Defined$ Opponent | NumDmg$ 1 | SpellDescription$ This creature deals 1 damage to each opponent. DeckHints:Type$Instant|Sorcery Oracle:Magecraft — Whenever you cast or copy an instant or sorcery spell, until end of turn, Spirit creatures you control gain "{T}: This creature deals 1 damage to each opponent." diff --git a/forge-gui/res/cardsfolder/m/mindblaze.txt b/forge-gui/res/cardsfolder/m/mindblaze.txt index 741faedf7d0..8c0dd01fab9 100644 --- a/forge-gui/res/cardsfolder/m/mindblaze.txt +++ b/forge-gui/res/cardsfolder/m/mindblaze.txt @@ -1,15 +1,14 @@ Name:Mindblaze ManaCost:5 R Types:Sorcery -A:SP$ NameCard | Cost$ 5 R | ValidCards$ Card.nonLand | ValidDesc$ nonland | SubAbility$ DBChooseNumber | SpellDescription$ Choose a nonland card name and a number greater than 0. Target player reveals their library. If that library contains exactly the chosen number of cards with the chosen name, Mindblaze deals 8 damage to that player. Then that player shuffles their library. -SVar:DBChooseNumber:DB$ ChooseNumber | Min$ 1 | SubAbility$ DBDig -SVar:DBDig:DB$ Dig | DigNum$ X | ValidTgts$ Player | TgtPrompt$ Select target player | Reveal$ True | NoMove$ True | RememberRevealed$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | SubAbility$ DBDamage -SVar:DBDamage:DB$ DealDamage | NumDmg$ 8 | Defined$ Targeted | ConditionCheckSVar$ Y | ConditionSVarCompare$ EQZ | SubAbility$ DBShuffle +A:SP$ NameCard | ValidCards$ Card.nonLand | ValidDesc$ nonland | SubAbility$ DBChooseNumber | SpellDescription$ Choose a nonland card name and a number greater than 0. Target player reveals their library. If that library contains exactly the chosen number of cards with the chosen name, CARDNAME deals 8 damage to that player. Then that player shuffles their library. +SVar:DBChooseNumber:DB$ ChooseNumber | Min$ 1 | SubAbility$ DBReveal +SVar:DBReveal:DB$ PeekAndReveal | PeekNum$ X | NoPeek$ True | ValidTgts$ Player | TgtPrompt$ Select target player | RememberRevealed$ True | SubAbility$ DBDamage +SVar:DBDamage:DB$ DealDamage | NumDmg$ 8 | Defined$ Targeted | ConditionDefined$ Remembered | ConditionPresent$ Card.NamedCard | ConditionCompare$ EQY | SubAbility$ DBShuffle SVar:DBShuffle:DB$ Shuffle | Defined$ ParentTarget | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:TargetedPlayer$CardsInLibrary -SVar:Y:Remembered$Valid Card.NamedCard -SVar:Z:Count$ChosenNumber +SVar:Y:Count$ChosenNumber AI:RemoveDeck:All AI:RemoveDeck:Random Oracle:Choose a nonland card name and a number greater than 0. Target player reveals their library. If that library contains exactly the chosen number of cards with the chosen name, Mindblaze deals 8 damage to that player. Then that player shuffles. diff --git a/forge-gui/res/cardsfolder/m/mirrored_depths.txt b/forge-gui/res/cardsfolder/m/mirrored_depths.txt index e0a4ac08930..0f57e8fd101 100644 --- a/forge-gui/res/cardsfolder/m/mirrored_depths.txt +++ b/forge-gui/res/cardsfolder/m/mirrored_depths.txt @@ -5,7 +5,7 @@ T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZon SVar:TrigFlip:DB$ FlipACoin | Caller$ TriggeredActivator | LoseSubAbility$ DBCounter SVar:DBCounter:DB$ Counter | Defined$ TriggeredSpellAbility T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {CHAOS}, target player reveals the top card of their library. If it's a nonland card, you may cast it without paying its mana cost. -SVar:RolledChaos:DB$ Dig | DigNum$ 1 | ValidTgts$ Player | NoMove$ True | Reveal$ True | RememberRevealed$ True | SubAbility$ DBPlay +SVar:RolledChaos:DB$ PeekAndReveal | ValidTgts$ Player | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBPlay SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | ConditionCompare$ EQ1 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:AIRollPlanarDieParams:Mode$ Always diff --git a/forge-gui/res/cardsfolder/m/mishras_bauble.txt b/forge-gui/res/cardsfolder/m/mishras_bauble.txt index 6149db584b8..65ebf77b377 100644 --- a/forge-gui/res/cardsfolder/m/mishras_bauble.txt +++ b/forge-gui/res/cardsfolder/m/mishras_bauble.txt @@ -1,7 +1,7 @@ Name:Mishra's Bauble ManaCost:0 Types:Artifact -A:AB$ Dig | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Player | TgtPrompt$ Select target player | DigNum$ 1 | NoMove$ True | SubAbility$ DelTrigSlowtrip | SpellDescription$ Look at the top card of target player's library. +A:AB$ PeekAndReveal | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Player | TgtPrompt$ Select target player | NoReveal$ True | SubAbility$ DelTrigSlowtrip | SpellDescription$ Look at the top card of target player's library. SVar:DelTrigSlowtrip:DB$ DelayedTrigger | NextTurn$ True | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | StackDescription$ SpellDescription | SpellDescription$ Draw a card at the beginning of the next turn's upkeep. SVar:DrawSlowtrip:DB$ Draw | NumCards$ 1 | Defined$ You AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/m/moonlight_bargain.txt b/forge-gui/res/cardsfolder/m/moonlight_bargain.txt index 6505d647220..3ae3f5199db 100644 --- a/forge-gui/res/cardsfolder/m/moonlight_bargain.txt +++ b/forge-gui/res/cardsfolder/m/moonlight_bargain.txt @@ -1,9 +1,9 @@ Name:Moonlight Bargain ManaCost:3 B B Types:Instant -A:SP$ Dig | Cost$ 3 B B | DigNum$ 5 | NoMove$ True | RememberRevealed$ True | SubAbility$ DBRepeat | SpellDescription$ Look at the top five cards of your library. For each card, put that card into your graveyard unless you pay 2 life. Then put the rest into your hand. -SVar:DBRepeat:DB$ RepeatEach | RepeatSubAbility$ DBChangeZone | RepeatCards$ Card.IsRemembered | Zone$ Library | UseImprinted$ True | SubAbility$ PutIntoHand -SVar:DBChangeZone:DB$ ChangeZone | Defined$ Imprinted | Origin$ Library | Destination$ Graveyard | UnlessCost$ PayLife<2> | UnlessPayer$ You | ForgetChanged$ True | StackDescription$ Put [{c:Imprinted}] into your graveyard +A:SP$ PeekAndReveal | PeekAmount$ 5 | NoReveal$ True | RememberPeeked$ True | SubAbility$ DBRepeat | SpellDescription$ Look at the top five cards of your library. +SVar:DBRepeat:DB$ RepeatEach | RepeatSubAbility$ DBChangeZone | RepeatCards$ Card.IsRemembered | Zone$ Library | UseImprinted$ True | SubAbility$ PutIntoHand | SpellDescription$ For each card, put that card into your graveyard unless you pay 2 life. Then put the rest into your hand. +SVar:DBChangeZone:DB$ ChangeZone | Defined$ Imprinted | Origin$ Library | Destination$ Graveyard | UnlessCost$ PayLife<2> | UnlessPayer$ You | ForgetChanged$ True SVar:PutIntoHand:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/m/morphic_tide.txt b/forge-gui/res/cardsfolder/m/morphic_tide.txt index 026629e2c86..69a87f117ac 100644 --- a/forge-gui/res/cardsfolder/m/morphic_tide.txt +++ b/forge-gui/res/cardsfolder/m/morphic_tide.txt @@ -3,8 +3,8 @@ ManaCost:no cost Types:Phenomenon T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When you encounter CARDNAME, starting with you, each player may put a permanent card from their hand onto the battlefield. (Then planeswalk away from this phenomenon.) SVar:TrigPut:DB$ RepeatEach | StartingWithActivator$ True | RepeatPlayers$ Player | RepeatSubAbility$ DBShuffle | SubAbility$ ChangePermanent -SVar:DBShuffle:DB$ ChangeZoneAll | ChangeType$ Permanent.RememberedPlayerOwn | Imprint$ True | Origin$ Battlefield | Destination$ Library | Shuffle$ True | SubAbility$ DBDig -SVar:DBDig:DB$ Dig | Defined$ Remembered | NoMove$ True | DigNum$ WarpX | RememberRevealed$ True | Reveal$ True | SubAbility$ DBCleanImprint +SVar:DBShuffle:DB$ ChangeZoneAll | ChangeType$ Permanent.RememberedPlayerOwn | Imprint$ True | Origin$ Battlefield | Destination$ Library | Shuffle$ True | SubAbility$ DBReveal +SVar:DBReveal:DB$ PeekAndReveal | Defined$ Remembered | PeekAmount$ WarpX | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBCleanImprint SVar:DBCleanImprint:DB$ Cleanup | ClearImprinted$ True SVar:WarpX:Imprinted$Amount SVar:ChangePermanent:DB$ ChangeZoneAll | ChangeType$ Artifact.IsRemembered,Creature.IsRemembered,Land.IsRemembered,Planeswalker.IsRemembered | Origin$ Library | Destination$ Battlefield | ForgetChanged$ True | SubAbility$ ChangeEnchantment diff --git a/forge-gui/res/cardsfolder/n/naya_soulbeast.txt b/forge-gui/res/cardsfolder/n/naya_soulbeast.txt index ef587395942..dc0994c4b60 100644 --- a/forge-gui/res/cardsfolder/n/naya_soulbeast.txt +++ b/forge-gui/res/cardsfolder/n/naya_soulbeast.txt @@ -2,9 +2,8 @@ Name:Naya Soulbeast ManaCost:6 G G Types:Creature Beast PT:0/0 -T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigRepeat | TriggerDescription$ When you cast this spell, each player reveals the top card of their library. -SVar:TrigRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBReveal -SVar:DBReveal:DB$ Dig | Defined$ Player.IsRemembered | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True +T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigReveal | TriggerDescription$ When you cast this spell, each player reveals the top card of their library. +SVar:TrigReveal:DB$ PeekAndReveal | Defined$ Player | RememberRevealed$ True K:etbCounter:P1P1:X:no Condition:CARDNAME enters the battlefield with X +1/+1 counters on it, where X is the total mana value of all cards revealed this way. SVar:X:Remembered$SumCMC T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True diff --git a/forge-gui/res/cardsfolder/o/orcish_spy.txt b/forge-gui/res/cardsfolder/o/orcish_spy.txt index dccd6c0bdb0..7a1c43149b0 100644 --- a/forge-gui/res/cardsfolder/o/orcish_spy.txt +++ b/forge-gui/res/cardsfolder/o/orcish_spy.txt @@ -2,5 +2,5 @@ Name:Orcish Spy ManaCost:R Types:Creature Orc Rogue PT:1/1 -A:AB$ Dig | Cost$ T | ValidTgts$ Player | TgtPrompt$ Select target player | DigNum$ 3 | NoMove$ True | AILogic$ Never | SpellDescription$ Look at the top three cards of target player's library. +A:AB$ PeekAndReveal | Cost$ T | ValidTgts$ Player | PeekAmount$ 3 | NoReveal$ True | AILogic$ Never | SpellDescription$ Look at the top three cards of target player's library. Oracle:{T}: Look at the top three cards of target player's library. diff --git a/forge-gui/res/cardsfolder/p/paroxysm.txt b/forge-gui/res/cardsfolder/p/paroxysm.txt index 62316060123..0061810ba8d 100644 --- a/forge-gui/res/cardsfolder/p/paroxysm.txt +++ b/forge-gui/res/cardsfolder/p/paroxysm.txt @@ -2,9 +2,9 @@ Name:Paroxysm ManaCost:1 R Types:Enchantment Aura K:Enchant creature -A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Curse +A:SP$ Attach | ValidTgts$ Creature | AILogic$ Curse T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ EnchantedController | Execute$ TriggeredParoxysm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of the upkeep of enchanted creature's controller, that player reveals the top card of their library. If that card is a land card, destroy that creature. Otherwise, it gets +3/+3 until end of turn. -SVar:TriggeredParoxysm:DB$ Dig | Defined$ TriggeredPlayer | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DestructiveParoxysm +SVar:TriggeredParoxysm:DB$ PeekAndReveal | Defined$ TriggeredPlayer | NoPeek$ True | RememberRevealed$ True | SubAbility$ DestructiveParoxysm SVar:DestructiveParoxysm:DB$ Destroy | Defined$ Enchanted | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ EQ1 | SubAbility$ BeserkParoxysm SVar:BeserkParoxysm:DB$ Pump | Defined$ Enchanted | NumAtt$ 3 | NumDef$ 3 | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ EQ0 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/p/petals_of_insight.txt b/forge-gui/res/cardsfolder/p/petals_of_insight.txt index fcba50b6eec..d971bae96a5 100644 --- a/forge-gui/res/cardsfolder/p/petals_of_insight.txt +++ b/forge-gui/res/cardsfolder/p/petals_of_insight.txt @@ -1,7 +1,7 @@ Name:Petals of Insight ManaCost:4 U Types:Sorcery Arcane -A:SP$ Dig | Cost$ 4 U | DigNum$ 3 | NoMove$ True | DestinationZone$ Library | LibraryPosition$ 0 | SubAbility$ DBPetalChoose | SpellDescription$ Look at the top three cards of your library. You may put those cards on the bottom of your library in any order. If you do, return CARDNAME to its owner's hand. Otherwise, draw three cards. +A:SP$ PeekAndReveal | PeekAmount$ 3 | NoReveal$ True | SubAbility$ DBPetalChoose | SpellDescription$ Look at the top three cards of your library. You may put those cards on the bottom of your library in any order. If you do, return CARDNAME to its owner's hand. Otherwise, draw three cards. SVar:DBPetalChoose:DB$ GenericChoice | Choices$ ReturnPetals,DrawCards | Defined$ You SVar:ReturnPetals:DB$ Dig | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Library | LibraryPosition$ -1 | SubAbility$ DBChangeZone | SpellDescription$ You may put those cards on the bottom of your library in any order. If you do, return CARDNAME to its owner's hand. SVar:DBChangeZone:DB$ ChangeZone | Origin$ Stack | Destination$ Hand | Defined$ Parent diff --git a/forge-gui/res/cardsfolder/p/pools_of_becoming.txt b/forge-gui/res/cardsfolder/p/pools_of_becoming.txt index 6ea81a5af78..a0beff6259b 100644 --- a/forge-gui/res/cardsfolder/p/pools_of_becoming.txt +++ b/forge-gui/res/cardsfolder/p/pools_of_becoming.txt @@ -7,7 +7,7 @@ SVar:DBDraw:DB$ Draw | NumCards$ Y | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:Y:Remembered$Amount T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever you roll {CHAOS}, reveal the top three cards of your planar deck. Each of the revealed cards' {CHAOS} abilities triggers. Then put the revealed cards on the bottom of your planar deck in any order. -SVar:RolledChaos:DB$ Dig | DigNum$ 3 | NoMove$ True | Reveal$ True | SourceZone$ PlanarDeck | RememberRevealed$ True | SubAbility$ DBRunChaos +SVar:RolledChaos:DB$ PeekAndReveal | PeekAmount$ 3 | NoPeek$ True | SourceZone$ PlanarDeck | RememberRevealed$ True | SubAbility$ DBRunChaos SVar:DBRunChaos:DB$ RunChaos | Defined$ Remembered | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ PlanarDeck | Destination$ PlanarDeck | LibraryPosition$ -1 | SubAbility$ DBCleanup SVar:AIRollPlanarDieParams:Mode$ Always diff --git a/forge-gui/res/cardsfolder/p/prophecy.txt b/forge-gui/res/cardsfolder/p/prophecy.txt index b134da865a5..7e974439f55 100644 --- a/forge-gui/res/cardsfolder/p/prophecy.txt +++ b/forge-gui/res/cardsfolder/p/prophecy.txt @@ -1,9 +1,10 @@ Name:Prophecy ManaCost:W Types:Sorcery -A:SP$ Dig | Cost$ W | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | DigNum$ 1 | Reveal$ True | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True | RememberRevealed$ True | SubAbility$ DBGainLife | SpellDescription$ Reveal the top card of target opponent's library. If it's a land, you gain 1 life. Then that player shuffles. Draw a card at the beginning of the next turn's upkeep. +A:SP$ Dig | ValidTgts$ Opponent | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBGainLife | SpellDescription$ Reveal the top card of target opponent's library. If it's a land, you gain 1 life. Then that player shuffles. Draw a card at the beginning of the next turn's upkeep. SVar:DBGainLife:DB$ GainLife | LifeAmount$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card.Land | ConditionCompare$ GE1 | SubAbility$ DBShuffle SVar:DBShuffle:DB$ Shuffle | Defined$ ParentTarget | SubAbility$ DelTrigSlowtrip -SVar:DelTrigSlowtrip:DB$ DelayedTrigger | NextTurn$ True | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | TriggerDescription$ Draw a card. -SVar:DrawSlowtrip:DB$ Draw | NumCards$ 1 | Defined$ You +SVar:DelTrigSlowtrip:DB$ DelayedTrigger | NextTurn$ True | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | TriggerDescription$ Draw a card at the beginning of the next turn's upkeep. +SVar:DrawSlowtrip:DB$ Draw +DeckHas:Ability$LifeGain Oracle:Reveal the top card of target opponent's library. If it's a land, you gain 1 life. Then that player shuffles.\nDraw a card at the beginning of the next turn's upkeep. diff --git a/forge-gui/res/cardsfolder/p/psychic_battle.txt b/forge-gui/res/cardsfolder/p/psychic_battle.txt index 8ab977de1e1..7c96b64007c 100644 --- a/forge-gui/res/cardsfolder/p/psychic_battle.txt +++ b/forge-gui/res/cardsfolder/p/psychic_battle.txt @@ -2,8 +2,8 @@ Name:Psychic Battle ManaCost:3 U U Types:Enchantment T:Mode$ BecomesTargetOnce | ValidCause$ Card.notnamedPsychic Battle | TriggerZones$ Battlefield | Execute$ TrigReveal | TriggerDescription$ Whenever a player chooses one or more targets, each player reveals the top card of their library. The player who reveals the card with the highest mana value may change the target or targets. If two or more cards are tied for highest cost, the target or targets remain unchanged. Changing targets this way doesn't trigger abilities of permanents named Psychic Battle. -SVar:TrigReveal:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBDig | SubAbility$ DBChangeTargets -SVar:DBDig:DB$ Dig | Defined$ Remembered | DigNum$ 1 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBCheckLibrary +SVar:TrigReveal:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBReveal | SubAbility$ DBChangeTargets +SVar:DBReveal:DB$ PeekAndReveal | Defined$ Remembered | RememberRevealed$ True | SubAbility$ DBCheckLibrary SVar:DBCheckLibrary:DB$ Branch | BranchConditionSVar$ NumRememberedCard | TrueSubAbility$ DBCheckImprinted SVar:DBCheckImprinted:DB$ Branch | BranchConditionSVar$ NumImprintedCard | TrueSubAbility$ DBCompareCMC | FalseSubAbility$ DBImprint | SubAbility$ DBCleanupRemembered SVar:DBCompareCMC:DB$ Branch | BranchConditionSVar$ CMCRememberedCard | BranchConditionSVarCompare$ GTCMCImprintedCard | TrueSubAbility$ DBImprintForget | FalseSubAbility$ DBCompareCMC2 diff --git a/forge-gui/res/cardsfolder/p/psychotic_episode.txt b/forge-gui/res/cardsfolder/p/psychotic_episode.txt index f106ea4eda4..924a5f9a05d 100644 --- a/forge-gui/res/cardsfolder/p/psychotic_episode.txt +++ b/forge-gui/res/cardsfolder/p/psychotic_episode.txt @@ -2,8 +2,8 @@ Name:Psychotic Episode ManaCost:1 B B Types:Sorcery K:Madness:1 B -A:SP$ RevealHand | Cost$ 1 B B | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBRevealTopLibrary | SpellDescription$ Target player reveals their hand and the top card of their library. You choose a card revealed this way. That player puts the chosen card on the bottom of their library. -SVar:DBRevealTopLibrary:DB$ Dig | DigNum$ 1 | Reveal$ True | Defined$ Targeted | NoMove$ True | SubAbility$ DBRevealHand +A:SP$ RevealHand | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBRevealTopLibrary | SpellDescription$ Target player reveals their hand and the top card of their library. You choose a card revealed this way. That player puts the chosen card on the bottom of their library. +SVar:DBRevealTopLibrary:DB$ PeekAndReveal | Defined$ Targeted | NoPeek$ True | SubAbility$ DBRevealHand SVar:DBRevealHand:DB$ ChangeZone | DefinedPlayer$ Targeted | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | ChangeType$ Card | ChangeNum$ 1 | Hidden$ True | RememberChanged$ True | Chooser$ You | Optional$ True | SubAbility$ DBChooseTopLibrary SVar:DBChooseTopLibrary:DB$ Dig | DigNum$ 1 | Reveal$ True | Defined$ Targeted | Chooser$ You | RememberChanged$ True | DestinationZone$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/r/rousing_of_souls.txt b/forge-gui/res/cardsfolder/r/rousing_of_souls.txt index b8340e2c715..dfc019ad7c1 100644 --- a/forge-gui/res/cardsfolder/r/rousing_of_souls.txt +++ b/forge-gui/res/cardsfolder/r/rousing_of_souls.txt @@ -1,10 +1,10 @@ Name:Rousing of Souls ManaCost:2 W Types:Sorcery -A:SP$ Dig | DigNum$ 1 | Defined$ Player | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBToken | StackDescription$ Parley — Each player reveals the top card of their library. | SpellDescription$ Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 1/1 white Spirit creature token with flying. Then each player draws a card. -SVar:DBToken:DB$ Token | TokenAmount$ X | TokenScript$ w_1_1_spirit_flying | SubAbility$ DBDraw | StackDescription$ For each nonland card revealed this way, you create a 1/1 white Spirit creature token with flying. -SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 | SubAbility$ DBCleanup | StackDescription$ Then each player draws a card. +A:SP$ PeekAndReveal | Defined$ Player | RememberRevealed$ True | SubAbility$ DBToken | StackDescription$ SpellDescription | SpellDescription$ Parley — Each player reveals the top card of their library. +SVar:DBToken:DB$ Token | TokenAmount$ X | TokenScript$ w_1_1_spirit_flying | SubAbility$ DBDraw | SpellDescription$ For each nonland card revealed this way, you create a 1/1 white Spirit creature token with flying. +SVar:DBDraw:DB$ Draw | Defined$ Player | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ Then each player draws a card. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Valid Card.nonLand -DeckHas:Ability$Token +DeckHas:Ability$Token & Type$Spirit Oracle:Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 1/1 white Spirit creature token with flying. Then each player draws a card. diff --git a/forge-gui/res/cardsfolder/s/selvala_explorer_returned.txt b/forge-gui/res/cardsfolder/s/selvala_explorer_returned.txt index c5651d91e5f..566b9e6c870 100644 --- a/forge-gui/res/cardsfolder/s/selvala_explorer_returned.txt +++ b/forge-gui/res/cardsfolder/s/selvala_explorer_returned.txt @@ -2,11 +2,12 @@ Name:Selvala, Explorer Returned ManaCost:1 G W Types:Legendary Creature Elf Scout PT:2/4 -A:AB$ Dig | Cost$ T | PrecostDesc$ Parley — | DigNum$ 1 | Defined$ Player | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBMana | SpellDescription$ Each player reveals the top card of their library. For each nonland card revealed this way, add {G} and you gain 1 life. Then each players draws a card. +A:AB$ PeekAndReveal | Cost$ T | PrecostDesc$ Parley — | Defined$ Player | RememberRevealed$ True | SubAbility$ DBMana | SpellDescription$ Each player reveals the top card of their library. For each nonland card revealed this way, add {G} and you gain 1 life. Then each player draws a card. SVar:DBMana:DB$ Mana | Produced$ G | Amount$ X | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | LifeAmount$ X | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 | SubAbility$ DBCleanup +SVar:DBDraw:DB$ Draw | Defined$ Player | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Valid Card.nonLand AI:RemoveDeck:All +DeckHas:Ability$LifeGain Oracle:Parley — {T}: Each player reveals the top card of their library. For each nonland card revealed this way, add {G} and you gain 1 life. Then each player draws a card. diff --git a/forge-gui/res/cardsfolder/s/selvalas_charge.txt b/forge-gui/res/cardsfolder/s/selvalas_charge.txt index 4a1cd795b88..a7e5a849f40 100644 --- a/forge-gui/res/cardsfolder/s/selvalas_charge.txt +++ b/forge-gui/res/cardsfolder/s/selvalas_charge.txt @@ -1,9 +1,10 @@ Name:Selvala's Charge ManaCost:4 G Types:Sorcery -A:SP$ Dig | Cost$ 4 G | PreCostDesc$ Parley — | DigNum$ 1 | Defined$ Player | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBToken | SpellDescription$ Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 3/3 green Elephant creature token. Then each player draws a card. -SVar:DBToken:DB$ Token | TokenAmount$ X | TokenScript$ g_3_3_elephant | TokenOwner$ You | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 | SubAbility$ DBCleanup +A:SP$ PeekAndReveal | PreCostDesc$ Parley — | Defined$ Player | RememberRevealed$ True | SubAbility$ DBToken | SpellDescription$ Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 3/3 green Elephant creature token. Then each player draws a card. +SVar:DBToken:DB$ Token | TokenAmount$ X | TokenScript$ g_3_3_elephant | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ Player | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Valid Card.nonLand +DeckHas:Ability$Token & Type$Elephant Oracle:Parley — Each player reveals the top card of their library. For each nonland card revealed this way, you create a 3/3 green Elephant creature token. Then each player draws a card. diff --git a/forge-gui/res/cardsfolder/s/selvalas_enforcer.txt b/forge-gui/res/cardsfolder/s/selvalas_enforcer.txt index 4bbf76bb437..7ea01be3a29 100644 --- a/forge-gui/res/cardsfolder/s/selvalas_enforcer.txt +++ b/forge-gui/res/cardsfolder/s/selvalas_enforcer.txt @@ -2,10 +2,10 @@ Name:Selvala's Enforcer ManaCost:3 G Types:Creature Elf Warrior PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigDig | TriggerDescription$ Parley — When CARDNAME enters the battlefield, each player reveals the top card of their library. For each nonland card revealed this way, put a +1/+1 counter on CARDNAME. Then each player draws a card. -SVar:TrigDig:DB$ Dig | DigNum$ 1 | Defined$ Player | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBPutCounter -SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterNum$ X | CounterType$ P1P1 | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 | SubAbility$ DBCleanup +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigReveal | TriggerDescription$ Parley — When CARDNAME enters the battlefield, each player reveals the top card of their library. For each nonland card revealed this way, put a +1/+1 counter on CARDNAME. Then each player draws a card. +SVar:TrigReveal:DB$ PeekAndReveal | Defined$ Player | RememberRevealed$ True | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | CounterNum$ X | CounterType$ P1P1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ Player | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Valid Card.nonLand Oracle:Parley — When Selvala's Enforcer enters the battlefield, each player reveals the top card of their library. For each nonland card revealed this way, put a +1/+1 counter on Selvala's Enforcer. Then each player draws a card. diff --git a/forge-gui/res/cardsfolder/s/sphinx_of_uthuun.txt b/forge-gui/res/cardsfolder/s/sphinx_of_uthuun.txt index 9c8db5e4168..7d2558d0940 100644 --- a/forge-gui/res/cardsfolder/s/sphinx_of_uthuun.txt +++ b/forge-gui/res/cardsfolder/s/sphinx_of_uthuun.txt @@ -4,7 +4,7 @@ Types:Creature Sphinx PT:5/6 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. -SVar:TrigChangeZone:DB$ Dig | DigNum$ 5 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. +SVar:TrigChangeZone:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBGrave SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/s/steam_augury.txt b/forge-gui/res/cardsfolder/s/steam_augury.txt index 7a7e4a1a5f5..19b3100cac0 100644 --- a/forge-gui/res/cardsfolder/s/steam_augury.txt +++ b/forge-gui/res/cardsfolder/s/steam_augury.txt @@ -1,7 +1,7 @@ Name:Steam Augury ManaCost:2 U R Types:Instant -A:SP$ Dig | Cost$ 2 U R | DigNum$ 5 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. +A:SP$ PeekAndReveal | PeekAmount$ 5 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. SVar:DBTwoPiles:DB$ TwoPiles | Chooser$ Opponent | DefinedCards$ Remembered | Separator$ You | ChosenPile$ DBHand | UnchosenPile$ DBGrave | AILogic$ Worst SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/s/stormchaser_chimera.txt b/forge-gui/res/cardsfolder/s/stormchaser_chimera.txt index 132b18335e6..ce12e71798e 100644 --- a/forge-gui/res/cardsfolder/s/stormchaser_chimera.txt +++ b/forge-gui/res/cardsfolder/s/stormchaser_chimera.txt @@ -4,7 +4,7 @@ Types:Creature Chimera PT:2/3 K:Flying A:AB$ Scry | Cost$ 2 U R | ScryNum$ 1 | SubAbility$ DBReveal | SpellDescription$ Scry 1, then reveal the top card of your library. CARDNAME gets +X/+0 until end of turn, where X is that card's mana value. -SVar:DBReveal:DB$ Dig | DigNum$ 1 | Reveal$ True | NoMove$ True | SubAbility$ DBPump +SVar:DBReveal:DB$ PeekAndReveal | PeekAmount$ 1 | NoPeek$ True | SubAbility$ DBPump SVar:DBPump:DB$ Pump | NumAtt$ X SVar:X:Count$TopOfLibraryCMC Oracle:Flying\n{2}{U}{R}: Scry 1, then reveal the top card of your library. Stormchaser Chimera gets +X/+0 until end of turn, where X is that card's mana value. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) diff --git a/forge-gui/res/cardsfolder/s/sword_point_diplomacy.txt b/forge-gui/res/cardsfolder/s/sword_point_diplomacy.txt index 312cd0b6067..c037891eceb 100644 --- a/forge-gui/res/cardsfolder/s/sword_point_diplomacy.txt +++ b/forge-gui/res/cardsfolder/s/sword_point_diplomacy.txt @@ -1,7 +1,7 @@ Name:Sword-Point Diplomacy ManaCost:2 B Types:Sorcery -A:SP$ Dig | Cost$ 2 B | DigNum$ 3 | NoMove$ True | Reveal$ True | RememberRevealed$ True | SubAbility$ DBRepeat | SpellDescription$ Reveal the top three cards of your library. For each of those cards, put that card into your hand unless any opponent pays 3 life. Then exile the rest. +A:SP$ PeekAndReveal | PeekAmount$ 3 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBRepeat | SpellDescription$ Reveal the top three cards of your library. For each of those cards, put that card into your hand unless any opponent pays 3 life. Then exile the rest. SVar:DBRepeat:DB$ RepeatEach | RepeatSubAbility$ DBChangeZone | RepeatCards$ Card.IsRemembered | Zone$ Library | UseImprinted$ True | SubAbility$ PutIntoHand SVar:DBChangeZone:DB$ ChangeZone | Defined$ Imprinted | Origin$ Library | Destination$ Hand | UnlessCost$ PayLife<3> | UnlessPayer$ Opponent | ForgetChanged$ True | StackDescription$ Put [{c:Imprinted}] into the hand SVar:PutIntoHand:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Exile | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/t/talent_of_the_telepath.txt b/forge-gui/res/cardsfolder/t/talent_of_the_telepath.txt index 40d556fd481..eb38ec89e9a 100644 --- a/forge-gui/res/cardsfolder/t/talent_of_the_telepath.txt +++ b/forge-gui/res/cardsfolder/t/talent_of_the_telepath.txt @@ -1,7 +1,7 @@ Name:Talent of the Telepath ManaCost:2 U U Types:Sorcery -A:SP$ Dig | Cost$ 2 U U | ValidTgts$ Player.Opponent | TgtPrompt$ Select target opponent | Reveal$ True | NoMove$ True | DigNum$ 7 | RememberRevealed$ True | SubAbility$ TelepathCast | SpellDescription$ Target opponent reveals the top seven cards of their library. You may cast an instant or sorcery spell from among them without paying its mana cost. Then that player puts the rest into their graveyard. Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may cast up to two instant and/or sorcery spells from among the revealed cards instead of one. +A:SP$ PeekAndReveal | ValidTgts$ Opponent | Reveal$ True | NoPeek$ True | PeekAmount$ 7 | RememberRevealed$ True | SubAbility$ TelepathCast | SpellDescription$ Target opponent reveals the top seven cards of their library. You may cast an instant or sorcery spell from among them without paying its mana cost. Then that player puts the rest into their graveyard. Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may cast up to two instant and/or sorcery spells from among the revealed cards instead of one. SVar:TelepathCast:DB$ Play | ValidZone$ Library | Valid$ Card.IsRemembered | ValidSA$ Instant,Sorcery | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ X | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | Defined$ Remembered SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/t/thran_tome.txt b/forge-gui/res/cardsfolder/t/thran_tome.txt index b8a7fa673ce..c986c4aedfa 100644 --- a/forge-gui/res/cardsfolder/t/thran_tome.txt +++ b/forge-gui/res/cardsfolder/t/thran_tome.txt @@ -1,7 +1,7 @@ Name:Thran Tome ManaCost:4 Types:Artifact -A:AB$ Dig | Cost$ 5 T | DigNum$ 3 | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | SpellDescription$ Reveal the top three cards of your library. Target opponent chooses one of those cards. Put that card into your graveyard, then draw two cards. +A:AB$ PeekAndReveal | Cost$ 5 T | PeekAmount$ 3 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | SpellDescription$ Reveal the top three cards of your library. Target opponent chooses one of those cards. Put that card into your graveyard, then draw two cards. SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | Choices$ Card.IsRemembered | ChoiceZone$ Library | Amount$ 1 | SubAbility$ DBDig | Mandatory$ True | StackDescription$ None SVar:DBDig:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | Defined$ ChosenCard | Shuffle$ False | StackDescription$ None | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | NumCards$ 2 | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/t/thrumming_stone.txt b/forge-gui/res/cardsfolder/t/thrumming_stone.txt index 481a7a5ed28..eab4634529e 100644 --- a/forge-gui/res/cardsfolder/t/thrumming_stone.txt +++ b/forge-gui/res/cardsfolder/t/thrumming_stone.txt @@ -3,7 +3,7 @@ ManaCost:5 Types:Legendary Artifact T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigRem | TriggerDescription$ Spells you cast have ripple 4. (Whenever you cast a spell, you may reveal the top four cards of your library. You may cast spells with the same name as that spell from among the revealed cards without paying their mana costs. Put the rest on the bottom of your library.) SVar:TrigRem:DB$ Pump | ImprintCards$ TriggeredCard | SubAbility$ TrigRipple -SVar:TrigRipple:DB$ Dig | NoMove$ True | DigNum$ 4 | Reveal$ True | RememberRevealed$ True | SubAbility$ DBThrummingRipple +SVar:TrigRipple:DB$ PeekAndReveal | PeekAmount$ 4 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBThrummingRipple SVar:DBThrummingRipple:DB$ Play | Valid$ Card.IsRemembered+sharesNameWith Imprinted | ValidZone$ Library | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ ThrummingMoveToBottom SVar:ThrummingMoveToBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ ThrummingCleanup SVar:ThrummingCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True diff --git a/forge-gui/res/cardsfolder/u/unesh_criosphinx_sovereign.txt b/forge-gui/res/cardsfolder/u/unesh_criosphinx_sovereign.txt index 0e9ce20f7fa..29f49f4b0c0 100644 --- a/forge-gui/res/cardsfolder/u/unesh_criosphinx_sovereign.txt +++ b/forge-gui/res/cardsfolder/u/unesh_criosphinx_sovereign.txt @@ -5,7 +5,7 @@ PT:4/4 K:Flying S:Mode$ ReduceCost | ValidCard$ Sphinx | Type$ Spell | Activator$ You | Amount$ 2 | Description$ Sphinx spells you cast cost {2} less to cast. T:Mode$ ChangesZone | ValidCard$ Card.Self,Card.Sphinx+Other+YouCtrl | Origin$ Any | Destination$ Battlefield | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME or another Sphinx enters the battlefield under your control, reveal the top four cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. -SVar:TrigChangeZone:DB$ Dig | DigNum$ 4 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. +SVar:TrigChangeZone:DB$ PeekAndReveal | PeekAmount$ 4 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard. SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBGrave SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/u/unexpected_results.txt b/forge-gui/res/cardsfolder/u/unexpected_results.txt index 11c9bd38dfa..96317dab9bc 100644 --- a/forge-gui/res/cardsfolder/u/unexpected_results.txt +++ b/forge-gui/res/cardsfolder/u/unexpected_results.txt @@ -2,7 +2,7 @@ Name:Unexpected Results ManaCost:2 G U Types:Sorcery A:SP$ Shuffle | Cost$ 2 G U | Defined$ You | SubAbility$ RevealCard | SpellDescription$ Shuffle your libary, then reveal the top card. If it's a nonland card, you may cast it without paying it's mana cost. If it's a land card, you may put it onto the battlefield and return Unexpected Results to its owner's hand. -SVar:RevealCard:DB$ Dig | Defined$ You | DigNum$ 1 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ CastCard +SVar:RevealCard:DB$ PeekAndReveal | NoPeek$ True | RememberRevealed$ True | SubAbility$ CastCard SVar:CastCard:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | ConditionCompare$ EQ1 | SubAbility$ MoveLand SVar:MoveLand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Battlefield | ConditionDefined$ Remembered | Optional$ True | Imprint$ True | ConditionPresent$ Card.Land | ConditionCompare$ EQ1 | SubAbility$ MoveSelf SVar:MoveSelf:DB$ ChangeZone | Defined$ Parent | Origin$ Stack | Destination$ Hand | ConditionDefined$ Imprinted | ConditionPresent$ Card.Land | ConditionCompare$ EQ1 | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt b/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt index 7fe9a03956d..778f1f970d0 100644 --- a/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt +++ b/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt @@ -47,12 +47,12 @@ SVar:ChangeZone6M:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Cha SVar:Draw7M:DB$ Draw | NumCards$ 3 | SubAbility$ DBChangeZone7M | SpellDescription$ Draw three cards, then put a card from your hand on top of your library. SVar:DBChangeZone7M:DB$ ChangeZone | Origin$ Hand | Destination$ Library | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | SelectPrompt$ Select a card from your hand to put on top of your library SVar:Mill8M:DB$ Mill | ValidTgts$ Player | TgtPrompt$ Select target player | NumCards$ 10 | SpellDescription$ Target player puts the top ten cards of their library into their graveyard. -SVar:Dig9M:DB$ Dig | DigNum$ 5 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBTwoPiles9M | SpellDescription$ Reveal the top five cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order. +SVar:Dig9M:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBTwoPiles9M | SpellDescription$ Reveal the top five cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order. SVar:DBTwoPiles9M:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand9M | UnchosenPile$ DBLibraryBottom9M SVar:DBHand9M:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand SVar:DBLibraryBottom9M:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup SVar:Exile10M:DB$ ChangeZone | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target permanent. -SVar:Reveal11M:DB$ Dig | DigNum$ 5 | Reveal$ True | RememberRevealed$ True | NoMove$ True | SubAbility$ DBChangeCreatures11M | SpellDescription$ Reveal the top five cards of your library. You may put all creature cards and/or land cards from among them into your hand. Put the rest into your graveyard. +SVar:Reveal11M:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBChangeCreatures11M | SpellDescription$ Reveal the top five cards of your library. You may put all creature cards and/or land cards from among them into your hand. Put the rest into your graveyard. SVar:DBChangeCreatures11M:DB$ ChangeZoneAll | ChangeType$ Card.Creature+IsRemembered | Origin$ Library | Destination$ Hand | Optional$ True | OptionQuestion$ Put all creature cards into your hand? | ForgetChanged$ True | SubAbility$ DBChangeLands11M SVar:DBChangeLands11M:DB$ ChangeZoneAll | ChangeType$ Card.Land+IsRemembered | Origin$ Library | Destination$ Hand | Optional$ True | OptionQuestion$ Put all land cards into your hand? | ForgetChanged$ True | SubAbility$ DBChangeRest11M SVar:DBChangeRest11M:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Graveyard | ForgetChanged$ True diff --git a/forge-gui/res/cardsfolder/v/visions.txt b/forge-gui/res/cardsfolder/v/visions.txt index 6caaa291ce7..2959752db7d 100644 --- a/forge-gui/res/cardsfolder/v/visions.txt +++ b/forge-gui/res/cardsfolder/v/visions.txt @@ -1,7 +1,7 @@ Name:Visions ManaCost:W Types:Sorcery -A:SP$ Dig | Cost$ W | ValidTgts$ Player | TgtPrompt$ Select target player | DigNum$ 5 | NoMove$ True | SubAbility$ DBShuffle | SpellDescription$ Look at the top five cards of target player's library. You may then have that player shuffle that library. +A:SP$ Dig | ValidTgts$ Player | PeekAmount$ 5 | NoReveal$ True | SubAbility$ DBShuffle | SpellDescription$ Look at the top five cards of target player's library. You may then have that player shuffle that library. SVar:DBShuffle:DB$ Shuffle | Defined$ Targeted | Optional$ True AI:RemoveDeck:All Oracle:Look at the top five cards of target player's library. You may then have that player shuffle that library. diff --git a/forge-gui/res/cardsfolder/w/wand_of_denial.txt b/forge-gui/res/cardsfolder/w/wand_of_denial.txt index 38d35ac464e..ac9ed1ff56d 100644 --- a/forge-gui/res/cardsfolder/w/wand_of_denial.txt +++ b/forge-gui/res/cardsfolder/w/wand_of_denial.txt @@ -1,7 +1,7 @@ Name:Wand of Denial ManaCost:2 Types:Artifact -A:AB$ Dig | Cost$ T | ValidTgts$ Player | TgtPrompt$ Select target player | DigNum$ 1 | NoMove$ True | RememberRevealed$ True | SubAbility$ DBChangeZone | StackDescription$ SpellDescription | SpellDescription$ Look at the top card of target player's library. If it's a nonland card, you may pay 2 life. If you do, put it into that player's graveyard. +A:AB$ Dig | Cost$ T | ValidTgts$ Player | NoReveal$ True | RememberPeeked$ True | SubAbility$ DBChangeZone | StackDescription$ SpellDescription | SpellDescription$ Look at the top card of target player's library. If it's a nonland card, you may pay 2 life. If you do, put it into that player's graveyard. SVar:DBChangeZone:DB$ Mill | Defined$ Targeted | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | ConditionCompare$ GE1 | UnlessPayer$ You | UnlessCost$ PayLife<2> | UnlessSwitched$ True | StackDescription$ None | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/w/warp_world.txt b/forge-gui/res/cardsfolder/w/warp_world.txt index 90eb655c2b4..80ce3e42bfc 100644 --- a/forge-gui/res/cardsfolder/w/warp_world.txt +++ b/forge-gui/res/cardsfolder/w/warp_world.txt @@ -3,7 +3,7 @@ ManaCost:5 R R R Types:Sorcery A:SP$ RepeatEach | Cost$ 5 R R R | RepeatPlayers$ Player | RepeatSubAbility$ DBShuffle | SubAbility$ ChangePermanent | StackDescription$ SpellDescription | SpellDescription$ Each player shuffles all permanents they own into their library, then reveals that many cards from the top of their library. Each player puts all artifact, creature, and land cards revealed this way onto the battlefield, then does the same for enchantment cards, then puts all cards revealed this way that weren't put onto the battlefield on the bottom of their library. SVar:DBShuffle:DB$ ChangeZoneAll | ChangeType$ Permanent.RememberedPlayerOwn | Imprint$ True | Origin$ Battlefield | Destination$ Library | Shuffle$ True | SubAbility$ DBDig -SVar:DBDig:DB$ Dig | Defined$ Remembered | NoMove$ True | DigNum$ WarpX | RememberRevealed$ True | Reveal$ True | SubAbility$ DBCleanImprint +SVar:DBDig:DB$ PeekAndReveal | Defined$ Remembered | PeekAmount$ WarpX | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBCleanImprint SVar:DBCleanImprint:DB$ Cleanup | ClearImprinted$ True SVar:WarpX:Imprinted$Amount SVar:ChangePermanent:DB$ ChangeZoneAll | ChangeType$ Artifact.IsRemembered,Creature.IsRemembered,Land.IsRemembered | Origin$ Library | Destination$ Battlefield | ForgetChanged$ True | SubAbility$ ChangeEnchantment diff --git a/forge-gui/res/cardsfolder/w/woodvine_elemental.txt b/forge-gui/res/cardsfolder/w/woodvine_elemental.txt index f7342844c31..b49184c55a6 100644 --- a/forge-gui/res/cardsfolder/w/woodvine_elemental.txt +++ b/forge-gui/res/cardsfolder/w/woodvine_elemental.txt @@ -3,10 +3,10 @@ ManaCost:4 G W Types:Creature Elemental PT:4/4 K:Trample -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ Parley — Whenever CARDNAME attacks, each player reveals the top card of their library. For each nonland card revealed this way, attacking creatures you control get +1/+1 until end of turn. Then each player draws a card. -SVar:TrigDig:DB$ Dig | DigNum$ 1 | Defined$ Player | Reveal$ True | NoMove$ True | RememberRevealed$ True | SubAbility$ DBPump +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigReveal | TriggerDescription$ Parley — Whenever CARDNAME attacks, each player reveals the top card of their library. For each nonland card revealed this way, attacking creatures you control get +1/+1 until end of turn. Then each player draws a card. +SVar:TrigReveal:DB$ PeekAndReveal | Defined$ Player | RememberRevealed$ True | SubAbility$ DBPump SVar:DBPump:DB$ PumpAll | ValidCards$ Creature.attacking+YouCtrl | NumAtt$ +X | NumDef$ +X | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 | SubAbility$ DBCleanup +SVar:DBDraw:DB$ Draw | Defined$ Player | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Valid Card.nonLand Oracle:Trample\nParley — Whenever Woodvine Elemental attacks, each player reveals the top card of their library. For each nonland card revealed this way, attacking creatures you control get +1/+1 until end of turn. Then each player draws a card. diff --git a/forge-gui/res/cardsfolder/z/zurs_weirding.txt b/forge-gui/res/cardsfolder/z/zurs_weirding.txt index d3b53723a29..9e9c445d68f 100644 --- a/forge-gui/res/cardsfolder/z/zurs_weirding.txt +++ b/forge-gui/res/cardsfolder/z/zurs_weirding.txt @@ -3,7 +3,7 @@ ManaCost:3 U Types:Enchantment S:Mode$ Continuous | AffectedZone$ Hand | MayLookAt$ Player | Description$ Players play with their hands revealed. R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ Player | ReplaceWith$ RevealTop | Description$ If a player would draw a card, they reveal it instead. Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard. Otherwise, that player draws a card. -SVar:RevealTop:DB$ Dig | Defined$ ReplacedPlayer | DigNum$ 1 | NoMove$ True | Reveal$ True | SubAbility$ DBCheck +SVar:RevealTop:DB$ PeekAndReveal | Defined$ ReplacedPlayer | NoPeek$ True | SubAbility$ DBCheck SVar:DBCheck:DB$ StoreSVar | SVar$ ZurCheck | Type$ Number | Expression$ 1 | UnlessPayer$ NonReplacedPlayer | UnlessCost$ PayLife<2> | SubAbility$ DBMill | StackDescription$ None SVar:DBMill:DB$ Mill | Defined$ ReplacedPlayer | NumCards$ 1 | SubAbility$ DBDraw | ConditionCheckSVar$ ZurCheck | ConditionSVarCompare$ EQ0 | StackDescription$ None SVar:DBDraw:DB$ Draw | Defined$ ReplacedPlayer | NumCards$ 1 | SubAbility$ DBReset | ConditionCheckSVar$ ZurCheck | ConditionSVarCompare$ EQ1 | StackDescription$ that player draws a card diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 26fb11dd58b..e74d178be45 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1982,6 +1982,7 @@ lblChooseCardsInTargetPile=Wähle Karten in Stapel {0}? #MutateEffect.java lblChooseCreatureToBeTop=Welche Kreatur soll oben liegen? #PeekAndRevealEffect.java +lblLookingCardFrom=Karten ansehen von lblRevealingCardFrom=Zeige Karten von lblRevealCardToOtherPlayers=Zeige die Karten den anderen Spielern? #PlayEffect.java diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index c91f20e5b62..d7506c926ce 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1983,6 +1983,7 @@ lblChooseCardsInTargetPile=Choose cards in Pile {0}? #MutateEffect.java lblChooseCreatureToBeTop=Choose which creature to be the top #PeekAndRevealEffect.java +lblLookingCardFrom=Looking at cards from lblRevealingCardFrom=Revealing cards from lblRevealCardToOtherPlayers=Reveal cards to other players? #PlayEffect.java diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 065b70ac98d..05eacdd71ae 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1981,6 +1981,7 @@ lblChooseCardsInTargetPile=¿Elegir las cartas en la Pila {0}? #MutateEffect.java lblChooseCreatureToBeTop=Elige qué criatura estará en la parte superior #PeekAndRevealEffect.java +lblLookingCardFrom=Mirando las cartas de lblRevealingCardFrom=Mostrando las cartas de lblRevealCardToOtherPlayers=¿Mostrar las cartas a otros jugadores? #PlayEffect.java diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 3e8ef304d68..7a469eef79c 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -1980,6 +1980,7 @@ lblChooseCardsInTargetPile=Scegli le carte nella Pila {0}? #MutateEffect.java lblChooseCreatureToBeTop=Scegli quale creatura mettere sopra #PeekAndRevealEffect.java +lblLookingCardFrom=Guardando le carte da lblRevealingCardFrom=Sto mostrando le carte da lblRevealCardToOtherPlayers=Rivela carte agli altri giocatori? #PlayEffect.java @@ -2884,4 +2885,4 @@ lblEdit=Modificare lblWinProper=Vincita lblLossProper=Perdita lblWinLossRatio=Rapporto per perdite vincenti -lblHeal=Guarire \ No newline at end of file +lblHeal=Guarire diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 702f210f30f..e6c96a7e53d 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -1980,6 +1980,7 @@ lblChooseCardsInTargetPile={0}番目の束からカードを選びますか? #MutateEffect.java lblChooseCreatureToBeTop=トップに置けるクリーチャーをを選ぶ #PeekAndRevealEffect.java +lblLookingCardFrom=からカードを見ています lblRevealingCardFrom=カードを公開: lblRevealCardToOtherPlayers=カードを他のプレイヤーに公開しますか? #PlayEffect.java diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index 3102e2e3d4b..79aad5ffc21 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -2042,6 +2042,7 @@ lblChooseCardsInTargetPile=Escolha cartas na pilha {0}? #MutateEffect.java lblChooseCreatureToBeTop=Escolha qual criatura será o topo #PeekAndRevealEffect.java +lblLookingCardFrom=Olhando para cartões de lblRevealingCardFrom=Revelando cartas de lblRevealCardToOtherPlayers=Revelar cartas a outros jogadores? #PlayEffect.java @@ -2970,4 +2971,4 @@ lblEdit=Editar lblWinProper=Vitória lblLossProper=Derrota lblWinLossRatio=Taxa de Vitória Derrota -lblHeal=Curar \ No newline at end of file +lblHeal=Curar diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index c5b578306a7..41b05d47235 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1984,6 +1984,7 @@ lblChooseCardsInTargetPile=选择堆{0}中的牌? #MutateEffect.java lblChooseCreatureToBeTop=选择哪个生物放在上面 #PeekAndRevealEffect.java +lblLookingCardFrom=看卡 lblRevealingCardFrom=展示牌自 lblRevealCardToOtherPlayers=向其他玩家展示牌? #PlayEffect.java diff --git a/forge-gui/res/puzzle/PS_HOU6.pzl b/forge-gui/res/puzzle/PS_HOU6.pzl index c10c02db713..273627286ed 100644 --- a/forge-gui/res/puzzle/PS_HOU6.pzl +++ b/forge-gui/res/puzzle/PS_HOU6.pzl @@ -14,7 +14,7 @@ humanhand=Goblin Dark-Dwellers;Might Beyond Reason;Precise Strike humanlibrary=Blur of Blades|Id:420;Mountain|Id:421|Set:AKH humangraveyard=Kari Zev's Expertise;Renegade Tactics;Shard of Broken Glass;Uncaged Fury humanbattlefield=Mountain|Set:AKH;Mountain|Set:AKH;Mountain|Set:AKH;Mountain|Set:AKH;Blooming Marsh;Blooming Marsh;Blooming Marsh;Grim Flayer;Grim Flayer -humanprecast=Preordain:CustomScript:DB$ Dig | DigNum$ 2 | DestinationZone$ Library | LibraryPosition$ 0 | LibraryPosition2$ 0 | NoMove$ True +humanprecast=Preordain:CustomScript:DB$ PeekAndReveal | PeekAmount$ 2 humanexile= humancommand= aihand=