diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 728357848a6..033e477be2c 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1058,6 +1058,9 @@ public class AbilityUtils { players.add(s.getActivatingPlayer()); } } + else if (defined.startsWith("ExiledWith")) { + addPlayer(Lists.newArrayList(card.getExiledWith(sa)), defined, players); + } else if (defined.startsWith("Remembered")) { addPlayer(card.getRemembered(), defined, players); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 02227fb7ea7..473346ed061 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -717,6 +717,9 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (sa.hasParam("ExileFaceDown") || sa.hasParam("FaceDown")) { movedCard.turnFaceDown(true); } + if (sa.hasParam("ExilePeek")) { + movedCard.addMayLookTemp(player); + } if (sa.hasParam("Foretold")) { movedCard.setForetold(true); movedCard.setForetoldThisTurn(true); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 88c622cd381..6042cbb986b 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -332,6 +332,11 @@ public class DigEffect extends SpellAbilityEffect { if (sa.hasParam("ExileFaceDown")) { c.turnFaceDown(true); } + + if (sa.hasParam("ExilePeek")) { + c.addMayLookTemp(player); + } + if (sa.hasParam("Imprint")) { host.addImprintedCard(c); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index 7b2fd9522d7..8de677e7210 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -70,11 +70,11 @@ public class PlayEffect extends SpellAbilityEffect { amount = AbilityUtils.calculateAmount(source, sa.getParam("Amount"), sa); } + Player controller = activator; if (sa.hasParam("Controller")) { - activator = AbilityUtils.getDefinedPlayers(source, sa.getParam("Controller"), sa).get(0); + controller = AbilityUtils.getDefinedPlayers(source, sa.getParam("Controller"), sa).get(0); } - final Player controller = activator; CardCollection tgtCards; CardCollection showCards = new CardCollection(); @@ -118,7 +118,7 @@ public class PlayEffect extends SpellAbilityEffect { if (sa.hasParam("ChoiceNum")) { final int choicenum = AbilityUtils.calculateAmount(source, sa.getParam("ChoiceNum"), sa); tgtCards = new CardCollection( - activator.getController().chooseCardsForEffect(choice, sa, + controller.getController().chooseCardsForEffect(choice, sa, source + " - " + Localizer.getInstance().getMessage("lblChooseUpTo") + " " + Lang.nounWithNumeral(choicenum, "card"), 0, choicenum, true, null ) ); @@ -166,9 +166,9 @@ public class PlayEffect extends SpellAbilityEffect { final CardCollection saidNoTo = new CardCollection(); while (tgtCards.size() > saidNoTo.size() && saidNoTo.size() < amount && amount > 0) { - activator.getController().tempShowCards(showCards); + controller.getController().tempShowCards(showCards); Card tgtCard = controller.getController().chooseSingleEntityForEffect(tgtCards, sa, Localizer.getInstance().getMessage("lblSelectCardToPlay"), null); - activator.getController().endTempShowCards(); + controller.getController().endTempShowCards(); if (tgtCard == null) { return; } diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 3da2dfb2ddd..29603cf5794 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -895,23 +895,22 @@ public class CardProperty { return Iterables.any(game.getCardsIn(ZoneType.Battlefield), CardPredicates.sharesNameWith(card)); } else if (restriction.equals("ThisTurnCast")) { return Iterables.any(CardUtil.getThisTurnCast("Card", source), CardPredicates.sharesNameWith(card)); - } else if (restriction.equals("MovedToGrave")) { - for (final SpellAbility sa : source.getCurrentState().getNonManaAbilities()) { - final SpellAbility root = sa.getRootAbility(); - if (root != null && (root.getPaidList("MovedToGrave") != null) - && !root.getPaidList("MovedToGrave").isEmpty()) { - final CardCollectionView cards = root.getPaidList("MovedToGrave"); - for (final Card c : cards) { - String name = c.getName(); - if (StringUtils.isEmpty(name)) { - name = c.getPaperCard().getName(); - } - if (card.getName().equals(name)) { - return true; - } + } else if (restriction.equals("MovedToGrave") && spellAbility instanceof SpellAbility) { + final SpellAbility root = ((SpellAbility)spellAbility).getRootAbility(); + if (root != null && (root.getPaidList("MovedToGrave") != null) + && !root.getPaidList("MovedToGrave").isEmpty()) { + final CardCollectionView cards = root.getPaidList("MovedToGrave"); + for (final Card c : cards) { + String name = c.getName(); + if (StringUtils.isEmpty(name)) { + name = c.getPaperCard().getName(); + } + if (card.getName().equals(name)) { + return true; } } } + return false; } else if (restriction.equals("NonToken")) { return !CardLists.filter(game.getCardsIn(ZoneType.Battlefield), diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index dc974593671..214aef7aeaf 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -168,7 +168,7 @@ public final class StaticAbilityContinuous { if (layer == StaticAbilityLayer.TEXT && params.containsKey("GainTextOf")) { final String valid = params.get("GainTextOf"); - CardCollection allValid = CardLists.getValidCards(game.getCardsInGame(), valid, hostCard.getController(), hostCard, null); + CardCollection allValid = CardLists.getValidCards(game.getCardsInGame(), valid, hostCard.getController(), hostCard, stAb); if (allValid.size() > 1) { // TODO: if ever necessary, support gaining text of multiple cards at the same time System.err.println("Error: GainTextOf parameter was not defined as a unique card for " + hostCard); @@ -271,7 +271,7 @@ public final class StaticAbilityContinuous { String keywordDefined = params.get("KeywordDefined"); CardCollectionView definedCards = game.getCardsIn(ZoneType.Battlefield); definedCards = CardLists.getValidCards(definedCards, keywordDefined, hostCard.getController(), - hostCard, null); + hostCard, stAb); for (Card c : definedCards) { final int cmc = c.getCMC(); String y = (input.replace(" from EachCMCAmongDefined", ":Card.cmcEQ" @@ -504,7 +504,7 @@ public final class StaticAbilityContinuous { if ("True".equals(look)) { look = "You"; } - mayLookAt = AbilityUtils.getDefinedPlayers(hostCard, look, null); + mayLookAt = AbilityUtils.getDefinedPlayers(hostCard, look, stAb); } if (params.containsKey("MayPlay")) { controllerMayPlay = true; @@ -567,7 +567,7 @@ public final class StaticAbilityContinuous { } } if (params.containsKey("ControlOpponentsSearchingLibrary")) { - Player cntl = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard, params.get("ControlOpponentsSearchingLibrary"), null), null); + Player cntl = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard, params.get("ControlOpponentsSearchingLibrary"), stAb), null); p.addControlledWhileSearching(se.getTimestamp(), cntl); } @@ -766,7 +766,7 @@ public final class StaticAbilityContinuous { } CardCollectionView cardsIGainedAbilitiesFrom = game.getCardsIn(validZones); - cardsIGainedAbilitiesFrom = CardLists.getValidCards(cardsIGainedAbilitiesFrom, valids, hostCard.getController(), hostCard, null); + cardsIGainedAbilitiesFrom = CardLists.getValidCards(cardsIGainedAbilitiesFrom, valids, hostCard.getController(), hostCard, stAb); for (Card c : cardsIGainedAbilitiesFrom) { for (SpellAbility sa : c.getSpellAbilities()) { @@ -936,7 +936,7 @@ public final class StaticAbilityContinuous { final String[] strngs = params.get("Affected").split(","); for (Player p : controller.getGame().getPlayersInTurnOrder()) { - if (p.isValid(strngs, controller, hostCard, null)) { + if (p.isValid(strngs, controller, hostCard, stAb)) { players.add(p); } } @@ -983,13 +983,13 @@ public final class StaticAbilityContinuous { } else if (params.get("Affected").contains("EquippedBy")) { affectedCards = new CardCollection(hostCard.getEquipping()); } else if (params.get("Affected").equals("EffectSource")) { - affectedCards = new CardCollection(AbilityUtils.getDefinedCards(hostCard, params.get("Affected"), null)); + affectedCards = new CardCollection(AbilityUtils.getDefinedCards(hostCard, params.get("Affected"), stAb)); return affectedCards; } } if (params.containsKey("Affected")) { - affectedCards = CardLists.getValidCards(affectedCards, params.get("Affected").split(","), controller, hostCard, null); + affectedCards = CardLists.getValidCards(affectedCards, params.get("Affected").split(","), controller, hostCard, stAb); } affectedCards.removeAll((List) stAb.getIgnoreEffectCards()); return affectedCards; diff --git a/forge-gui/res/cardsfolder/a/ashiok_nightmare_weaver.txt b/forge-gui/res/cardsfolder/a/ashiok_nightmare_weaver.txt index ad39a6a856f..1aca0aa8a7a 100644 --- a/forge-gui/res/cardsfolder/a/ashiok_nightmare_weaver.txt +++ b/forge-gui/res/cardsfolder/a/ashiok_nightmare_weaver.txt @@ -2,15 +2,9 @@ Name:Ashiok, Nightmare Weaver ManaCost:1 U B Types:Legendary Planeswalker Ashiok Loyalty:3 -A:AB$ Dig | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Opponent | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SpellDescription$ Exile the top three cards of target opponent's library. -A:AB$ ChooseCard | Cost$ SubCounter | Choices$ Creature.cmcEQX+IsRemembered+ExiledWithSource | ChoiceZone$ Exile | Planeswalker$ True | SubAbility$ DBChangeZone | AILogic$ Ashiok | SpellDescription$ Put a creature card with converted mana cost X exiled with CARDNAME onto the battlefield under your control. That creature is a Nightmare in addition to its other types. -SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.cmcEQX+IsRemembered+ExiledWithSource | ChangeNum$ 1 | GainControl$ True | SubAbility$ DBAnimate -SVar:DBAnimate:DB$ Animate | Defined$ ChosenCard | Types$ Nightmare | Permanent$ True | SubAbility$ DBCleanMinus -SVar:DBCleanMinus:DB$ Cleanup | ForgetDefined$ ChosenCard | ClearChosenCard$ True +A:AB$ Dig | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Opponent | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | SpellDescription$ Exile the top three cards of target opponent's library. +A:AB$ ChangeZone | Cost$ SubCounter | Planeswalker$ True | Hidden$ True | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.cmcEQX+ExiledWithSource | ChangeNum$ 1 | GainControl$ True | AnimateSubAbility$ DBAnimate | AILogic$ Ashiok | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Put a creature card exiled with CARDNAME onto the battlefield under your control. +SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Types$ Nightmare | Permanent$ True SVar:X:Count$xPaid -A:AB$ ChangeZoneAll | Cost$ SubCounter<10/LOYALTY> | ChangeType$ Card.OppCtrl | Origin$ Graveyard,Hand | Destination$ Exile | RememberChanged$ True | Planeswalker$ True | Ultimate$ True | SpellDescription$ Exile all cards from all opponents' hands and graveyards. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ ChangeZoneAll | Cost$ SubCounter<10/LOYALTY> | ChangeType$ Card.OppCtrl | Origin$ Graveyard,Hand | Destination$ Exile | Planeswalker$ True | Ultimate$ True | SpellDescription$ Exile all cards from all opponents' hands and graveyards. Oracle:[+2]: Exile the top three cards of target opponent's library.\n[−X]: Put a creature card with converted mana cost X exiled with Ashiok, Nightmare Weaver onto the battlefield under your control. That creature is a Nightmare in addition to its other types.\n[−10]: Exile all cards from all opponents' hands and graveyards. diff --git a/forge-gui/res/cardsfolder/a/azors_gateway_sanctum_of_the_sun.txt b/forge-gui/res/cardsfolder/a/azors_gateway_sanctum_of_the_sun.txt index edf4bb7e2cb..5fe6c289e3e 100644 --- a/forge-gui/res/cardsfolder/a/azors_gateway_sanctum_of_the_sun.txt +++ b/forge-gui/res/cardsfolder/a/azors_gateway_sanctum_of_the_sun.txt @@ -2,16 +2,11 @@ Name:Azor's Gateway ManaCost:2 Types:Legendary Artifact A:AB$ Draw | Cost$ 1 T | NumCards$ 1 | SubAbility$ DBExile | SpellDescription$ Draw a card, then exile a card from your hand. If cards with five or more different converted mana costs are exiled with CARDNAME, you gain 5 life, untap CARDNAME, and transform it. -SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | RememberChanged$ True | SubAbility$ DBGainLife +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | LifeAmount$ 5 | SubAbility$ DBUntap | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE5 SVar:DBUntap:DB$ Untap | Defined$ Self | SubAbility$ DBTransform | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE5 SVar:DBTransform:DB$ SetState | Defined$ Self | Mode$ Transform | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE5 -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:Y:Remembered$DifferentCMC -SVar:Picture:http://www.wizards.com/global/images/magic/general/azors_gateway.jpg +SVar:Y:ExiledWith$DifferentCMC AlternateMode:DoubleFaced Oracle:{1}, {T}: Draw a card, then exile a card from your hand. If cards with five or more different converted mana costs are exiled with Azor's Gateway, you gain 5 life, untap Azor's Gateway, and transform it. @@ -23,5 +18,4 @@ Colors:colorless Types:Land A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ X | SpellDescription$ Add X mana of any one color, where X is your life total. SVar:X:Count$YourLifeTotal -SVar:Picture:http://www.wizards.com/global/images/magic/general/sanctum_of_the_sun.jpg Oracle:(Transforms from Azor's Gateway.)\n{T}: Add X mana of any one color, where X is your life total. diff --git a/forge-gui/res/cardsfolder/b/bane_alley_broker.txt b/forge-gui/res/cardsfolder/b/bane_alley_broker.txt index 68b06f9dce4..5a221e2e20b 100644 --- a/forge-gui/res/cardsfolder/b/bane_alley_broker.txt +++ b/forge-gui/res/cardsfolder/b/bane_alley_broker.txt @@ -3,13 +3,7 @@ ManaCost:1 U B Types:Creature Human Rogue PT:0/3 A:AB$ Draw | Cost$ T | NumCards$ 1 | SubAbility$ DBExile | SpellDescription$ Draw a card, then exile a card from your hand face down. -SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | ExileFaceDown$ True | Mandatory$ True | RememberChanged$ True -S:Mode$ Continuous | Affected$ Card.IsRemembered+ExiledWithSource | AffectedZone$ Exile | MayLookAt$ You | Description$ You may look at cards exiled with CARDNAME. -A:AB$ ChooseCard | Cost$ U B T | Defined$ You | Amount$ 1 | Mandatory$ True | AILogic$ AtLeast1 | ChoiceTitle$ Choose a card to put into your hand | Choices$ Card.IsRemembered+ExiledWithSource | ChoiceZone$ Exile | SubAbility$ MoveChosen | SpellDescription$ Return a card exiled with CARDNAME to its owner's hand. -SVar:MoveChosen:DB$ ChangeZone | Origin$ Exile | Destination$ Hand | Defined$ ChosenCard | ForgetChanged$ True | SubAbility$ DBCleanupChosen -SVar:DBCleanupChosen:DB$ Cleanup | ClearChosenCard$ True -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | ExileFaceDown$ True | Mandatory$ True +S:Mode$ Continuous | Affected$ Card.ExiledWithSource | AffectedZone$ Exile | MayLookAt$ You | Description$ You may look at cards exiled with CARDNAME. +A:AB$ ChangeZone | Cost$ U B T | Hidden$ True | Origin$ Exile | Destination$ Hand | ChangeType$ Creature.ExiledWithSource | ChangeNum$ 1 | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Return a card exiled with CARDNAME to its owner's hand. Oracle:{T}: Draw a card, then exile a card from your hand face down.\nYou may look at cards exiled with Bane Alley Broker.\n{U}{B}, {T}: Return a card exiled with Bane Alley Broker to its owner's hand. diff --git a/forge-gui/res/cardsfolder/b/bomat_courier.txt b/forge-gui/res/cardsfolder/b/bomat_courier.txt index eff88656bdb..8a90aaed183 100644 --- a/forge-gui/res/cardsfolder/b/bomat_courier.txt +++ b/forge-gui/res/cardsfolder/b/bomat_courier.txt @@ -4,12 +4,8 @@ Types:Artifact Creature Construct PT:1/1 K:Haste T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile the top card of your library face down. (You can't look at it.) -SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | ExileFaceDown$ True | NoReveal$ True -A:AB$ ChangeZoneAll | Cost$ R Discard<0/Hand> Sac<1/CARDNAME> | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Hand | AILogic$ DiscardAllAndRetExiled.minAdv2 | SpellDescription$ Put all cards exiled with CARDNAME into their owners' hands. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | NoReveal$ True +A:AB$ ChangeZone | Cost$ R Discard<1/Hand> Sac<1/CARDNAME> | Defined$ ExiledWith | Origin$ Exile | Destination$ Hand | AILogic$ DiscardAllAndRetExiled.minAdv2 | SpellDescription$ Put all cards exiled with CARDNAME into their owners' hands. DeckNeeds:Color$Red AI:RemoveDeck:Random Oracle:Haste\nWhenever Bomat Courier attacks, exile the top card of your library face down. (You can't look at it.)\n{R}, Discard your hand, Sacrifice Bomat Courier: Put all cards exiled with Bomat Courier into their owners' hands. diff --git a/forge-gui/res/cardsfolder/c/chainer_dementia_master.txt b/forge-gui/res/cardsfolder/c/chainer_dementia_master.txt index d3552564736..ac99cfb4c68 100644 --- a/forge-gui/res/cardsfolder/c/chainer_dementia_master.txt +++ b/forge-gui/res/cardsfolder/c/chainer_dementia_master.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Minion PT:3/3 S:Mode$ Continuous | Affected$ Creature.Nightmare | AddPower$ 1 | AddToughness$ 1 | Description$ Nightmare creatures get +1/+1. A:AB$ ChangeZone | Cost$ B B B PayLife<3> | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | TgtPrompt$ Select target creature card in a graveyard | ValidTgts$ Creature | ChangeNum$ 1 | AnimateSubAbility$ DBAnimate | SpellDescription$ Put target creature card from a graveyard onto the battlefield under your control. That creature is black and is a Nightmare in addition to its other creature types. -SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Types$ Nightmare | Colors$ Black | Permanent$ True | OverwriteColors$ True +SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Types$ Nightmare | Colors$ Black | Permanent$ True | OverwriteColors$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigExile | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, exile all Nightmares. SVar:TrigExile:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Nightmare SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt b/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt index 454632f6d19..ca8134f927d 100644 --- a/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt +++ b/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt @@ -4,10 +4,6 @@ Types:Legendary Creature Human Wizard PT:2/3 T:Mode$ SpellCast | ValidCard$ Card.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ ExileTop | TriggerDescription$ Whenever you cast a blue spell, exile the top card of target player's library. T:Mode$ SpellCast | ValidCard$ Card.Black | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ ExileTop | TriggerDescription$ Whenever you cast a black spell, exile the top card of target player's library. -SVar:ExileTop:DB$ Dig | DigNum$ 1 | ChangeNum$ All | ValidTgts$ Player | TgtPrompt$ Choose a player | DestinationZone$ Exile | RememberChanged$ True -S:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith Remembered.ExiledWithSource | Caster$ Opponent | Description$ Your opponents can't cast spells with the same name as a card exiled with CARDNAME. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:ExileTop:DB$ Dig | DigNum$ 1 | ChangeNum$ All | ValidTgts$ Player | TgtPrompt$ Choose a player | DestinationZone$ Exile +S:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith ExiledWith | Caster$ Opponent | Description$ Your opponents can't cast spells with the same name as a card exiled with CARDNAME. Oracle:Whenever you cast a blue spell, exile the top card of target player's library.\nWhenever you cast a black spell, exile the top card of target player's library.\nYour opponents can't cast spells with the same name as a card exiled with Circu, Dimir Lobotomist. diff --git a/forge-gui/res/cardsfolder/c/cold_storage.txt b/forge-gui/res/cardsfolder/c/cold_storage.txt index 706870e99f0..e20f0fe4222 100644 --- a/forge-gui/res/cardsfolder/c/cold_storage.txt +++ b/forge-gui/res/cardsfolder/c/cold_storage.txt @@ -1,13 +1,8 @@ Name:Cold Storage ManaCost:4 Types:Artifact -A:AB$ ChangeZone | Cost$ 3 | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SpellDescription$ Exile target creature you control. -A:AB$ ChangeZoneAll | Cost$ Sac<1/CARDNAME> | ChangeType$ Card.Creature+IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield | GainControl$ True | SubAbility$ DBCleanup | SpellDescription$ Return each creature card exiled with CARDNAME to the battlefield under your control. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True +A:AB$ ChangeZone | Cost$ 3 | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | SpellDescription$ Exile target creature you control. +A:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield | GainControl$ True | SpellDescription$ Return each creature card exiled with CARDNAME to the battlefield under your control. SVar:NonStackingEffect:True AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/cold_storage.jpg Oracle:{3}: Exile target creature you control.\nSacrifice Cold Storage: Return each creature card exiled with Cold Storage to the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/c/colfenors_plans.txt b/forge-gui/res/cardsfolder/c/colfenors_plans.txt index 2eafce7f308..4f422859220 100644 --- a/forge-gui/res/cardsfolder/c/colfenors_plans.txt +++ b/forge-gui/res/cardsfolder/c/colfenors_plans.txt @@ -1,14 +1,10 @@ Name:Colfenor's Plans ManaCost:2 B B Types:Enchantment -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile the top seven cards of your library face down. You may look at the cards exiled with CARDNAME, and you may play lands and cast spells from among those cards. -SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 7 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | ExileFaceDown$ True | NoReveal$ True -S:Mode$ Continuous | Affected$ Card.IsRemembered+ExiledWithSource | AffectedZone$ Exile | MayPlay$ True | MayLookAt$ You | Description$ You may look at the cards exiled with CARDNAME, and you may play lands and cast spells from among those cards. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile the top seven cards of your library face down. +SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 7 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | NoReveal$ True R:Event$ BeginPhase | ActiveZones$ Battlefield | ValidPlayer$ You | Phase$ Draw | Skip$ True | Description$ Skip your draw step. +S:Mode$ Continuous | Affected$ Card.ExiledWithSource | AffectedZone$ Exile | MayPlay$ True | MayLookAt$ You | Description$ You may look at the cards exiled with CARDNAME, and you may play lands and cast spells from among those cards. S:Mode$ CantBeCast | ValidCard$ Card | Caster$ You | NumLimitEachTurn$ 1 | Description$ You can't cast more than one spell each turn. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:When Colfenor's Plans enters the battlefield, exile the top seven cards of your library face down.\nYou may look at the cards exiled with Colfenor's Plans, and you may play lands and cast spells from among those cards.\nSkip your draw step.\nYou can't cast more than one spell each turn. diff --git a/forge-gui/res/cardsfolder/d/dark_impostor.txt b/forge-gui/res/cardsfolder/d/dark_impostor.txt index 412a2d1ac5d..471f60b61bd 100644 --- a/forge-gui/res/cardsfolder/d/dark_impostor.txt +++ b/forge-gui/res/cardsfolder/d/dark_impostor.txt @@ -2,12 +2,7 @@ Name:Dark Impostor ManaCost:2 B Types:Creature Vampire Assassin PT:2/2 -S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainsAbilitiesOf$ Creature.IsRemembered+ExiledWithSource | GainsAbilitiesOfZones$ Exile | Description$ CARDNAME has all activated abilities of all creature cards exiled with it. -A:AB$ ChangeZone | Cost$ 4 B B | ValidTgts$ Creature | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature | SubAbility$ DBCounter | RememberChanged$ True | SpellDescription$ Exile target creature and put a +1/+1 counter on CARDNAME. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainsAbilitiesOf$ Creature.ExiledWithSource | GainsAbilitiesOfZones$ Exile | Description$ CARDNAME has all activated abilities of all creature cards exiled with it. +A:AB$ ChangeZone | Cost$ 4 B B | ValidTgts$ Creature | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature | SubAbility$ DBCounter | SpellDescription$ Exile target creature and put a +1/+1 counter on CARDNAME. SVar:DBCounter:DB$PutCounter | CounterType$ P1P1 | CounterNum$ 1 | Defined$ Self -SVar:Picture:http://www.wizards.com/global/images/magic/general/dark_impostor.jpg Oracle:{4}{B}{B}: Exile target creature and put a +1/+1 counter on Dark Impostor.\nDark Impostor has all activated abilities of all creature cards exiled with it. diff --git a/forge-gui/res/cardsfolder/e/elite_arcanist.txt b/forge-gui/res/cardsfolder/e/elite_arcanist.txt index 3bf354d4d33..ed9aa3e7813 100644 --- a/forge-gui/res/cardsfolder/e/elite_arcanist.txt +++ b/forge-gui/res/cardsfolder/e/elite_arcanist.txt @@ -3,14 +3,8 @@ ManaCost:3 U Types:Creature Human Wizard PT:1/1 T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, you may exile an instant card from your hand. -SVar:TrigExile:DB$ ChangeZone | RememberChanged$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Instant | ChangeNum$ 1 -A:AB$ Play | Cost$ X T | Valid$ Card.IsRemembered+ExiledWithSource | ValidZone$ Exile | Amount$ All | CopyOnce$ True | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SpellDescription$ Copy the exiled card. You may cast the copy without paying its mana cost. X is the converted mana cost of the exiled card. -SVar:X:Remembered$CardManaCost -T:Mode$ ChangesZone | ValidCard$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Any | Execute$ ForgetCard | Static$ True -SVar:ForgetCard:DB$ Cleanup | ForgetDefined$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -#Amount$ All | CopyOnce$ True for Strionic Resonator +SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Instant | ChangeNum$ 1 +A:AB$ Play | Cost$ X T | Valid$ Card.ExiledWithSource | ValidZone$ Exile | Amount$ All | CopyOnce$ True | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SpellDescription$ Copy the exiled card. You may cast the copy without paying its mana cost. X is the converted mana cost of the exiled card. +SVar:X:ExiledWith$CardManaCost AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/elite_arcanist.jpg Oracle:When Elite Arcanist enters the battlefield, you may exile an instant card from your hand.\n{X}, {T}: Copy the exiled card. You may cast the copy without paying its mana cost. X is the converted mana cost of the exiled card. diff --git a/forge-gui/res/cardsfolder/e/endless_sands.txt b/forge-gui/res/cardsfolder/e/endless_sands.txt index 703cb3af83e..5efcaf2cc0b 100644 --- a/forge-gui/res/cardsfolder/e/endless_sands.txt +++ b/forge-gui/res/cardsfolder/e/endless_sands.txt @@ -2,11 +2,6 @@ Name:Endless Sands ManaCost:no cost Types:Land Desert A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. -A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SpellDescription$ Exile target creature you control. -A:AB$ ChangeZoneAll | Cost$ 4 T Sac<1/CARDNAME> | ChangeType$ Card.Creature+IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup | SpellDescription$ Return each creature card exiled with CARDNAME to the battlefield under its owner's control. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/endless_sands.jpg -Oracle:{T}: Add {C}.\n{2}, {T}: Exile target creature you control.\n{4}, {T}, Sacrifice Endless Sands: Return each creature card exiled with Endless Sands to the battlefield under its owner's control. \ No newline at end of file +A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | SpellDescription$ Exile target creature you control. +A:AB$ ChangeZone | Cost$ 4 T Sac<1/CARDNAME> | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield | SpellDescription$ Return each creature card exiled with CARDNAME to the battlefield under its owner's control. +Oracle:{T}: Add {C}.\n{2}, {T}: Exile target creature you control.\n{4}, {T}, Sacrifice Endless Sands: Return each creature card exiled with Endless Sands to the battlefield under its owner's control. diff --git a/forge-gui/res/cardsfolder/g/godsend.txt b/forge-gui/res/cardsfolder/g/godsend.txt index 1477dc83832..58f7024a9bb 100644 --- a/forge-gui/res/cardsfolder/g/godsend.txt +++ b/forge-gui/res/cardsfolder/g/godsend.txt @@ -6,12 +6,7 @@ T:Mode$ Blocks | ValidCard$ Card.EquippedBy | ValidBlocked$ Creature | Execute$ T:Mode$ AttackerBlocked | ValidCard$ Card.EquippedBy | ValidBlocker$ Creature | Execute$ TrigChooseBlockers | OptionalDecider$ You | Secondary$ True | TriggerDescription$ Whenever equipped creature blocks or becomes blocked by one or more creatures, you may exile one of those creatures. SVar:TrigChooseAttackers:DB$ ChooseCard | DefinedCards$ TriggeredAttackers | SubAbility$ DBExile SVar:TrigChooseBlockers:DB$ ChooseCard | DefinedCards$ TriggeredBlockers | SubAbility$ DBExile -SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True -S:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith Remembered.ExiledWithSource | Caster$ Opponent | Description$ Your opponents can't cast spells with the same name as a card exiled with CARDNAME. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Execute$ DBCleanup | Static$ True | Secondary$ True | TriggerDescription$ Forget all remembered cards. -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Exile +S:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith ExiledWith | Caster$ Opponent | Description$ Your opponents can't cast spells with the same name as a card exiled with CARDNAME. K:Equip:3 -SVar:Picture:http://www.wizards.com/global/images/magic/general/godsend.jpg Oracle:Equipped creature gets +3/+3.\nWhenever equipped creature blocks or becomes blocked by one or more creatures, you may exile one of those creatures.\nYour opponents can't cast spells with the same name as a card exiled with Godsend.\nEquip {3} diff --git a/forge-gui/res/cardsfolder/g/grimoire_thief.txt b/forge-gui/res/cardsfolder/g/grimoire_thief.txt index c3b63f50e85..02b56171d30 100644 --- a/forge-gui/res/cardsfolder/g/grimoire_thief.txt +++ b/forge-gui/res/cardsfolder/g/grimoire_thief.txt @@ -3,14 +3,10 @@ ManaCost:U U Types:Creature Merfolk Rogue PT:2/2 T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ Whenever CARDNAME becomes tapped, exile the top three cards of target opponent's library face down. -SVar:TrigExile:DB$ Dig | ValidTgts$ Opponent | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True -S:Mode$ Continuous | Affected$ Card.IsRemembered+ExiledWithSource | AffectedZone$ Exile | MayLookAt$ You | Description$ You may look at cards exiled with CARDNAME. -A:AB$ SetState | Cost$ U Sac<1/CARDNAME> | Defined$ Remembered | Mode$ TurnFace | SubAbility$ DBCounter | SpellDescription$ Turn all cards exiled with CARDNAME face up. Counter all spells with those names. -SVar:DBCounter:DB$ Counter | AllType$ Spell | AllValid$ Card.sharesNameWith Remembered.ExiledWithSource | SubAbility$ DBCleanup -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ Dig | ValidTgts$ Opponent | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True +S:Mode$ Continuous | Affected$ Card.ExiledWithSource | AffectedZone$ Exile | MayLookAt$ You | Description$ You may look at cards exiled with CARDNAME. +A:AB$ SetState | Cost$ U Sac<1/CARDNAME> | Defined$ ExiledWith | Mode$ TurnFace | SubAbility$ DBCounter | SpellDescription$ Turn all cards exiled with CARDNAME face up. Counter all spells with those names. +SVar:DBCounter:DB$ Counter | AllType$ Spell | AllValid$ Card.sharesNameWith ExiledWith | SubAbility$ DBCleanup AI:RemoveDeck:All AI:RemoveDeck:Random Oracle:Whenever Grimoire Thief becomes tapped, exile the top three cards of target opponent's library face down.\nYou may look at cards exiled with Grimoire Thief.\n{U}, Sacrifice Grimoire Thief: Turn all cards exiled with Grimoire Thief face up. Counter all spells with those names. diff --git a/forge-gui/res/cardsfolder/g/gusthas_scepter.txt b/forge-gui/res/cardsfolder/g/gusthas_scepter.txt index d76b9217648..82ac7b90769 100644 --- a/forge-gui/res/cardsfolder/g/gusthas_scepter.txt +++ b/forge-gui/res/cardsfolder/g/gusthas_scepter.txt @@ -1,16 +1,10 @@ Name:Gustha's Scepter ManaCost:0 Types:Artifact -A:AB$ ChangeZone | Cost$ T | ChangeType$ Card | ChangeNum$ 1 | Origin$ Hand | Destination$ Exile | ExileFaceDown$ True | RememberChanged$ True | Mandatory$ True | SubAbility$ DBEffect | SpellDescription$ Exile a card from your hand face down. You may look at it for as long as it remains exiled. -SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STLook | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:STLook:Mode$ Continuous | MayLookAt$ You | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may look at it for as long as it remains exiled. -A:AB$ ChooseCard | Cost$ T | Defined$ You | Amount$ 1 | Mandatory$ True | AILogic$ AtLeast1 | ChoiceTitle$ Choose a card you own to put into your hand | Choices$ Card.IsRemembered+YouOwn+ExiledWithSource | ChoiceZone$ Exile | SubAbility$ MoveChosen | SpellDescription$ Return a card you own exiled with CARDNAME to your hand. -SVar:MoveChosen:DB$ ChangeZone | Origin$ Exile | Destination$ Hand | Defined$ ChosenCard -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBChangeZoneAll | TriggerDescription$ When you lose control of CARDNAME, put all cards exiled with CARDNAME into their owner's graveyard. -T:Mode$ ChangesController | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBChangeZoneAll | Secondary$ True | TriggerDescription$ When you lose control of CARDNAME, put all cards exiled with CARDNAME into their owner's graveyard. -SVar:DBChangeZoneAll:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Exile | Destination$ Graveyard | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ ChangeZone | Cost$ T | ChangeType$ Card | ChangeNum$ 1 | Origin$ Hand | Destination$ Exile | ExileFaceDown$ True | ExilePeek$ True | Mandatory$ True | SpellDescription$ Exile a card from your hand face down. You may look at it for as long as it remains exiled. +A:AB$ ChangeZone | Cost$ T | Hidden$ True | Origin$ Exile | Destination$ Hand | ChangeType$ Creature.ExiledWithSource+YouOwn | ChangeNum$ 1 | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Return a card you own exiled with CARDNAME to your hand. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBChangeZone | TriggerDescription$ When you lose control of CARDNAME, put all cards exiled with CARDNAME into their owner's graveyard. +T:Mode$ ChangesController | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBChangeZone | Secondary$ True | TriggerDescription$ When you lose control of CARDNAME, put all cards exiled with CARDNAME into their owner's graveyard. +SVar:DBChangeZone:DB$ ChangeZone | Defined$ ExiledWith | Origin$ Exile | Destination$ Graveyard AI:RemoveDeck:All Oracle:{T}: Exile a card from your hand face down. You may look at it for as long as it remains exiled.\n{T}: Return a card you own exiled with Gustha's Scepter to your hand.\nWhen you lose control of Gustha's Scepter, put all cards exiled with Gustha's Scepter into their owner's graveyard. diff --git a/forge-gui/res/cardsfolder/h/hedonists_trove.txt b/forge-gui/res/cardsfolder/h/hedonists_trove.txt index 86d2cd6399d..bf0ad40a13d 100644 --- a/forge-gui/res/cardsfolder/h/hedonists_trove.txt +++ b/forge-gui/res/cardsfolder/h/hedonists_trove.txt @@ -2,12 +2,7 @@ Name:Hedonist's Trove ManaCost:5 B B Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile all cards from target opponent's graveyard. -SVar:TrigExile:DB$ ChangeZoneAll | ValidTgts$ Opponent | TgtPrompt$ Select target Opponent | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | IsCurse$ True | RememberChanged$ True -S:Mode$ Continuous | MayPlay$ True | Affected$ Land.IsRemembered+ExiledWithSource | AffectedZone$ Exile | Description$ You may play lands from among cards exiled with CARDNAME. -S:Mode$ Continuous | MayPlay$ True | MayPlayLimit$ 1 | Affected$ Card.nonLand+IsRemembered+ExiledWithSource | AffectedZone$ Exile | Description$ You may play cards exiled with CARDNAME. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/hedonists_trove.jpg +SVar:TrigExile:DB$ ChangeZoneAll | ValidTgts$ Opponent | TgtPrompt$ Select target Opponent | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | IsCurse$ True +S:Mode$ Continuous | MayPlay$ True | Affected$ Land.ExiledWithSource | AffectedZone$ Exile | Description$ You may play lands from among cards exiled with CARDNAME. +S:Mode$ Continuous | MayPlay$ True | MayPlayLimit$ 1 | Affected$ Card.nonLand+ExiledWithSource | AffectedZone$ Exile | Description$ You may cast spells from among cards exiled with CARDNAME. You can't cast more than one spell this way each turn. Oracle:When Hedonist's Trove enters the battlefield, exile all cards from target opponent's graveyard.\nYou may play lands from among cards exiled with Hedonist's Trove.\nYou may cast spells from among cards exiled with Hedonist's Trove. You can't cast more than one spell this way each turn. diff --git a/forge-gui/res/cardsfolder/h/helvault.txt b/forge-gui/res/cardsfolder/h/helvault.txt index a14a479afcd..6a1860f14df 100644 --- a/forge-gui/res/cardsfolder/h/helvault.txt +++ b/forge-gui/res/cardsfolder/h/helvault.txt @@ -1,14 +1,9 @@ Name:Helvault ManaCost:3 Types:Legendary Artifact -A:AB$ ChangeZone | Cost$ 1 T | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SpellDescription$ Exile target creature you control. -A:AB$ ChangeZone | Cost$ 7 T | ValidTgts$ Creature.YouDontCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you don't control | RememberTargets$ True | IsCurse$ True | SpellDescription$ Exile target creature you don't control. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard +A:AB$ ChangeZone | Cost$ 1 T | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | SpellDescription$ Exile target creature you control. +A:AB$ ChangeZone | Cost$ 7 T | ValidTgts$ Creature.YouDontCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you don't control | IsCurse$ True | SpellDescription$ Exile target creature you don't control. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, return all cards exiled with it to the battlefield under their owners' control. -SVar:TrigReturn:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield | Destination$ Battlefield | SubAbility$ DBCleanup -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ExcludedDestinations$ Graveyard | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True +SVar:TrigReturn:DB$ ChangeZone | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield | Destination$ Battlefield AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/helvault.jpg Oracle:{1}, {T}: Exile target creature you control.\n{7}, {T}: Exile target creature you don't control.\nWhen Helvault is put into a graveyard from the battlefield, return all cards exiled with it to the battlefield under their owners' control. diff --git a/forge-gui/res/cardsfolder/i/ice_cauldron.txt b/forge-gui/res/cardsfolder/i/ice_cauldron.txt index e8a51847111..9b1dd62cc04 100644 --- a/forge-gui/res/cardsfolder/i/ice_cauldron.txt +++ b/forge-gui/res/cardsfolder/i/ice_cauldron.txt @@ -1,16 +1,12 @@ Name:Ice Cauldron ManaCost:4 Types:Artifact -A:AB$ PutCounter | Cost$ X T | RememberCostMana$ True | CounterType$ CHARGE | CounterNum$ 1 | CheckSVar$ Y | SVarCompare$ EQ0 | SubAbility$ DBExile | SpellDescription$ You may exile a nonland card from your hand. You may cast that card for as long as it remains exiled. Put a charge counter on CARDNAME and note the type and amount of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on CARDNAME. +A:AB$ PutCounter | Cost$ X T | RememberCostMana$ True | CounterType$ CHARGE | CounterNum$ 1 | PresentDefined$ Self | IsPresent$ Card.Self+counters_EQ0_CHARGE | SubAbility$ DBExile | SpellDescription$ You may exile a nonland card from your hand. You may cast that card for as long as it remains exiled. Put a charge counter on CARDNAME and note the type and amount of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on CARDNAME. SVar:X:Count$xPaid -SVar:Y:Count$CardCounters.CHARGE SVar:DBExile:DB$ ChangeZone | Optional$ True | RememberChanged$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Card.nonLand | ChangeNum$ 1 | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ Remembered | Duration$ Permanent | ForgetOnMoved$ Exile +SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ Remembered | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile -T:Mode$ ChangesZone | ValidCard$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Any | Execute$ ForgetCard | Static$ True -SVar:ForgetCard:DB$ Cleanup | ForgetDefined$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -A:AB$ Mana | Cost$ T SubCounter<1/CHARGE> | Produced$ Special LastNotedType | RestrictValid$ Card.IsRemembered | SpellDescription$ Add CARDNAME's last noted type and amount of mana. Spend this mana only to cast the last card exiled with CARDNAME. +A:AB$ Mana | Cost$ T SubCounter<1/CHARGE> | Produced$ Special LastNotedType | RestrictValid$ Card.ExiledWithSource | SpellDescription$ Add CARDNAME's last noted type and amount of mana. Spend this mana only to cast the last card exiled with CARDNAME. AI:RemoveDeck:All Oracle:{X}, {T}: You may exile a nonland card from your hand. You may cast that card for as long as it remains exiled. Put a charge counter on Ice Cauldron and note the type and amount of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on Ice Cauldron.\n{T}, Remove a charge counter from Ice Cauldron: Add Ice Cauldron's last noted type and amount of mana. Spend this mana only to cast the last card exiled with Ice Cauldron. diff --git a/forge-gui/res/cardsfolder/i/izzet_chemister.txt b/forge-gui/res/cardsfolder/i/izzet_chemister.txt index 217c201aa24..89ed1b97217 100644 --- a/forge-gui/res/cardsfolder/i/izzet_chemister.txt +++ b/forge-gui/res/cardsfolder/i/izzet_chemister.txt @@ -3,13 +3,8 @@ ManaCost:2 R Types:Creature Goblin Wizard PT:1/3 K:Haste -A:AB$ ChangeZone | Cost$ R T | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | TgtPrompt$ Select target instant or sorcery card in your graveyard | RememberChanged$ True | SpellDescription$ Exile target instant or sorcery card from your graveyard. -A:AB$ Play | Cost$ 1 R T Sac<1/CARDNAME> | Valid$ Instant.YouCtrl+ExiledWithSource,Sorcery.YouCtrl+ExiledWithSource | ValidZone$ Exile | WithoutManaCost$ True | Amount$ NumRemembered | Controller$ You | Optional$ True | SpellDescription$ Cast any number of cards exiled with Izzet Chemister without paying their mana costs. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:NumRemembered:Count$ValidExile Instant.YouOwn+ExiledWithSource,Sorcery.YouOwn+ExiledWithSource +A:AB$ ChangeZone | Cost$ R T | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | TgtPrompt$ Select target instant or sorcery card in your graveyard | SpellDescription$ Exile target instant or sorcery card from your graveyard. +A:AB$ Play | Cost$ 1 R T Sac<1/CARDNAME> | Valid$ Instant.YouCtrl+ExiledWithSource,Sorcery.YouCtrl+ExiledWithSource | ValidZone$ Exile | WithoutManaCost$ True | Amount$ NumExiled | Controller$ You | Optional$ True | SpellDescription$ Cast any number of cards exiled with Izzet Chemister without paying their mana costs. +SVar:NumExiled:ExiledWith$Amount AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/izzet_chemister.jpg -Oracle:Haste\n{R}, {T}: Exile target instant or sorcery card from your graveyard.\n{1}{R}, {T}, Sacrifice Izzet Chemister: Cast any number of cards exiled with Izzet Chemister without paying their mana costs. \ No newline at end of file +Oracle:Haste\n{R}, {T}: Exile target instant or sorcery card from your graveyard.\n{1}{R}, {T}, Sacrifice Izzet Chemister: Cast any number of cards exiled with Izzet Chemister without paying their mana costs. diff --git a/forge-gui/res/cardsfolder/j/jeleva_nephalias_scourge.txt b/forge-gui/res/cardsfolder/j/jeleva_nephalias_scourge.txt index 6e4566a8905..a622343b11a 100644 --- a/forge-gui/res/cardsfolder/j/jeleva_nephalias_scourge.txt +++ b/forge-gui/res/cardsfolder/j/jeleva_nephalias_scourge.txt @@ -3,13 +3,9 @@ ManaCost:1 U B R Types:Legendary Creature Vampire Wizard PT:1/3 K:Flying -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, each player exiles the top X cards of their library, where X is the amount of mana spent to cast Jeleva. -SVar:TrigExile:DB$ Dig | Defined$ Player | DigNum$ X | ChangeNum$ All | RememberChanged$ True | DestinationZone$ Exile +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, each player exiles the top X cards of their library, where X is the amount of mana spent to cast NICKNAME. +SVar:TrigExile:DB$ Dig | Defined$ Player | DigNum$ X | ChangeNum$ All | DestinationZone$ Exile SVar:X:Count$CastTotalManaSpent -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPlay | OptionalDecider$ You| TriggerDescription$ Whenever CARDNAME attacks, you may cast an instant or sorcery card exiled with it without paying its mana cost. -SVar:TrigPlay:DB$ Play | ValidZone$ Exile | Valid$ Instant.IsRemembered+ExiledWithSource,Sorcery.IsRemembered+ExiledWithSource | Controller$ You | WithoutManaCost$ True | Amount$ 1 -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPlay | OptionalDecider$ You | TriggerDescription$ Whenever NICKNAME attacks, you may cast an instant or sorcery spell from among cards exiled with Jeleva without paying its mana cost. +SVar:TrigPlay:DB$ Play | ValidZone$ Exile | Valid$ Instant.ExiledWithSource,Sorcery.ExiledWithSource | Controller$ You | WithoutManaCost$ True | Amount$ 1 Oracle:Flying\nWhen Jeleva, Nephalia's Scourge enters the battlefield, each player exiles the top X cards of their library, where X is the amount of mana spent to cast Jeleva.\nWhenever Jeleva attacks, you may cast an instant or sorcery spell from among cards exiled with Jeleva without paying its mana cost. diff --git a/forge-gui/res/cardsfolder/j/jesters_scepter.txt b/forge-gui/res/cardsfolder/j/jesters_scepter.txt index d907deb47ee..44d980871c0 100644 --- a/forge-gui/res/cardsfolder/j/jesters_scepter.txt +++ b/forge-gui/res/cardsfolder/j/jesters_scepter.txt @@ -2,15 +2,7 @@ Name:Jester's Scepter ManaCost:3 Types:Artifact T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile the top five cards of target player's library face down. You may look at those cards for as long as they remain exiled. -SVar:TrigExile:DB$ Dig | ValidTgts$ Player | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True | SubAbility$ DBMayLookAt -SVar:DBMayLookAt:DB$ Effect | StaticAbilities$ SMayLookAt | Triggers$ TForget | RememberObjects$ Remembered | Duration$ Permanent -SVar:SMayLookAt:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | EffectZone$ Command | MayLookAt$ You | Duration$ Permanent -SVar:TForget:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBForget -T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ DBCleanup | Static$ True -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -A:AB$ Counter | Cost$ 2 T ExiledMoveToGrave<1/Card.IsRemembered+ExiledWithSource/card exiled with CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SpellDescription$ Counter target spell if it has the same name as that card. -SVar:X:Targeted$Valid Card.sharesNameWith MovedToGrave +SVar:TrigExile:DB$ Dig | ValidTgts$ Player | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | ExilePeek$ True +A:AB$ Counter | Cost$ 2 T ExiledMoveToGrave<1/Card.ExiledWithSource/card exiled with CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | ConditionDefined$ Targeted | ConditionPresent$ Card.sharesNameWith MovedToGrave | SpellDescription$ Counter target spell if it has the same name as that card. AI:RemoveDeck:All Oracle:When Jester's Scepter enters the battlefield, exile the top five cards of target player's library face down. You may look at those cards for as long as they remain exiled.\n{2}, {T}, Put a card exiled with Jester's Scepter into its owner's graveyard: Counter target spell if it has the same name as that card. diff --git a/forge-gui/res/cardsfolder/k/kaho_minamo_historian.txt b/forge-gui/res/cardsfolder/k/kaho_minamo_historian.txt index 50a96d843df..6b18960c771 100644 --- a/forge-gui/res/cardsfolder/k/kaho_minamo_historian.txt +++ b/forge-gui/res/cardsfolder/k/kaho_minamo_historian.txt @@ -3,14 +3,8 @@ ManaCost:2 U U Types:Legendary Creature Human Wizard PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ Catalogue | TriggerDescription$ When CARDNAME enters the battlefield, search your library for up to three instant cards and exile them. Then shuffle your library. -SVar:Catalogue:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ChangeType$ Instant | ChangeNum$ 3 | RememberChanged$ True | ForgetOtherRemembered$ True -A:AB$ Play | Cost$ X T | Valid$ Card.IsRemembered+ExiledWithSource | ValidSA$ Spell.cmcEQX | ValidZone$ Exile | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True | ForgetTargetRemembered$ True | SpellDescription$ You may cast a spell with converted mana cost X exiled with Kaho without paying its mana cost. -T:Mode$ ChangesZone | ValidCard$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Any | Execute$ ForgetCard | Static$ True -T:Mode$ SpellCast | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ ForgetCard | Static$ True -SVar:ForgetCard:DB$ Cleanup | ForgetDefined$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:Catalogue:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ChangeType$ Instant | ChangeNum$ 3 +A:AB$ Play | Cost$ X T | Valid$ Card.ExiledWithSource | ValidSA$ Spell.cmcEQX | ValidZone$ Exile | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True | SpellDescription$ You may cast a spell with converted mana cost X from among cards exiled with NICKNAME without paying its mana cost. SVar:X:Count$xPaid AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/kaho_minamo_historian.jpg Oracle:When Kaho, Minamo Historian enters the battlefield, search your library for up to three instant cards and exile them. Then shuffle your library.\n{X}, {T}: You may cast a spell with converted mana cost X from among cards exiled with Kaho without paying its mana cost. diff --git a/forge-gui/res/cardsfolder/k/kyren_archive.txt b/forge-gui/res/cardsfolder/k/kyren_archive.txt index a46b5a47a25..c76ef687c27 100644 --- a/forge-gui/res/cardsfolder/k/kyren_archive.txt +++ b/forge-gui/res/cardsfolder/k/kyren_archive.txt @@ -2,10 +2,8 @@ Name:Kyren Archive ManaCost:3 Types:Artifact T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigKyrenExile | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may exile the top card of your library face down. -SVar:TrigKyrenExile:DB$ ChangeZone | Defined$ TopOfLibrary | Origin$ Library | Destination$ Exile | ExileFaceDown$ True | RememberChanged$ True -A:AB$ ChangeZoneAll | Cost$ 5 Discard<1/Hand> Sac<1/CARDNAME> | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Hand | Hidden$ True | AILogic$ DiscardAllAndRetExiled.minAdv2 | SubAbility$ DBKyrenCleanup | SpellDescription$ Put all cards exiled with CARDNAME into their owner's hand. -SVar:DBKyrenCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigKyrenExile:DB$ ChangeZone | Defined$ TopOfLibrary | Origin$ Library | Destination$ Exile | ExileFaceDown$ True +A:AB$ ChangeZone | Cost$ 5 Discard<1/Hand> Sac<1/CARDNAME> | Defined$ ExiledWith | Origin$ Exile | Destination$ Hand | AILogic$ DiscardAllAndRetExiled.minAdv2 | SpellDescription$ Put all cards exiled with CARDNAME into their owners' hands. SVar:AIPreference:DiscardCost$Card AI:RemoveDeck:Random -SVar:Picture:http://www.wizards.com/global/images/magic/general/kyren_archive.jpg Oracle:At the beginning of your upkeep, you may exile the top card of your library face down.\n{5}, Discard your hand, Sacrifice Kyren Archive: Put all cards exiled with Kyren Archive into their owner's hand. diff --git a/forge-gui/res/cardsfolder/m/mindreaver.txt b/forge-gui/res/cardsfolder/m/mindreaver.txt index 5448b4f1817..45d9fcfc3ed 100644 --- a/forge-gui/res/cardsfolder/m/mindreaver.txt +++ b/forge-gui/res/cardsfolder/m/mindreaver.txt @@ -3,12 +3,8 @@ ManaCost:U U Types:Creature Human Wizard PT:2/1 T:Mode$ SpellCast | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Heroic — Whenever you cast a spell that targets CARDNAME, exile the top three cards of target player's library. -SVar:TrigExile:DB$ Dig | ValidTgts$ Player | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True -A:AB$ Counter | Cost$ U U Sac<1/CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell with the same name as a card exiled | ValidTgts$ Card.sharesNameWith Remembered.ExiledWithSource | SpellDescription$ Counter target spell with the same name as a card exiled with CARDNAME. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | Execute$ TrigCleanup | Static$ True -SVar:TrigCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ Dig | ValidTgts$ Player | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile +A:AB$ Counter | Cost$ U U Sac<1/CARDNAME> | TargetType$ Spell | TgtPrompt$ Select target spell with the same name as a card exiled | ValidTgts$ Card.sharesNameWith ExiledWith | SpellDescription$ Counter target spell with the same name as a card exiled with CARDNAME. AI:RemoveDeck:All AI:RemoveDeck:Random Oracle:Heroic — Whenever you cast a spell that targets Mindreaver, exile the top three cards of target player's library.\n{U}{U}, Sacrifice Mindreaver: Counter target spell with the same name as a card exiled with Mindreaver. diff --git a/forge-gui/res/cardsfolder/m/moonring_mirror.txt b/forge-gui/res/cardsfolder/m/moonring_mirror.txt index 0982594e0bb..e1f7295201e 100644 --- a/forge-gui/res/cardsfolder/m/moonring_mirror.txt +++ b/forge-gui/res/cardsfolder/m/moonring_mirror.txt @@ -2,14 +2,10 @@ Name:Moonring Mirror ManaCost:5 Types:Artifact T:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever you draw a card, exile the top card of your library face down. -SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | Defined$ You | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True +SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | Defined$ You | DestinationZone$ Exile | ExileFaceDown$ True T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChangeHandExile | TriggerDescription$ At the beginning of your upkeep, you may exile all cards from your hand face down. If you do, put all other cards you own exiled with CARDNAME into your hand. -SVar:TrigChangeHandExile:DB$ ChangeZoneAll | Origin$ Hand | Destination$ Exile | ExileFaceDown$ True | ChangeType$ Card.YouCtrl | RememberChanged$ True | Imprint$ True | SubAbility$ ChangeBack -SVar:ChangeBack:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered+IsNotImprinted+ExiledWithSource | Origin$ Exile | Destination$ Hand | ForgetChanged$ True | SubAbility$ DBCleanup +SVar:TrigChangeHandExile:DB$ ChangeZoneAll | Origin$ Hand | Destination$ Exile | ExileFaceDown$ True | ChangeType$ Card.YouCtrl | Imprint$ True | SubAbility$ ChangeBack +SVar:ChangeBack:DB$ ChangeZoneAll | ChangeType$ Card.IsNotImprinted+ExiledWithSource | Origin$ Exile | Destination$ Hand | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup2 -SVar:DBCleanup2:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All Oracle:Whenever you draw a card, exile the top card of your library face down.\nAt the beginning of your upkeep, you may exile all cards from your hand face down. If you do, put all other cards you own exiled with Moonring Mirror into your hand. diff --git a/forge-gui/res/cardsfolder/m/muse_vessel.txt b/forge-gui/res/cardsfolder/m/muse_vessel.txt index d9f3a8135e1..b86a17329ac 100644 --- a/forge-gui/res/cardsfolder/m/muse_vessel.txt +++ b/forge-gui/res/cardsfolder/m/muse_vessel.txt @@ -1,15 +1,9 @@ Name:Muse Vessel ManaCost:4 Types:Artifact -A:AB$ ChangeZone | Cost$ 3 T | ValidTgts$ Player | TgtPrompt$ Select target player | SorcerySpeed$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | RememberChanged$ True | Chooser$ Targeted | Hidden$ True | IsCurse$ True | Mandatory$ True | SpellDescription$ Target player exiles a card from their hand. Activate this ability only any time you could cast a sorcery. -A:AB$ ChooseCard | Cost$ 1 | ChoiceZone$ Exile | Choices$ Card.IsRemembered+ExiledWithSource | Amount$ 1 | ChoiceTitle$ Choose a card exiled with Muse Vessel | SubAbility$ DBEffect | AILogic$ Never | SpellDescription$ Choose a card exiled with CARDNAME. You may play that card this turn. -SVar:DBEffect:DB$ Effect | Duration$ EndOfTurn | StaticAbilities$ STPlay | Triggers$ TrigCleanup | SubAbility$ DBCleanup +A:AB$ ChangeZone | Cost$ 3 T | ValidTgts$ Player | TgtPrompt$ Select target player | SorcerySpeed$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | Chooser$ Targeted | Hidden$ True | IsCurse$ True | Mandatory$ True | SpellDescription$ Target player exiles a card from their hand. Activate this ability only any time you could cast a sorcery. +A:AB$ ChooseCard | Cost$ 1 | ChoiceZone$ Exile | Choices$ Card.ExiledWithSource | Amount$ 1 | ChoiceTitle$ Choose a card exiled with Muse Vessel | SubAbility$ DBEffect | AILogic$ Never | SpellDescription$ Choose a card exiled with CARDNAME. You may play that card this turn. +SVar:DBEffect:DB$ Effect | Duration$ EndOfTurn | StaticAbilities$ STPlay | RememberObjects$ ChosenCard | ForgetOnMoved$ Exile | SubAbility$ DBCleanup SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.ChosenCard | AffectedZone$ Exile | Description$ You may play a card this turn. -SVar:TrigCleanup:Mode$ ChangesZone | ValidCard$ Card.ChosenCard | Origin$ Exile | Destination$ Any | TriggerZones$ Command | Execute$ DBExileSelf | Static$ True -SVar:DBExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/muse_vessel.jpg +SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True Oracle:{3}, {T}: Target player exiles a card from their hand. Activate this ability only any time you could cast a sorcery.\n{1}: Choose a card exiled with Muse Vessel. You may play that card this turn. diff --git a/forge-gui/res/cardsfolder/m/myr_welder.txt b/forge-gui/res/cardsfolder/m/myr_welder.txt index 49212d18ca5..a2a17339563 100644 --- a/forge-gui/res/cardsfolder/m/myr_welder.txt +++ b/forge-gui/res/cardsfolder/m/myr_welder.txt @@ -2,11 +2,6 @@ Name:Myr Welder ManaCost:3 Types:Artifact Creature Myr PT:1/4 -S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainsAbilitiesOf$ Card.IsImprinted+ExiledWithSource | GainsAbilitiesOfZones$ Exile | Description$ CARDNAME has all activated abilities of all cards exiled with it. -A:AB$ ChangeZone | Cost$ T | ValidTgts$ Artifact | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Select target artifact | Imprint$ True | PrecostDesc$ Imprint — | SpellDescription$ Exile target artifact card from a graveyard. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetImprinted$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True -SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/myr_welder.jpg +S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainsAbilitiesOf$ Card.ExiledWithSource | GainsAbilitiesOfZones$ Exile | Description$ CARDNAME has all activated abilities of all cards exiled with it. +A:AB$ ChangeZone | Cost$ T | ValidTgts$ Artifact | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Select target artifact | PrecostDesc$ Imprint — | SpellDescription$ Exile target artifact card from a graveyard. Oracle:Imprint — {T}: Exile target artifact card from a graveyard.\nMyr Welder has all activated abilities of all cards exiled with it. diff --git a/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt b/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt index 86968c81b8b..eb9935778b2 100644 --- a/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt +++ b/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt @@ -1,12 +1,9 @@ Name:Profane Procession ManaCost:1 W B Types:Legendary Enchantment -A:AB$ ChangeZone | Cost$ 3 W B | ValidTgts$ Creature | TgtPrompt$ Choose target creature. | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | SubAbility$ DBTransform | SpellDescription$ Exile target creature. Then if there are three or more cards exiled with CARDNAME, transform it. -SVar:DBTransform:DB$ SetState | ConditionDefined$ Remembered | ConditionPresent$ Card.ExiledWithSource | ConditionCompare$ GE3 | Defined$ Self | Mode$ Transform -T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Execute$ DBCleanup | Static$ True | Secondary$ True | TriggerDescription$ Forget all remembered cards. -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ ChangeZone | Cost$ 3 W B | ValidTgts$ Creature | TgtPrompt$ Choose target creature. | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBTransform | SpellDescription$ Exile target creature. Then if there are three or more cards exiled with CARDNAME, transform it. +SVar:DBTransform:DB$ SetState | ConditionDefined$ ExiledWith | ConditionPresent$ Card | ConditionCompare$ GE3 | Defined$ Self | Mode$ Transform AlternateMode:DoubleFaced -SVar:Picture:http://www.wizards.com/global/images/magic/general/profane_procession.jpg Oracle:{3}{W}{B}: Exile target creature. Then if there are three or more cards exiled with Profane Procession, transform it. ALTERNATE @@ -15,7 +12,5 @@ Name:Tomb of the Dusk Rose ManaCost:no cost Types:Legendary Land A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | SpellDescription$ Add one mana of any color. -A:AB$ ChooseCard | Cost$ 2 W B T | Choices$ Creature.IsRemembered+ExiledWithSource | ChoiceZone$ Exile | SubAbility$ DBChangeZone | AILogic$ AtLeast1 | Mandatory$ True | SpellDescription$ Put a creature card exiled with this permanent onto the battlefield under your control. -SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.IsRemembered+ExiledWithSource | ChangeNum$ 1 | GainControl$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/tomb_of_the_dusk_rose.jpg +A:AB$ ChangeZone | Cost$ 2 W B T | Hidden$ True | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.ExiledWithSource | ChangeNum$ 1 | GainControl$ True | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Put a creature card exiled with this permanent onto the battlefield under your control. Oracle:(Transforms from Profane Procession.)\n{T}: Add one mana of any color.\n{2}{W}{B}, {T}: Put a creature card exiled with this permanent onto the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/p/pyxis_of_pandemonium.txt b/forge-gui/res/cardsfolder/p/pyxis_of_pandemonium.txt index 9435782a64c..ff727b804e2 100644 --- a/forge-gui/res/cardsfolder/p/pyxis_of_pandemonium.txt +++ b/forge-gui/res/cardsfolder/p/pyxis_of_pandemonium.txt @@ -1,12 +1,8 @@ Name:Pyxis of Pandemonium ManaCost:1 Types:Artifact -A:AB$ Dig | Cost$ T | Defined$ Player | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | ExileFaceDown$ True | SpellDescription$ Each player exiles the top card of their library face down. -A:AB$ SetState | Cost$ 7 T Sac<1/CARDNAME> | Defined$ Remembered | Mode$ TurnFace | SubAbility$ DBChangeZone | SpellDescription$ Each player turns face up all cards they own exiled with CARDNAME, then puts all permanent cards among them onto the battlefield. -SVar:DBChangeZone:DB$ ChangeZoneAll | ChangeType$ Permanent.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ Dig | Cost$ T | Defined$ Player | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | SpellDescription$ Each player exiles the top card of their library face down. +A:AB$ SetState | Cost$ 7 T Sac<1/CARDNAME> | Defined$ ExiledWith | Mode$ TurnFace | SubAbility$ DBChangeZone | SpellDescription$ Each player turns face up all cards they own exiled with CARDNAME, then puts all permanent cards among them onto the battlefield. +SVar:DBChangeZone:DB$ ChangeZone| Defined$ ExiledWith.Permanent | Origin$ Exile | Destination$ Battlefield AI:RemoveDeck:All Oracle:{T}: Each player exiles the top card of their library face down.\n{7}, {T}, Sacrifice Pyxis of Pandemonium: Each player turns face up all cards they own exiled with Pyxis of Pandemonium, then puts all permanent cards among them onto the battlefield. diff --git a/forge-gui/res/cardsfolder/r/rona_disciple_of_gix.txt b/forge-gui/res/cardsfolder/r/rona_disciple_of_gix.txt index a4a1b51313c..1657f8b1633 100644 --- a/forge-gui/res/cardsfolder/r/rona_disciple_of_gix.txt +++ b/forge-gui/res/cardsfolder/r/rona_disciple_of_gix.txt @@ -3,11 +3,7 @@ ManaCost:1 U B Types:Legendary Creature Human Artificer PT:2/2 T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ HistoricExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may exile target historic card from your graveyard. (Artifacts, legendaries, and Sagas are historic.) -SVar:HistoricExile:DB$ ChangeZone | ValidTgts$ Card.Historic+YouOwn | TgtPrompt$ Select target historic card from your graveyard | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True -S:Mode$ Continuous | MayPlay$ True | Affected$ Card.nonLand+IsRemembered+ExiledWithSource | AffectedZone$ Exile | Description$ You may play cards exiled with CARDNAME. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -A:AB$ Dig | Cost$ 4 T | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SpellDescription$ Exile the top card of your library. +SVar:HistoricExile:DB$ ChangeZone | ValidTgts$ Card.Historic+YouOwn | TgtPrompt$ Select target historic card from your graveyard | Origin$ Graveyard | Destination$ Exile +S:Mode$ Continuous | MayPlay$ True | Affected$ Card.nonLand+ExiledWithSource | AffectedZone$ Exile | Description$ You may cast spells from among cards exiled with NICKNAME. +A:AB$ Dig | Cost$ 4 T | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | SpellDescription$ Exile the top card of your library. Oracle:When Rona, Disciple of Gix enters the battlefield, you may exile target historic card from your graveyard. (Artifacts, legendaries, and Sagas are historic.)\nYou may cast spells from among cards exiled with Rona.\n{4}, {T}: Exile the top card of your library. diff --git a/forge-gui/res/cardsfolder/s/safe_haven.txt b/forge-gui/res/cardsfolder/s/safe_haven.txt index 7027a6c5026..4d2730708bc 100644 --- a/forge-gui/res/cardsfolder/s/safe_haven.txt +++ b/forge-gui/res/cardsfolder/s/safe_haven.txt @@ -1,13 +1,8 @@ Name:Safe Haven ManaCost:no cost Types:Land -A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control. | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | SpellDescription$ Exile target creature you control. +A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control. | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target creature you control. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigReturn | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may sacrifice CARDNAME. If you do, return each card exiled with CARDNAME to the battlefield under its owner's control. -SVar:TrigReturn:AB$ ChangeZoneAll | Cost$ Sac<1/CARDNAME> | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigReturn:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/safe_haven.jpg Oracle:{2}, {T}: Exile target creature you control.\nAt the beginning of your upkeep, you may sacrifice Safe Haven. If you do, return each card exiled with Safe Haven to the battlefield under its owner's control. diff --git a/forge-gui/res/cardsfolder/s/shell_of_the_last_kappa.txt b/forge-gui/res/cardsfolder/s/shell_of_the_last_kappa.txt index 17deb962687..85884dce167 100644 --- a/forge-gui/res/cardsfolder/s/shell_of_the_last_kappa.txt +++ b/forge-gui/res/cardsfolder/s/shell_of_the_last_kappa.txt @@ -1,12 +1,7 @@ Name:Shell of the Last Kappa ManaCost:3 Types:Legendary Artifact -A:AB$ ChangeZone | Cost$ 3 T | Origin$ Stack | Destination$ Exile | TargetValidTargeting$ You | TgtPrompt$ Choose target instant or sorcery spell that targets you | ValidTgts$ Card.Instant,Card.Sorcery | RememberChanged$ True | SpellDescription$ Exile target instant or sorcery spell that targets you. (The spell has no effect.) -A:AB$ Play | Cost$ 3 T Sac<1/CARDNAME> | Valid$ Card.IsRemembered+ExiledWithSource | ValidZone$ Exile | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True | SubAbility$ DBCleanup | SpellDescription$ You may cast a spell from among cards exiled with CARDNAME without paying its mana cost. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ ChangeZone | Cost$ 3 T | Origin$ Stack | Destination$ Exile | TargetValidTargeting$ You | TgtPrompt$ Choose target instant or sorcery spell that targets you | ValidTgts$ Spell.Instant,Spell.Sorcery | SpellDescription$ Exile target instant or sorcery spell that targets you. (The spell has no effect.) +A:AB$ Play | Cost$ 3 T Sac<1/CARDNAME> | Valid$ Card.ExiledWithSource | ValidZone$ Exile | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True | SubAbility$ DBCleanup | SpellDescription$ You may cast a spell from among cards exiled with CARDNAME without paying its mana cost. AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/shell_of_the_last_kappa.jpg Oracle:{3}, {T}: Exile target instant or sorcery spell that targets you. (The spell has no effect.)\n{3}, {T}, Sacrifice Shell of the Last Kappa: You may cast a spell from among cards exiled with Shell of the Last Kappa without paying its mana cost. diff --git a/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt b/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt index d3df15b63a2..948ef0b5fa6 100644 --- a/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt +++ b/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt @@ -4,6 +4,6 @@ Types:Legendary Creature Gorgon PT:7/5 A:AB$ MustBlock | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Target creature blocks CARDNAME this turn if able. A:AB$ ChangeZone | Cost$ B G | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.blockingSource,Creature.blockedBySource | TgtPrompt$ Select target creature blocking Sisters of Stone Death | SpellDescription$ Exile target creature blocking or blocked by CARDNAME. -A:AB$ ChangeZone | Cost$ 2 B | Hidden$ True | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.ExiledWithSource | ChangeNum$ 1 | GainControl$ True | StackDescription$ SpellDescription | SpellDescription$ Put a creature card exiled with CARDNAME onto the battlefield under your control. +A:AB$ ChangeZone | Cost$ 2 B | Hidden$ True | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.ExiledWithSource | ChangeNum$ 1 | GainControl$ True | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Put a creature card exiled with CARDNAME onto the battlefield under your control. Oracle:{G}: Target creature blocks Sisters of Stone Death this turn if able.\n{B}{G}: Exile target creature blocking or blocked by Sisters of Stone Death.\n{2}{B}: Put a creature card exiled with Sisters of Stone Death onto the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/s/spell_queller.txt b/forge-gui/res/cardsfolder/s/spell_queller.txt index 711810c87ed..3fc23ffbb4c 100644 --- a/forge-gui/res/cardsfolder/s/spell_queller.txt +++ b/forge-gui/res/cardsfolder/s/spell_queller.txt @@ -5,12 +5,8 @@ PT:2/3 K:Flash K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target spell with converted mana cost 4 or less. -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigPlay | TriggerController$ TriggeredCardController | TriggerDescription$ When Spell Queller leaves the battlefield, the exiled card's owner may cast that card without paying its mana cost. -SVar:TrigExile:DB$ChangeZone | TargetType$ Spell | ValidTgts$ Card.cmcLE4 | TgtZone$ Stack | Origin$ Stack | Fizzle$ True | Mandatory$ True | Destination$ Exile | IsCurse$ True | TgtPrompt$ Choose target spell with converted mana cost 4 or less | RememberChanged$ True -SVar:TrigPlay:DB$ Play | Defined$ Remembered.ExiledWithSource | Controller$ RememberedOwner | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBCleanup -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Remembered$Amount -SVar:Picture:http://www.wizards.com/global/images/magic/general/spell_queller.jpg +SVar:TrigExile:DB$ ChangeZone | TargetType$ Spell | ValidTgts$ Card.cmcLE4 | TgtZone$ Stack | Origin$ Stack | Fizzle$ True | Mandatory$ True | Destination$ Exile | IsCurse$ True | TgtPrompt$ Choose target spell with converted mana cost 4 or less +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigPlay | TriggerDescription$ When Spell Queller leaves the battlefield, the exiled card's owner may cast that card without paying its mana cost. +# TODO fix it when it exiles cards from multiple players +SVar:TrigPlay:DB$ Play | Defined$ ExiledWith | Controller$ ExiledWithOwner | WithoutManaCost$ True | Optional$ True Oracle:Flash\nFlying\nWhen Spell Queller enters the battlefield, exile target spell with converted mana cost 4 or less.\nWhen Spell Queller leaves the battlefield, the exiled card's owner may cast that card without paying its mana cost. diff --git a/forge-gui/res/cardsfolder/s/synod_sanctum.txt b/forge-gui/res/cardsfolder/s/synod_sanctum.txt index f6b71b52d5a..6459cac5084 100644 --- a/forge-gui/res/cardsfolder/s/synod_sanctum.txt +++ b/forge-gui/res/cardsfolder/s/synod_sanctum.txt @@ -1,12 +1,7 @@ Name:Synod Sanctum ManaCost:1 Types:Artifact -A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Choose target permanent you control. | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | SpellDescription$ Exile target permanent you control. -A:AB$ ChangeZoneAll | Cost$ 2 Sac<1/CARDNAME> | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield | GainControl$ True | SpellDescription$ Return all cards exiled with CARDNAME to the battlefield under your control. -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | ValidCard$ Card.Self | Destination$ Any | Execute$ DBCleanup | Static$ True -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Choose target permanent you control. | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target permanent you control. +A:AB$ ChangeZone | Cost$ 2 Sac<1/CARDNAME> | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield | GainControl$ True | SpellDescription$ Return all cards exiled with CARDNAME to the battlefield under your control. AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/synod_sanctum.jpg Oracle:{2}, {T}: Exile target permanent you control.\n{2}, Sacrifice Synod Sanctum: Return all cards exiled with Synod Sanctum to the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/t/theater_of_horrors.txt b/forge-gui/res/cardsfolder/t/theater_of_horrors.txt index cdebe368331..c78e4963d9c 100644 --- a/forge-gui/res/cardsfolder/t/theater_of_horrors.txt +++ b/forge-gui/res/cardsfolder/t/theater_of_horrors.txt @@ -2,12 +2,8 @@ Name:Theater of Horrors ManaCost:1 B R Types:Enchantment T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, exile the top card of your library. -SVar:TrigExile:DB$ Dig | Defined$ You | DestinationZone$ Exile | DigNum$ 1 | ChangeNum$ All | RememberChanged$ True -S:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | MayPlay$ True | Condition$ PlayerTurn | CheckSVar$ X | Description$ During your turn, if an opponent lost life this turn, you may play lands and cast spells from among cards exiled with CARDNAME. +SVar:TrigExile:DB$ Dig | Defined$ You | DestinationZone$ Exile | DigNum$ 1 | ChangeNum$ All +S:Mode$ Continuous | Affected$ Card.ExiledWithSource | AffectedZone$ Exile | MayPlay$ True | Condition$ PlayerTurn | CheckSVar$ X | Description$ During your turn, if an opponent lost life this turn, you may play lands and cast spells from among cards exiled with CARDNAME. SVar:X:Count$LifeOppsLostThisTurn -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True A:AB$ DealDamage | Cost$ 3 R | ValidTgts$ Opponent,Planeswalker | TgtPrompt$ Select target opponent or planeswalker | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target opponent or planeswalker. Oracle:At the beginning of your upkeep, exile the top card of your library.\nDuring your turn, if an opponent lost life this turn, you may play lands and cast spells from among cards exiled with Theater of Horrors.\n{3}{R}: Theater of Horrors deals 1 damage to target opponent or planeswalker. diff --git a/forge-gui/res/cardsfolder/u/underworld_sentinel.txt b/forge-gui/res/cardsfolder/u/underworld_sentinel.txt index 032b187caba..1c14a9034fb 100755 --- a/forge-gui/res/cardsfolder/u/underworld_sentinel.txt +++ b/forge-gui/res/cardsfolder/u/underworld_sentinel.txt @@ -3,7 +3,7 @@ ManaCost:3 B B Types:Creature Skeleton Soldier PT:4/5 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile target creature card from your graveyard. -SVar:TrigExile:DB$ChangeZone | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | RememberChanged$ True +SVar:TrigExile:DB$ChangeZone | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, put all cards exiled with it onto the battlefield. -SVar:TrigReturn:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Battlefield +SVar:TrigReturn:DB$ ChangeZone | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield Oracle:Whenever Underworld Sentinel attacks, exile target creature card from your graveyard.\nWhen Underworld Sentinel dies, put all cards exiled with it onto the battlefield. diff --git a/forge-gui/res/cardsfolder/v/valakut_exploration.txt b/forge-gui/res/cardsfolder/v/valakut_exploration.txt index 521bf7b0224..15dbcd42bde 100755 --- a/forge-gui/res/cardsfolder/v/valakut_exploration.txt +++ b/forge-gui/res/cardsfolder/v/valakut_exploration.txt @@ -7,7 +7,7 @@ SVar:DBEffect:DB$ Effect | StaticAbilities$ MayPlay | Duration$ Permanent | Forg SVar:MayPlay:Mode$ Continuous | MayPlay$ True | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Exile | Description$ You may play this card for as long as it remains exiled. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigGraveyard | CheckSVar$ Y | SVarCompare$ GT0 | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, if there are cards exiled with CARDNAME, put them into their owner's graveyard, then CARDNAME deals that much damage to each opponent. -SVar:TrigGraveyard:DB$ ChangeZoneAll | ChangeType$ Card.ExiledWithSource | Origin$ Exile | Destination$ Graveyard | RememberChanged$ True | SubAbility$ DBDamageAll +SVar:TrigGraveyard:DB$ ChangeZone | Defined$ ExiledWith | Origin$ Exile | Destination$ Graveyard | RememberChanged$ True | SubAbility$ DBDamageAll SVar:DBDamageAll:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ X | SubAbility$ DBCleanup SVar:X:Remembered$Amount SVar:Y:Count$ValidExile Card.ExiledWithSource diff --git a/forge-gui/res/cardsfolder/v/void_maw.txt b/forge-gui/res/cardsfolder/v/void_maw.txt index a03a01e23eb..2f9a7494580 100644 --- a/forge-gui/res/cardsfolder/v/void_maw.txt +++ b/forge-gui/res/cardsfolder/v/void_maw.txt @@ -4,11 +4,6 @@ Types:Creature Horror PT:4/5 K:Trample R:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | ReplaceWith$ Exile | Description$ If another creature would die, exile it instead. -SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard | SubAbility$ DBRemember | RememberChanged$ True -SVar:DBRemember:DB$ Pump | ConditionDefined$ Remembered | ConditionPresent$ Card.inZoneExile | ConditionCompare$ GE1 -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -A:AB$ Pump | Cost$ ExiledMoveToGrave<1/Card.IsRemembered+ExiledWithSource/card exiled with CARDNAME> | Defined$ Self | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard +A:AB$ Pump | Cost$ ExiledMoveToGrave<1/Card.ExiledWithSource/card exiled with CARDNAME> | Defined$ Self | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn. Oracle:Trample\nIf another creature would die, exile it instead.\nPut a card exiled with Void Maw into its owner's graveyard: Void Maw gets +2/+2 until end of turn. diff --git a/forge-gui/res/cardsfolder/w/wildfire_devils.txt b/forge-gui/res/cardsfolder/w/wildfire_devils.txt index 3bd4e344783..730fccd8762 100644 --- a/forge-gui/res/cardsfolder/w/wildfire_devils.txt +++ b/forge-gui/res/cardsfolder/w/wildfire_devils.txt @@ -6,6 +6,6 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigChoosePlayer | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ When CARDNAME enters the battlefield and at the beginning of your upkeep, choose a player at random. That player exiles an instant or sorcery card from their graveyard. Copy that card. You may cast the copy without paying its mana cost. SVar:TrigChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player | Random$ True | SubAbility$ DBExile SVar:DBExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | DefinedPlayer$ ChosenPlayer | Mandatory$ True | ChangeType$ Instant,Sorcery | ChangeNum$ 1 | Hidden$ True | IsCurse$ True | Chooser$ ChosenPlayer | RememberChanged$ True | SubAbility$ DBPlay -SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered+ExiledWithSource | ValidZone$ Exile | Amount$ All | CopyOnce$ True | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SubAbility$ DBCleanup +SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | Amount$ All | CopyOnce$ True | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenPlayer$ True Oracle:When Wildfire Devils enters the battlefield and at the beginning of your upkeep, choose a player at random. That player exiles an instant or sorcery card from their graveyard. Copy that card. You may cast the copy without paying its mana cost. diff --git a/forge-gui/res/cardsfolder/w/wormfang_crab.txt b/forge-gui/res/cardsfolder/w/wormfang_crab.txt index 49d0c9e2244..4c9b29aebe7 100644 --- a/forge-gui/res/cardsfolder/w/wormfang_crab.txt +++ b/forge-gui/res/cardsfolder/w/wormfang_crab.txt @@ -5,13 +5,11 @@ PT:3/6 K:Unblockable T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ ChooseP | TriggerDescription$ When CARDNAME enters the battlefield, an opponent chooses a permanent you control other than CARDNAME and exiles it. SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | AILogic$ Curse | SubAbility$ TrigChoice -SVar:TrigChoice:DB$ ChooseCard | Defined$ ChosenPlayer | Amount$ 1 | Choices$ Permanent.YouCtrl+Other | RememberChosen$ True | Mandatory$ True | SubAbility$ ExileChoice -SVar:ExileChoice:DB$ ChangeZone | IsCurse$ True | Defined$ Remembered | Origin$ Battlefield | Destination$ Exile -T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget -SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard +SVar:TrigChoice:DB$ ChooseCard | Defined$ ChosenPlayer | Amount$ 1 | Choices$ Permanent.YouCtrl+Other | Mandatory$ True | SubAbility$ ExileChoice +SVar:ExileChoice:DB$ ChangeZone | IsCurse$ True | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True | ClearChosenPlayer$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When CARDNAME leaves the battlefield, return the exiled card to the battlefield under its owner's control. -SVar:TrigReturn:DB$ ChangeZone | Defined$ Remembered.ExiledWithSource | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigReturn:DB$ ChangeZone | Defined$ ExiledWith | Origin$ Exile | Destination$ Battlefield AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/wormfang_crab.jpg Oracle:Wormfang Crab can't be blocked.\nWhen Wormfang Crab enters the battlefield, an opponent chooses a permanent you control other than Wormfang Crab and exiles it.\nWhen Wormfang Crab leaves the battlefield, return the exiled card to the battlefield under its owner's control.