diff --git a/forge-ai/src/main/java/forge/ai/ability/DrawAi.java b/forge-ai/src/main/java/forge/ai/ability/DrawAi.java index df4be1cd9a4..0a9cc6285b7 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DrawAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DrawAi.java @@ -54,7 +54,7 @@ public class DrawAi extends SpellAbilityAi { } if (ComputerUtil.playImmediately(ai, sa)) { - return new AiAbilityDecision(0, AiPlayDecision.CantPlayAi); + return new AiAbilityDecision(100, AiPlayDecision.WillPlay); } // Don't tap creatures that may be able to block @@ -73,9 +73,10 @@ public class DrawAi extends SpellAbilityAi { // TODO: make this configurable in the AI profile return new AiAbilityDecision(100, AiPlayDecision.WillPlay); } + return new AiAbilityDecision(0, AiPlayDecision.CostNotAcceptable); } - return new AiAbilityDecision(0, AiPlayDecision.CantPlayAi); + return new AiAbilityDecision(100, AiPlayDecision.WillPlay); } /* @@ -173,9 +174,8 @@ public class DrawAi extends SpellAbilityAi { public AiAbilityDecision chkDrawback(SpellAbility sa, Player ai) { if (targetAI(ai, sa, sa.isTrigger() && sa.getHostCard().isInPlay())) { return new AiAbilityDecision(100, AiPlayDecision.WillPlay); - } else { - return new AiAbilityDecision(0, AiPlayDecision.TargetingFailed); } + return new AiAbilityDecision(0, AiPlayDecision.TargetingFailed); } /** @@ -540,9 +540,8 @@ public class DrawAi extends SpellAbilityAi { if (targetAI(ai, sa, mandatory)) { return new AiAbilityDecision(100, AiPlayDecision.WillPlay); - } else { - return new AiAbilityDecision(0, AiPlayDecision.TargetingFailed); } + return new AiAbilityDecision(0, AiPlayDecision.TargetingFailed); } /* (non-Javadoc) diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java index bc7c4f8431e..948337ed207 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java @@ -339,11 +339,11 @@ public class PumpAi extends PumpAiBase { return new AiAbilityDecision(0, AiPlayDecision.CantPlayAi); } - if (!pumpTgtAI(ai, sa, defense, attack, false, false)) { - return new AiAbilityDecision(0, AiPlayDecision.TargetingFailed); + if (pumpTgtAI(ai, sa, defense, attack, false, false)) { + return new AiAbilityDecision(100, AiPlayDecision.WillPlay); } - return new AiAbilityDecision(0, AiPlayDecision.CantPlayAi); + return new AiAbilityDecision(0, AiPlayDecision.TargetingFailed); } private boolean pumpTgtAI(final Player ai, final SpellAbility sa, final int defense, final int attack, final boolean mandatory, diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java index 83f74410723..c082ea153d6 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java @@ -131,7 +131,7 @@ public class PumpAllAi extends PumpAiBase { boolean result = ai.getCreaturesInPlay().anyMatch(c -> c.isValid(valid, source.getController(), source, sa) && ComputerUtilCard.shouldPumpCard(ai, sa, c, defense, power, keywords)); return result ? new AiAbilityDecision(100, AiPlayDecision.WillPlay) : new AiAbilityDecision(0, AiPlayDecision.CantPlayAi); - } // pumpAllCanPlayAI() + } @Override public AiAbilityDecision chkDrawback(SpellAbility sa, Player aiPlayer) { diff --git a/forge-gui/res/cardsfolder/n/not_dead_after_all.txt b/forge-gui/res/cardsfolder/n/not_dead_after_all.txt index b7e77609139..5107a31ce99 100644 --- a/forge-gui/res/cardsfolder/n/not_dead_after_all.txt +++ b/forge-gui/res/cardsfolder/n/not_dead_after_all.txt @@ -3,7 +3,7 @@ ManaCost:B Types:Instant A:SP$ Animate | Triggers$ TrigChangeZone | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SpellDescription$ Until end of turn, target creature you control gains "When this creature dies, return it to the battlefield tapped under its owner's control, then create a Wicked Role token attached to it." (Enchanted creature gets +1/+1. When this Aura is put into a graveyard, each opponent loses 1 life.) SVar:TrigChangeZone:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChangeZone2 | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, return it to the battlefield tapped under its owner's control, then create a Wicked Role token attached to it. (Enchanted creature gets +1/+1. When this Aura is put into a graveyard, each opponent loses 1 life.) -SVar:TrigChangeZone2:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ TriggeredNewCardLKICopy | SubAbility$ DBToken +SVar:TrigChangeZone2:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ TriggeredNewCardLKICopy | Tapped$ True | SubAbility$ DBToken SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ role_wicked | TokenOwner$ You | AttachedTo$ TriggeredNewCardLKICopy DeckHas:Ability$Token & Type$Role|Aura Oracle:Until end of turn, target creature you control gains "When this creature dies, return it to the battlefield tapped under its owner's control, then create a Wicked Role token attached to it." (Enchanted creature gets +1/+1. When this Aura is put into a graveyard, each opponent loses 1 life.) diff --git a/forge-gui/res/cardsfolder/s/sin_unending_cataclysm.txt b/forge-gui/res/cardsfolder/s/sin_unending_cataclysm.txt index 346ebd68e10..5d6db9b352a 100644 --- a/forge-gui/res/cardsfolder/s/sin_unending_cataclysm.txt +++ b/forge-gui/res/cardsfolder/s/sin_unending_cataclysm.txt @@ -10,7 +10,7 @@ SVar:DBPutCounters:DB$ PutCounter | ETB$ True | Defined$ Self | CounterType$ P1P SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When NICKNAME dies, put its counters on target creature you control, then shuffle this card into its owner's library. SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ EachFromSource | EachFromSource$ TriggeredCardLKICopy | SubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | Shuffle$ True +SVar:DBChangeZone:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | Shuffle$ True SVar:X:Count$RememberedNumber/Times.2 DeckHas:Ability$Counters Oracle:Flying, trample\nAs Sin enters, remove all counters from any number of artifacts, creatures, and enchantments. Sin enters with X +1/+1 counters on it, where X is twice the number of counters removed this way.\nWhen Sin dies, put its counters on target creature you control, then shuffle this card into its owner's library.