From 2cb8117893331e2ff4ad4064dc2b0fd81d34ab0b Mon Sep 17 00:00:00 2001 From: Sloth Date: Tue, 15 Nov 2011 11:27:48 +0000 Subject: [PATCH] - Added support for targeting players to AF GainControl. - Added Jinxed Idol. --- .gitattributes | 1 + res/cardsfolder/j/jinxed_idol.txt | 14 ++++++++++++++ .../AbilityFactoryGainControl.java | 16 ++++++++++++---- 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 res/cardsfolder/j/jinxed_idol.txt diff --git a/.gitattributes b/.gitattributes index 6adad77c4fd..9b1049628be 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4222,6 +4222,7 @@ res/cardsfolder/j/jihad.txt -text res/cardsfolder/j/jilt.txt -text res/cardsfolder/j/jin_gitaxias_core_augur.txt svneol=native#text/plain res/cardsfolder/j/jinx.txt -text +res/cardsfolder/j/jinxed_idol.txt -text res/cardsfolder/j/jiwari_the_earth_aflame.txt svneol=native#text/plain res/cardsfolder/j/jodahs_avenger.txt svneol=native#text/plain res/cardsfolder/j/johtull_wurm.txt -text diff --git a/res/cardsfolder/j/jinxed_idol.txt b/res/cardsfolder/j/jinxed_idol.txt new file mode 100644 index 00000000000..e2183cdf75b --- /dev/null +++ b/res/cardsfolder/j/jinxed_idol.txt @@ -0,0 +1,14 @@ +Name:Jinxed Idol +ManaCost:2 +Types:Artifact +Text:no text +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals 2 damage to you. +SVar:TrigDamage:DB$ DealDamage | Defined$ You | NumDmg$ 2 +A:AB$ GainControl | Cost$ Sac<1/Creature> | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ Target opponent gains control of CARDNAME. +SVar:RemAIDeck:True +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/jinxed_idol.jpg +SetInfo:M11|Rare|http://magiccards.info/scans/en/m11/208.jpg +SetInfo:TMP|Rare|http://magiccards.info/scans/en/tp/283.jpg +Oracle:At the beginning of your upkeep, Jinxed Idol deals 2 damage to you.\nSacrifice a creature: Target opponent gains control of Jinxed Idol. +End \ No newline at end of file diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryGainControl.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryGainControl.java index a948c9d3bb3..b7217e6b3b7 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryGainControl.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryGainControl.java @@ -222,14 +222,17 @@ public class AbilityFactoryGainControl { ArrayList tgtCards; final Target tgt = this.af.getAbTgt(); - if (tgt != null) { + if (tgt != null && !params.containsKey("Defined")) { tgtCards = tgt.getTargetCards(); } else { tgtCards = AbilityFactory.getDefinedCards(this.hostCard, this.params.get("Defined"), sa); } - final ArrayList newController = AbilityFactory.getDefinedPlayers(sa.getSourceCard(), + ArrayList newController = AbilityFactory.getDefinedPlayers(sa.getSourceCard(), this.params.get("NewController"), sa); + if (tgt != null && tgt.getTargetPlayers() != null) { + newController = tgt.getTargetPlayers(); + } if (newController.size() == 0) { newController.add(sa.getActivatingPlayer()); } @@ -365,15 +368,18 @@ public class AbilityFactoryGainControl { final boolean self = this.params.containsKey("Defined") && this.params.get("Defined").equals("Self"); final Target tgt = this.af.getAbTgt(); - if (tgt != null) { + if (tgt != null && !params.containsKey("Defined")) { tgtCards = tgt.getTargetCards(); } else { tgtCards = AbilityFactory.getDefinedCards(this.hostCard, this.params.get("Defined"), sa); } // tgtCards.add(hostCard); - final ArrayList newController = AbilityFactory.getDefinedPlayers(sa.getSourceCard(), + ArrayList newController = AbilityFactory.getDefinedPlayers(sa.getSourceCard(), this.params.get("NewController"), sa); + if (tgt != null && tgt.getTargetPlayers() != null) { + newController = tgt.getTargetPlayers(); + } if (newController.size() == 0) { newController.add(sa.getActivatingPlayer()); } @@ -392,6 +398,8 @@ public class AbilityFactoryGainControl { if (this.params.containsKey("NewController")) { tgtC.addController(newController.get(0)); + } else if (tgt != null && tgt.getTargetPlayers() != null){ + tgtC.addController(newController.get(0)); } else { tgtC.addController(this.hostCard); }