Bugfix: Multi-triggering should now function as intended

- Moved TriggerObjects to the SA and saved through the StackInstance. 
- Changed Count$Triggered to TriggerCount$ since Count doesn't have access to where the TriggerObjects live anymore
This commit is contained in:
jendave
2011-08-07 01:58:23 +00:00
parent 4681b043cc
commit 3b95d5e287
105 changed files with 302 additions and 194 deletions

View File

@@ -5,7 +5,7 @@ Text:no text
PT:4/4
T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put that many +1/+1 counters on CARDNAME.
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ X
SVar:X:Count$TriggeredLifeAmount
SVar:X:TriggerCount$LifeAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/ageless_entity.jpg
SetInfo:DST|Rare|http://magiccards.info/scans/en/ds/73.jpg

View File

@@ -6,7 +6,7 @@ A:AB$ GainLife | Cost$ 2 T SubCounter<4/CHARGE> | Defined$ You | LifeAmount$ 2 |
T:Mode$ DamageDone | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ Whenever you're dealt damage, you may put that many charge counters on CARDNAME.
SVar:DBDraw:DB$Draw | Defined$ You | NumCards$ 1
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ CHARGE | CounterNum$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/angelheart_vial.jpg
SetInfo:ROE|Rare|http://magiccards.info/scans/en/roe/215.jpg

View File

@@ -6,7 +6,7 @@ K:Enchant creature
K:enPump:+2/+2/Trample
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/armadillo_cloak.jpg
SetInfo:INV|Common|http://magiccards.info/scans/en/in/229.jpg

View File

@@ -7,7 +7,7 @@ K:enPump:+0/+0
K:stPumpAll:Creature.enchanted+YouCtrl:1/1:no Condition:Creatures you control that are enchanted get +1/+1.
T:Mode$ AttackerBlocked | ValidCard$ Creature.enchanted+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control that's enchanted becomes blocked, it gets +1/+1 until end of turn for each creature blocking it.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X
SVar:X:Count$TriggeredNumBlockers
SVar:X:TriggerCount$NumBlockers
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/beastmasters_magemark.jpg
SetInfo:GPT|Common|http://magiccards.info/scans/en/gp/80.jpg

View File

@@ -6,7 +6,7 @@ PT:2/5
K:Flying
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigMill | TriggerDescription$ Whenever a source deals damage to CARDNAME, that source's controller puts that many cards from the top of his or her library into his or her graveyard.
SVar:TrigMill:AB$Mill | Cost$ 0 | Defined$ TriggeredSourceController | NumCards$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/belltower_sphinx.jpg
SetInfo:RAV|Uncommon|http://magiccards.info/scans/en/rav/38.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:3/3
T:Mode$ AttackerBlocked | ValidCard$ Beast | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Beast becomes blocked, it gets +1/+1 until end of turn for each creature blocking it.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X
SVar:X:Count$TriggeredNumBlockers
SVar:X:TriggerCount$NumBlockers
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/berserk_murlodont.jpg
SetInfo:LGN|Common|http://magiccards.info/scans/en/le/117.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
K:Enchant Creature Curse
T:Mode$ DamageDone | ValidTarget$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever enchanted creature is dealt damage, CARDNAME deals that much damage to that creature's controller.
SVar:TrigDealDamage:AB$ DealDamage | Cost$ 0 | Defined$ EnchantedController | NumDmg$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/binding_agony.jpg
SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/4.jpg

View File

@@ -6,7 +6,7 @@ T:Mode$ DamageDone | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ Tri
SVar:TrigPutCounter: AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ X
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigRemoveCounter | TriggerDescription$ At the beginning of your end step, remove all +1/+1 counters from CARDNAME.
SVar:TrigRemoveCounter: AB$ RemoveCounter | Cost$ 0 | CounterType$ P1P1 | CounterNum$ All
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:All:Count$CardCounters.P1P1
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_hound.jpg

View File

@@ -6,7 +6,7 @@ PT:1/1
K:Morph:2 G
T:Mode$ DamageDone | Execute$ TrigToken | ValidTarget$ Card.Self | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME is dealt damage, you may put that many 1/1 green Insect creature tokens onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Insect | TokenTypes$ Creature,Insect | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/broodhatch_nantuko.jpg
SetInfo:ONS|Uncommon|http://magiccards.info/scans/en/on/250.jpg

View File

@@ -6,7 +6,7 @@ PT:1/1
K:Islandwalk
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigDraw | CombatDamage$ True | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may draw that many cards.
SVar:TrigDraw:AB$Draw | Cost$ 0 | Defined$ You | NumCards$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/cold_eyed_selkie.jpg
SetInfo:EVE|Rare|http://magiccards.info/scans/en/eve/149.jpg

View File

@@ -4,7 +4,7 @@ Types:Enchantment
Text:no text
T:Mode$ LifeGained | ValidPlayer$ You | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you gain life, you may pay 1 W. If you do, put a +1/+1 counter on target creature for each 1 life you gained.
SVar:TrigPutCounter:AB$PutCounter | Cost$ 1 W | Tgt$ TgtC | CounterType$ P1P1 | CounterNum$ X
SVar:X:Count$TriggeredLifeAmount
SVar:X:TriggerCount$LifeAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/cradle_of_vitality.jpg
SetInfo:ALA|Rare|http://magiccards.info/scans/en/ala/7.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:3/3
T:Mode$ DamageDone | Execute$ TrigToken | ValidTarget$ You | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever you're dealt damage, you may put that many 1/1 white Soldier creature tokens onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Soldier | TokenTypes$ Creature,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/darien_king_of_kjeldor.jpg
SetInfo:CSP|Rare|http://magiccards.info/scans/en/cs/4.jpg

View File

@@ -6,7 +6,7 @@ PT:*/*
K:stSetPT:Count$Valid Cleric:Count$Valid Cleric:CARDNAME's power and toughness are each equal to the number of Clerics on the battlefield.
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:BuffedBy:Cleric
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/doubtless_one.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
K:Enchant Creature
T:Mode$ DamageDone | ValidTarget$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever enchanted creature is dealt damage, its controller puts that many 1/1 green Squirrel creature tokens onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Squirrel | TokenTypes$ Creature,Squirrel | TokenOwner$ TriggeredTargetController | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/druids_call.jpg
SetInfo:ODY|Uncommon|http://magiccards.info/scans/en/od/239.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:1/1
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/el_hajjaj.jpg
SetInfo:3ED|Rare|http://magiccards.info/scans/en/rv/16.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:1/1
T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets +1/+1 until end of turn for each creature blocking it.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Self | NumAtt$ +X | NumDef$ +X
SVar:X:Count$TriggeredNumBlockers
SVar:X:TriggerCount$NumBlockers
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/elvish_berserker.jpg
SetInfo:EXO|Common|http://magiccards.info/scans/en/ex/110.jpg

View File

@@ -8,7 +8,7 @@ K:Trample
K:CARDNAME attacks each turn if able.
T:Mode$ DamageDone | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME deals damage, you lose that much life.
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/emberwilde_caliph.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:3/3
T:Mode$ DamageDone | ValidSource$ Sliver | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever a Sliver deals damage, its controller gains that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ TriggeredSourceController | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:PlayMain1:TRUE
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/essence_sliver.jpg

View File

@@ -6,7 +6,7 @@ PT:4/5
K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
K:Morph:2 W W
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/exalted_angel.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
A:SP$ Effect | Cost$ B B | Name$ False Cure Effect | Triggers$ GainLife | SVars$ TrigLoseLife,X | SpellDescription$ Until end of turn, whenever a player gains life, that player loses 2 life for each 1 life he or she gained.
SVar:GainLife:Mode$ LifeGained | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever a player gains life, that player loses 2 life for each 1 life he or she gained.
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ TriggeredPlayer | LifeAmount$ X
SVar:X:Count$TriggeredLifeAmount/Times.2
SVar:X:TriggerCount$LifeAmount/Times.2
SVar:RemRandomDeck:True
SVar:PlayMain1:TRUE
SVar:Rarity:Rare

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/2
T:Mode$ DamageDone | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME is dealt damage, you lose that much life.
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/filthy_cur.jpg
SetInfo:ODY|Common|http://magiccards.info/scans/en/od/136.jpg

View File

@@ -6,7 +6,7 @@ PT:2/2
A:AB$ Regenerate | Cost$ 2 B | SpellDescription$ Regenerate CARDNAME.
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Creature | CombatDamage$ True | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME deals combat damage to a creature, that creature's controller loses that much life.
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ TriggeredTargetController | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/flayed_nim.jpg
SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/65.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/2
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigDraw | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw that many cards.
SVar:TrigDraw:AB$Draw | Cost$ 0 | Defined$ You | NumCards$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
A:AB$ Pump | Cost$ 1 Discard<1/Card> | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ CARDNAME gets +1/+1 until end of turn.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/glint_eye_nephilim.jpg

View File

@@ -6,7 +6,7 @@ PT:2/4
K:stPumpAll:Creature.Archer+Other+YouCtrl:1/1:No Condition:Other Archer creatures you control get +1/+1.
T:Mode$ DamageDone | ValidSource$ Archer.YouCtrl | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever an Archer you control deals damage to a creature, that Archer deals that much damage to that creature's controller.
SVar:TrigDealDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredTargetController | DamageSource$ TriggeredSource | NumDmg$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/greatbow_doyen.jpg
SetInfo:MOR|Rare|http://magiccards.info/scans/en/mt/125.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:3/3
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME is dealt damage, each opponent gains that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ Opponent| LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/grollub.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
K:Enchant creature Curse
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals damage, CARDNAME deals that much damage to that creature.
SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ Enchanted | NumDmg$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/guilty_conscience.jpg
SetInfo:SCG|Common|http://magiccards.info/scans/en/sc/17.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/2
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/horned_cheetah.jpg
SetInfo:INV|Uncommon|http://magiccards.info/scans/en/in/251.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/1
T:Mode$ DamageDone | Execute$ TrigDamage | ValidTarget$ Card.Self | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME is dealt damage, it deals that much damage to you.
SVar:TrigDamage:AB$DealDamage | Cost$ 0 | NumDmg$ X | Defined$ You
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/jackal_pup.jpg
SetInfo:TMP|Uncommon|http://magiccards.info/scans/en/tp/183.jpg

View File

@@ -7,7 +7,7 @@ T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigYouDiscard | TriggerD
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | Hellbent$ True | CombatDamage$ True | Execute$ TrigOppDiscard | TriggerDescription$ Hellbent - Whenever CARDNAME deals combat damage to a player, if you have no cards in hand, that player discards cards equal to the damage.
SVar:TrigYouDiscard:AB$Discard | Cost$ 0 | Defined$ You | NumCards$ X | Mode$ TgtChoose
SVar:TrigOppDiscard:AB$Discard | Cost$ 0 | Defined$ Opponent | NumCards$ X | Mode$ TgtChoose
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/jagged_poppet.jpg
SetInfo:DIS|Uncommon|http://magiccards.info/scans/en/di/115.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:5/5
T:Mode$ AttackerBlocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets -1/-1 until end of turn for each creature blocking it beyond the first.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Self | NumAtt$ -X | NumDef$ -X
SVar:X:Count$TriggeredNumBlockers/Minus.1
SVar:X:TriggerCount$NumBlockers/Minus.1
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/jungle_wurm.jpg
SetInfo:MIR|Common|http://magiccards.info/scans/en/mr/122.jpg

View File

@@ -6,7 +6,7 @@ PT:3/5
K:Flying
T:Mode$ DamageDone | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigGain | TriggerDescription$ Whenever CARDNAME is dealt damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/kami_of_the_honored_dead.jpg
SetInfo:BOK|Uncommon|http://magiccards.info/scans/en/bok/12.jpg

View File

@@ -6,7 +6,7 @@ PT:2/2
K:Trample
T:Mode$ LifeGained | ValidPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigPut | TriggerDescription$ Whenever an opponent gains life, put that many +1/+1 counters on CARDNAME.
SVar:TrigPut:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ X
SVar:X:Count$TriggeredLifeAmount
SVar:X:TriggerCount$LifeAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/kavu_predator.jpg
SetInfo:PLC|Uncommon|http://magiccards.info/scans/en/pc/132.jpg

View File

@@ -7,7 +7,7 @@ K:Flying
K:First Strike
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/kjeldoran_gargoyle.jpg
SetInfo:CSP|Uncommon|http://magiccards.info/scans/en/cs/10.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
K:Enchant Artifact
T:Mode$ DamageDone | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you're dealt damage, put that many vitality counters on CARDNAME.
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ VITALITY | CounterNum$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGainLife | IsPresent$ Card.Self+countersGE1VITALITY | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may remove a vitality counter from CARDNAME. If you do, you gain 1 life.
SVar:TrigGainLife:AB$GainLife | Cost$ SubCounter<1/VITALITY> | Defined$ You | LifeAmount$ 1
SVar:Rarity:Rare

View File

@@ -6,7 +6,7 @@ PT:6/6
K:Trample
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigToken | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, put that many 1/1 green Insect creature tokens onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Insect | TokenTypes$ Creature,Insect | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/living_hive.jpg
SetInfo:MRD|Rare|http://magiccards.info/scans/en/mi/124.jpg

View File

@@ -4,7 +4,7 @@ Types:Artifact
Text:no text
T:Mode$ LifeLost | ValidPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever an opponent loses life, that player puts that many cards from the top of his or her library into his or her graveyard. (Damage dealt by sources without infect causes loss of life.)
SVar:TrigMill:AB$Mill | Cost$ 0 | Defined$ Opponent | NumCards$ X
SVar:X:Count$TriggeredLifeAmount
SVar:X:TriggerCount$LifeAmount
SVar:RemRandomDeck:True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/mindcrank.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:3 G W
Types:Enchantment
Text:no text
T:Mode$ TapsForMana | ValidCard$ Land.YouCtrl | Execute$ TrigMana | TriggerZones$ Battlefield | TriggerDescription$ Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced.
SVar:TrigMana:AB$ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Card.IsTriggeredCard | ReflectProperty$ Produced | Defined$ TriggeredPlayer
SVar:TrigMana:AB$ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Defined.Triggered | ReflectProperty$ Produced | Defined$ TriggeredPlayer
K:stPumpAll:Creature.YouCtrl:1/1:No Condition:Creatures you control get +1/+1.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/miraris_wake.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:1/1
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME is dealt damage, it deals that much damage to target opponent.
SVar:TrigDamage:AB$DealDamage | Cost$ 0 | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | NumDmg$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/mogg_maniac.jpg
SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/94.jpg

View File

@@ -6,7 +6,7 @@ PT:1/1
K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/mourning_thrull.jpg
SetInfo:GPT|Common|http://magiccards.info/scans/en/gp/146.jpg

View File

@@ -7,7 +7,7 @@ K:Flying
K:Wither
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDiscard | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, that player discards that many cards.
SVar:TrigDiscard:AB$Discard | Cost$ 0 | Defined$ TriggeredTarget | NumCards$ X | Mode$ TgtChoose
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/needle_specter.jpg
SetInfo:EVE|Rare|http://magiccards.info/scans/en/eve/39.jpg

View File

@@ -4,7 +4,7 @@ Types:Enchantment
Text:no text
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | Execute$ TrigGain | TriggerZones$ Battlefield | CombatDamage$ True | TriggerDescription$ Whenever a creature you control deals combat damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/noble_purpose.jpg
SetInfo:8ED|Rare|http://magiccards.info/scans/en/8e/31.jpg

View File

@@ -7,7 +7,7 @@ K:etbCounter:P1P1:7
K:Trample
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
K:If damage would be dealt to CARDNAME, prevent that damage. Remove a +1/+1 counter from CARDNAME.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/phantom_nishoba.jpg

View File

@@ -6,7 +6,7 @@ PT:5/5
K:Trample
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME is dealt damage, sacrifice that many permanents.
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | Amount$ X | SacValid$ Permanent
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:RemAIDeck:True
SVar:Rarity:Mythic
SVar:Picture:http://www.wizards.com/global/images/magic/general/phyrexian_negator.jpg

View File

@@ -6,7 +6,7 @@ PT:5/5
K:Trample
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ Whenever a source deals damage to CARDNAME, that source's controller sacrifices that many permanents.
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | Amount$ X | SacValid$ Permanent | Defined$ TriggeredSourceController
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:RemRandomDeck:True
SVar:Rarity:Mythic
SVar:Picture:http://www.wizards.com/global/images/magic/general/phyrexian_obliterator.jpg

View File

@@ -6,7 +6,7 @@ K:Enchant creature
K:enPump:Flying
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigToken | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals combat damage to a player, put that many 1/1 green Saproling creature tokens onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Saproling | TokenTypes$ Creature,Saproling | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/pollenbright_wings.jpg
SetInfo:RAV|Uncommon|http://magiccards.info/scans/en/rav/219.jpg

View File

@@ -6,7 +6,7 @@ K:Flash
K:Enchant Creature Curse
T:Mode$ DamageDone | ValidTarget$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever enchanted creature is dealt damage, its controller loses that much life.
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ TriggeredCardController | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/ragged_veins.jpg
SetInfo:CHK|Common|http://magiccards.info/scans/en/chk/139.jpg

View File

@@ -7,7 +7,7 @@ K:Trample
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add 1 to your mana pool."
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Eldrazi Spawn | TokenTypes$ Creature,Eldrazi,Spawn | TokenOwner$ You | TokenColors$ Colorless | TokenPower$ 0 | TokenToughness$ 1 | TokenAbilities$ ABMana
SVar:ABMana:AB$Mana | Cost$ Sac<1/CARDNAME> | Produced$ 1 | Amount$ 1 | SpellDescription$ Add 1 to your mana pool.
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/rapacious_one.jpg
SetInfo:ROE|Uncommon|http://magiccards.info/scans/en/roe/162.jpg

View File

@@ -6,8 +6,8 @@ T:Mode$ DamageDone | ValidTarget$ Creature.YouCtrl | TriggerZones$ Battlefield |
T:Mode$ DamageDone | ValidTarget$ Creature.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigDamageOpp | Secondary$ True | TriggerDescription$ Whenever a creature is dealt damage, CARDNAME deals that much damage to that creature's controller.
SVar:TrigDamageYou:AB$DealDamage | Cost$ 0 | Defined$ You | NumDmg$ X
SVar:TrigDamageOpp:AB$DealDamage | Cost$ 0 | Defined$ Opponent | NumDmg$ Y
SVar:X:Count$TriggeredDamageAmount
SVar:Y:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Y:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/repercussion.jpg
SetInfo:UDS|Rare|http://magiccards.info/scans/en/ud/95.jpg

View File

@@ -2,7 +2,8 @@ Name:Rite of Passage
ManaCost:2 G
Types:Enchantment
Text:no text
K:stPumpAll:Creature.YouCtrl:0/0/Whenever CARDNAME is dealt damage, put a +1/+1 counter on it.:no Condition:Whenever a creature you control is dealt damage, put a +1/+1 counter on it. (The damage is dealt before the counter is put on.)
T:Mode$ DamageDone | ValidTarget$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever a creature you control is dealt damage, put a +1/+1 counter on it. (The damage is dealt before the counter is put on.)
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ TriggeredTarget | CounterType$ P1P1 | CounterNum$ 1
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/rite_of_passage.jpg
SetInfo:5DN|Rare|http://magiccards.info/scans/en/5dn/91.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/3
T:Mode$ DamageDone | Execute$ TrigToken | ValidTarget$ Card.Self | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME is dealt damage, you may put that many 1/1 green Insect creature tokens onto the battlefield.
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Insect | TokenTypes$ Creature,Insect | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/saber_ants.jpg
SetInfo:MMQ|Uncommon|http://magiccards.info/scans/en/mm/267.jpg

View File

@@ -4,7 +4,7 @@ Types:Enchantment
Text:no text
T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDrain | TriggerDescription$ Whenever you gain life, target opponent loses that much life.
SVar:TrigDrain:AB$LoseLife | Cost$ 0 | ValidTgts$ Opponent | TgtPromp$ Select target opponent | LifeAmount$ X
SVar:X:Count$TriggeredLifeAmount
SVar:X:TriggerCount$LifeAmount
SVar:RemRandomDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/sanguine_bond.jpg

View File

@@ -7,7 +7,7 @@ K:enPump:+0/+0
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals damage, you gain that much life.
T:Mode$ DamageDone | ValidTarget$ Card.AttachedBy | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature is dealt damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/soul_link.jpg
SetInfo:APC|Common|http://magiccards.info/scans/en/ap/120.jpg

View File

@@ -7,7 +7,7 @@ K:Defender
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigGain | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME is dealt combat damage, you gain that much life and attacking player loses that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X | SubAbility$ SVar=DBDrain
SVar:DBDrain:DB$LoseLife | Defined$ AttackingPlayer | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/souls_of_the_faultless.jpg
SetInfo:GPT|Uncommon|http://magiccards.info/scans/en/gp/131.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/2
T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets +1/+1 until end of turn for each creature blocking it.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Self | NumAtt$ +X | NumDef$ +X
SVar:X:Count$TriggeredNumBlockers
SVar:X:TriggerCount$NumBlockers
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/sparring_golem.jpg
SetInfo:INV|Uncommon|http://magiccards.info/scans/en/in/312.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/2
T:Mode$ AttackerBlocked | ValidCard$ Sliver | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Sliver becomes blocked, that Sliver gets +1/+1 until end of turn for each creature blocking it.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X
SVar:X:Count$TriggeredNumBlockers
SVar:X:TriggerCount$NumBlockers
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/spined_sliver.jpg
SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/142.jpg

View File

@@ -6,7 +6,7 @@ K:Enchant creature
K:enPump:+0/+0
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/spirit_link.jpg
SetInfo:8ED|Uncommon|http://magiccards.info/scans/en/8e/47.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
K:Enchant Creature you control
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, return CARDNAME to its owner's hand.
SVar:TrigChangeZone:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Hand
SVar:SacMe:2

View File

@@ -5,7 +5,7 @@ Text:no text
PT:3/3
T:Mode$ DamageDone | Execute$ TrigDamage | ValidTarget$ Card.Self | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME is dealt damage, it deals that much damage to target creature or player.
SVar:TrigDamage:AB$DealDamage | Cost$ 0 | NumDmg$ X | Tgt$ TgtCP
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/spitemare.jpg
SetInfo:EVE|Uncommon|http://magiccards.info/scans/en/eve/147.jpg

View File

@@ -2,7 +2,7 @@ Name:Squandered Resources
ManaCost:B G
Types:Enchantment
Text:no text
A:AB$ ManaReflected | Cost$ Sac<1/Land> | ColorOrType$ Type | Valid$ Sacrificed | ReflectProperty$ Produce | SpellDescription$ Add to your mana pool one mana of any type the sacrificed land could produce.
A:AB$ ManaReflected | Cost$ Sac<1/Land> | ColorOrType$ Type | Valid$ Defined.Sacrificed | ReflectProperty$ Produce | SpellDescription$ Add to your mana pool one mana of any type the sacrificed land could produce.
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/squandered_resources.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/4
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
A:AB$ Pump | Cost$ 1 R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/sunhome_enforcer.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/4
T:Mode$ DamageDone | ValidSource$ Card.nonCreature+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a noncreature source you control deals damage, you gain that much life.
SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
Svar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/tamanoa.jpg
SetInfo:CSP|Rare|http://magiccards.info/scans/en/cs/132.jpg

View File

@@ -7,7 +7,7 @@ T:Mode$ DamageDone | ValidSource$ Creature | ValidTarget$ Card.Self | Execute$ T
T:Mode$ DamageDone | ValidSource$ Instant,Sorcery | ValidTarget$ Card.Self | Execute$ TrigDealDamage2 | TriggerDescription$ Whenever a spell deals damage to CARDNAME, CARDNAME deals that much damage to that spell's controller.
SVar:TrigDealDamage1:AB$DealDamage | Cost$ 0 | Defined$ TriggeredSource | NumDmg$ X
SVar:TrigDealDamage2:AB$DealDamage | Cost$ 0 | Defined$ TriggeredSourceController | NumDmg$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/tephraderm.jpg
SetInfo:ONS|Rare|http://magiccards.info/scans/en/on/239.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:4/4
T:Mode$ DamageDone | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME is dealt damage, you lose that much life.
SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
K:Morph:1 B B
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/thrashing_mudspawn.jpg

View File

@@ -6,7 +6,7 @@ K:Enchant creature
K:enPump:+0/+0
T:Mode$ DamageDone | ValidSource$ Card.AttachedBy | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/vampiric_link.jpg
SetInfo:PLC|Common|http://magiccards.info/scans/en/pc/92.jpg

View File

@@ -5,7 +5,7 @@ Text:no text
PT:7/6
K:Trample
T:Mode$ TapsForMana | ValidCard$ Land.YouCtrl | Execute$ TrigMana | TriggerZones$ Battlefield | TriggerDescription$ Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced.
SVar:TrigMana:AB$ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Card.IsTriggeredCard | ReflectProperty$ Produced | Defined$ You
SVar:TrigMana:AB$ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Defined.Triggered | ReflectProperty$ Produced | Defined$ You
T:Mode$ TapsForMana | ValidCard$ Land.YouDontCtrl | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent taps a land for mana, that land doesn't untap during its controller's next untap step.
SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredCard | Permanent$ True | KW$ HIDDEN This card doesn't untap during your next untap step.
SVar:Rarity:Mythic

View File

@@ -6,7 +6,7 @@ PT:0/4
K:Defender
T:Mode$ DamageDone | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigGain | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME is dealt combat damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/wall_of_essence.jpg
SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/122.jpg

View File

@@ -6,7 +6,7 @@ PT:0/3
K:Defender
T:Mode$ DamageDone | DamageSource$ Any | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever CARDNAME is dealt damage, you gain that much life.
SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/wall_of_hope.jpg
SetInfo:LGN|Common|http://magiccards.info/scans/en/le/24.jpg

View File

@@ -6,7 +6,7 @@ PT:0/4
K:Defender
T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigDamage | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME is dealt combat damage, it deals that much damage to target opponent.
SVar:TrigDamage:AB$DealDamage | Cost$ 0 | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | NumDmg$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/wall_of_souls.jpg
SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/25.jpg

View File

@@ -6,7 +6,7 @@ PT:3/4
K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/warrior_angel.jpg
SetInfo:STH|Rare|http://magiccards.info/scans/en/sh/123.jpg

View File

@@ -3,7 +3,7 @@ ManaCost:R G W
Types:World Enchantment
Text:no text
T:Mode$ TapsForMana | ValidCard$ Land.Snow | Execute$ TrigMana | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player taps a snow land for mana, that player adds one mana to his or her mana pool of any type that land produced. That land doesn't untap during its controller's next untap step.
SVar:TrigMana:AB$ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Card.IsTriggeredCard | ReflectProperty$ Produced | Defined$ TriggeredPlayer | SubAbility$ SVar=DBPump
SVar:TrigMana:AB$ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Defined.Triggered | ReflectProperty$ Produced | Defined$ TriggeredPlayer | SubAbility$ SVar=DBPump
SVar:DBPump:DB$Pump | Defined$ TriggeredCard | Permanent$ True | KW$ HIDDEN This card doesn't untap during your next untap step.
SVar:RemAIDeck:True
SVar:RemRandomDeck:True

View File

@@ -5,7 +5,7 @@ Text:no text
PT:2/2
T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life.
SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
SVar:X:Count$TriggeredDamageAmount
SVar:X:TriggerCount$DamageAmount
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/zebra_unicorn.jpg
SetInfo:MIR|Uncommon|http://magiccards.info/scans/en/mr/350.jpg

View File

@@ -266,32 +266,11 @@ public class Card extends MyObservable {
triggers.clear();
}
public void setTriggeringObject(String type,Object o)
{
triggeringObjects.put(type,o);
}
public Object getTriggeringObject(String type)
{
return triggeringObjects.get(type);
}
public boolean hasTriggeringObject(String type)
{
return triggeringObjects.containsKey(type);
}
public void setAllTriggeringObjects(HashMap<String, Object> map)
{
triggeringObjects = map;
}
public HashMap<String, Object> getAllTriggeringObjects()
{
return triggeringObjects;
}
public void setAbilityUsed(int i) {
abilityUsed = i;
}
@@ -2954,18 +2933,6 @@ public class Card extends MyObservable {
{
if(!manaCost.contains("P")) return false;
}
else if(Property.startsWith("IsTriggered"))
{
if(!source.hasTriggeringObject(Property.substring(11)))
return false;
Object TriggeredObject = source.getTriggeringObject(Property.substring(11));
if(!(TriggeredObject instanceof Card))
return false;
if(!TriggeredObject.equals(this))
return false;
}
else {
if(Property.equals("ChosenType")) {
if(!isType(source.getChosenType())) return false;

View File

@@ -976,7 +976,7 @@ public class AbilityFactory {
}
else if (calcX[0].startsWith("Triggered")) {
list = new CardList();
list.add((Card)ability.getSourceCard().getTriggeringObject(calcX[0].substring(9)));
list.add((Card)ability.getTriggeringObject(calcX[0].substring(9)));
}
else if (calcX[0].startsWith("Remembered")) {
// Add whole Remembered list to handlePaid
@@ -992,6 +992,16 @@ public class AbilityFactory {
for(Card c : card.getImprinted())
list.add(AllZoneUtil.getCardState(c));
}
else if (calcX[0].startsWith("TriggerCount")) {
// TriggerCount is similar to a regular Count, but just pulls Integer Values from Trigger objects
String[] l = calcX[1].split("/");
String[] m = CardFactoryUtil.parseMath(l);
int count = (Integer)ability.getTriggeringObject(l[0]);
return CardFactoryUtil.doXMath(count, m, card) * multiplier;
}
else
return 0;
@@ -1030,7 +1040,7 @@ public class AbilityFactory {
}
else if (defined.startsWith("Triggered")){
Object crd = hostCard.getTriggeringObject(defined.substring(9));
Object crd = sa.getTriggeringObject(defined.substring(9));
if(crd instanceof Card)
{
c = AllZoneUtil.getCardState((Card)crd);
@@ -1055,7 +1065,26 @@ public class AbilityFactory {
cards.add(AllZoneUtil.getCardState(imprint));
}
}
else{
CardList list = null;
if (defined.startsWith("Sacrificed"))
list = findRootAbility(sa).getPaidList("Sacrificed");
else if (defined.startsWith("Discarded"))
list = findRootAbility(sa).getPaidList("Discarded");
else if(defined.startsWith("Exiled"))
list = findRootAbility(sa).getPaidList("Exiled");
else if(defined.startsWith("Tapped"))
list = findRootAbility(sa).getPaidList("Tapped");
else
return cards;
for(Card cl : list)
cards.add(cl);
}
if (c != null)
cards.add(c);
@@ -1115,7 +1144,7 @@ public class AbilityFactory {
if (defined.endsWith("Controller")){
String triggeringType = defined.substring(9);
triggeringType = triggeringType.substring(0,triggeringType.length()-10);
Object c = sa.getSourceCard().getTriggeringObject(triggeringType);
Object c = sa.getTriggeringObject(triggeringType);
if(c instanceof Card)
{
o = ((Card)c).getController();
@@ -1124,7 +1153,7 @@ public class AbilityFactory {
else if (defined.endsWith("Owner")){
String triggeringType = defined.substring(9);
triggeringType = triggeringType.substring(0,triggeringType.length()-5);
Object c = sa.getSourceCard().getTriggeringObject(triggeringType);
Object c = sa.getTriggeringObject(triggeringType);
if(c instanceof Card)
{
o = ((Card)c).getOwner();
@@ -1132,7 +1161,7 @@ public class AbilityFactory {
}
else {
String triggeringType = defined.substring(9);
o = sa.getSourceCard().getTriggeringObject(triggeringType);
o = sa.getTriggeringObject(triggeringType);
}
if(o != null)
{
@@ -1191,8 +1220,8 @@ public class AbilityFactory {
else if(defined.startsWith("Triggered"))
{
String triggeringType = defined.substring(9);
if(sa.getSourceCard().getTriggeringObject(triggeringType) instanceof SpellAbility)
s = (SpellAbility)sa.getSourceCard().getTriggeringObject(triggeringType);
if(sa.getTriggeringObject(triggeringType) instanceof SpellAbility)
s = (SpellAbility)sa.getTriggeringObject(triggeringType);
}
if (s != null)

View File

@@ -682,7 +682,7 @@ public class AbilityFactory_ChangeZone {
Card source = sa.getSourceCard();
if (type.contains("Triggered")){
Object o = source.getTriggeringObject("Card");
Object o = sa.getTriggeringObject("Card");
// I won't the card attached to the Triggering object
if (!(o instanceof Card))

View File

@@ -353,9 +353,11 @@ public class AbilityFactory_Mana {
CardList cards = null;
// TODO: Conver this to Calculate Amount?
if (validCard.equals("Sacrificed")){
cards = abMana.getPaidList("Sacrificed");
// Reuse AF_Defined in a slightly different way
if (validCard.startsWith("Defined.")){
cards = new CardList();
for(Card c : AbilityFactory.getDefinedCards(card, validCard.replace("Defined.", ""), (SpellAbility)abMana))
cards.add(c);
}
else{
cards = AllZoneUtil.getCardsInPlay().getValidCards(validCard, abMana.getActivatingPlayer(), card);
@@ -373,7 +375,7 @@ public class AbilityFactory_Mana {
colors = hasProperty(maxChoices, cards, colors);
}
else if (reflectProperty.equals("Produced")){
String producedColors = (String)af.getHostCard().getTriggeringObject("Produced");
String producedColors = (String)abMana.getTriggeringObject("Produced");
for(String col : Constant.Color.onlyColors){
String s = Input_PayManaCostUtil.getShortColorString(col);
if(producedColors.contains(s) && !colors.contains(col))

View File

@@ -309,7 +309,7 @@ public class AbilityFactory_Sacrifice {
}
}
else if( valid.equals("TriggeredCard")) {
Card equipee = (Card)(card.getTriggeringObject("Card"));
Card equipee = (Card)sa.getTriggeringObject("Card");
if(tgts.contains(card.getController()) && AllZoneUtil.isCardInPlay(equipee)) {
AllZone.GameAction.sacrifice(equipee);
}

View File

@@ -190,7 +190,6 @@ public class CardFactory implements NewConstants {
out.setSets(in.getSets());
out.setCurSetCode(in.getCurSetCode());
out.setImageFilename(in.getImageFilename());
out.setAllTriggeringObjects(in.getAllTriggeringObjects());
out.setEquipping(in.getEquipping());
out.setEquippedBy(in.getEquippedBy());
out.setEnchantedBy(in.getEnchantedBy());

View File

@@ -2275,14 +2275,20 @@ public class CardFactoryUtil {
return count;
}
public static String[] parseMath(String[] l){
String[] m = {"none"};
if(l.length > 1) m[0] = l[1];
return m;
}
//parser for player targeted X variables
public static int playerXCount(ArrayList<Player> players, String s, Card source) {
if(players.size() == 0) return 0;
final String[] l;
l = s.split("/");
final String m[] = {"none"};
if(l.length > 1) m[0] = l[1];
final String[] l = s.split("/");
final String[] m = parseMath(l);
int n = 0;
@@ -2336,10 +2342,8 @@ public class CardFactoryUtil {
Player cardController = c.getController();
Player oppController = cardController.getOpponent();
final String[] l;
l = s.split("/"); // separate the specification from any math
final String m[] = {"none"};
if(l.length > 1) m[0] = l[1];
final String[] l = s.split("/");
final String[] m = parseMath(l);
//accept straight numbers
if(l[0].contains("Number$")) {
@@ -2771,7 +2775,7 @@ public class CardFactoryUtil {
else return num;
}
private static int doXMath(int num, String[] m, Card c) {
public static int doXMath(int num, String[] m, Card c) {
if (m.length == 0)
return num;

View File

@@ -70,9 +70,11 @@ public abstract class SpellAbility {
private ArrayList<Mana> payingMana = new ArrayList<Mana>();
private ArrayList<Ability_Mana> paidAbilities = new ArrayList<Ability_Mana>();
HashMap<String, CardList> paidLists = new HashMap<String, CardList>();
private HashMap<String, CardList> paidLists = new HashMap<String, CardList>();
private Command cancelCommand = Command.Blank;
private HashMap<String,Object> triggeringObjects = new HashMap<String,Object>();
private Command cancelCommand = Command.Blank;
private Command beforePayManaAI = Command.Blank;
private CommandArgs randomTarget = new CommandArgs() {
@@ -337,12 +339,39 @@ public abstract class SpellAbility {
paidLists = new HashMap<String, CardList>();
}
public HashMap<String, Object> getTriggeringObjects() {
return triggeringObjects;
}
public void setAllTriggeringObjects(HashMap<String, Object> triggeredObjects) {
this.triggeringObjects = triggeredObjects;
}
public void setTriggeringObject(String type,Object o) {
this.triggeringObjects.put(type, o);
}
public Object getTriggeringObject(String type)
{
return triggeringObjects.get(type);
}
public boolean hasTriggeringObject(String type)
{
return triggeringObjects.containsKey(type);
}
public void resetTriggeringObjects(){
triggeringObjects = new HashMap<String, Object>();
}
public void resetOnceResolved(){
resetPaidHash();
if (chosenTarget != null)
chosenTarget.resetTargets();
resetTriggeringObjects();
}
public Input getAfterResolve() {

View File

@@ -30,11 +30,15 @@ public class SpellAbility_StackInstance {
private int xManaPaid = 0;
// Other Paid things
HashMap<String, CardList> paidHash = new HashMap<String, CardList>();
private HashMap<String, CardList> paidHash = new HashMap<String, CardList>();
// Additional info
// is Kicked, is Buyback
// Triggers
private HashMap<String, Object> triggeringObjects = new HashMap<String, Object>();
public SpellAbility_StackInstance(SpellAbility sa){
// Base SA info
ability = sa;
@@ -56,7 +60,7 @@ public class SpellAbility_StackInstance {
}
// Triggering info
triggeringObjects = sa.getTriggeringObjects();
Ability_Sub subAb = ability.getSubAbility();
if (subAb != null)
@@ -78,6 +82,9 @@ public class SpellAbility_StackInstance {
ability.setPaidHash(paidHash);
ability.getSourceCard().setXManaCostPaid(xManaPaid);
// Triggered
ability.setAllTriggeringObjects(triggeringObjects);
return ability;
}

View File

@@ -64,6 +64,14 @@ public abstract class Trigger {
overridingAbility = sa;
}
private HashMap<String, Object> storedTriggeredObjects = null;
public void setStoredTriggeredObjects(HashMap<String, Object> storedTriggeredObjects) {
this.storedTriggeredObjects = storedTriggeredObjects;
}
public HashMap<String, Object> getStoredTriggeredObjects() {
return storedTriggeredObjects;
}
protected Card hostCard;
public Card getHostCard()
{
@@ -391,5 +399,5 @@ public abstract class Trigger {
public abstract Trigger getCopy();
public abstract void setTriggeringObjects(Card c);
public abstract void setTriggeringObjects(SpellAbility sa);
}

View File

@@ -373,7 +373,9 @@ public class TriggerHandler {
}
}
sa[0].setTrigger(true);
regtrig.setTriggeringObjects(host);
regtrig.setTriggeringObjects(sa[0]);
if (regtrig.getStoredTriggeredObjects() != null)
sa[0].setAllTriggeringObjects(regtrig.getStoredTriggeredObjects());
sa[0].setActivatingPlayer(host.getController());
if(sa[0].getStackDescription().equals(""))
@@ -401,31 +403,68 @@ public class TriggerHandler {
//Yes, it must wrap ALL SpellAbility methods in order to handle possible corner cases.
//(The trigger can have a hardcoded OverridingAbility which can make use of any of the methods)
final Ability wrapperAbility = new Ability(regtrig.getHostCard(),"0") {
@Override
public void setPaidHash(HashMap<String, CardList> hash){
sa[0].setPaidHash(hash);
}
@Override
public HashMap<String, CardList> getPaidHash(){
return sa[0].getPaidHash();
}
@Override
public void setPaidList(CardList list, String str){
sa[0].setPaidList(list, str);
}
@Override
public CardList getPaidList(String str){
return sa[0].getPaidList(str);
}
@Override
public void addCostToHashList(Card c, String str){
sa[0].addCostToHashList(c, str);
}
@Override
public void resetPaidHash(){
sa[0].resetPaidHash();
}
@Override
public HashMap<String, Object> getTriggeringObjects() {
return sa[0].getTriggeringObjects();
}
@Override
public void setAllTriggeringObjects(HashMap<String, Object> triggeredObjects) {
sa[0].setAllTriggeringObjects(triggeredObjects);
}
@Override
public void setTriggeringObject(String type,Object o) {
sa[0].setTriggeringObject(type, o);
}
@Override
public Object getTriggeringObject(String type)
{
return sa[0].getTriggeringObject(type);
}
@Override
public boolean hasTriggeringObject(String type)
{
return sa[0].hasTriggeringObject(type);
}
@Override
public void resetTriggeringObjects(){
sa[0].resetTriggeringObjects();
}
@Override
public boolean canPlay()
{
@@ -933,7 +972,8 @@ public class TriggerHandler {
{
String SVarName = regtrig.getMapParams().get("DelayedTrigger");
Trigger deltrig = parseTrigger(regtrig.getHostCard().getSVar(SVarName),regtrig.getHostCard());
registerDelayedTrigger(deltrig);
deltrig.setStoredTriggeredObjects(this.getTriggeringObjects());
registerDelayedTrigger(deltrig);
}
}
};

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_AttackerBlocked extends Trigger {
@@ -44,10 +45,10 @@ public class Trigger_AttackerBlocked extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Attacker",runParams.get("Attacker"));
c.setTriggeringObject("Blocker",runParams.get("Blocker"));
c.setTriggeringObject("NumBlockers", runParams.get("NumBlockers"));
sa.setTriggeringObject("Attacker",runParams.get("Attacker"));
sa.setTriggeringObject("Blocker",runParams.get("Blocker"));
sa.setTriggeringObject("NumBlockers", runParams.get("NumBlockers"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_AttackerUnblocked extends Trigger {
@@ -37,8 +38,8 @@ public class Trigger_AttackerUnblocked extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Attacker",runParams.get("Attacker"));
sa.setTriggeringObject("Attacker",runParams.get("Attacker"));
}
}

View File

@@ -4,6 +4,7 @@ import java.util.HashMap;
import forge.Card;
import forge.CardList;
import forge.card.spellability.SpellAbility;
public class Trigger_Attacks extends Trigger {
@@ -62,8 +63,8 @@ public class Trigger_Attacks extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Attacker",runParams.get("Attacker"));
sa.setTriggeringObject("Attacker",runParams.get("Attacker"));
}
}

View File

@@ -2,6 +2,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
@@ -45,9 +46,9 @@ public class Trigger_Blocks extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Blocker",runParams.get("Blocker"));
c.setTriggeringObject("Attacker",runParams.get("Attacker"));
sa.setTriggeringObject("Blocker",runParams.get("Blocker"));
sa.setTriggeringObject("Attacker",runParams.get("Attacker"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_ChangesZone extends Trigger {
@@ -65,8 +66,8 @@ public class Trigger_ChangesZone extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Card",runParams.get("Card"));
sa.setTriggeringObject("Card",runParams.get("Card"));
}
}

View File

@@ -1,6 +1,7 @@
package forge.card.trigger;
import forge.Card;
import forge.card.spellability.SpellAbility;
import java.util.HashMap;
@@ -51,7 +52,7 @@ public class Trigger_Clashed extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
//No triggered-variables for you :(
}

View File

@@ -4,6 +4,7 @@ import java.util.HashMap;
import forge.Card;
import forge.Counters;
import forge.card.spellability.SpellAbility;
public class Trigger_CounterAdded extends Trigger {
@@ -45,8 +46,8 @@ public class Trigger_CounterAdded extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Card",runParams.get("Card"));
sa.setTriggeringObject("Card",runParams.get("Card"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_Cycled extends Trigger {
@@ -24,8 +25,8 @@ public class Trigger_Cycled extends Trigger {
}
@Override
public void setTriggeringObjects(Card c) {
c.setTriggeringObject("Card",runParams.get("Card"));
public void setTriggeringObjects(SpellAbility sa) {
sa.setTriggeringObject("Card",runParams.get("Card"));
}
@Override

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_DamageDone extends Trigger {
@@ -103,10 +104,10 @@ public class Trigger_DamageDone extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Source",runParams.get("DamageSource"));
c.setTriggeringObject("Target",runParams.get("DamageTarget"));
c.setTriggeringObject("DamageAmount",runParams.get("DamageAmount"));
sa.setTriggeringObject("Source",runParams.get("DamageSource"));
sa.setTriggeringObject("Target",runParams.get("DamageTarget"));
sa.setTriggeringObject("DamageAmount",runParams.get("DamageAmount"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_Discarded extends Trigger {
@@ -56,8 +57,8 @@ public class Trigger_Discarded extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Card",runParams.get("Card"));
sa.setTriggeringObject("Card",runParams.get("Card"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_Drawn extends Trigger {
@@ -38,8 +39,8 @@ public class Trigger_Drawn extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Card",runParams.get("Card"));
sa.setTriggeringObject("Card",runParams.get("Card"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_LandPlayed extends Trigger {
@@ -28,8 +29,8 @@ public class Trigger_LandPlayed extends Trigger {
}
@Override
public void setTriggeringObjects(Card c) {
c.setTriggeringObject("Card",runParams.get("Card"));
public void setTriggeringObjects(SpellAbility sa) {
sa.setTriggeringObject("Card",runParams.get("Card"));
}
@Override

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_LifeGained extends Trigger {
@@ -38,9 +39,9 @@ public class Trigger_LifeGained extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("LifeAmount",runParams.get("LifeAmount"));
c.setTriggeringObject("Player",runParams.get("Player"));
sa.setTriggeringObject("LifeAmount",runParams.get("LifeAmount"));
sa.setTriggeringObject("Player",runParams.get("Player"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_LifeLost extends Trigger {
@@ -38,9 +39,9 @@ public class Trigger_LifeLost extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("LifeAmount",runParams.get("LifeAmount"));
c.setTriggeringObject("Player",runParams.get("Player"));
sa.setTriggeringObject("LifeAmount",runParams.get("LifeAmount"));
sa.setTriggeringObject("Player",runParams.get("Player"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_Phase extends Trigger {
@@ -61,8 +62,8 @@ public class Trigger_Phase extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Player",runParams.get("Player"));
sa.setTriggeringObject("Player",runParams.get("Player"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_Sacrificed extends Trigger {
@@ -44,8 +45,8 @@ public class Trigger_Sacrificed extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Card",runParams.get("Card"));
sa.setTriggeringObject("Card",runParams.get("Card"));
}
}

View File

@@ -3,6 +3,7 @@ package forge.card.trigger;
import java.util.HashMap;
import forge.Card;
import forge.card.spellability.SpellAbility;
public class Trigger_Shuffled extends Trigger{
@@ -38,8 +39,8 @@ public class Trigger_Shuffled extends Trigger{
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Player",runParams.get("Player"));
sa.setTriggeringObject("Player",runParams.get("Player"));
}
}

View File

@@ -166,11 +166,11 @@ public class Trigger_SpellAbilityCast extends Trigger {
}
@Override
public void setTriggeringObjects(Card c)
public void setTriggeringObjects(SpellAbility sa)
{
c.setTriggeringObject("Card",((SpellAbility)runParams.get("CastSA")).getSourceCard());
c.setTriggeringObject("SpellAbility",runParams.get("CastSA"));
c.setTriggeringObject("Player", runParams.get("Player"));
c.setTriggeringObject("Activator", runParams.get("Activator"));
sa.setTriggeringObject("Card",((SpellAbility)runParams.get("CastSA")).getSourceCard());
sa.setTriggeringObject("SpellAbility",runParams.get("CastSA"));
sa.setTriggeringObject("Player", runParams.get("Player"));
sa.setTriggeringObject("Activator", runParams.get("Activator"));
}
}

Some files were not shown because too many files have changed in this diff Show More