diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index ee8c766f31b..05cbe47bdcf 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -298,8 +298,10 @@ public class ChangeZoneAi extends SpellAbilityAi { } else { if (sa.hasParam("DefinedPlayer")) { pDefined = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("DefinedPlayer"), sa); - } else { + } else if (sa.hasParam("Defined")) { pDefined = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Defined"), sa); + } else { + pDefined = ai.getGame().getPlayers(); // no Defined players, assume all player zones } } @@ -314,11 +316,7 @@ public class ChangeZoneAi extends SpellAbilityAi { } for (final Player p : pDefined) { - // TODO: figure out how to make the AI properly establish which zones to look in for cards like Sisters of Stone Death - // without needing a separate AI logic for it (the issue is that there's no Defined/DefinedPlayer in cards like that, and - // the AI normally defaults to its own zone in these cases) - CardCollectionView list = "CheckAllPlayerZones".equals(sa.getParam("AILogic")) ? p.getGame().getCardsIn(origin) - : p.getCardsIn(origin); + CardCollectionView list = p.getCardsIn(origin); if (type != null && p == ai) { // AI only "knows" about his information diff --git a/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt b/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt index 89b778373c4..9f64f74533a 100644 --- a/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt +++ b/forge-gui/res/cardsfolder/p/profane_procession_tomb_of_the_dusk_rose.txt @@ -13,7 +13,7 @@ Name:Tomb of the Dusk Rose ManaCost:no cost Types:Legendary Land A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | SpellDescription$ Add one mana of any color. -A:AB$ ChangeZone | Cost$ 2 W B T | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.IsRemembered+ExiledWithSource | Hidden$ True | Mandatory$ True | GainControl$ True | AILogic$ CheckAllPlayerZones | SpellDescription$ Put a creature card exiled with this permanent onto the battlefield under your control. | StackDescription$ SpellDescription +A:AB$ ChangeZone | Cost$ 2 W B T | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.IsRemembered+ExiledWithSource | Hidden$ True | Mandatory$ True | GainControl$ True | SpellDescription$ Put a creature card exiled with this permanent onto the battlefield under your control. | StackDescription$ SpellDescription SVar:Picture:http://www.wizards.com/global/images/magic/general/tomb_of_the_dusk_rose.jpg Oracle:(Transforms from Profane Procession.)\n{T}: Add one mana of any color.\n{2}{W}{B},{T}: Put a creature card exiled with this permanent onto the battlefield under your control. diff --git a/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt b/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt index c6243e10d9f..b424ae91b2d 100644 --- a/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt +++ b/forge-gui/res/cardsfolder/s/sisters_of_stone_death.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Gorgon PT:7/5 A:AB$ MustBlock | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Target creature blocks CARDNAME this turn if able. A:AB$ ChangeZone | Cost$ B G | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.blockingSource,Creature.blockedBySource | TgtPrompt$ Select target creature blocking Sisters of Stone Death | RememberTargets$ True | SpellDescription$ Exile target creature blocking or blocked by CARDNAME. -A:AB$ ChangeZone | Cost$ 2 B | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.IsRemembered+ExiledWithSource | Hidden$ True | Mandatory$ True | GainControl$ True | AILogic$ CheckAllPlayerZones | SpellDescription$ Put a creature card exiled with CARDNAME onto the battlefield under your control. | StackDescription$ SpellDescription +A:AB$ ChangeZone | Cost$ 2 B | Origin$ Exile | Destination$ Battlefield | ChangeType$ Creature.IsRemembered+ExiledWithSource | Hidden$ True | Mandatory$ True | GainControl$ True | SpellDescription$ Put a creature card exiled with CARDNAME onto the battlefield under your control. | StackDescription$ SpellDescription T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget SVar:DBForget:DB$ Pump | ForgetImprinted$ TriggeredCard T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Execute$ DBCleanup | Static$ True | Secondary$ True | TriggerDescription$ Forget all remembered cards.