From f2e710f94d10fd82da575940b5a8c99bc4d50202 Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 6 Aug 2013 11:44:01 +0000 Subject: [PATCH] - experimental fix of ChangeZoneEffect.changeKnownOriginResolve and SacrificeEffect - Added Traveling Plague --- .gitattributes | 1 + res/cardsfolder/t/traveling_plague.txt | 14 ++++++++++++++ .../card/ability/effects/ChangeZoneEffect.java | 3 ++- .../card/ability/effects/SacrificeEffect.java | 2 +- 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 res/cardsfolder/t/traveling_plague.txt diff --git a/.gitattributes b/.gitattributes index b02266278d7..d1a38a499e3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11768,6 +11768,7 @@ res/cardsfolder/t/traumatize.txt svneol=native#text/plain res/cardsfolder/t/travel_preparations.txt -text res/cardsfolder/t/travelers_amulet.txt -text res/cardsfolder/t/travelers_cloak.txt -text +res/cardsfolder/t/traveling_plague.txt -text res/cardsfolder/t/treacherous_link.txt svneol=native#text/plain res/cardsfolder/t/treacherous_pit_dweller.txt -text res/cardsfolder/t/treacherous_urge.txt svneol=native#text/plain diff --git a/res/cardsfolder/t/traveling_plague.txt b/res/cardsfolder/t/traveling_plague.txt new file mode 100644 index 00000000000..81ff7fc916f --- /dev/null +++ b/res/cardsfolder/t/traveling_plague.txt @@ -0,0 +1,14 @@ +Name:Traveling Plague +ManaCost:3 B B +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | Cost$ 3 B B | ValidTgts$ Creature | AILogic$ Curse +T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of each upkeep, put a plague counter on CARDNAME. +SVar:TrigPutCounter:AB$ PutCounter | Cost$ 0 | Defined$ Self | CounterType$ PLAGUE | CounterNum$ 1 +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ X | AddToughness$ X | References$ X | Description$ Enchanted creature gets -1/-1 for each plague counter on CARDNAME. +SVar:X:Count$CardCounters.PLAGUE/Times.-1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.EnchantedBy | TriggerController$ TriggeredCardController | Execute$ TrigChoose | TriggerDescription$ When enchanted creature leaves the battlefield, that creature's controller returns CARDNAME from its owner's graveyard to the battlefield. +SVar:TrigChoose:AB$ ChooseCard | Cost$ 0 | Choices$ Creature | AILogic$ OppPreferred | Defined$ TriggeredCardController | Mandatory$ True | SubAbility$ DBChangeZone +SVar:DBChangeZone:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | AttachedTo$ ChosenCard +SVar:Picture:http://www.wizards.com/global/images/magic/general/traveling_plague.jpg +Oracle:Enchant creature\nAt the beginning of each upkeep, put a plague counter on Traveling Plague.\nEnchanted creature gets -1/-1 for each plague counter on Traveling Plague.\nWhen enchanted creature leaves the battlefield, that creature's controller returns Traveling Plague from its owner's graveyard to the battlefield. diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java index a3d10a0cf1f..90a6858406d 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java @@ -407,7 +407,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { boolean optional = sa.hasParam("Optional"); - for (final Card tgtC : tgtCards) { + for (Card tgtC : tgtCards) { if (tgt != null && tgtC.isInPlay() && !tgtC.canBeTargetedBy(sa)) { continue; } @@ -419,6 +419,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (optional && false == player.getController().confirmAction(sa, null, prompt) ) continue; + tgtC = game.getCardState(tgtC); final Zone originZone = game.getZoneOf(tgtC); // if Target isn't in the expected Zone, continue diff --git a/src/main/java/forge/card/ability/effects/SacrificeEffect.java b/src/main/java/forge/card/ability/effects/SacrificeEffect.java index b1421da18e6..033ba3e4bba 100644 --- a/src/main/java/forge/card/ability/effects/SacrificeEffect.java +++ b/src/main/java/forge/card/ability/effects/SacrificeEffect.java @@ -20,9 +20,9 @@ public class SacrificeEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { - final Card card = sa.getSourceCard(); final Player activator = sa.getActivatingPlayer(); final Game game = activator.getGame(); + final Card card = game.getCardState(sa.getSourceCard()); // Expand Sacrifice keyword here depending on what we need out of it. final String num = sa.hasParam("Amount") ? sa.getParam("Amount") : "1";