From 0f48862b188dad6fb6fd9b8ce45480f124a4fea4 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 19:25:11 +0000 Subject: [PATCH] *Added mode specific trigger parameters. They are: (Explanations in parenthesis) AttackerBlocked = Attacker,Blocker AttackerUnblocked = Attacker Attacks = Attacker Blocks = Attacker,Blocker ChangesZone = Card(The card that was moved) CounterAdded = Card(The card that got the counter(s)) Cycled = Card(The card that was cycled) DamageDone = Source(The card that dealt the damage),Target(The card or player who recieved the damage),DamageAmount(The amount of damage that was dealt) [BEWARE: Since Target can be both a card or a player object, you must take care to match it with your ValidTarget parameter!] Discarded = Card(The card that was discarded) Drawn = Card(The card that was drawn) LandPlayed = Card(The card that was played) LifeGained = Player(The player who gained life),LifeAmount(The amount of life that was gained) LifeLost = Player(The player who lost life),LifeAmount(The amount of life that was lost) Phase = Player(The player whose turn it is) Sacrificed = Card(The card that was sacrificed) SpellAbilityCast = Card(The card of the spell or ability) Taps = Card(The card that was tapped) TurnFaceUp = Card(The card that was turned face up) Untaps = Card(The card that was untapped) To use a parameter, simply call it like this: "Triggered". To get the controller or owner of a card parameter, append Controller or Owner. For example: "TriggeredAttackerController". Parameters that don't return an integer (i.e. the ones that have "Amount" in their name) can be used for Defined$ parameters or to get additional info from, a'la "SVar:X:TriggeredBlocker$CardPower". Parameters that DO return an integer can only be accessed via Count$ like this: "Count$TriggeredLifeAmount". *Updated all cards that use Triggered to their new respective parameters. --- .gitattributes | 2 +- res/cardsfolder/abduction.txt | 2 +- res/cardsfolder/aether_flash.txt | 2 +- res/cardsfolder/angelic_chorus.txt | 2 +- res/cardsfolder/angelic_renewal.txt | 2 +- res/cardsfolder/ankh_of_mishra.txt | 2 +- res/cardsfolder/archon_of_redemption.txt | 2 +- res/cardsfolder/blood_seeker.txt | 2 +- res/cardsfolder/bounteous_kirin.txt | 2 +- res/cardsfolder/briar_patch.txt | 2 +- res/cardsfolder/celestial_kirin.txt | 2 +- res/cardsfolder/contaminated_bond.txt | 7 ++-- res/cardsfolder/dingus_egg.txt | 2 +- res/cardsfolder/dingus_staff.txt | 2 +- res/cardsfolder/earthlink.txt | 2 +- res/cardsfolder/electropotence.txt | 2 +- res/cardsfolder/false_demise.txt | 2 +- res/cardsfolder/freyalises_winds.txt | 2 +- res/cardsfolder/hamletback_goliath.txt | 2 +- res/cardsfolder/heat_of_battle.txt | 20 +++++----- res/cardsfolder/in_the_web_of_war.txt | 2 +- res/cardsfolder/insolence.txt | 2 +- res/cardsfolder/ishi_ishi_akki_crackshot.txt | 2 +- res/cardsfolder/it_that_betrays.txt | 2 +- res/cardsfolder/juniper_order_ranger.txt | 2 +- res/cardsfolder/kaervek_the_merciless.txt | 2 +- res/cardsfolder/kavu_lair.txt | 2 +- res/cardsfolder/kresh_the_bloodbraided.txt | 2 +- res/cardsfolder/mage_slayer.txt | 2 +- res/cardsfolder/magnetic_mine.txt | 2 +- res/cardsfolder/manaplasm.txt | 2 +- res/cardsfolder/mesmeric_orb.txt | 2 +- res/cardsfolder/mighty_emergence.txt | 2 +- res/cardsfolder/mortuary.txt | 2 +- res/cardsfolder/necroskitter.txt | 2 +- res/cardsfolder/nettling_curse.txt | 7 ++-- res/cardsfolder/orchard_warden.txt | 2 +- res/cardsfolder/proper_burial.txt | 2 +- res/cardsfolder/psychic_venom.txt | 2 +- res/cardsfolder/relic_putrescence.txt | 2 +- res/cardsfolder/retromancer.txt | 2 +- res/cardsfolder/rite_of_passage.txt | 3 +- res/cardsfolder/royal_decree.txt | 2 +- res/cardsfolder/sigil_captain.txt | 2 +- res/cardsfolder/sigil_of_the_new_dawn.txt | 2 +- res/cardsfolder/squees_embrace.txt | 2 +- res/cardsfolder/stalking_vengeance.txt | 2 +- res/cardsfolder/stonebrow_krosan_hero.txt | 2 +- res/cardsfolder/suleimans_legacy.txt | 2 +- res/cardsfolder/wall_of_frost.txt | 2 +- res/cardsfolder/warped_devotion.txt | 2 +- res/cardsfolder/yomiji_who_bars_the_way.txt | 2 +- res/cardsfolder/zo_zu_the_punisher.txt | 2 +- src/forge/AbilityFactory.java | 39 +++++++++++++------- src/forge/Card.java | 11 ++++++ src/forge/CardFactoryUtil.java | 8 +++- src/forge/CombatUtil.java | 4 +- src/forge/Trigger.java | 2 +- src/forge/TriggerHandler.java | 3 +- src/forge/Trigger_AttackerBlocked.java | 5 ++- src/forge/Trigger_AttackerUnblocked.java | 4 +- src/forge/Trigger_Attacks.java | 4 +- src/forge/Trigger_Blocks.java | 5 ++- src/forge/Trigger_ChangesZone.java | 4 +- src/forge/Trigger_CounterAdded.java | 5 ++- src/forge/Trigger_Cycled.java | 4 +- src/forge/Trigger_DamageDone.java | 6 ++- src/forge/Trigger_Discarded.java | 4 +- src/forge/Trigger_Drawn.java | 4 +- src/forge/Trigger_LandPlayed.java | 4 +- src/forge/Trigger_LifeGained.java | 5 ++- src/forge/Trigger_LifeLost.java | 5 ++- src/forge/Trigger_Phase.java | 4 +- src/forge/Trigger_Sacrificed.java | 4 +- src/forge/Trigger_SpellAbilityCast.java | 4 +- src/forge/Trigger_Taps.java | 4 +- src/forge/Trigger_TurnFaceUp.java | 4 +- src/forge/Trigger_Untaps.java | 5 ++- 78 files changed, 163 insertions(+), 123 deletions(-) diff --git a/.gitattributes b/.gitattributes index 1fcfc4133ee..fcb779de3e1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2818,7 +2818,7 @@ res/cardsfolder/heartstone.txt -text svneol=native#text/plain res/cardsfolder/heartwood_dryad.txt -text svneol=native#text/plain res/cardsfolder/heartwood_shard.txt -text svneol=native#text/plain res/cardsfolder/heartwood_treefolk.txt -text svneol=native#text/plain -res/cardsfolder/heat_of_battle.txt svneol=native#text/plain +res/cardsfolder/heat_of_battle.txt -text svneol=native#text/plain res/cardsfolder/heat_ray.txt -text svneol=native#text/plain res/cardsfolder/heavy_arbalest.txt svneol=native#text/plain res/cardsfolder/heavy_ballista.txt -text svneol=native#text/plain diff --git a/res/cardsfolder/abduction.txt b/res/cardsfolder/abduction.txt index d127772d86e..ab2153062d1 100644 --- a/res/cardsfolder/abduction.txt +++ b/res/cardsfolder/abduction.txt @@ -7,7 +7,7 @@ K:enControlCreature T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigUntap | TriggerDescription$ When CARDNAME enters the battlefield, untap enchanted creature. SVar:TrigUntap:AB$Untap | Cost$ 0 | Defined$ Enchanted T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigReturnOwner | TriggerDescription$ When enchanted creature is put into a graveyard, return that card to the battlefield under its owner's control. -SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Triggered | Origin$ Graveyard | Destination$ Battlefield +SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Battlefield SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/abduction.jpg SetInfo:WTH|Uncommon|http://magiccards.info/scans/en/wl/30.jpg diff --git a/res/cardsfolder/aether_flash.txt b/res/cardsfolder/aether_flash.txt index 4a9aec43350..fd6e42378a6 100644 --- a/res/cardsfolder/aether_flash.txt +++ b/res/cardsfolder/aether_flash.txt @@ -3,7 +3,7 @@ ManaCost:2 R R Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever a creature enters the battlefield, CARDNAME deals 2 damage to it. -SVar:TrigDealDamage:AB$DealDamage | Cost$ 0 | Defined$ Triggered | NumDmg$ 2 +SVar:TrigDealDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCard | NumDmg$ 2 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/aether_flash.jpg diff --git a/res/cardsfolder/angelic_chorus.txt b/res/cardsfolder/angelic_chorus.txt index 2a62a605c6a..7ba73c657c9 100644 --- a/res/cardsfolder/angelic_chorus.txt +++ b/res/cardsfolder/angelic_chorus.txt @@ -4,7 +4,7 @@ Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature enters the battlefield under your control, you gain life equal to its toughness. SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X -SVar:X:Triggered$CardToughness +SVar:X:TriggeredCard$CardToughness SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/angelic_chorus.jpg SetInfo:USG|Rare|http://magiccards.info/scans/en/us/3.jpg diff --git a/res/cardsfolder/angelic_renewal.txt b/res/cardsfolder/angelic_renewal.txt index 8e7f5ce8218..ed4bc7024bf 100644 --- a/res/cardsfolder/angelic_renewal.txt +++ b/res/cardsfolder/angelic_renewal.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouOwn | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ Whenever a creature is put into your graveyard from the battlefield, you may sacrifice CARDNAME. If you do, return that card to the battlefield. -SVar:TrigReturn:AB$ChangeZone | Cost$ Sac<1/CARDNAME> | Defined$ Triggered | Origin$ Graveyard | Destination$ Battlefield +SVar:TrigReturn:AB$ChangeZone | Cost$ Sac<1/CARDNAME> | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Battlefield SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/angelic_renewal.jpg SetInfo:WTH|Common|http://magiccards.info/scans/en/wl/120.jpg diff --git a/res/cardsfolder/ankh_of_mishra.txt b/res/cardsfolder/ankh_of_mishra.txt index 0aecaeff424..4114de8c2dd 100644 --- a/res/cardsfolder/ankh_of_mishra.txt +++ b/res/cardsfolder/ankh_of_mishra.txt @@ -3,7 +3,7 @@ ManaCost:2 Types:Artifact Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a land enters the battlefield, CARDNAME deals 2 damage to that land's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/ankh_of_mishra.jpg SetInfo:LEA|Rare|http://magiccards.info/scans/en/al/230.jpg diff --git a/res/cardsfolder/archon_of_redemption.txt b/res/cardsfolder/archon_of_redemption.txt index 9bb788e5f17..dfdf975ebb3 100644 --- a/res/cardsfolder/archon_of_redemption.txt +++ b/res/cardsfolder/archon_of_redemption.txt @@ -6,7 +6,7 @@ PT:3/4 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl+withFlying | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigGainLife | TriggerDescription$ Whenever CARDNAME or another creature with flying enters the battlefield under your control, you may gain life equal to that creature's power. SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X -SVar:X:Triggered$CardPower +SVar:X:TriggeredCard$CardPower SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/archon_of_redemption.jpg SetInfo:WWK|Rare|http://magiccards.info/scans/en/wwk/3.jpg diff --git a/res/cardsfolder/blood_seeker.txt b/res/cardsfolder/blood_seeker.txt index b49af3b1341..d65e20348f7 100644 --- a/res/cardsfolder/blood_seeker.txt +++ b/res/cardsfolder/blood_seeker.txt @@ -3,7 +3,7 @@ ManaCost:1 B Types:Creature Vampire Shaman PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouDontCtrl | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigDrain | TriggerDescription$ Whenever a creature enters the battlefield under an opponent's control, you may have that player lose 1 life. -SVar:TrigDrain:AB$LoseLife | Cost$ 0 | Defined$ TriggeredController | LifeAmount$ 1 +SVar:TrigDrain:AB$LoseLife | Cost$ 0 | Defined$ TriggeredCardController | LifeAmount$ 1 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_seeker.jpg SetInfo:ZEN|Common|http://magiccards.info/scans/en/zen/80.jpg diff --git a/res/cardsfolder/bounteous_kirin.txt b/res/cardsfolder/bounteous_kirin.txt index 3832d25e263..fc39c9b6450 100644 --- a/res/cardsfolder/bounteous_kirin.txt +++ b/res/cardsfolder/bounteous_kirin.txt @@ -6,7 +6,7 @@ PT:4/4 K:Flying T:Mode$ SpellCast | ValidCard$ Spirit.YouCtrl,Arcane.YouCtrl | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigGainLife | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, you may gain life equal to that spell's converted mana cost. SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X -SVar:X:Triggered$CardManaCost +SVar:X:TriggeredCard$CardManaCost SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/bounteous_kirin.jpg SetInfo:SOK|Rare|http://magiccards.info/scans/en/sok/123.jpg diff --git a/res/cardsfolder/briar_patch.txt b/res/cardsfolder/briar_patch.txt index 3d1fc89bb5a..5bc6da8f903 100644 --- a/res/cardsfolder/briar_patch.txt +++ b/res/cardsfolder/briar_patch.txt @@ -3,7 +3,7 @@ ManaCost:1 G G Types:Enchantment Text:no text T:Mode$ Attacks | ValidCard$ Creature.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature attacks you, it gets -1/-0 until end of turn. -SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Triggered | NumAtt$ -1 +SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredCard | NumAtt$ -1 SVar:Picture:http://www.wizards.com/global/images/magic/general/briar_patch.jpg SVar:Rarity:Uncommon SetInfo:MMQ|Uncommon|http://magiccards.info/scans/en/mm/232.jpg diff --git a/res/cardsfolder/celestial_kirin.txt b/res/cardsfolder/celestial_kirin.txt index acde4fb2bd0..202be3862e9 100644 --- a/res/cardsfolder/celestial_kirin.txt +++ b/res/cardsfolder/celestial_kirin.txt @@ -6,7 +6,7 @@ PT:3/3 K:Flying T:Mode$ SpellCast | ValidCard$ Card.Spirit,Card.Arcane | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, destroy all permanents with that spell's converted mana cost. SVar:TrigPutCounter:AB$DestroyAll | Cost$ 0 | ValidCards$ Permanent.cmcEQX -SVar:X:Triggered$CardManaCost +SVar:X:TriggeredCard$CardManaCost SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/celestial_kirin.jpg diff --git a/res/cardsfolder/contaminated_bond.txt b/res/cardsfolder/contaminated_bond.txt index b84cda78bcc..d3ea9737d12 100644 --- a/res/cardsfolder/contaminated_bond.txt +++ b/res/cardsfolder/contaminated_bond.txt @@ -4,9 +4,10 @@ Types:Enchantment Aura Text:no text K:Enchant creature K:enPump:+0/+0 -T:Mode$ Attacks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. -T:Mode$ Blocks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLife | Secondary$ True | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. -SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ TriggeredController | LifeAmount$ 3 +T:Mode$ Attacks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLifeAttack | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. +T:Mode$ Blocks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLifeBlock | Secondary$ True | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. +SVar:TrigLoseLifeAttack:AB$LoseLife | Cost$ 0 | Defined$ TriggeredAttackerController | LifeAmount$ 3 +SVar:TrigLoseLifeBlock:AB$LoseLife | Cost$ 0 | Defined$ TriggeredBlockerController | LifeAmount$ 3 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/contaminated_bond.jpg SetInfo:MRD|Common|http://magiccards.info/scans/en/mi/61.jpg diff --git a/res/cardsfolder/dingus_egg.txt b/res/cardsfolder/dingus_egg.txt index 957fd842a40..5ce30af78e6 100644 --- a/res/cardsfolder/dingus_egg.txt +++ b/res/cardsfolder/dingus_egg.txt @@ -3,7 +3,7 @@ ManaCost:4 Types:Artifact Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Land | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a land is put into a graveyard from the battlefield, CARDNAME deals 2 damage to that land's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/dingus_egg.jpg diff --git a/res/cardsfolder/dingus_staff.txt b/res/cardsfolder/dingus_staff.txt index 56b5a0d231d..38a1d0eff37 100644 --- a/res/cardsfolder/dingus_staff.txt +++ b/res/cardsfolder/dingus_staff.txt @@ -3,7 +3,7 @@ ManaCost:4 Types:Artifact Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a creature is put into a graveyard from the battlefield, CARDNAME deals 2 damage to that land's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:RemAIDeck:True SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/dingus_staff.jpg diff --git a/res/cardsfolder/earthlink.txt b/res/cardsfolder/earthlink.txt index 964b8985236..c1377605694 100644 --- a/res/cardsfolder/earthlink.txt +++ b/res/cardsfolder/earthlink.txt @@ -4,7 +4,7 @@ Types:Enchantment Text:no text K:At the beginning of your upkeep, sacrifice CARDNAME unless you pay 2 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a creature is put into a graveyard from the battlefield, that creature's controller sacrifices a land. -SVar:TrigSac:AB$Sacrifice | Cost$ 0 | SacValid$ Land | Defined$ TriggeredController +SVar:TrigSac:AB$Sacrifice | Cost$ 0 | SacValid$ Land | Defined$ TriggeredCardController SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/earthlink.jpg SetInfo:ICE|Rare|http://magiccards.info/scans/en/ia/363.jpg diff --git a/res/cardsfolder/electropotence.txt b/res/cardsfolder/electropotence.txt index 96be78d9055..8b0e8de059e 100644 --- a/res/cardsfolder/electropotence.txt +++ b/res/cardsfolder/electropotence.txt @@ -4,7 +4,7 @@ Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigDamage | TriggerDescription$ Whenever a creature enters the battlefield under your control, you may pay 2 R. If you do, that creature deals damage equal to its power to target creature or player. SVar:TrigDamage:AB$DealDamage | Cost$ 2 R | ValidTgts$ Creature,Player | NumDmg$ Damage | TgtPrompt$ Select target creature or player. -SVar:Damage:Triggered$CardPower +SVar:Damage:TriggeredCard$CardPower SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/electropotence.jpg SetInfo:ZEN|Rare|http://magiccards.info/scans/en/zen/122.jpg diff --git a/res/cardsfolder/false_demise.txt b/res/cardsfolder/false_demise.txt index acf39c48216..f387d2ac6e0 100644 --- a/res/cardsfolder/false_demise.txt +++ b/res/cardsfolder/false_demise.txt @@ -5,7 +5,7 @@ Text:no text K:Enchant creature K:enPump:0/0 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigChange | TriggerDescription$ When enchanted creature is put into a graveyard, return that card to the battlefield under your control. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ Triggered +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ TriggeredCard SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/false_demise.jpg SetInfo:ALL|Common|http://magiccards.info/scans/en/ai/40.jpg|2 diff --git a/res/cardsfolder/freyalises_winds.txt b/res/cardsfolder/freyalises_winds.txt index eb8c5634184..1cd75324345 100644 --- a/res/cardsfolder/freyalises_winds.txt +++ b/res/cardsfolder/freyalises_winds.txt @@ -3,7 +3,7 @@ ManaCost:2 G G Types:Enchantment Text:If a permanent with a wind counter on it would untap during its controller's untap step, remove all wind counters from it instead. T:Mode$ Taps | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever a permanent becomes tapped, put a wind counter on it. -SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Triggered | CounterType$ WIND | CounterNum$ 1 +SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ TriggeredCard | CounterType$ WIND | CounterNum$ 1 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/freyalises_winds.jpg diff --git a/res/cardsfolder/hamletback_goliath.txt b/res/cardsfolder/hamletback_goliath.txt index ee099afefa6..fdfc33a2f22 100644 --- a/res/cardsfolder/hamletback_goliath.txt +++ b/res/cardsfolder/hamletback_goliath.txt @@ -5,7 +5,7 @@ Text:no text PT:6/6 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature enters the battlefield, you may put X +1/+1 counters on CARDNAME, where X is that creature's power. SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ X -SVar:X:Triggered$CardPower +SVar:X:TriggeredCard$CardPower SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/hamletback_goliath.jpg SetInfo:LRW|Rare|http://magiccards.info/scans/en/lw/173.jpg diff --git a/res/cardsfolder/heat_of_battle.txt b/res/cardsfolder/heat_of_battle.txt index ee13130fa1d..d7178b5695a 100644 --- a/res/cardsfolder/heat_of_battle.txt +++ b/res/cardsfolder/heat_of_battle.txt @@ -1,11 +1,11 @@ -Name:Heat of Battle -ManaCost:1 R -Types:Enchantment -Text:no text -T:Mode$ Blocks | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a creature blocks, CARDNAME deals 1 damage to that creature's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 1 -SVar:RemAIDeck:True -SVar:Rarity:Uncommon -SVar:Picture:http://www.wizards.com/global/images/magic/general/heat_of_battle.jpg -SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/88.jpg +Name:Heat of Battle +ManaCost:1 R +Types:Enchantment +Text:no text +T:Mode$ Blocks | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a creature blocks, CARDNAME deals 1 damage to that creature's controller. +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredBlockerController | NumDmg$ 1 +SVar:RemAIDeck:True +SVar:Rarity:Uncommon +SVar:Picture:http://www.wizards.com/global/images/magic/general/heat_of_battle.jpg +SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/88.jpg End \ No newline at end of file diff --git a/res/cardsfolder/in_the_web_of_war.txt b/res/cardsfolder/in_the_web_of_war.txt index da0ccaad288..ba05157421b 100644 --- a/res/cardsfolder/in_the_web_of_war.txt +++ b/res/cardsfolder/in_the_web_of_war.txt @@ -3,7 +3,7 @@ ManaCost:3 R R Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature enters the battlefield under your control, it gets +2/+0 and gains haste until end of turn. -SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Triggered | NumAtt$ +2 | KW$ Haste +SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredCard | NumAtt$ +2 | KW$ Haste SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/in_the_web_of_war.jpg SetInfo:BOK|Rare|http://magiccards.info/scans/en/bok/108.jpg diff --git a/res/cardsfolder/insolence.txt b/res/cardsfolder/insolence.txt index 050b0e7d465..d5390d3f6ee 100644 --- a/res/cardsfolder/insolence.txt +++ b/res/cardsfolder/insolence.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura Text:no text K:Enchant Creature Curse T:Mode$ Taps | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever enchanted creature becomes tapped, CARDNAME deals 2 damage to that creature's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/insolence.jpg SetInfo:PLS|Common|http://magiccards.info/scans/en/ps/63.jpg diff --git a/res/cardsfolder/ishi_ishi_akki_crackshot.txt b/res/cardsfolder/ishi_ishi_akki_crackshot.txt index b78bdf47098..dc3c70d75c3 100644 --- a/res/cardsfolder/ishi_ishi_akki_crackshot.txt +++ b/res/cardsfolder/ishi_ishi_akki_crackshot.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Goblin Warrior Text:no text PT:1/1 T:Mode$ SpellCast | ValidCard$ Spirit.YouDontCtrl,Arcane.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever an opponent casts a Spirit or Arcane spell, CARDNAME deals 2 damage to that player. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/ishi_ishi_akki_crackshot.jpg diff --git a/res/cardsfolder/it_that_betrays.txt b/res/cardsfolder/it_that_betrays.txt index 4754077298e..93a095e8a89 100644 --- a/res/cardsfolder/it_that_betrays.txt +++ b/res/cardsfolder/it_that_betrays.txt @@ -5,7 +5,7 @@ Text:no text PT:11/11 K:Annihilator 2 T:Mode$ Sacrificed | ValidCard$ Permanent.nonToken+YouDontCtrl | Execute$ TrigReturn | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent sacrifices a nontoken permanent, put that card onto the battlefield under your control. -SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ Triggered +SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ TriggeredCard SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/it_that_betrays.jpg SetInfo:ROE|Rare|http://magiccards.info/scans/en/roe/7.jpg diff --git a/res/cardsfolder/juniper_order_ranger.txt b/res/cardsfolder/juniper_order_ranger.txt index d52d9fac581..cbcadf872ea 100644 --- a/res/cardsfolder/juniper_order_ranger.txt +++ b/res/cardsfolder/juniper_order_ranger.txt @@ -4,7 +4,7 @@ Types:Creature Human Knight Text:no text PT:2/4 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature enters the battlefield under your control, put a +1/+1 counter on that creature and a +1/+1 counter on CARDNAME. -SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Triggered | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$SVar=DBPutCounter +SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ TriggeredCard | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$SVar=DBPutCounter SVar:DBPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 SVar:BuffedBy:Creature SVar:Rarity:Uncommon diff --git a/res/cardsfolder/kaervek_the_merciless.txt b/res/cardsfolder/kaervek_the_merciless.txt index 6154bc674d5..3c635e7d4de 100644 --- a/res/cardsfolder/kaervek_the_merciless.txt +++ b/res/cardsfolder/kaervek_the_merciless.txt @@ -5,7 +5,7 @@ Text:no text PT:5/4 T:Mode$ SpellCast | ValidCard$ Card.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever an opponent casts a spell, CARDNAME deals damage to target creature or player equal to that spell's converted mana cost. SVar:TrigDealDamage:AB$DealDamage | Cost$ 0 | Tgt$ TgtCP | NumDmg$ X -SVar:X:Triggered$CardManaCost +SVar:X:TriggeredCard$CardManaCost SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/kaervek_the_merciless.jpg SetInfo:TSP|Rare|http://magiccards.info/scans/en/ts/242.jpg diff --git a/res/cardsfolder/kavu_lair.txt b/res/cardsfolder/kavu_lair.txt index d63decf2801..bc028b11a61 100644 --- a/res/cardsfolder/kavu_lair.txt +++ b/res/cardsfolder/kavu_lair.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.powerGE4 | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a creature with power 4 or greater enters the battlefield, its controller draws a card. -SVar:TrigDraw:AB$Draw | Cost$ 0 | Defined$ TriggeredController | NumCards$ 1 +SVar:TrigDraw:AB$Draw | Cost$ 0 | Defined$ TriggeredCardController | NumCards$ 1 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/kavu_lair.jpg diff --git a/res/cardsfolder/kresh_the_bloodbraided.txt b/res/cardsfolder/kresh_the_bloodbraided.txt index cbbb33d99e2..ac587e32f75 100644 --- a/res/cardsfolder/kresh_the_bloodbraided.txt +++ b/res/cardsfolder/kresh_the_bloodbraided.txt @@ -5,7 +5,7 @@ Text:no text PT:3/3 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature is put into a graveyard from the battlefield, you may put X +1/+1 counters on CARDNAME, where X is that creature's power. SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ X -SVar:X:Triggered$CardPower +SVar:X:TriggeredCard$CardPower SVar:Rarity:Mythic SVar:Picture:http://www.wizards.com/global/images/magic/general/kresh_the_bloodbraided.jpg SetInfo:ALA|Mythic|http://magiccards.info/scans/en/ala/178.jpg diff --git a/res/cardsfolder/mage_slayer.txt b/res/cardsfolder/mage_slayer.txt index 28c6eb7e444..df82038da44 100644 --- a/res/cardsfolder/mage_slayer.txt +++ b/res/cardsfolder/mage_slayer.txt @@ -5,7 +5,7 @@ Text:no text K:eqPump 3:0/0 T:Mode$ Attacks | ValidCard$ Card.AttachedBy | Execute$ TrigDamage | TriggerDescription$ Whenever equipped creature attacks, it deals damage equal to its power to defending player. SVar:TrigDamage:AB$DealDamage | Cost$ 0 | ValidTgts$ Opponent,Planeswalker | TgtPrompt$ Select target opponent or planeswalker | NumDmg$ X -SVar:X:Triggered$CardPower +SVar:X:TriggeredCard$CardPower SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/mage_slayer.jpg SetInfo:ARB|Uncommon|http://magiccards.info/scans/en/pch/91.jpg diff --git a/res/cardsfolder/magnetic_mine.txt b/res/cardsfolder/magnetic_mine.txt index 83e65083c53..16f45bad825 100644 --- a/res/cardsfolder/magnetic_mine.txt +++ b/res/cardsfolder/magnetic_mine.txt @@ -3,7 +3,7 @@ ManaCost:4 Types:Artifact Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Artifact.Other | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever another artifact is put into a graveyard from the battlefield, CARDNAME deals 2 damage to that artifact's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/magnetic_mine.jpg diff --git a/res/cardsfolder/manaplasm.txt b/res/cardsfolder/manaplasm.txt index e664c446ef4..104e900f1fa 100644 --- a/res/cardsfolder/manaplasm.txt +++ b/res/cardsfolder/manaplasm.txt @@ -5,7 +5,7 @@ Text:no text PT:1/1 T:Mode$ SpellCast | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you cast a spell, Manaplasm gets +X/+X until end of turn, where X is that spell's converted mana cost. SVar:TrigPump:AB$Pump | Cost$ 0 | NumAtt$ +X | NumDef$ +X -SVar:X:Triggered$CardManaCost +SVar:X:TriggeredCard$CardManaCost SVar:BuffedBy:Card SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/manaplasm.jpg diff --git a/res/cardsfolder/mesmeric_orb.txt b/res/cardsfolder/mesmeric_orb.txt index 77ed38beb13..021aff0c768 100644 --- a/res/cardsfolder/mesmeric_orb.txt +++ b/res/cardsfolder/mesmeric_orb.txt @@ -3,7 +3,7 @@ ManaCost:2 Types:Artifact Text:no text T:Mode$ Untaps | ValidCard$ Card | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever a permanent becomes untapped, that permanent's controller puts the top card of his or her library into his or her graveyard. -SVar:TrigMill:AB$Mill | Cost$ 0 | Defined$ TriggeredController | NumCards$ 1 +SVar:TrigMill:AB$Mill | Cost$ 0 | Defined$ TriggeredCardController | NumCards$ 1 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/mesmeric_orb.jpg diff --git a/res/cardsfolder/mighty_emergence.txt b/res/cardsfolder/mighty_emergence.txt index f9267198307..928c0e49a2a 100644 --- a/res/cardsfolder/mighty_emergence.txt +++ b/res/cardsfolder/mighty_emergence.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.powerGE5+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever a creature with power 5 or greater enters the battlefield under your control, you may put two +1/+1 counters on it. -SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Triggered | CounterType$ P1P1 | CounterNum$ 2 +SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ TriggeredCard | CounterType$ P1P1 | CounterNum$ 2 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/mighty_emergence.jpg diff --git a/res/cardsfolder/mortuary.txt b/res/cardsfolder/mortuary.txt index 1d69be0620b..bff4c55c554 100644 --- a/res/cardsfolder/mortuary.txt +++ b/res/cardsfolder/mortuary.txt @@ -3,7 +3,7 @@ ManaCost:3 B Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouOwn | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ Whenever a creature is put into your graveyard from the battlefield, put that card on top of your library. -SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ Triggered | Origin$ Graveyard | LibraryPosition$ 0 | Destination$ Library +SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ TriggeredCard | Origin$ Graveyard | LibraryPosition$ 0 | Destination$ Library SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/mortuary.jpg diff --git a/res/cardsfolder/necroskitter.txt b/res/cardsfolder/necroskitter.txt index dc8f37e9c99..0a5bb490ec8 100644 --- a/res/cardsfolder/necroskitter.txt +++ b/res/cardsfolder/necroskitter.txt @@ -5,7 +5,7 @@ Text:no text PT:1/4 K:Wither T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouDontCtrl | TriggerZones$ Battlefield | Execute$ TrigReturn | Optional$ True | TriggerDescription$ Whenever a creature an opponent controls with a -1/-1 counter on it is put into a graveyard, you may return that card to the battlefield under your control. -SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ Triggered +SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ TriggeredCard SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/necroskitter.jpg SetInfo:EVE|Rare|http://magiccards.info/scans/en/eve/38.jpg diff --git a/res/cardsfolder/nettling_curse.txt b/res/cardsfolder/nettling_curse.txt index 8a2419b911f..1aeab965bf9 100644 --- a/res/cardsfolder/nettling_curse.txt +++ b/res/cardsfolder/nettling_curse.txt @@ -5,9 +5,10 @@ Text:no text K:Enchant creature K:enPumpCurse:0/0 A:AB$Pump | Cost$ 1 R | Defined$ Enchanted | KW$ HIDDEN CARDNAME attacks each turn if able. | IsCurse$ True | SpellDescription$ Enchanted creature attacks this turn if able. -T:Mode$ Attacks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. -T:Mode$ Blocks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLife | Secondary$ True | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. -SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | LifeAmount$ 3 | Defined$ TriggeredController +T:Mode$ Attacks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLifeAttack | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. +T:Mode$ Blocks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigLoseLifeBlock | Secondary$ True | TriggerDescription$ Whenever enchanted creature attacks or blocks, its controller loses 3 life. +SVar:TrigLoseLifeAttack:AB$LoseLife | Cost$ 0 | LifeAmount$ 3 | Defined$ TriggeredAttackerController +SVar:TrigLoseLifeBlock:AB$LoseLife | Cost$ 0 | LifeAmount$ 3 | Defined$ TriggeredBlockerController SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/nettling_curse.jpg SetInfo:DIS|Common|http://magiccards.info/scans/en/di/48.jpg diff --git a/res/cardsfolder/orchard_warden.txt b/res/cardsfolder/orchard_warden.txt index 9e513a91cb6..daf042faf4f 100644 --- a/res/cardsfolder/orchard_warden.txt +++ b/res/cardsfolder/orchard_warden.txt @@ -5,7 +5,7 @@ Text:no text PT:4/6 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Treefolk.YouCtrl+Other | TriggerZones$ Battlefield | Optional$ True | Execute$ TrigGainLife | TriggerDescription$ Whenever another Treefolk creature enters the battlefield under your control, you may gain life equal to that creature's toughness. SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ Life -SVar:Life:Triggered$CardToughness +SVar:Life:TriggeredCard$CardToughness SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/orchard_warden.jpg SetInfo:MOR|Uncommon|http://magiccards.info/scans/en/mt/131.jpg diff --git a/res/cardsfolder/proper_burial.txt b/res/cardsfolder/proper_burial.txt index 71f9db23f4d..59eb77ea843 100644 --- a/res/cardsfolder/proper_burial.txt +++ b/res/cardsfolder/proper_burial.txt @@ -4,7 +4,7 @@ Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGain | TriggerDescription$ Whenever a creature you control is put into a graveyard from the battlefield, you gain life equal to that creature's toughness. SVar:TrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X -SVar:X:Triggered$CardToughness +SVar:X:TriggeredCard$CardToughness SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/proper_burial.jpg SetInfo:DIS|Rare|http://magiccards.info/scans/en/di/16.jpg diff --git a/res/cardsfolder/psychic_venom.txt b/res/cardsfolder/psychic_venom.txt index eead2d0aa8b..41415342a85 100644 --- a/res/cardsfolder/psychic_venom.txt +++ b/res/cardsfolder/psychic_venom.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura Text:no text K:Enchant Land Curse T:Mode$ Taps | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever enchanted land becomes tapped, CARDNAME deals 2 damage to that land's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/psychic_venom.jpg SetInfo:LEA|Common|http://magiccards.info/scans/en/al/76.jpg diff --git a/res/cardsfolder/relic_putrescence.txt b/res/cardsfolder/relic_putrescence.txt index 2d583790bff..0d60f80163f 100644 --- a/res/cardsfolder/relic_putrescence.txt +++ b/res/cardsfolder/relic_putrescence.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura Text:no text K:Enchant Artifact Curse T:Mode$ Taps | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigPoison | TriggerDescription$ Whenever enchanted artifact becomes tapped, its controller gets a poison counter. -SVar:TrigPoison:AB$Poison | Cost$ 0 | Defined$ TriggeredController | Num$ 1 +SVar:TrigPoison:AB$Poison | Cost$ 0 | Defined$ TriggeredCardController | Num$ 1 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/relic_putrescence.jpg SetInfo:SOM|Common|http://magiccards.info/scans/en/som/77.jpg diff --git a/res/cardsfolder/retromancer.txt b/res/cardsfolder/retromancer.txt index bc3656a6f5c..f2eae1e56cc 100644 --- a/res/cardsfolder/retromancer.txt +++ b/res/cardsfolder/retromancer.txt @@ -4,7 +4,7 @@ Types:Creature Viashino Shaman Text:no text PT:3/3 T:Mode$ SpellAbilityCast | TargetsValid$ Card.Self | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME becomes the target of a spell or ability, CARDNAME deals 3 damage to that spell or ability's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 3 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 3 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/retromancer.jpg SetInfo:USG|Common|http://magiccards.info/scans/en/us/209.jpg diff --git a/res/cardsfolder/rite_of_passage.txt b/res/cardsfolder/rite_of_passage.txt index 0ca042293f6..e8e654794ab 100644 --- a/res/cardsfolder/rite_of_passage.txt +++ b/res/cardsfolder/rite_of_passage.txt @@ -2,7 +2,8 @@ Name:Rite of Passage ManaCost:2 G Types:Enchantment Text:no text -K:stPumpAll:Creature.YouCtrl:0/0/HIDDEN 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 diff --git a/res/cardsfolder/royal_decree.txt b/res/cardsfolder/royal_decree.txt index 470ae4eea3d..4a0a4618c78 100644 --- a/res/cardsfolder/royal_decree.txt +++ b/res/cardsfolder/royal_decree.txt @@ -4,7 +4,7 @@ Types:Enchantment Text:no text K:Cumulative upkeep:W T:Mode$ Taps | ValidCard$ Swamp,Mountain,Permanent.Black,Permanent.Red | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a Swamp, Mountain, black permanent, or red permanent becomes tapped, CARDNAME deals 1 damage to that permanent's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 1 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 1 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/royal_decree.jpg diff --git a/res/cardsfolder/sigil_captain.txt b/res/cardsfolder/sigil_captain.txt index 211c3de93fd..902cb87db02 100644 --- a/res/cardsfolder/sigil_captain.txt +++ b/res/cardsfolder/sigil_captain.txt @@ -4,7 +4,7 @@ Types:Creature Rhino Soldier Text:no text PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.powerEQ1+toughnessEQ1+Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever a creature enters the battlefield under your control, if that creature is 1/1, put two +1/+1 counters on it. -SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Triggered | CounterType$ P1P1 | CounterNum$ 2 +SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ TriggeredCard | CounterType$ P1P1 | CounterNum$ 2 SVar:Picture:http://www.wizards.com/global/images/magic/general/sigil_captain.jpg SVar:Rarity:Uncommon SetInfo:ARB|Uncommon|http://magiccards.info/scans/en/arb/77.jpg diff --git a/res/cardsfolder/sigil_of_the_new_dawn.txt b/res/cardsfolder/sigil_of_the_new_dawn.txt index cbcdc7b064e..233489c1a99 100644 --- a/res/cardsfolder/sigil_of_the_new_dawn.txt +++ b/res/cardsfolder/sigil_of_the_new_dawn.txt @@ -3,7 +3,7 @@ ManaCost:3 W Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouOwn | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ Whenever a creature is put into your graveyard from the battlefield, you may pay 1 W. If you do, return that card to your hand. -SVar:TrigReturn:AB$ChangeZone | Cost$ 1 W | Defined$ Triggered | Origin$ Graveyard | Destination$ Hand +SVar:TrigReturn:AB$ChangeZone | Cost$ 1 W | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Hand SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/sigil_of_the_new_dawn.jpg SetInfo:ONS|Rare|http://magiccards.info/scans/en/on/55.jpg diff --git a/res/cardsfolder/squees_embrace.txt b/res/cardsfolder/squees_embrace.txt index fc12593e684..22bce083c4f 100644 --- a/res/cardsfolder/squees_embrace.txt +++ b/res/cardsfolder/squees_embrace.txt @@ -5,7 +5,7 @@ Text:no text K:Enchant creature K:enPump:+2/+2:Enchanted creature gets +2/+2. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigChange | TriggerDescription$ When enchanted creature is put into a graveyard from the battlefield, return that card to its owner's hand. -SVar:TrigChange:AB$ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ Triggered | Cost$ 0 +SVar:TrigChange:AB$ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ TriggeredCard | Cost$ 0 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/squees_embrace.jpg SetInfo:APC|Common|http://magiccards.info/scans/en/ap/122.jpg diff --git a/res/cardsfolder/stalking_vengeance.txt b/res/cardsfolder/stalking_vengeance.txt index 2c117a9ebe4..25954b6ea67 100644 --- a/res/cardsfolder/stalking_vengeance.txt +++ b/res/cardsfolder/stalking_vengeance.txt @@ -6,7 +6,7 @@ PT:5/5 K:Haste T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever another creature you control is put into a graveyard from the battlefield, it deals damage equal to its power to target player. SVar:TrigDamage:AB$DealDamage | Cost$ 0 | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ X -SVar:X:Triggered$CardPower +SVar:X:TriggeredCard$CardPower SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/stalking_vengeance.jpg SetInfo:DIS|Rare|http://magiccards.info/scans/en/di/73.jpg diff --git a/res/cardsfolder/stonebrow_krosan_hero.txt b/res/cardsfolder/stonebrow_krosan_hero.txt index 43cb6c48969..da1c1dbf628 100644 --- a/res/cardsfolder/stonebrow_krosan_hero.txt +++ b/res/cardsfolder/stonebrow_krosan_hero.txt @@ -5,7 +5,7 @@ Text:no text PT:4/4 K:Trample T:Mode$ Attacks | ValidCard$ Creature.YouCtrl+withTrample | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control with trample attacks, it gets +2/+2 until end of turn. -SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Triggered | NumAtt$ 2 | NumDef$ 2 +SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | NumAtt$ 2 | NumDef$ 2 SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/stonebrow_krosan_hero.jpg SetInfo:TSP|Rare|http://magiccards.info/scans/en/ts/247.jpg diff --git a/res/cardsfolder/suleimans_legacy.txt b/res/cardsfolder/suleimans_legacy.txt index 9a3d317e734..7d6638077e1 100644 --- a/res/cardsfolder/suleimans_legacy.txt +++ b/res/cardsfolder/suleimans_legacy.txt @@ -5,7 +5,7 @@ Text:no text T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroyAll | TriggerDescription$ When CARDNAME enters the battlefield, destroy all Djinns and Efreets. They can't be regenerated. SVar:TrigDestroyAll:AB$DestroyAll | Cost$ 0 | ValidCards$ Djinn,Efreet | NoRegen$ True T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Djinn,Efreet | TriggerZones$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ Whenever a Djinn or Efreet enters the battlefield, destroy it. It can't be regenerated. -SVar:TrigDestroy:AB$Destroy | Cost$ 0 | Defined$ Triggered | NoRegen$ True +SVar:TrigDestroy:AB$Destroy | Cost$ 0 | Defined$ TriggeredCard | NoRegen$ True SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/suleimans_legacy.jpg diff --git a/res/cardsfolder/wall_of_frost.txt b/res/cardsfolder/wall_of_frost.txt index 5124001115a..9345d27ae5f 100644 --- a/res/cardsfolder/wall_of_frost.txt +++ b/res/cardsfolder/wall_of_frost.txt @@ -5,7 +5,7 @@ Text:no text PT:0/7 K:Defender T:Mode$ AttackerBlocked | ValidBlocker$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME blocks a creature, that creature doesn't untap during its controller's next untap step. -SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ Triggered | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True +SVar:TrigPump:AB$Pump | Cost$ 0 | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/wall_of_frost.jpg SetInfo:M11|Uncommon|http://magiccards.info/scans/en/m11/79.jpg diff --git a/res/cardsfolder/warped_devotion.txt b/res/cardsfolder/warped_devotion.txt index 3086a7beb6c..4eda2bff200 100644 --- a/res/cardsfolder/warped_devotion.txt +++ b/res/cardsfolder/warped_devotion.txt @@ -3,7 +3,7 @@ ManaCost:2 B Types:Enchantment Text:no text T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Hand | ValidCard$ Permanent | TriggerZones$ Battlefield | Execute$ TrigDiscard | TriggerDescription$ Whenever a permanent is returned to a player's hand, that player discards a card. -SVar:TrigDiscard:AB$Discard | Cost$ 0 | NumCards$ 1 | Mode$ TgtChoose | Defined$ TriggeredOwner +SVar:TrigDiscard:AB$Discard | Cost$ 0 | NumCards$ 1 | Mode$ TgtChoose | Defined$ TriggeredCardOwner SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/warped_devotion.jpg diff --git a/res/cardsfolder/yomiji_who_bars_the_way.txt b/res/cardsfolder/yomiji_who_bars_the_way.txt index ca6e8009ae9..bc73b8ed4cc 100644 --- a/res/cardsfolder/yomiji_who_bars_the_way.txt +++ b/res/cardsfolder/yomiji_who_bars_the_way.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Spirit Text:no text PT:4/4 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Permanent.Legendary+Other | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ Whenever a legendary permanent other than CARDNAME is put into a graveyard from the battlefield, return that card to its owner's hand. -SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ Triggered | Origin$ Graveyard | Destination$ Hand +SVar:TrigReturn:AB$ChangeZone | Cost$ 0 | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Hand SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/yomiji_who_bars_the_way.jpg SetInfo:BOK|Rare|http://magiccards.info/scans/en/bok/30.jpg diff --git a/res/cardsfolder/zo_zu_the_punisher.txt b/res/cardsfolder/zo_zu_the_punisher.txt index 808caa7790f..c406e435932 100644 --- a/res/cardsfolder/zo_zu_the_punisher.txt +++ b/res/cardsfolder/zo_zu_the_punisher.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Goblin Warrior Text:no text PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a land enters the battlefield, CARDNAME deals 2 damage to that land's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredController | NumDmg$ 2 +SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/zo_zu_the_punisher.jpg diff --git a/src/forge/AbilityFactory.java b/src/forge/AbilityFactory.java index 425714cc312..420a47a5d6a 100644 --- a/src/forge/AbilityFactory.java +++ b/src/forge/AbilityFactory.java @@ -83,12 +83,7 @@ public class AbilityFactory { //******************************************************* - public SpellAbility getAbility(String abString,Card hostCard) - { - return getAbility(abString,hostCard,null); - } - - public HashMap getMapParams(String abString, Card hostCard, Card triggeringCard) { + public HashMap getMapParams(String abString, Card hostCard) { HashMap mapParameters = new HashMap(); if (!(abString.length() > 0)) @@ -122,13 +117,13 @@ public class AbilityFactory { return mapParameters; } - public SpellAbility getAbility(String abString, Card hostCard,Card triggeringCard){ + public SpellAbility getAbility(String abString, Card hostCard){ SpellAbility SA = null; hostC = hostCard; - mapParams = getMapParams(abString, hostCard, triggeringCard); + mapParams = getMapParams(abString, hostCard); // parse universal parameters @@ -572,8 +567,7 @@ public class AbilityFactory { SA.setStackDescription(hostCard.getName()); SA.setRestrictions(buildRestrictions(SA)); - SA.setTriggeringCard(triggeringCard); - + return SA; } @@ -721,7 +715,7 @@ public class AbilityFactory { } else if (calcX[0].startsWith("Triggered")) { list = new CardList(); - list.add(ability.getTriggeringCard()); + list.add((Card)ability.getSourceCard().getTriggeringObject(calcX[0].substring(9))); } else if (calcX[0].startsWith("Remembered")) { list = new CardList(); @@ -764,8 +758,8 @@ public class AbilityFactory { cards.addAll(parent.getTarget().getTargetCards()); } - else if (defined.equals("Triggered")) - c = AllZoneUtil.getCardState(sa.getTriggeringCard()); + else if (defined.startsWith("Triggered")) + c = AllZoneUtil.getCardState((Card)sa.getSourceCard().getTriggeringObject(defined.substring(9))); else if (defined.equals("Remembered")){ for(Card rem : hostCard.getRemembered()){ @@ -818,6 +812,25 @@ public class AbilityFactory { players.add(p); } } + else if (defined.startsWith("Triggered")){ + if (defined.endsWith("Controller")){ + String triggeringType = defined.substring(9); + triggeringType = triggeringType.substring(0,triggeringType.length()-10); + Card c = (Card)sa.getSourceCard().getTriggeringObject(triggeringType); + Player p = c.getController(); + if (!players.contains(p)) + players.add(p); + } + else if (defined.endsWith("Owner")){ + String triggeringType = defined.substring(9); + triggeringType = triggeringType.substring(0,triggeringType.length()-5); + Card c = (Card)sa.getSourceCard().getTriggeringObject(triggeringType); + Player p = c.getOwner(); + if (!players.contains(p)) + players.add(p); + } + + } else if (defined.equals("TriggeredController")){ Player p = sa.getTriggeringCard().getController(); if (!players.contains(p)) diff --git a/src/forge/Card.java b/src/forge/Card.java index 08a43a6ae2d..2a2edbf73e8 100644 --- a/src/forge/Card.java +++ b/src/forge/Card.java @@ -20,6 +20,7 @@ public class Card extends MyObservable { //private Collection keyword = new TreeSet(); //private ArrayList keyword = new ArrayList(); + private HashMap triggeringObjects = new HashMap(); private ArrayList triggers = new ArrayList(); private ArrayList intrinsicAbility = new ArrayList(); private ArrayList intrinsicKeyword = new ArrayList(); @@ -237,6 +238,16 @@ 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 void setAbilityUsed(int i) { abilityUsed = i; } diff --git a/src/forge/CardFactoryUtil.java b/src/forge/CardFactoryUtil.java index 12864e85e00..fed77245073 100644 --- a/src/forge/CardFactoryUtil.java +++ b/src/forge/CardFactoryUtil.java @@ -3348,8 +3348,12 @@ public class CardFactoryUtil { CardList someCards = new CardList(); //Complex counting methods - - + + //TriggeringObjects + if(sq[0].startsWith("Triggered")) + { + return doXMath((Integer)c.getTriggeringObject(sq[0].substring(9)),m); + } // Count$Domain if(sq[0].contains("Domain")) { diff --git a/src/forge/CombatUtil.java b/src/forge/CombatUtil.java index 823478f5564..1f1478abd35 100644 --- a/src/forge/CombatUtil.java +++ b/src/forge/CombatUtil.java @@ -703,7 +703,7 @@ public class CombatUtil { if(willTrigger && trigParams.containsKey("Execute")) { String ability = defender.getSVar(trigParams.get("Execute")); AbilityFactory AF = new AbilityFactory(); - HashMap abilityParams = AF.getMapParams(ability, defender, defender); + HashMap abilityParams = AF.getMapParams(ability, defender); if (abilityParams.containsKey("AB")) { if (abilityParams.get("AB").equals("Pump")) if (abilityParams.containsKey("NumAtt")){ @@ -743,7 +743,7 @@ public class CombatUtil { if(willTrigger && trigParams.containsKey("Execute")) { String ability = defender.getSVar(trigParams.get("Execute")); AbilityFactory AF = new AbilityFactory(); - HashMap abilityParams = AF.getMapParams(ability, defender, defender); + HashMap abilityParams = AF.getMapParams(ability, defender); if (abilityParams.containsKey("AB")) { if (abilityParams.get("AB").equals("Pump")) if (abilityParams.containsKey("NumDef")) { diff --git a/src/forge/Trigger.java b/src/forge/Trigger.java index 80f3c91e5ae..c157e20401f 100644 --- a/src/forge/Trigger.java +++ b/src/forge/Trigger.java @@ -272,5 +272,5 @@ public abstract class Trigger { public abstract Trigger getCopy(); - public abstract Card getTriggeringCard(HashMap runParams); + public abstract void setTriggeringObjects(Card c); } diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index 5b3e8ce64d0..338a1157cb8 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -295,9 +295,10 @@ public class TriggerHandler { } else { - sa[0] = AF.getAbility(host.getSVar(trigParams.get("Execute")), host, regtrig.getTriggeringCard(runParams)); + sa[0] = AF.getAbility(host.getSVar(trigParams.get("Execute")), host); } } + regtrig.setTriggeringObjects(host); sa[0].setActivatingPlayer(host.getController()); if(sa[0].getStackDescription().equals("")) diff --git a/src/forge/Trigger_AttackerBlocked.java b/src/forge/Trigger_AttackerBlocked.java index 61782166766..75bae9082f3 100644 --- a/src/forge/Trigger_AttackerBlocked.java +++ b/src/forge/Trigger_AttackerBlocked.java @@ -41,8 +41,9 @@ public class Trigger_AttackerBlocked extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Attacker"); + c.setTriggeringObject("Attacker",runParams.get("Attacker")); + c.setTriggeringObject("Blocker",runParams.get("Blocker")); } } diff --git a/src/forge/Trigger_AttackerUnblocked.java b/src/forge/Trigger_AttackerUnblocked.java index e9d2516359c..144218bea24 100644 --- a/src/forge/Trigger_AttackerUnblocked.java +++ b/src/forge/Trigger_AttackerUnblocked.java @@ -34,8 +34,8 @@ public class Trigger_AttackerUnblocked extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Attacker"); + c.setTriggeringObject("Attacker",runParams.get("Attacker")); } } diff --git a/src/forge/Trigger_Attacks.java b/src/forge/Trigger_Attacks.java index eeeb91a9ff9..ea71ab99f0a 100644 --- a/src/forge/Trigger_Attacks.java +++ b/src/forge/Trigger_Attacks.java @@ -58,8 +58,8 @@ public class Trigger_Attacks extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Attacker"); + c.setTriggeringObject("Attacker",runParams.get("Attacker")); } } diff --git a/src/forge/Trigger_Blocks.java b/src/forge/Trigger_Blocks.java index 0af76dd67c7..4a33aa4c05d 100644 --- a/src/forge/Trigger_Blocks.java +++ b/src/forge/Trigger_Blocks.java @@ -42,8 +42,9 @@ public class Trigger_Blocks extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Blocker"); + c.setTriggeringObject("Blocker",runParams.get("Blocker")); + c.setTriggeringObject("Attacker",runParams.get("Attacker")); } } diff --git a/src/forge/Trigger_ChangesZone.java b/src/forge/Trigger_ChangesZone.java index f33264a2dd1..968ec127cf6 100644 --- a/src/forge/Trigger_ChangesZone.java +++ b/src/forge/Trigger_ChangesZone.java @@ -58,8 +58,8 @@ public class Trigger_ChangesZone extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_CounterAdded.java b/src/forge/Trigger_CounterAdded.java index 3aa86510552..a8deb141f4a 100644 --- a/src/forge/Trigger_CounterAdded.java +++ b/src/forge/Trigger_CounterAdded.java @@ -41,7 +41,8 @@ public class Trigger_CounterAdded extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) { - return (Card)runParams.get("Card"); + public void setTriggeringObjects(Card c) + { + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_Cycled.java b/src/forge/Trigger_Cycled.java index 0975f44b9d6..47f120ba752 100644 --- a/src/forge/Trigger_Cycled.java +++ b/src/forge/Trigger_Cycled.java @@ -21,8 +21,8 @@ public class Trigger_Cycled extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) { - return (Card)runParams.get("Card"); + public void setTriggeringObjects(Card c) { + c.setTriggeringObject("Card",runParams.get("Card")); } @Override diff --git a/src/forge/Trigger_DamageDone.java b/src/forge/Trigger_DamageDone.java index 31a1073362c..01613ae9716 100644 --- a/src/forge/Trigger_DamageDone.java +++ b/src/forge/Trigger_DamageDone.java @@ -60,8 +60,10 @@ public class Trigger_DamageDone extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return null; + c.setTriggeringObject("Source",runParams.get("DamageSource")); + c.setTriggeringObject("Target",runParams.get("DamageTarget")); + c.setTriggeringObject("DamageAmount",runParams.get("DamageAmount")); } } diff --git a/src/forge/Trigger_Discarded.java b/src/forge/Trigger_Discarded.java index 0e6bf54c31a..640a4c0b81e 100644 --- a/src/forge/Trigger_Discarded.java +++ b/src/forge/Trigger_Discarded.java @@ -45,8 +45,8 @@ public class Trigger_Discarded extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_Drawn.java b/src/forge/Trigger_Drawn.java index 93df062067c..0a3bfd1dfed 100644 --- a/src/forge/Trigger_Drawn.java +++ b/src/forge/Trigger_Drawn.java @@ -35,8 +35,8 @@ public class Trigger_Drawn extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_LandPlayed.java b/src/forge/Trigger_LandPlayed.java index 4c4ba0fc780..476a6ef54ec 100644 --- a/src/forge/Trigger_LandPlayed.java +++ b/src/forge/Trigger_LandPlayed.java @@ -18,8 +18,8 @@ public class Trigger_LandPlayed extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) { - return (Card)runParams.get("Card"); + public void setTriggeringObjects(Card c) { + c.setTriggeringObject("Card",runParams.get("Card")); } @Override diff --git a/src/forge/Trigger_LifeGained.java b/src/forge/Trigger_LifeGained.java index 4fc6fa683d0..7878613340f 100644 --- a/src/forge/Trigger_LifeGained.java +++ b/src/forge/Trigger_LifeGained.java @@ -35,8 +35,9 @@ public class Trigger_LifeGained extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return null; + c.setTriggeringObject("LifeAmount",runParams.get("LifeAmount")); + c.setTriggeringObject("Player",runParams.get("Player")); } } diff --git a/src/forge/Trigger_LifeLost.java b/src/forge/Trigger_LifeLost.java index 93adc663d94..b7f6de64718 100644 --- a/src/forge/Trigger_LifeLost.java +++ b/src/forge/Trigger_LifeLost.java @@ -35,8 +35,9 @@ public class Trigger_LifeLost extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return null; + c.setTriggeringObject("LifeAmount",runParams.get("LifeAmount")); + c.setTriggeringObject("Player",runParams.get("Player")); } } diff --git a/src/forge/Trigger_Phase.java b/src/forge/Trigger_Phase.java index 152a6a12c83..e726adec4ac 100644 --- a/src/forge/Trigger_Phase.java +++ b/src/forge/Trigger_Phase.java @@ -40,8 +40,8 @@ public class Trigger_Phase extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return null; + c.setTriggeringObject("Player",runParams.get("Player")); } } diff --git a/src/forge/Trigger_Sacrificed.java b/src/forge/Trigger_Sacrificed.java index 0b9bc71f016..b4230ac2f60 100644 --- a/src/forge/Trigger_Sacrificed.java +++ b/src/forge/Trigger_Sacrificed.java @@ -41,8 +41,8 @@ public class Trigger_Sacrificed extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_SpellAbilityCast.java b/src/forge/Trigger_SpellAbilityCast.java index 5398f4050b5..d9cca2d7f5c 100644 --- a/src/forge/Trigger_SpellAbilityCast.java +++ b/src/forge/Trigger_SpellAbilityCast.java @@ -154,8 +154,8 @@ public class Trigger_SpellAbilityCast extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return ((SpellAbility)runParams.get("CastSA")).getSourceCard(); + c.setTriggeringObject("Card",((SpellAbility)runParams.get("CastSA")).getSourceCard()); } } diff --git a/src/forge/Trigger_Taps.java b/src/forge/Trigger_Taps.java index 4404a379101..c161687b564 100644 --- a/src/forge/Trigger_Taps.java +++ b/src/forge/Trigger_Taps.java @@ -37,8 +37,8 @@ public class Trigger_Taps extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_TurnFaceUp.java b/src/forge/Trigger_TurnFaceUp.java index d0cc71266c3..6881f6c504b 100644 --- a/src/forge/Trigger_TurnFaceUp.java +++ b/src/forge/Trigger_TurnFaceUp.java @@ -34,8 +34,8 @@ public class Trigger_TurnFaceUp extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } } diff --git a/src/forge/Trigger_Untaps.java b/src/forge/Trigger_Untaps.java index 2de28347756..9a3199bc90c 100644 --- a/src/forge/Trigger_Untaps.java +++ b/src/forge/Trigger_Untaps.java @@ -37,8 +37,9 @@ public class Trigger_Untaps extends Trigger { } @Override - public Card getTriggeringCard(HashMap runParams) + public void setTriggeringObjects(Card c) { - return (Card)runParams.get("Card"); + c.setTriggeringObject("Card",runParams.get("Card")); } + }