diff --git a/forge-ai/src/main/java/forge/ai/ability/PermanentAi.java b/forge-ai/src/main/java/forge/ai/ability/PermanentAi.java index e533eec95cd..4da029d281b 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PermanentAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PermanentAi.java @@ -264,11 +264,21 @@ public class PermanentAi extends SpellAbilityAi { if (ai.getLife() < Integer.parseInt(value)) { dontCast = true; } + } else if (param.equals("NeverCastIfLifeAbove")) { + // Do not cast this spell if AI life is below a certain threshold + if (ai.getLife() > Integer.parseInt(value)) { + dontCast = true; + } } else if (param.equals("AlwaysCastIfLifeBelow")) { if (ai.getLife() < Integer.parseInt(value)) { dontCast = false; break; // disregard other preferences, always cast as a last resort } + } else if (param.equals("AlwaysCastIfLifeAbove")) { + if (ai.getLife() > Integer.parseInt(value)) { + dontCast = false; + break; // disregard other preferences, always cast as a last resort + } } else if (param.equals("OnlyFromZone")) { if (!source.getZone().getZoneType().toString().equals(value)) { dontCast = true; diff --git a/forge-gui/res/cardsfolder/t/transcendence.txt b/forge-gui/res/cardsfolder/t/transcendence.txt index c70739049e9..223c230ca96 100644 --- a/forge-gui/res/cardsfolder/t/transcendence.txt +++ b/forge-gui/res/cardsfolder/t/transcendence.txt @@ -7,5 +7,6 @@ T:Mode$ LifeLost | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigL SVar:TrigLoseGame:DB$ LosesGame | Defined$ You SVar:TrigLifeGain:DB$ GainLife | LifeAmount$ X SVar:X:TriggerCount$LifeAmount/Times.2 +SVar:AICastPreference:NeverCastIfLifeAbove$ 5 AI:RemoveDeck:Random Oracle:You don't lose the game for having 0 or less life.\nWhen you have 20 or more life, you lose the game.\nWhenever you lose life, you gain 2 life for each 1 life you lost. (Damage dealt to you causes you to lose life.)