diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java index 4dfb88646d8..66f13cde158 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAllAi.java @@ -37,7 +37,11 @@ public class ChangeZoneAllAi extends SpellAbilityAi { } if (!ComputerUtilCost.checkDiscardCost(ai, abCost, source)) { - return false; + boolean aiLogicAllowsDiscard = sa.hasParam("AILogic") && sa.getParam("AILogic").startsWith("DiscardAll"); + + if (!aiLogicAllowsDiscard) { + return false; + } } } diff --git a/forge-gui/res/cardsfolder/k/keening_apparition.txt b/forge-gui/res/cardsfolder/k/keening_apparition.txt index 8f6d3e3a0f5..7e583700f47 100644 --- a/forge-gui/res/cardsfolder/k/keening_apparition.txt +++ b/forge-gui/res/cardsfolder/k/keening_apparition.txt @@ -3,6 +3,5 @@ ManaCost:1 W Types:Creature Spirit PT:2/2 A:AB$ Destroy | Cost$ Sac<1/CARDNAME> | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment | SpellDescription$ Destroy target enchantment. -SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/keening_apparition.jpg Oracle:Sacrifice Keening Apparition: Destroy target enchantment. diff --git a/forge-gui/res/cardsfolder/k/khalni_gem.txt b/forge-gui/res/cardsfolder/k/khalni_gem.txt index 02108d4dfe7..59d58f57563 100644 --- a/forge-gui/res/cardsfolder/k/khalni_gem.txt +++ b/forge-gui/res/cardsfolder/k/khalni_gem.txt @@ -3,7 +3,8 @@ ManaCost:4 Types:Artifact A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 2 | SpellDescription$ Add two mana of any one color to your mana pool. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigBounce | TriggerDescription$ When CARDNAME enters the battlefield, return two lands you control to their owner's hand. -SVar:TrigBounce:AB$ChangeZone | Cost$ 0 | Origin$ Battlefield | Destination$ Hand | Mandatory$ True | ChangeType$ Land.YouCtrl | ChangeNum$ 2 | Hidden$ True | TgtPrompt$ Select 2 target lands you control -SVar:RemAIDeck:True +SVar:TrigBounce:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Mandatory$ True | ChangeType$ Land.YouCtrl | ChangeNum$ 2 | Hidden$ True | TgtPrompt$ Select 2 target lands you control +SVar:NeedsToPlayVar:Z GE2 +SVar:Z:Count$Valid Land.YouCtrl+inZoneBattlefield SVar:Picture:http://www.wizards.com/global/images/magic/general/khalni_gem.jpg Oracle:When Khalni Gem enters the battlefield, return two lands you control to their owner's hand.\n{T}: Add two mana of any one color to your mana pool. diff --git a/forge-gui/res/cardsfolder/k/kiri_onna.txt b/forge-gui/res/cardsfolder/k/kiri_onna.txt index 6d9981242ad..242ea40daf6 100644 --- a/forge-gui/res/cardsfolder/k/kiri_onna.txt +++ b/forge-gui/res/cardsfolder/k/kiri_onna.txt @@ -4,8 +4,8 @@ Types:Creature Spirit PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigReturnOther | TriggerDescription$ When CARDNAME enters the battlefield, return target creature to its owner's hand. T:Mode$ SpellCast | ValidCard$ Spirit,Arcane | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigReturnThis | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, you may return CARDNAME to its owner's hand. -SVar:TrigReturnOther:DB$ChangeZone | Cost$ 0 | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand -SVar:TrigReturnThis:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Battlefield | Destination$ Hand -SVar:RemAIDeck:True +SVar:TrigReturnOther:DB$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand +SVar:TrigReturnThis:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand +SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/kiri_onna.jpg Oracle:When Kiri-Onna enters the battlefield, return target creature to its owner's hand.\nWhenever you cast a Spirit or Arcane spell, you may return Kiri-Onna to its owner's hand. diff --git a/forge-gui/res/cardsfolder/k/krosan_wayfarer.txt b/forge-gui/res/cardsfolder/k/krosan_wayfarer.txt index 8cc8927e708..8476712ad42 100644 --- a/forge-gui/res/cardsfolder/k/krosan_wayfarer.txt +++ b/forge-gui/res/cardsfolder/k/krosan_wayfarer.txt @@ -2,7 +2,6 @@ Name:Krosan Wayfarer ManaCost:G Types:Creature Human Druid PT:1/1 -A:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | ChangeNum$ 1 | Optional$ You | SpellDescription$ You may put a land card from your hand onto the battlefield. -SVar:RemAIDeck:True +A:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | ChangeNum$ 1 | Optional$ You | AILogic$ AtOppEOT | SpellDescription$ You may put a land card from your hand onto the battlefield. SVar:Picture:http://www.wizards.com/global/images/magic/general/krosan_wayfarer.jpg Oracle:Sacrifice Krosan Wayfarer: You may put a land card from your hand onto the battlefield. diff --git a/forge-gui/res/cardsfolder/k/kyren_archive.txt b/forge-gui/res/cardsfolder/k/kyren_archive.txt index 501c5620587..5fe7ea1b6c6 100644 --- a/forge-gui/res/cardsfolder/k/kyren_archive.txt +++ b/forge-gui/res/cardsfolder/k/kyren_archive.txt @@ -2,10 +2,10 @@ Name:Kyren Archive ManaCost:3 Types:Artifact T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigKyrenExile | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may exile the top card of your library face down. -SVar:TrigKyrenExile:AB$ ChangeZone | Cost$ 0 | Defined$ TopOfLibrary | Origin$ Library | Destination$ Exile | ExileFaceDown$ True | RememberChanged$ True -A:AB$ ChangeZone | Cost$ 5 Discard<1/Hand> Sac<1/CARDNAME> | Defined$ Remembered | Origin$ Exile | Destination$ Hand | Hidden$ True | SubAbility$ DBKyrenCleanup | SpellDescription$ Put all cards exiled with CARDNAME into their owner's hand. +SVar:TrigKyrenExile:DB$ ChangeZone | Defined$ TopOfLibrary | Origin$ Library | Destination$ Exile | ExileFaceDown$ True | RememberChanged$ True +A:AB$ ChangeZoneAll | Cost$ 5 Discard<1/Hand> Sac<1/CARDNAME> | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Hand | Hidden$ True | AILogic$ DiscardAllAndRetExiled.minAdv2 | SubAbility$ DBKyrenCleanup | SpellDescription$ Put all cards exiled with CARDNAME into their owner's hand. SVar:DBKyrenCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:RemAIDeck:True +SVar:AIPreference:DiscardCost$Card SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/kyren_archive.jpg Oracle:At the beginning of your upkeep, you may exile the top card of your library face down.\n{5}, Discard your hand, Sacrifice Kyren Archive: Put all cards exiled with Kyren Archive into their owner's hand.