-
Notifications
You must be signed in to change notification settings - Fork 575
Triggers
Triggers define when an ability should be automatically added to the stack. Their syntax in the card files are very similar to that used by the various AbilityFactorys, that is: every trigger line starts with "T:" (without the quotes) and is a collection of name-value pairs (name and value are separated by $) separated by pipes (|). Like with AbilityFactorys, there are a few that show up almost always if not always. There are two parameters that are always present on a trigger:
- Mode - Specifies what kind of situation the trigger should wait for.
- TriggerDescription - Describes the trigger, much like AF's SpellDescription parameter.
- (Execute - Specifies the name of the SVar that holds the ability to run when the trigger goes off.)
NOTE: The Execute parameter may be absent, if you are writing a delayed triggered ability. See below.
Depending on which Mode is specified, other parameters may be expected. Below are the currently available modes.
The script has access to many things that were previously internal to triggers. These things are accessed via Triggered-variables. Triggered variables are always of the form "Triggered[Controller/Owner]" and are specific to each trigger mode. You can use Triggered-variables that return a card or a player directly in Defined$ parameters or to grab extra info from (like you use "Targeted" for, for instance "SVar:X:TriggeredCard$CardPower"). You can get the controller or owner of a card returned by a Triggered-variable by appending "Controller" or "Owner" to the variable. Triggered-variables that return an integer can only be accessed from Count$, i.e. "SVar:X:Count$TriggeredLifeAmount".
Other parameters that triggers can use are:
- Secondary - If a trigger has Secondary$ True set, it means that it's trigger description won't show up in a card's text box. This can be used if you need to use several triggers to emulate a single effect on a real card.
- Static - This parameter is mainly used for "As CARDNAME enters the battlefield..." type things. It causes the triggered ability to resolve right away, instead of going on the stack.
- ResolvingCheck
- NoResolvingCheck - makes a trigger not recheck its condition to resolve
Always-triggers represent State triggers, a special kind of triggers. These triggers will not do any checks for intervening if-clauses and will not go on the stack if an instance of it has already been put there. They are checked every time state effects are checked.
Examples: Emperor Crocodile.
There are no special parameters and no triggered-variables.
Attached-triggers go off when a card is attached, via enchanting or
equipping, to another card.
Examples: Bramble Elemental, Kithkin Armor.
There are 2 special parameters:
- ValidSource - The card that is being attached to another must match this for the trigger to go off.
- ValidTarget - The card that is having another card attached to it must match this.
There are 2 Triggered-variables:
- Source - The card that is being attached.
- Target - The card that is being attached to.
AttackerBlocked-triggers go off when a creature becomes blocked. It goes
off only once (no matter how many blockers there are) right after the
declare blockers step.
Examples: AEther Membrane, Alley Grifters.
There are 2 special parameters:
- ValidCard - The attacking creature must match this for the trigger to go off.
- ValidBlocker - The blocking creature must match this for the trigger to go off.
There are 3 Triggered-variables:
- Attacker - The card of the attacking creature.
- Blocker - The card of the blocking creaure.
- NumBlockers - The number of things blocking the attacker
AttackerUnblocked-triggers go off when a creature attacks and is not
blocked, right after the declare blockers step.
Examples: Abyssal Nightstalker, Dauthi Mindripper
There is 1 special parameter:
- ValidCard - The attacking creature must match this for the trigger to go off.
There is 1 Triggered-variable:
- Attacker - The card of the attacking creature.
Goes off after attackers are declared, if any attackers were declared,
once a combat only.
Examples: Lightmine Field, Curse of Inertia. There are 2 special
parameters:
- AttackingPlayer - The attacking player must match this.
- AttackedTarget - One of the game entities in TriggeredAttackedTarget must match this.
There are 3 Triggered-variables:
- Attackers - Collection of attacking creatures.
- AttackingPlayer - The targeted object.
- AttackedTarget - Collection of game entities that each attacker is attacking.
Attacks-triggers go off when a creature attacks. That is, it goes off
once for each creature that attacks during your each combat phase (Right
after the declare attackers step).
Examples: Accorder Paladin, Trepanation Blade.
There are 2 special parameters:
- ValidCard - The attacking creature must match this for the trigger to go off.
- Alone - If this is True, the trigger will only go off if the creature attacks alone.
There is 1 Triggered-variable:
- Attacker - The card of the attacking creature.
BecomeMonstrous-triggers go off when a creature becomes Monstrous,
naturally.
Examples: Arbor Colossus, Ember Swallower.
There is 1 special parameter:
- ValidCard - The card that becomes monstrous must match this.
There is 1 Triggered-variable:
- Card - The card that became monstrous.
BecomesTarget-triggers go off when a spell or ability (or either) is put
on the stack targeting something that matches a Valid-expression.
Examples: Angelic Protector, Cephalid Illusionist.
There are 3 special parameters:
- SourceType - Can be Spell or Ability.It is optional.
- ValidSource - The card that targets something must match this.
- ValidTarget - The targeted object must match this.
There are 2 Triggered-variables:
- Source - The targeting card.
- Target - The targeted object.
Goes off after blockers are declared if there are any, once in a combat
only. (unlike Blocks, which goes off once for each creature that blocks.)
Examples: Tide of War
There are no special parameters.
There are 2 Triggered-variables:
- Blockers - Collection of all blockers.
- Attackers - Collection of all attackers.
Blocks-triggers go off when a creature blocks (No surprise there ;) ).
Examples: Amphibious Kavu, Cinder Wall (See below).
There are 2 special parameters:
- ValidCard - The blocking creature must match this.
- ValidBlocked - The creature being blocked must match this.
There are 2 Triggered-variables:
- Attacker - The card of the attacking creature.
- Blocker - The card of the blocking creaure.
Goes off when a creature is championed.
Examples: Mistbind Clique.
There are 2 special parameters:
- ValidCard - The card being exiled for championing must match this.
- ValidSource - The champion card that is being played must match this.
There are 2 Triggered-variables:
- Championed - The champion-exiled card
- Card - The championing card.
Goes off when a card changes controller.
Examples: Coffin Queen, Duplicity.
There are 2 special parameters:
- ValidCard - The card whose controller changes must match this.
- ValidOriginalController - The player who originally controlled the card must match this.
There is 1 Triggered-variable:
- Card - The card whose controller changes.
ChangesZone-triggers go off whenever, you guessed it, a card changes
zone.
Examples: Contagion Clasp, see below.
There are 3 special parameters:
- ValidCard - The card that was moved must match this for the trigger to go off.
- Origin - The card must be moved from this zone for the trigger to go off. (Defaults to "Any")
- Destination - The card must be moved to this zone for the trigger to go off. (Defaults to "Any")
There is 1 Triggered-variable:
- Card - The card that was moved.
Clashed-triggers go off whenever a player has clashed, regardless of
wether you won or not. They are always run after the clash is through.
Examples: Entangling Trap, Rebellion of the Flamekin.
There are 2 special parameters:
- ValidPlayer - Who clashed.
- Won - True if the player must have won, false otherwise.
There are no Triggered-variables.
Goes off once for every game entity that recieves damage in combat.
Examples: Nature's Will, Pyrewild Shaman.
There are 2 special parameters:
- ValidSource - One or more of the game entities that dealt the damage must match this.
- ValidTarget - The game entity that recieved damage must match this.
There are 2 Triggered-variables:
- Sources - A collection of the game entities that dealt the damage.
- Target - The game entity that recieved damage.
These triggers go off when a counter is added to / removed from a
card.
Examples: Bloodcrazed Hoplite, Aeon Chronicler.
There are 2 or 3 special parameters:
- ValidCard - The card getting the counter must match this for the trigger to go off.
- CounterType - The counter must be of this type for the trigger to go off.
- NewCounterAmount - The counter amount AFTER the trigger fires must be this. NOTE: only available to CounterRemoved at the moment.
There is 1 Triggered-variable:
- Card - the card the counter was added to
Goes off when a spell or ability is countered.
Examples: Lullmage Mentor, Multani's Presence.
There are 3 special parameters:
- ValidCard - The host card of the spell/ability that was countered must match this.
- ValidPlayer - The player that cast/activated the spell/ability that was countered must match this.
- ValidCause - The host card of the spell/ability that did the countering must match this.
There are 3 Triggered-variables:
- Card - The host card of the spell/ability that was countered.
- Player - The player that cast/activated the spell/ability that was countered.
- Cause - The host card of the spell/ability that did the countering.
Cycled-triggers simply go off whenever you cycle a card.
Examples: Astral Slide, Bant Sojourners.
There is 1 special parameters:
- ValidCard - The card that was cycled must match this.
There is 1 Triggered-variable:
- Card - The card that was cycled.
DamageDone-triggers go off whenever any source deals damage to any
target.
Examples: Abomination of Gudul, Prophetic Flamespeaker.
There are 4 special parameters:
- ValidSource - The source of the damage must match this.
- ValidTarget - The target of the damage must match this.
- CombatDamage - If set to true, the trigger will only go off if the damage dealt was combat damage.If set to false, it will only go off if it wasn't combat damage.. If omitted, it will go off either way.
- DamageAmount - Specifies how much damage must be done for the trigger to go off. It takes the form "" where can be LT (Less Than),LE (Less than or Equal),EQ (Equal),GE (Greater than or Equal) or GT (Greater Than) and is a positive integer.
There are 3 Triggered-variables:
- Source - The source of the damage.
- Target - The target of the damage.
- DamageAmount - The amount of damage dealt(integer).
BEWARE: Since the Target variable can be either a player or a card, you must take care to limit this in the ValidTarget parameter!
Goes off *once* for each creature that deals damage in combat.
Examples: Arashin War Beast, Five Alarm Fire.
There are 2 special parameters:
- ValidTarget - The game entity that recieves damage must match this.
- ValidSource - The card that dealt damage must match this.
There are 2 Triggered-variables:
- Target - The game entity that recieves damage.
- Source - The card that dealt damage.
Goes off when a permanent is destroyed. (Not if it it destroyed, but
then regenerated.)
Examples: Cobra Trap, Sacred Ground.
There are 2 special parameters:
- ValidCard - The card that was destroyed must match this.
- ValidCauser - The player that activated the spell/ability that destroyed the card must match this.
There are 2 Triggered-variables:
- Card - The card that was destroyed.
- Causer - The player that activated the spell/ability that destroyed the card.
Goes off when a creature is sacrificed for a Devour creature.
Examples: Kresh the Bloodbraided Avatar.
There is 1 special parameter:
- ValidDevoured - The devoured creature must match this.
There is 1 Triggered-variable:
- Devoured - The devoured creature.
Discarded-triggers go off whenever a card is discarded from a players
hand. (side note: ChangesZone-triggers may also go off here because the
card is moved from the hand to the graveyard)
Examples: Abyssal Nocturnus, Confessor.
There are 3 special parameters:
- ValidPlayer - The player who discarded the card must match this.
- ValidCard - The discarded card must match this.
- ValidCause - The card that caused the player to discard must match this.
There is 1 Triggered-variable:
- Card - The card that was discarded.
Drawn-triggers go off when a player draws a card.
Examples: Booby Trap, Kederekt Parasite.
There is 1 special parameter:
- ValidCard - The drawn card must match this.
There are 2 Triggered-variable:
- Card - The card that was drawn.
- Player - The player that drew the card.
Goes off when a creature gets a +1/+1 counter from evolving.
Examples: Renegade Krasis.
There is 1 special parameter:
- ValidCard - The card that got the counter must match this.
There is 1 Triggered-variable:
- Card - The card that got the counter.
Goes off when a player flips a coin.
Examples: Chance Encounter, Karplusan Minotaur.
There are 2 special parameter:
- ValidPlayer - The player who flipped the coin must match this.
- ValidResult - If this parameter is "Win", the player must win the flip.
There is 1 Triggered-variable:
- Player - The player who flipped the coin.
LandPlayed-triggers of course go off when a land is played.
Examples: Burgeoning, City of Traitors.
There is 1 special parameter:
- ValidCard - The played card must match this.
There is 1 Triggered-variable:
- Card - The card that was played.
These triggers go off on when a player either gains or loses life, of
course.
Examples: Cradle of Vitality, Exquisite Blood.
There is 1 special parameter:
- ValidPlayer - The player who gained or lost life must match this.
There are 2 Triggered-variables:
- Player - The player that gained/lost life.
- LifeAmount - The amount of life lost/gained. (integer)
Goes off when a player loses the game.
Examples: Blood Tyrant, Elbrus, the Binding Blade // Withengar Unbound
There is 1 special parameter:
- ValidPlayer - The player who lost the game must match this.
There is 1 Triggered-variable:
- Player - The Player who lost the game.
Goes off once at the start of each game, after mulligans.
Examples: Maralen of the Mornsong Avatar, Worldknit.
There are no special parameters or Triggered-variables.
Goes off when a player pays or doesn't pay the cumulative upkeep for a
card.
Examples: Balduvian Fallen, Heart of Bogardan.
There are 2 special parameters:
- Paid - Wether or not the player must have paid the cumulative upkeep.
- ValidCard - The card that has the cumulative upkeep must match this.
There are 2 Triggered-variables:
- Card - The card that has the cumulative upkeep.
- PayingMana - A string representing the mana spent.
Goes off when a player pays or doesn't pay the echo cost for a card.
Examples: Shah of Naar Isle.
There are 2 special parameters:
- Paid - Wether or not the player must have paid the echo.
- ValidCard - The card that has the echo must match this.
There is 1 Triggered-variable:
- Card - The card that has the echo.
Phase-triggers go off at specific points in the turns.
Examples: AEther Vial, see below.
There are 2 special parameters:
- Phase - The phase during which the trigger should go off.
- ValidPlayer - The player who's turn it should be.
There is 1 Triggered-variable:
- Player - The player whose turn it is.
Goes off when a permanent phases in or out, specifically only while that
permanent is still on the battlefield since triggers don't work on
phased out objects.
Examples: Shimmering Efreet, Ertai's Familiar.
There is 1 special parameter:
- ValidCard - The card phasing in or out must match this.
There is 1 Triggered-variable:
- Card - The card phasing in or out.
Goes off when the planar dice is rolled in a Planechase game.
Examples: Panopticon, Orzhova.
There are 2 special parameters:
- ValidPlayer - The player that rolled the dice must match this.
- Result - The dice must roll this. Blank,Chaos or Planeswalk.
There is 1 Triggered-variable:
- Player - The player that rolled the dice.
These triggers go off when a player planeswalks to or away from one or
more planes.
Examples: Panopticon, Orzhova.
There is 1 special parameter:
- ValidCard - One of the planes must match this.
There is 1 Triggered-variable:
- Cards - A collection of all the cards planeswalked to or from.
Sacrificed-triggers go off whenever a player sacrifices a permanent.
Examples: Dragon Appeasement, Mortician Beetle.
There are 2 special parameters:
- ValidPlayer - The player who sacrificed the card must match this.
- ValidCard - The sacrificed card must match this.
There is 1 Triggered-variable:
- Card - The card that was Sacrificed.
Goes off after a player has scryed and put the card(s) in the proper
place.
Examples: Flamespeaker Adept, Knowledge and Power
There is 1 special parameter:
- ValidPlayer - The player that scryed must match this.
There is 1 Triggered-variable:
- Player - The player that scryed.
Goes off when a player searches a library.
Examples: Ob Nixilis, Unshackled.
There are 2 special parameters:
- ValidPlayer - The player searching must match this.
- SearchOwnLibrary - If true, the player must be searching his or her own library (Didn't see that one coming, did ya? :P)
There is 1 Triggered-variable:
- Player - The player searching.
Goes off when an Archenemy Scheme is set in motion.
Examples: A Display of My Dark Power, Perhaps You've Met My Cohort.
There is 1 special parameter:
- ValidCard - The scheme card that is set in motion must match this.
There is 1 Triggered-variable:
- Scheme - The scheme card that is set in motion.
Shuffled-triggers go off whenever a player shuffles his/her library.
Examples: Cosi's Trickster, Psychic Surgery.
There is 1 special parameter:
- ValidPlayer - The player who's turn it should be.
There is 1 Triggered-variable:
- Player - The player whose turn it is.
Triggers go off whenever a spell,ability or either respectively is cast
by either player.
Examples: AEther Barrier, Burning-Tree Shaman, Grip of Chaos.
There are 4 special parameters:
- ValidControllingPlayer - The player who controls the cast spell must match this.
- ValidActivatingPlayer - The player who activated the ability/spell must match this. (NOTE: For spells, the activator and controller are the same. They usually the same for abilities too, with the exception being abilities that can be activated by any player)
- ValidCard - The card the cast spell or ability originates from must match this.
- TargetsValid - If this parameter is present, the spell or ability must be targeted and at least one of it's targets must match this.
There are 4 Triggered-variable:
- Card - The card that the cast spell or ability originates from.
- SpellAbility - The SpellAbility object.
- Player - The player that controls the card that the cast spell or ability originates from.
- Activator - The player that activated the ability.
These triggers go off when a permanent taps or untaps.
Examples: Artifact Possession, Frightshroud Courier.
There is 1 special parameter:
- ValidCard - The card that taps or untaps must match this.
There is 1 Triggered-variable:
- Card - The card that was tapped/untapped.
This trigger goes off when a land is tapped for a mana ability.
Examples: Bubbling Muck, Market Festival.
There is 1 special parameter:
- ValidCard - The card that taps.
There are 3 Triggered-variable:
- Card - The card that was tapped.
- Player - the payer that did the tapping
- Produced - a String of the Mana produced by this tapping.
Goes off when a card changes state from Original to Transformed or vice
versa. (But not between any other 2 states)
Examples: Afflicted Deserter // Werewolf Ransacker, Huntmaster of the
Fells // Ravager of the Fells.
There is 1 special parameter:
- ValidCard - The card that changes state must match this.
There is 1 Triggered-variable:
- Transformer - The card that changes state.
Goes off when a card changes state from FaceDown to Original. (But not
between any other 2 states)
Examples: Aphetto Exterminator, Fatal Mutation.
There is 1 special parameter:
- ValidCard - The card that changes state must match this.
There is 1 Triggered-variable:
- Card - The card that changes state.
Goes off when an equipment card is unattached from a creature, wether
it's voluntarily unattached or not.
Examples: Grafted Exoskeleton, Grafted Wargear.
There are 2 special parameters:
- ValidCard - The card that the equipment is unattached from must match this.
- ValidEquipment - The equipment being unattached must match this.
There are 2 Triggered-variables:
- Card - The card that the equipment is unattached from.
- Equipment - The equipment being unattached.
Goes off when a vote is called for, after all votes are cast.
Examples: Grudge Keeper.
There are no special parameters.
There is 1 Triggered-variable:
- OtherVoters - A collection of every player who voted, EXCEPT the controller of the trigger's host card.
You can use certain optional parameters to further restrict when a trigger should go off. These parameters are:
- TriggerZones - This parameter can be used to restrict which zone the
card must be in in order for the trigger to go off. For example, if
the trigger should only go off while the card is in the graveyard
(As in Auntie's Snitch or Bridge from Below) you can use
TriggerZones$ Graveyard
- TriggerPhases - This parameter can be used to restrict the phases in which the trigger can trigger.
- OpponentTurn - This parameter can be used to restrict the trigger to only trigger on your opponents turn.(True/False)
- PlayerTurn - This parameter can be used to restrict the trigger to only trigger on your turn.(True/False)
- Metalcraft - If this parameter is set to "True", the controller of this card must have 3 or more artifacts on the battlefield for the trigger to go off.
- Threshold - As Metalcraft but requires the controller of the card to have 7 cards in the graveyard.
- PlayersPoisoned - This parameter specifies that a certain or both players must have at least 1 poison counter. Valid values are "You", "Opponent" or "Each".
- IsPresent - This parameter expects a ValidCard formula and only lets the trigger go off if there is a permanent on the battlefield that matches it.
- PresentCompare,PresentZone & PresentPlayer - These parameters only matter if the IsPresent parameter is used. They can be used to narrow down and how many valid cards must be present and where they must be.
- IsPresent2,PresentCompare2,PresentZone2 & PresentPlayer2 - Second requirement (see above).
- CheckSVar - Calculates the named SVar and compares the result against the accompanying SVarCompare parameter which takes the form of where is in LT,LE,EQ,NE,GE,GT.
Learn by example!
(When Contagion Clasp enters the battlefield, put a -1/-1 counter on
target creature.) The first thing to do is to identify the WHEN, i.e.
when the trigger should go off so that we can decide on the proper mode.
Here it should go off when a particular card moves from one zone into
another, so ChangesZone is the logical mode here.
T:Mode$ ChangesZone
Next we look at which of ChangesZone's 3 special parameters we want to
make use of. Well, we want the trigger to go off when the card enters
one specific zone, so we'll want to use the Destination parameter. Also,
we only care about when it's a specific card being moved so we'll use
ValidCard.
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self
There, we've defined a trigger that goes off when this card moves from
any zone (remember, Origin and Destination defaults to "Any") to the
battlefield zone. But we still have to use two more parameters. First,
"Execute". Execute should contain the name of the SVar that holds the
Ability you want to be triggered.It can be any valid SVar name. I like
to follow the convention "Trig" but
your mileage may vary.
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounter
Lastly, "TriggerDescription". This is what will be put in the cards text
box, i.e. the rules text. Always try to keep it as close to Oracle
wording as possible. Also, you should use "CARDNAME" instead of the name
of the card for convention.
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When CARDNAME enters the battlefield, put a -1/-1 counter on target creature.
So we're all done,then?No, it's not a triggered ability until it
actually has an ability. To define the ability we want to be triggered
we simply use an AbilityFactory but
instead of putting it on it's own line beginning with "A:", we put it in
an SVar named what we put for the Execute parameter.
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When CARDNAME enters the battlefield, put a -1/-1 counter on target creature.
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Tgt$ TgtC | CounterType$ M1M1 | CounterNum$ 1
You may notice some strange things about the ability, namely the Cost
parameter and the lack of a SpellDescription parameter.The reasoning for
these things is that AbilityFactory requires non-drawback abilities to
have a cost and drawback abilities not to have one. But if you want to
do something like "When CARDNAME comes into play, you may pay 1 to...",
that's where you'd use the Cost parameter here. The SpellDescription is
missing because triggers use their own TriggerDescription instead.
(At the beginning of your upkeep, you may put a charge counter on AEther
Vial.) Okay let's apply the procedure we learned when doing Contagion
Clasp:
Identify the WHEN - It should go off at the beginning of a specific
PHASE so, well, Phase mode it is!
T:Mode$ Phase
Next,look at Phase modes special parameters: Phase and ValidPlayer. We
can tell right away that Phase should be "Upkeep" and ValidPlayer should
be "You" since it should only trigger on your turn.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You
Next up, we have to make sure that the trigger only goes off when AEther
Vial is in play. If it's not, why would we want to put counters on it?
We can use the TriggerZones parameter to restrict where the card must be
in order for the trigger to go off. It takes a comma-separated list of
zones but since we only want AEther Vial to trigger when it's on the
battlefield, we just give it "Battlefield".
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield
Now then, there's one word in the rules text that changes things: "may".
To give the player a choice about wether or not to make use of the
triggered ability, we can use the OptionalDecider parameter. It's used
the same way as Defined parameters for AFs and the player it evaluates
to gets to decide if the trigger happens.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You
Lastly as before, we add the Execute and TriggerDescription
parameters...
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, you may put a charge counter on CARDNAME.
...And our mad AbilityFactory-skills to write up the actual ability!
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, you may put a charge counter on CARDNAME.
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ CHARGE | CounterNum$ 1
DING! Goblins are up!
(When Cinder Wall blocks, destroy it at end of combat.) This will be an
example of a delayed trigger. A delayed trigger goes on the stack twice,
once when the conditions are met, and once when the effect should
happen.In Cinder Wall's case, once when it blocks, and once at the
following end of combat step. To start with, we create a Blocks trigger
that looks this.
T:Mode$ Blocks | ValidCard$ Card.Self
And this is where delayed triggers differ from ordinary triggers.We do
NOT add an Execute parameter that points to an SVar containing the
trigger's effect as an AF. Instead we add a DelayedTrigger parameter
that points to an SVar containing ANOTHER trigger that specifies when
the delayed effect should occur. This delayed trigger is built like an
ordinary trigger and further points to an ability (Using the Execute
parameter).Don't forget to omit the "T:" from the delayed trigger, for
the same reason you omit "A:" from abilities in SVars!
T:Mode$ Blocks | ValidCard$ Card.Self DelayedTrigger$ DelTrig | TriggerDescription$ When CARDNAME blocks, destroy it at end of combat.
SVar:DelTrig:Mode$ Phase | Phase$ EndCombat | Execute$ TrigDestroy | TriggerDescription$ Destroy CARDNAME.
SVar:TrigDestroy:AB$Destroy | Cost$ 0 | Defined$ Self
If you want some test cards for each trigger try these:
Always (Covetous Dragon)
DeclareAttack (Lightmine Field)
Attacks (Battle Cry)
Unblocked (Abyssal Nightstalker)
Blocked (Flanking)
Blocks (Wall of Junk)
Targeted (Tar Pit Warrior)
ChangeZones (Wall of Blossoms, AEther Flash, Valakut)
Phase (Bottomless Pit)
SpellAbilityCast (Dragonlair Spider)
Unqeuip (Grafted Wargear)
Sacrifice (Grave Pact)
Taps (Stonybrook Schoolmaster)
Untaps (Hollowsage)
Championed (Mistbind Clique/delayed due to input issue)
ChangeControllers (?)
CounterAdded (Flourishing Defenses)
CounterRemoved (Fungal Behemoth)
Clashed (Sylvan Echoes)
Cycled (Bant Sojourners)
Damaged (Akki Underminer, Living Artifact)
Discarded (Megrim)
Drawn (Underworld Dreams)
LandPlayed (Horn of Greed)
LifeGained (Ajani's Pridemate)
LifeLost (Mindcrank)
LoseGame
SetInMotion
Shuffled (Cosi's Trickster)
TapsForMana (Mana Flare)
Transformed (Afflicted Deserter)
TurnFaceUp (Bloodstoke Howler)
-
-
Gameplay Guide
-
Modding and Development
-
-
- Skins
- Music & Sounds
- Card Images
- File Formats