mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 :(
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user