From 34a813baeb8076fa73d85ac8b17116bdccf8b09f Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Mon, 15 Mar 2021 15:36:55 +0000 Subject: [PATCH] ChangeZoneEffect: add UntilHostLeavesPlay to use GameCommand instead of StaticTrigger --- .../src/main/java/forge/game/GameAction.java | 14 ++++++--- .../game/ability/SpellAbilityEffect.java | 30 +++++++++++++++++++ .../ability/effects/ChangeZoneAllEffect.java | 10 ++++++- .../ability/effects/ChangeZoneEffect.java | 16 ++++++++-- .../src/main/java/forge/game/card/Card.java | 18 +++++++++++ .../main/java/forge/game/card/CardView.java | 4 +++ .../forge/trackable/TrackableProperty.java | 1 + .../cardsfolder/a/aligned_hedron_network.txt | 8 +---- .../cardsfolder/a/angel_of_condemnation.txt | 6 +--- .../res/cardsfolder/a/angel_of_sanctions.txt | 9 ++---- ...ynian_missionaries_lunarch_inquisitors.txt | 9 +----- .../res/cardsfolder/b/banisher_priest.txt | 7 +---- .../res/cardsfolder/b/banishing_light.txt | 7 +---- forge-gui/res/cardsfolder/b/brain_maggot.txt | 8 +---- forge-gui/res/cardsfolder/c/cast_out.txt | 9 ++---- .../cardsfolder/c/chained_to_the_rocks.txt | 7 +---- .../res/cardsfolder/c/colossal_whale.txt | 7 +---- .../res/cardsfolder/c/conclave_tribunal.txt | 6 +--- .../res/cardsfolder/c/consulate_crackdown.txt | 8 +---- .../res/cardsfolder/c/crown_of_vigor.txt | 2 +- .../res/cardsfolder/d/deputy_of_detention.txt | 9 ++---- .../res/cardsfolder/f/fairgrounds_warden.txt | 7 +---- .../res/cardsfolder/f/faith_unbroken.txt | 7 +---- forge-gui/res/cardsfolder/g/glass_casket.txt | 6 +--- .../res/cardsfolder/g/glorious_protector.txt | 12 +------- forge-gui/res/cardsfolder/g/grasp_of_fate.txt | 7 +---- .../res/cardsfolder/g/grasping_giant.txt | 7 +---- .../res/cardsfolder/h/hieromancers_cage.txt | 6 +--- .../res/cardsfolder/h/hixus_prison_warden.txt | 6 +--- forge-gui/res/cardsfolder/h/hostage_taker.txt | 9 ++---- .../res/cardsfolder/i/isolation_zone.txt | 7 +---- .../res/cardsfolder/j/journey_to_oblivion.txt | 6 +--- .../res/cardsfolder/k/kitesail_freebooter.txt | 8 +---- forge-gui/res/cardsfolder/o/on_thin_ice.txt | 6 +--- forge-gui/res/cardsfolder/p/prison_realm.txt | 14 ++------- .../res/cardsfolder/q/quarantine_field.txt | 7 +---- forge-gui/res/cardsfolder/s/seal_away.txt | 9 ++---- .../res/cardsfolder/s/sigrid_god_favored.txt | 6 +--- forge-gui/res/cardsfolder/s/silkwrap.txt | 7 +---- forge-gui/res/cardsfolder/s/stasis_snare.txt | 9 ++---- .../res/cardsfolder/s/suspension_field.txt | 7 +---- .../res/cardsfolder/t/thopter_arrest.txt | 9 ++---- .../res/cardsfolder/t/trapjaw_tyrant.txt | 11 ++----- .../y/yannik_scavenging_sentinel.txt | 5 +--- .../main/java/forge/card/CardDetailUtil.java | 7 +++++ 45 files changed, 140 insertions(+), 240 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index d1d224633c9..386c7cec020 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -362,10 +362,6 @@ public class GameAction { } } zoneFrom.remove(c); - if (!zoneTo.is(ZoneType.Exile) && !zoneTo.is(ZoneType.Stack)) { - c.setExiledWith(null); - c.setExiledBy(null); - } // cleanup Encoding if (c.hasEncodedCard()) { @@ -379,6 +375,16 @@ public class GameAction { e.removeEncodedCard(c); } } + + if (!zoneTo.is(ZoneType.Exile) && !zoneTo.is(ZoneType.Stack)) { + Card with = c.getExiledWith(); + if (with != null) { + with.removeUntilLeavesBattlefield(c); + } + + c.setExiledWith(null); + c.setExiledBy(null); + } } // if an adventureCard is put from Stack somewhere else, need to reset to Original State diff --git a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java index c506d8d2162..9ba55ea5a4f 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java @@ -11,6 +11,7 @@ import org.apache.commons.lang3.StringUtils; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.collect.Table; import forge.GameCommand; import forge.card.CardType; @@ -20,6 +21,7 @@ import forge.game.GameObject; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.card.CardFactoryUtil; +import forge.game.card.CardZoneTable; import forge.game.combat.Combat; import forge.game.player.Player; import forge.game.player.PlayerCollection; @@ -613,4 +615,32 @@ public abstract class SpellAbilityEffect { } return combatChanged; } + + protected static GameCommand untilHostLeavesPlayCommand(final CardZoneTable triggerList, final Card hostCard) { + final Game game = hostCard.getGame(); + hostCard.addUntilLeavesBattlefield(triggerList.allCards()); + return new GameCommand() { + + private static final long serialVersionUID = 1L; + + @Override + public void run() { + CardZoneTable untilTable = new CardZoneTable(); + for (Table.Cell cell : triggerList.cellSet()) { + for (Card c : cell.getValue()) { + // better check if card didn't changed zones again? + Card newCard = c.getZone().getCards().get(c); + if (newCard == null || !newCard.equalsWithTimestamp(c)) { + continue; + } + // no cause there? + Card movedCard = game.getAction().moveTo(cell.getRowKey(), newCard, null); + untilTable.put(cell.getColumnKey(), cell.getRowKey(), movedCard); + } + } + untilTable.triggerChangesZoneAll(game); + } + + }; + } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index b33e6c4b51c..08c356ac3f3 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -37,6 +37,11 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { + //if host is not on the battlefield don't apply + if (sa.hasParam("UntilHostLeavesPlay") && !sa.getHostCard().isInPlay()) { + return; + } + final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); final List origin = ZoneType.listValueOf(sa.getParam("Origin")); @@ -260,6 +265,10 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { triggerList.triggerChangesZoneAll(game); + if (sa.hasParam("UntilHostLeavesPlay")) { + source.addLeavesPlayCommand(untilHostLeavesPlayCommand(triggerList, source)); + } + // if Shuffle parameter exists, and any amount of cards were owned by // that player, then shuffle that library if (sa.hasParam("Shuffle")) { @@ -270,5 +279,4 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { } } } - } 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 7e8f35ded82..25e2ff9b3a0 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 @@ -409,6 +409,11 @@ public class ChangeZoneEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { + //if host is not on the battlefield don't apply + if (sa.hasParam("UntilHostLeavesPlay") && !sa.getHostCard().isInPlay()) { + return; + } + if (isHidden(sa) && !sa.hasParam("Ninjutsu")) { changeHiddenOriginResolve(sa); } else { @@ -711,7 +716,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { movedCard.addCounter(cType, cAmount, player, true, counterTable); } - if (sa.hasParam("ExileFaceDown")) { + if (sa.hasParam("ExileFaceDown") || sa.hasParam("FaceDown")) { movedCard.turnFaceDown(true); } if (sa.hasParam("Foretold")) { @@ -744,7 +749,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } - if (remember != null) { hostCard.addRemembered(movedCard); // addRememberedFromCardState ? @@ -797,9 +801,13 @@ public class ChangeZoneEffect extends SpellAbilityEffect { triggerList.triggerChangesZoneAll(game); counterTable.triggerCountersPutAll(game); + if (sa.hasParam("AtEOT") && !triggerList.isEmpty()) { registerDelayedTrigger(sa, sa.getParam("AtEOT"), triggerList.allCards()); } + if (sa.hasParam("UntilHostLeavesPlay")) { + hostCard.addLeavesPlayCommand(untilHostLeavesPlayCommand(triggerList, hostCard)); + } // for things like Gaea's Blessing if (destination.equals(ZoneType.Library) && sa.hasParam("Shuffle") && "True".equals(sa.getParam("Shuffle"))) { @@ -1388,6 +1396,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } triggerList.triggerChangesZoneAll(game); + if (sa.hasParam("UntilHostLeavesPlay")) { + source.addLeavesPlayCommand(untilHostLeavesPlayCommand(triggerList, source)); + } + // remove Controlled While Searching if (controlTimestamp != null) { player.removeController(controlTimestamp); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index f18bffc65e7..a22936abe18 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -98,6 +98,8 @@ public class Card extends GameEntity implements Comparable, IHasSVars { private CardCollection mustBlockCards, gainControlTargets, chosenCards, blockedThisTurn, blockedByThisTurn; private CardCollection mergedCards; + private CardCollection untilLeavesBattlefield = new CardCollection(); + // if this card is attached or linked to something, what card is it currently attached to private Card encoding, cloneOrigin, haunting, effectSource, pairedWith, meldedWith; private Card mergedTo; @@ -7002,4 +7004,20 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } return edition.getBorderColor(); } + + public final void addUntilLeavesBattlefield(final Card c) { + untilLeavesBattlefield = view.addCard(untilLeavesBattlefield, c, TrackableProperty.UntilLeavesBattlefield); + } + public final void addUntilLeavesBattlefield(final Iterable cards) { + untilLeavesBattlefield = view.addCards(untilLeavesBattlefield, cards, TrackableProperty.UntilLeavesBattlefield); + } + public final void removeUntilLeavesBattlefield(final Card c) { + untilLeavesBattlefield = view.removeCard(untilLeavesBattlefield, c, TrackableProperty.UntilLeavesBattlefield); + } + public final void removeUntilLeavesBattlefield(final Iterable cards) { + untilLeavesBattlefield = view.removeCards(untilLeavesBattlefield, cards, TrackableProperty.UntilLeavesBattlefield); + } + public final void clearUntilLeavesBattlefield() { + untilLeavesBattlefield = view.clearCards(untilLeavesBattlefield, TrackableProperty.UntilLeavesBattlefield); + } } diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index 70f1caab37e..cdf23125bcb 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -519,6 +519,10 @@ public class CardView extends GameEntityView { return get(TrackableProperty.EncodedCards); } + public FCollectionView getUntilLeavesBattlefield() { + return get(TrackableProperty.UntilLeavesBattlefield); + } + public GameEntityView getEntityAttachedTo() { return get(TrackableProperty.EntityAttachedTo); } diff --git a/forge-game/src/main/java/forge/trackable/TrackableProperty.java b/forge-game/src/main/java/forge/trackable/TrackableProperty.java index 67a16053d6f..8e3daaf2417 100644 --- a/forge-game/src/main/java/forge/trackable/TrackableProperty.java +++ b/forge-game/src/main/java/forge/trackable/TrackableProperty.java @@ -65,6 +65,7 @@ public enum TrackableProperty { PlayerMayLook(TrackableTypes.PlayerViewCollectionType, FreezeMode.IgnoresFreeze), EntityAttachedTo(TrackableTypes.GameEntityViewType), EncodedCards(TrackableTypes.CardViewCollectionType), + UntilLeavesBattlefield(TrackableTypes.CardViewCollectionType), GainControlTargets(TrackableTypes.CardViewCollectionType), CloneOrigin(TrackableTypes.CardViewType), diff --git a/forge-gui/res/cardsfolder/a/aligned_hedron_network.txt b/forge-gui/res/cardsfolder/a/aligned_hedron_network.txt index 4b9ddae0cbb..1e31c6328ff 100644 --- a/forge-gui/res/cardsfolder/a/aligned_hedron_network.txt +++ b/forge-gui/res/cardsfolder/a/aligned_hedron_network.txt @@ -2,17 +2,11 @@ Name:Aligned Hedron Network ManaCost:4 Types:Artifact T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile all creatures with power 5 or greater until CARDNAME leaves the battlefield. (Those creatures return under their owners' control.) -SVar:TrigExile:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | ChangeType$ Creature.powerGE5 | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those creatures are exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Creature.powerGE5 | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:NeedsToPlayVar:Z GE1 SVar:Z:SVar$Z1/Minus.Z2 SVar:Z1:Count$Valid Creature.OppCtrl+powerGE5+inZoneBattlefield SVar:Z2:Count$Valid Creature.YouCtrl+powerGE5+inZoneBattlefield AI:RemoveDeck:Random -SVar:Picture:http://www.wizards.com/global/images/magic/general/aligned_hedron_network.jpg Oracle:When Aligned Hedron Network enters the battlefield, exile all creatures with power 5 or greater until Aligned Hedron Network leaves the battlefield. (Those creatures return under their owners' control.) diff --git a/forge-gui/res/cardsfolder/a/angel_of_condemnation.txt b/forge-gui/res/cardsfolder/a/angel_of_condemnation.txt index fdde9c7ce0a..254971232f7 100644 --- a/forge-gui/res/cardsfolder/a/angel_of_condemnation.txt +++ b/forge-gui/res/cardsfolder/a/angel_of_condemnation.txt @@ -8,9 +8,5 @@ A:AB$ ChangeZone | Cost$ 2 W T | ValidTgts$ Creature.Other | Mandatory$ True | T SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigBounce | RememberObjects$ RememberedLKI | TriggerDescription$ Return exiled creature to the battlefield. | SubAbility$ DBCleanup SVar:TrigBounce:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ DelayTriggerRememberedLKI SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -A:AB$ ChangeZone | Cost$ 2 W T Exert<1/CARDNAME> | Mandatory$ True | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature | ConditionPresent$ Card.Self | SubAbility$ DBEffect | SpellDescription$ Exile another target creature until CARDNAME leaves the battlefield. (An exerted creature won't untap during your next untap step.) -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +A:AB$ ChangeZone | Cost$ 2 W T Exert<1/CARDNAME> | Mandatory$ True | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature | UntilHostLeavesPlay$ True | SpellDescription$ Exile another target creature until CARDNAME leaves the battlefield. (An exerted creature won't untap during your next untap step.) Oracle:Flying, vigilance\n{2}{W}, {T}: Exile another target creature. Return that card to the battlefield under its owner's control at the beginning of the next end step.\n{2}{W}, {T}, Exert Angel of Condemnation: Exile another target creature until Angel of Condemnation leaves the battlefield. (An exerted creature won't untap during your next untap step.) diff --git a/forge-gui/res/cardsfolder/a/angel_of_sanctions.txt b/forge-gui/res/cardsfolder/a/angel_of_sanctions.txt index 569ced846d9..36a287d0ae6 100644 --- a/forge-gui/res/cardsfolder/a/angel_of_sanctions.txt +++ b/forge-gui/res/cardsfolder/a/angel_of_sanctions.txt @@ -4,12 +4,7 @@ Types:Creature Angel PT:3/4 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may exile target nonland permanent an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True K:Embalm:5 W SVar:PlayMain1:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/angel_of_sanctions.jpg -Oracle:Flying\nWhen Angel of Sanctions enters the battlefield, you may exile target nonland permanent an opponent controls until Angel of Sanctions leaves the battlefield.\nEmbalm {5}{W} ({5}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Angel with no mana cost. Embalm only as a sorcery.) \ No newline at end of file +Oracle:Flying\nWhen Angel of Sanctions enters the battlefield, you may exile target nonland permanent an opponent controls until Angel of Sanctions leaves the battlefield.\nEmbalm {5}{W} ({5}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Angel with no mana cost. Embalm only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/a/avacynian_missionaries_lunarch_inquisitors.txt b/forge-gui/res/cardsfolder/a/avacynian_missionaries_lunarch_inquisitors.txt index dcae50cb5cb..1beff86d697 100644 --- a/forge-gui/res/cardsfolder/a/avacynian_missionaries_lunarch_inquisitors.txt +++ b/forge-gui/res/cardsfolder/a/avacynian_missionaries_lunarch_inquisitors.txt @@ -5,7 +5,6 @@ PT:3/3 T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | IsPresent$ Card.Self+equipped | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ At the beginning of your end step, if CARDNAME is equipped, transform it. SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Transform DeckHints:Type$Equipment -SVar:Picture:http://www.wizards.com/global/images/magic/general/avacynian_missionaries.jpg AlternateMode:DoubleFaced SVar:EquipMe:Once Oracle:At the beginning of your end step, if Avacynian Missionaries is equipped, transform it. @@ -18,11 +17,5 @@ Colors:white Types:Creature Human Cleric PT:4/4 T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ When this creature transforms into CARDNAME, you may exile another target creature until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:Picture:http://www.wizards.com/global/images/magic/general/lunarch_inquisitors.jpg +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature | UntilHostLeavesPlay$ True Oracle:When this creature transforms into Lunarch Inquisitors, you may exile another target creature until Lunarch Inquisitors leaves the battlefield. - diff --git a/forge-gui/res/cardsfolder/b/banisher_priest.txt b/forge-gui/res/cardsfolder/b/banisher_priest.txt index 5ad783987e7..5888ca0825c 100644 --- a/forge-gui/res/cardsfolder/b/banisher_priest.txt +++ b/forge-gui/res/cardsfolder/b/banisher_priest.txt @@ -3,11 +3,6 @@ ManaCost:1 W W Types:Creature Human Cleric PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/banisher_priest.jpg Oracle:When Banisher Priest enters the battlefield, exile target creature an opponent controls until Banisher Priest leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/b/banishing_light.txt b/forge-gui/res/cardsfolder/b/banishing_light.txt index 93da03b222a..0bd3eaa65ea 100644 --- a/forge-gui/res/cardsfolder/b/banishing_light.txt +++ b/forge-gui/res/cardsfolder/b/banishing_light.txt @@ -2,12 +2,7 @@ Name:Banishing Light ManaCost:2 W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target nonland permanent an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/banishing_light.jpg Oracle:When Banishing Light enters the battlefield, exile target nonland permanent an opponent controls until Banishing Light leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/b/brain_maggot.txt b/forge-gui/res/cardsfolder/b/brain_maggot.txt index e65e55bcf66..bb13d54de8b 100644 --- a/forge-gui/res/cardsfolder/b/brain_maggot.txt +++ b/forge-gui/res/cardsfolder/b/brain_maggot.txt @@ -3,12 +3,6 @@ ManaCost:1 B Types:Enchantment Creature Insect PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, target opponent reveals their hand and you choose a nonland card from it. Exile that card until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonLand | ChangeNum$ 1 | IsCurse$ True | ConditionPresent$ Card.Self | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Hand | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonLand | ChangeNum$ 1 | IsCurse$ True | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/brain_maggot.jpg Oracle:When Brain Maggot enters the battlefield, target opponent reveals their hand and you choose a nonland card from it. Exile that card until Brain Maggot leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/c/cast_out.txt b/forge-gui/res/cardsfolder/c/cast_out.txt index b5aa3efa294..db42afe6f50 100644 --- a/forge-gui/res/cardsfolder/c/cast_out.txt +++ b/forge-gui/res/cardsfolder/c/cast_out.txt @@ -3,12 +3,7 @@ ManaCost:3 W Types:Enchantment K:Flash T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target nonland permanent an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True K:Cycling:W SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/cast_out.jpg -Oracle:Flash\nWhen Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield.\nCycling {W} ({W}, Discard this card: Draw a card.) \ No newline at end of file +Oracle:Flash\nWhen Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield.\nCycling {W} ({W}, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/c/chained_to_the_rocks.txt b/forge-gui/res/cardsfolder/c/chained_to_the_rocks.txt index 5ebb76e3c60..c64fd52b790 100644 --- a/forge-gui/res/cardsfolder/c/chained_to_the_rocks.txt +++ b/forge-gui/res/cardsfolder/c/chained_to_the_rocks.txt @@ -4,12 +4,7 @@ Types:Enchantment Aura K:Enchant Mountain you control A:SP$ Attach | Cost$ W | ValidTgts$ Mountain.YouCtrl | TgtPrompt$ Select target Mountain you control | AILogic$ Pump T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:NeedsToPlay:Creature.OppCtrl -SVar:Picture:http://www.wizards.com/global/images/magic/general/chained_to_the_rocks.jpg Oracle:Enchant Mountain you control\nWhen Chained to the Rocks enters the battlefield, exile target creature an opponent controls until Chained to the Rocks leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/c/colossal_whale.txt b/forge-gui/res/cardsfolder/c/colossal_whale.txt index 2e3cfce9da5..00339b4e9b7 100644 --- a/forge-gui/res/cardsfolder/c/colossal_whale.txt +++ b/forge-gui/res/cardsfolder/c/colossal_whale.txt @@ -4,11 +4,6 @@ Types:Creature Whale PT:5/5 K:Islandwalk T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, you may exile target creature defending player controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.DefenderCtrl | TgtPrompt$ Select target creature defending player control | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.DefenderCtrl | TgtPrompt$ Select target creature defending player control | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/colossal_whale.jpg Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nWhenever Colossal Whale attacks, you may exile target creature defending player controls until Colossal Whale leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/c/conclave_tribunal.txt b/forge-gui/res/cardsfolder/c/conclave_tribunal.txt index 05ec9002537..b2d008c2c74 100644 --- a/forge-gui/res/cardsfolder/c/conclave_tribunal.txt +++ b/forge-gui/res/cardsfolder/c/conclave_tribunal.txt @@ -3,10 +3,6 @@ ManaCost:3 W Types:Enchantment K:Convoke T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target nonland permanent an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True SVar:OblivionRing:TRUE Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nWhen Conclave Tribunal enters the battlefield, exile target nonland permanent an opponent controls until Conclave Tribunal leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/c/consulate_crackdown.txt b/forge-gui/res/cardsfolder/c/consulate_crackdown.txt index 2638e69db7c..fab8c3a93a8 100644 --- a/forge-gui/res/cardsfolder/c/consulate_crackdown.txt +++ b/forge-gui/res/cardsfolder/c/consulate_crackdown.txt @@ -2,15 +2,9 @@ Name:Consulate Crackdown ManaCost:3 W W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile all artifacts your opponents control until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | ChangeType$ Artifact.OppCtrl | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those artifacts are exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Artifact.OppCtrl | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:NeedsToPlayVar:Z GE2 SVar:Z:Count$Valid Artifact.OppCtrl AI:RemoveDeck:Random -SVar:Picture:http://www.wizards.com/global/images/magic/general/consulate_crackdown.jpg Oracle:When Consulate Crackdown enters the battlefield, exile all artifacts your opponents control until Consulate Crackdown leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/c/crown_of_vigor.txt b/forge-gui/res/cardsfolder/c/crown_of_vigor.txt index 621ea311851..33719483452 100644 --- a/forge-gui/res/cardsfolder/c/crown_of_vigor.txt +++ b/forge-gui/res/cardsfolder/c/crown_of_vigor.txt @@ -5,6 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1. A:AB$ Pump | Cost$ Sac<1/CARDNAME> | Defined$ AttachedBy Sacrificed | NumAtt$ 1 | NumDef$ 1 | SubAbility$ DBPumpAll | SpellDescription$ Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn. -SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.Other+sharesCreatureTypeWith AttachedBy Sacrificed | NumAtt$ 1 | NumDef$ 1 +SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.NotDefinedAttachedBy Sacrificed+sharesCreatureTypeWith AttachedBy Sacrificed | NumAtt$ 1 | NumDef$ 1 AI:RemoveDeck:All Oracle:Enchant creature\nEnchanted creature gets +1/+1.\nSacrifice Crown of Vigor: Enchanted creature and other creatures that share a creature type with it get +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/d/deputy_of_detention.txt b/forge-gui/res/cardsfolder/d/deputy_of_detention.txt index 4a12213e1c9..6de82d128a9 100644 --- a/forge-gui/res/cardsfolder/d/deputy_of_detention.txt +++ b/forge-gui/res/cardsfolder/d/deputy_of_detention.txt @@ -3,11 +3,6 @@ ManaCost:1 W U Types:Creature Vedalken Wizard PT:1/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target nonland permanent an opponent controls and all other nonland permanents that player controls with the same name as that permanent until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | RememberTargets$ True | SubAbility$ DBChangeZoneAll -SVar:DBChangeZoneAll:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Remembered.sameName+ControlledBy TargetedOrController | ConditionPresent$ Card.Self | RememberChanged$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those permanents are exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | SubAbility$ DBChangeZoneAll | UntilHostLeavesPlay$ True +SVar:DBChangeZoneAll:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Permanent.nonLand+NotDefinedTargeted+sharesNameWith Targeted+ControlledBy TargetedOrController | UntilHostLeavesPlay$ True Oracle:When Deputy of Detention enters the battlefield, exile target nonland permanent an opponent controls and all other nonland permanents that player controls with the same name as that permanent until Deputy of Detention leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/f/fairgrounds_warden.txt b/forge-gui/res/cardsfolder/f/fairgrounds_warden.txt index 6ebcea92aac..91c2498c367 100644 --- a/forge-gui/res/cardsfolder/f/fairgrounds_warden.txt +++ b/forge-gui/res/cardsfolder/f/fairgrounds_warden.txt @@ -3,11 +3,6 @@ ManaCost:2 W Types:Creature Dwarf Soldier PT:1/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/fairgrounds_warden.jpg Oracle:When Fairgrounds Warden enters the battlefield, exile target creature an opponent controls until Fairgrounds Warden leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/f/faith_unbroken.txt b/forge-gui/res/cardsfolder/f/faith_unbroken.txt index 54bb21c096d..58d61490fc5 100644 --- a/forge-gui/res/cardsfolder/f/faith_unbroken.txt +++ b/forge-gui/res/cardsfolder/f/faith_unbroken.txt @@ -4,12 +4,7 @@ Types:Enchantment Aura K:Enchant creature you control A:SP$ Attach | Cost$ 3 W | ValidTgts$ Creature | AILogic$ Pump T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | Description$ Enchanted creature gets +2/+2. -SVar:Picture:http://www.wizards.com/global/images/magic/general/faith_unbroken.jpg Oracle:Enchant creature you control\nWhen Faith Unbroken enters the battlefield, exile target creature an opponent controls until Faith Unbroken leaves the battlefield.\nEnchanted creature gets +2/+2. diff --git a/forge-gui/res/cardsfolder/g/glass_casket.txt b/forge-gui/res/cardsfolder/g/glass_casket.txt index 3e270a172c2..5970f030a5b 100644 --- a/forge-gui/res/cardsfolder/g/glass_casket.txt +++ b/forge-gui/res/cardsfolder/g/glass_casket.txt @@ -2,11 +2,7 @@ Name:Glass Casket ManaCost:1 W Types:Artifact T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls with converted mana cost 3 or less until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl+cmcLE3 | TgtPrompt$ Select target creature an opponent controls with converted mana cost 3 or less | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl+cmcLE3 | TgtPrompt$ Select target creature an opponent controls with converted mana cost 3 or less | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:NeedsToPlay:Creature.OppCtrl+cmcLE3 Oracle:When Glass Casket enters the battlefield, exile target creature an opponent controls with converted mana cost 3 or less until Glass Casket leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/g/glorious_protector.txt b/forge-gui/res/cardsfolder/g/glorious_protector.txt index f7796e22b81..ecf075f3fa0 100644 --- a/forge-gui/res/cardsfolder/g/glorious_protector.txt +++ b/forge-gui/res/cardsfolder/g/glorious_protector.txt @@ -5,17 +5,7 @@ PT:3/4 K:Flash K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, you may exile any number of other non-Angel creatures you control until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | Hidden$ True | ChangeType$ Creature.nonAngel+YouCtrl | ChangeNum$ MaxTgts | SelectPrompt$ Choose any number of non-Angel creatures you control | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ RememberedCard | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -#Triggers to forget remembered on this -T:Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ Exile | Destination$ Any | TriggerZones$ Battlefield | Static$ True | Execute$ TrigForget -SVar:TrigForget:DB$ Pump | ForgetObjects$ TriggeredCard -T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Static$ True | Execute$ TrigForgetAll -SVar:TrigForgetAll:DB$ Cleanup | ClearRemembered$ True -SVar:X:Count$ValidExile Card.IsRemembered+ExiledWithSource/Times.2 +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | Hidden$ True | ChangeType$ Creature.nonAngel+YouCtrl | ChangeNum$ MaxTgts | SelectPrompt$ Choose any number of non-Angel creatures you control | UntilHostLeavesPlay$ True SVar:MaxTgts:Count$Valid Creature.nonAngel+YouCtrl AI:RemoveDeck:Random K:Foretell:2 W diff --git a/forge-gui/res/cardsfolder/g/grasp_of_fate.txt b/forge-gui/res/cardsfolder/g/grasp_of_fate.txt index f147268125c..dcd711bc2b4 100644 --- a/forge-gui/res/cardsfolder/g/grasp_of_fate.txt +++ b/forge-gui/res/cardsfolder/g/grasp_of_fate.txt @@ -2,13 +2,8 @@ Name:Grasp of Fate ManaCost:1 W W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, for each opponent, exile up to one target nonland permanent that player controls until CARDNAME leaves the battlefield. (Those permanents return under their owners' control.) -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | TgtPrompt$ Select up to one target nonland permanent each opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those permanents are exiled until EFFECTSOURCE leaves the battlefield. -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | TgtPrompt$ Select up to one target nonland permanent each opponent controls | UntilHostLeavesPlay$ True SVar:OneEach:PlayerCountOpponents$Amount SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/grasp_of_fate.jpg Oracle:When Grasp of Fate enters the battlefield, for each opponent, exile up to one target nonland permanent that player controls until Grasp of Fate leaves the battlefield. (Those permanents return under their owners' control.) diff --git a/forge-gui/res/cardsfolder/g/grasping_giant.txt b/forge-gui/res/cardsfolder/g/grasping_giant.txt index a18d49c90a3..bf6f6315546 100644 --- a/forge-gui/res/cardsfolder/g/grasping_giant.txt +++ b/forge-gui/res/cardsfolder/g/grasping_giant.txt @@ -4,10 +4,5 @@ Types:Creature Giant PT:5/7 K:Vigilance T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ TrigExile | TriggerDescription$ Whenever CARDNAME becomes blocked by a creature, exile that creature until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredBlockerLKICopy | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredBlockerLKICopy | Origin$ Battlefield | Destination$ Exile | UntilHostLeavesPlay$ True Oracle:Vigilance\nWhenever Grasping Giant becomes blocked by a creature, exile that creature until Grasping Giant leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/h/hieromancers_cage.txt b/forge-gui/res/cardsfolder/h/hieromancers_cage.txt index 23aba5b0876..a4719227a5b 100644 --- a/forge-gui/res/cardsfolder/h/hieromancers_cage.txt +++ b/forge-gui/res/cardsfolder/h/hieromancers_cage.txt @@ -2,11 +2,7 @@ Name:Hieromancer's Cage ManaCost:3 W Types:Enchantment T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target nonland permanent an opponent controls until Hieromancer's Cage leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | SubAbility$ DBEffect | ConditionPresent$ Card.Self -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE Oracle:When Hieromancer's Cage enters the battlefield, exile target nonland permanent an opponent controls until Hieromancer's Cage leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/h/hixus_prison_warden.txt b/forge-gui/res/cardsfolder/h/hixus_prison_warden.txt index 9bc2d8d7ead..a85c8b88ca0 100644 --- a/forge-gui/res/cardsfolder/h/hixus_prison_warden.txt +++ b/forge-gui/res/cardsfolder/h/hixus_prison_warden.txt @@ -4,10 +4,6 @@ Types:Legendary Creature Human Soldier PT:4/4 K:Flash T:Mode$ DamageDone | ValidSource$ Creature | ValidTarget$ You | CombatDamage$ True | IsPresent$ Card.Self+ThisTurnEntered | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature deals combat damage to you, if CARDNAME entered the battlefield this turn, exile that creature until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | Defined$ TriggeredSourceLKICopy | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ TriggeredCard | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ You | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | Defined$ TriggeredSourceLKICopy | UntilHostLeavesPlay$ True SVar:AmbushAI:BlockOnly Oracle:Flash (You may cast this spell any time you could cast an instant.)\nWhenever a creature deals combat damage to you, if Hixus, Prison Warden entered the battlefield this turn, exile that creature until Hixus leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/h/hostage_taker.txt b/forge-gui/res/cardsfolder/h/hostage_taker.txt index 289d0bc5c50..8183c5122cd 100644 --- a/forge-gui/res/cardsfolder/h/hostage_taker.txt +++ b/forge-gui/res/cardsfolder/h/hostage_taker.txt @@ -3,15 +3,10 @@ ManaCost:2 U B Types:Creature Human Pirate PT:2/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile another target creature or artifact until CARDNAME leaves the battlefield. You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any type to cast that spell. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Artifact.Other,Creature.Other | TgtPrompt$ Select another target artifact or creature | ConditionPresent$ Card.Self | RememberChanged$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | Triggers$ ComeBack,TriggerCastHT | RememberObjects$ Remembered | ImprintCards$ Self | Duration$ Permanent | SubAbility$ DBCleanup | SpellDescription$ You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any type to cast that spell. +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.Other,Artifact.Other | TgtPrompt$ Select another target creature or artifact | UntilHostLeavesPlay$ True | RememberChanged$ True | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ Remembered | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup SVar:STPlay:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may cast that card and you may spend mana as though it were mana of any type to cast it. -SVar:TriggerCastHT:Mode$ SpellCast | ValidCard$ Card.IsRemembered | TriggerZones$ Command | Execute$ TrigRemoveSelf | Static$ True -SVar:TrigRemoveSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That artifact or creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ TrigRemoveSelf SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:PlayMain1:TRUE SVar:NeedsToPlay:Artifact.OppCtrl,Creature.OppCtrl -SVar:Picture:http://www.wizards.com/global/images/magic/general/hostage_taker.jpg Oracle:When Hostage Taker enters the battlefield, exile another target creature or artifact until Hostage Taker leaves the battlefield. You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any type to cast that spell. diff --git a/forge-gui/res/cardsfolder/i/isolation_zone.txt b/forge-gui/res/cardsfolder/i/isolation_zone.txt index 07564b12bb8..dbb2ca72103 100644 --- a/forge-gui/res/cardsfolder/i/isolation_zone.txt +++ b/forge-gui/res/cardsfolder/i/isolation_zone.txt @@ -2,12 +2,7 @@ Name:Isolation Zone ManaCost:2 W W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature or enchantment an opponent controls until CARDNAME leaves the battlefield. (That permanent returns under its owner's control.) -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl,Enchantment.OppCtrl | TgtPrompt$ Select target creature or enchantment an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl,Enchantment.OppCtrl | TgtPrompt$ Select target creature or enchantment an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/isolation_zone.jpg Oracle:When Isolation Zone enters the battlefield, exile target creature or enchantment an opponent controls until Isolation Zone leaves the battlefield. (That permanent returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/j/journey_to_oblivion.txt b/forge-gui/res/cardsfolder/j/journey_to_oblivion.txt index 7b910ad7ebb..26c1b5be828 100755 --- a/forge-gui/res/cardsfolder/j/journey_to_oblivion.txt +++ b/forge-gui/res/cardsfolder/j/journey_to_oblivion.txt @@ -3,11 +3,7 @@ ManaCost:4 W Types:Enchantment S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ X | EffectZone$ All | Description$ This spell costs {1} less to cast for each creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.) T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target nonland permanent an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ This nonland permanent is exiled until EFFECTSOURCE leaves the battlefield. -SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ Remembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE SVar:X:Count$Party diff --git a/forge-gui/res/cardsfolder/k/kitesail_freebooter.txt b/forge-gui/res/cardsfolder/k/kitesail_freebooter.txt index 6d48d2d4e38..501b915833a 100644 --- a/forge-gui/res/cardsfolder/k/kitesail_freebooter.txt +++ b/forge-gui/res/cardsfolder/k/kitesail_freebooter.txt @@ -4,12 +4,6 @@ Types:Creature Human Pirate PT:1/2 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, target opponent reveals their hand. You choose a noncreature, nonland card from it. Exile that card until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonCreature+nonLand | ChangeNum$ 1 | IsCurse$ True | ConditionPresent$ Card.Self | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Remembered | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Hand | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonCreature+nonLand | ChangeNum$ 1 | IsCurse$ True | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/kitesail_freebooter.jpg Oracle:Flying\nWhen Kitesail Freebooter enters the battlefield, target opponent reveals their hand. You choose a noncreature, nonland card from it. Exile that card until Kitesail Freebooter leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/o/on_thin_ice.txt b/forge-gui/res/cardsfolder/o/on_thin_ice.txt index 0e7c5f37d4e..fba752549f0 100644 --- a/forge-gui/res/cardsfolder/o/on_thin_ice.txt +++ b/forge-gui/res/cardsfolder/o/on_thin_ice.txt @@ -4,11 +4,7 @@ Types:Snow Enchantment Aura K:Enchant snow land you control A:SP$ Attach | Cost$ W | ValidTgts$ Land.Snow+YouCtrl | TgtPrompt$ Select target snow land you control | AILogic$ Pump T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:NeedsToPlay:Creature.OppCtrl DeckHints:Type$Snow diff --git a/forge-gui/res/cardsfolder/p/prison_realm.txt b/forge-gui/res/cardsfolder/p/prison_realm.txt index 012723b2868..cf02976d900 100644 --- a/forge-gui/res/cardsfolder/p/prison_realm.txt +++ b/forge-gui/res/cardsfolder/p/prison_realm.txt @@ -1,18 +1,8 @@ Name:Prison Realm ManaCost:2 W Types: Enchantment -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$When CARDNAME enters the battlefield, exile target creature or planeswalker an opponent controls until CARDNAME leaves the battlefield. | SpellDescription$ When CARDNAME enters the battlefield, exile target creature or planeswalker an opponent controls until CARDNAME leaves the battlefield,\nWhen CARDNAME enters the battlefield, scry 1. - -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl,Planeswalker.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect - -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile - -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield - -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf - -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self - +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature or planeswalker an opponent controls until CARDNAME leaves the battlefield. | SpellDescription$ When CARDNAME enters the battlefield, exile target creature or planeswalker an opponent controls until CARDNAME leaves the battlefield. +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl,Planeswalker.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When CARDNAME enters the battlefield, scry 1. SVar:TrigScry:DB$ Scry | ScryNum$ 1 diff --git a/forge-gui/res/cardsfolder/q/quarantine_field.txt b/forge-gui/res/cardsfolder/q/quarantine_field.txt index 16eb35e3be1..cb15083eac3 100644 --- a/forge-gui/res/cardsfolder/q/quarantine_field.txt +++ b/forge-gui/res/cardsfolder/q/quarantine_field.txt @@ -4,13 +4,8 @@ Types:Enchantment K:etbCounter:ISOLATION:X SVar:X:Count$xPaid T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TargetMin$ 0 | TargetMax$ Y | TgtPrompt$ Select target nonland permanent an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield. -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.nonLand+OppCtrl | TargetMin$ 0 | TargetMax$ Y | TgtPrompt$ Select target nonland permanent an opponent controls | UntilHostLeavesPlay$ True SVar:Y:Count$CardCounters.ISOLATION SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/quarantine_field.jpg Oracle:Quarantine Field enters the battlefield with X isolation counters on it.\nWhen Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until Quarantine Field leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/s/seal_away.txt b/forge-gui/res/cardsfolder/s/seal_away.txt index 4227578582b..a785876a1fb 100644 --- a/forge-gui/res/cardsfolder/s/seal_away.txt +++ b/forge-gui/res/cardsfolder/s/seal_away.txt @@ -3,12 +3,7 @@ ManaCost:1 W Types:Enchantment K:Flash T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target tapped creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.tapped+OppCtrl | TgtPrompt$ Select target tapped creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.tapped+OppCtrl | TgtPrompt$ Select target tapped creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/seal_away.jpg -Oracle:Flash\nWhen Seal Away enters the battlefield, exile target tapped creature an opponent controls until Seal Away leaves the battlefield. \ No newline at end of file +Oracle:Flash\nWhen Seal Away enters the battlefield, exile target tapped creature an opponent controls until Seal Away leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/s/sigrid_god_favored.txt b/forge-gui/res/cardsfolder/s/sigrid_god_favored.txt index c3e57482239..a13af1f3281 100644 --- a/forge-gui/res/cardsfolder/s/sigrid_god_favored.txt +++ b/forge-gui/res/cardsfolder/s/sigrid_god_favored.txt @@ -6,10 +6,6 @@ K:Flash K:First Strike K:Protection:Creature.God:Protection from God creatures T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, exile up to one target attacking or blocking creature until NICKNAME leaves the battlefield. -SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.attacking,Creature.blocking | AITgts$ Creature.OppCtrl+attacking,Creature.OppCtrl+blocking | TgtPrompt$ Select target attacking or blocking creature | TargetMin$ 0 | TargetMax$ 1 | ConditionPresent$ Card.Self | AILogic$ ExileCombatThreat | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Target creature is exiled until EFFECTSOURCE leaves the battlefield. -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.attacking,Creature.blocking | AITgts$ Creature.OppCtrl+attacking,Creature.OppCtrl+blocking | TgtPrompt$ Select target attacking or blocking creature | TargetMin$ 0 | TargetMax$ 1 | UntilHostLeavesPlay$ True | AILogic$ ExileCombatThreat SVar:AmbushAI:True Oracle:Flash\nFirst strike, protection from God creatures\nWhen Sigrid, God-Favored enters the battlefield, exile up to one target attacking or blocking creature until Sigrid leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/s/silkwrap.txt b/forge-gui/res/cardsfolder/s/silkwrap.txt index 4190793a68b..38cc554677f 100644 --- a/forge-gui/res/cardsfolder/s/silkwrap.txt +++ b/forge-gui/res/cardsfolder/s/silkwrap.txt @@ -2,12 +2,7 @@ Name:Silkwrap ManaCost:1 W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature with converted mana cost 3 or less an opponent controls until CARDNAME leaves the battlefield. (That creature returns under its owner's control.) -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.cmcLE3+OppCtrl | TgtPrompt$ Select target creature with converted mana cost 3 or less an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.cmcLE3+OppCtrl | TgtPrompt$ Select target creature with converted mana cost 3 or less an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:NeedsToPlay:Creature.cmcLE3+OppCtrl -SVar:Picture:http://www.wizards.com/global/images/magic/general/silkwrap.jpg Oracle:When Silkwrap enters the battlefield, exile target creature with converted mana cost 3 or less an opponent controls until Silkwrap leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/s/stasis_snare.txt b/forge-gui/res/cardsfolder/s/stasis_snare.txt index 0f39f6d73b7..a8aba35cb05 100644 --- a/forge-gui/res/cardsfolder/s/stasis_snare.txt +++ b/forge-gui/res/cardsfolder/s/stasis_snare.txt @@ -2,13 +2,8 @@ Name:Stasis Snare ManaCost:1 W W Types:Enchantment K:Flash -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. (That creature returns under its owner's control.) -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature an opponent controls until CARDNAME leaves the battlefield. +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/stasis_snare.jpg Oracle:Flash (You may cast this spell any time you could cast an instant.)\nWhen Stasis Snare enters the battlefield, exile target creature an opponent controls until Stasis Snare leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/s/suspension_field.txt b/forge-gui/res/cardsfolder/s/suspension_field.txt index 730e47a702b..7e9d57456b2 100644 --- a/forge-gui/res/cardsfolder/s/suspension_field.txt +++ b/forge-gui/res/cardsfolder/s/suspension_field.txt @@ -2,12 +2,7 @@ Name:Suspension Field ManaCost:1 W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may exile target creature with toughness 3 or greater until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.toughnessGE3 | TgtPrompt$ Select target creature with toughness 3 or greater | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.toughnessGE3 | TgtPrompt$ Select target creature with toughness 3 or greater | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/suspension_field.jpg Oracle:When Suspension Field enters the battlefield, you may exile target creature with toughness 3 or greater until Suspension Field leaves the battlefield. (That creature returns under its owner's control.) diff --git a/forge-gui/res/cardsfolder/t/thopter_arrest.txt b/forge-gui/res/cardsfolder/t/thopter_arrest.txt index 5bbeccbf1eb..191dd683785 100644 --- a/forge-gui/res/cardsfolder/t/thopter_arrest.txt +++ b/forge-gui/res/cardsfolder/t/thopter_arrest.txt @@ -2,12 +2,7 @@ Name:Thopter Arrest ManaCost:2 W Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target artifact or creature an opponent controls until CARDNAME leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Artifact.OppCtrl,Creature.OppCtrl | TgtPrompt$ Select target artifact or creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ That permanent is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Artifact.OppCtrl,Creature.OppCtrl | TgtPrompt$ Select target artifact or creature an opponent controls | UntilHostLeavesPlay$ True SVar:PlayMain1:TRUE SVar:OblivionRing:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/thopter_arrest.jpg -Oracle:When Thopter Arrest enters the battlefield, exile target artifact or creature an opponent controls until Thopter Arrest leaves the battlefield. \ No newline at end of file +Oracle:When Thopter Arrest enters the battlefield, exile target artifact or creature an opponent controls until Thopter Arrest leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/t/trapjaw_tyrant.txt b/forge-gui/res/cardsfolder/t/trapjaw_tyrant.txt index 567252ec29c..4c6555a68df 100644 --- a/forge-gui/res/cardsfolder/t/trapjaw_tyrant.txt +++ b/forge-gui/res/cardsfolder/t/trapjaw_tyrant.txt @@ -2,12 +2,7 @@ Name:Trapjaw Tyrant ManaCost:3 W W Types:Creature Dinosaur PT:5/5 -T:Mode$ DamageDoneOnce | Execute$ TrigExile | ValidTarget$ Card.Self | TriggerZones$ Battlefield | TriggerDescription$ Enrage — Whenever CARDNAME is dealt damage, exile target creature an opponent controls until Trapjaw Tyrant leaves the battlefield. -SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | ConditionPresent$ Card.Self | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ Targeted | ImprintCards$ Self | ConditionPresent$ Card.Self | Duration$ Permanent | ForgetOnMoved$ Exile -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ Those creatures are exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ ExileSelf -SVar:ExileSelf:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self +T:Mode$ DamageDoneOnce | Execute$ TrigExile | ValidTarget$ Card.Self | TriggerZones$ Battlefield | TriggerDescription$ Enrage — Whenever CARDNAME is dealt damage, exile target creature an opponent controls until CARDNAME leaves the battlefield. +SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | UntilHostLeavesPlay$ True SVar:HasCombatEffect:TRUE -SVar:Picture:http://www.wizards.com/global/images/magic/general/trapjaw_tyrant.jpg -Oracle:Enrage — Whenever Trapjaw Tyrant is dealt damage, exile target creature an opponent controls until Trapjaw Tyrant leaves the battlefield. \ No newline at end of file +Oracle:Enrage — Whenever Trapjaw Tyrant is dealt damage, exile target creature an opponent controls until Trapjaw Tyrant leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/y/yannik_scavenging_sentinel.txt b/forge-gui/res/cardsfolder/y/yannik_scavenging_sentinel.txt index 8d26ee12aab..c91ca6a8a1b 100755 --- a/forge-gui/res/cardsfolder/y/yannik_scavenging_sentinel.txt +++ b/forge-gui/res/cardsfolder/y/yannik_scavenging_sentinel.txt @@ -6,10 +6,7 @@ K:Partner:Nikara, Lair Scavenger:Nikara K:Vigilance T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, exile another creature you control until CARDNAME leaves the battlefield. When you do, distribute +1/+1 counters among any number of target creatures, where X is the exiled creature's power. SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.YouCtrl+Other | ChoiceZone$ Battlefield | ChoiceTitle$ Select another creature you control | Mandatory$ True | SubAbility$ DBExile -SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | Triggers$ ComeBack | RememberObjects$ ChosenCard | ImprintCards$ Self | ForgetOnMoved$ Exile | Duration$ Permanent | SubAbility$ DBImmediateTrigger -SVar:ComeBack:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.IsImprinted | Execute$ TrigReturn | TriggerZones$ Command | TriggerController$ TriggeredCardController | Static$ True | TriggerDescription$ This creature is exiled until EFFECTSOURCE leaves the battlefield -SVar:TrigReturn:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Battlefield +SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | UntilHostLeavesPlay$ True | SubAbility$ DBImmediateTrigger SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigPutCounters | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | TriggerDescription$ When you do, distribute X +1/+1 counters among any number of target creatures, where X is the exiled creature's power. SVar:TrigPutCounters:DB$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature to distribute counters to | CounterType$ P1P1 | CounterNum$ X | TargetMin$ 1 | TargetMax$ X | DividedAsYouChoose$ X | SubAbility$ DBCleanup | SpellDescription$ Distribute X +1/+1 counters among any number of target creatures. SVar:X:RememberedLKI$CardPower diff --git a/forge-gui/src/main/java/forge/card/CardDetailUtil.java b/forge-gui/src/main/java/forge/card/CardDetailUtil.java index e44e23b2514..0fe7ba5c0b0 100644 --- a/forge-gui/src/main/java/forge/card/CardDetailUtil.java +++ b/forge-gui/src/main/java/forge/card/CardDetailUtil.java @@ -544,6 +544,13 @@ public class CardDetailUtil { area.append("Encoded: ").append(card.getEncodedCards()); } + if (card.getUntilLeavesBattlefield() != null) { + if (area.length() != 0) { + area.append("\n"); + } + area.append("Until leaves the Battlefield: ").append(card.getUntilLeavesBattlefield()); + } + // must block if (card.getMustBlockCards() != null) { if (area.length() != 0) {